Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.0.8

dash

A biblioteca Dash é responsável por oferecer um padrão de localizador de serviço que cuida da criação e descarte dos blocs.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
182
Curtidas
10
Pontos Pub
160

Instalar pacote

flutter pub add dash

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Dash é um pacote leve de localizador de serviços para Flutter que simplifica a injeção de dependência gerenciando o ciclo de vida dos blocs, garantindo instância e descarte adequados. Ele oferece uma maneira limpa de registrar e recuperar dependências, especialmente indicado para gerenciamento de estado com padrões Bloc. A biblioteca suporta todas as principais plataformas e se integra perfeitamente em projetos existentes do Flutter. Seu foco na conscientização do ciclo de vida ajuda a prevenir vazamentos de memória e melhora o desempenho do aplicativo.

Casos de uso

  • Gerenciando o ciclo de vida do Bloc em aplicativos Flutter
  • Simplificando a injeção de dependência
  • Substituindo a criação e descarte manual do Bloc
  • Integração com padrões de gerenciamento de estado
  • Simplificando a configuração de teste
  • Habilitar arquitetura de aplicativo modular

Principais recursos

  • Descarte automático do bloc
  • Registro e recuperação simples
  • Design independente de plataforma
  • Gerenciamento de ciclo de vida embutido
  • Boilerplate mínimo
  • Suporta dependências aninhadas

Indicado para

  • Desenvolvedores Flutter usando o padrão Bloc
  • Aplicativos que exigem gerenciamento estruturado de dependências
  • Equipes procurando soluções leves de injeção de dependência
  • Projetos com foco em gerenciamento de estado limpo
  • Desenvolvedores que querem limpeza automática de recursos

Considerações

  • Limitado a casos de uso focados no Bloc
  • Requer compreensão do padrão de localizador de serviço
  • Não adequado para necessidades complexas de injeção de dependência
  • Pode ser necessário configuração adicional para cenários avançados
  • Menos rico em recursos do que frameworks de DI completos

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Dash

Logo

Dash is a simple but efficient library that helps provide BloCs without headaches.

IMPORTANT: Dart2 is required to use this package.

Installation

  • Add dash to your pubspec.yaml under the dependencies section:
dependencies:
  dash: ^latest_version
  • Add build_runner and dash_generator to your pubspec.yaml under the dev_dependencies section:
dev_dependencies:
  build_runner: ^2.0.3
  dash_generator: ^latest_version

Usage

1 - Create a provider class that will gather BlocProvider annotation:

IMPORTANT: Do not forget to add: part 'provider.g.dart';.

import 'package:dash/dash.dart';

part 'provider.g.dart';

@BlocProvider.register(MySampleBloc)
@BlocProvider.register(MyOtherBloc)
abstract class Provider {}

2 - Extend BLoCs from Bloc. It will allow you to override dispose method.

IMPORTANT: All blocs must have an instance() function that returns the instance of the bloc as below.

class MySampleBloc extends Bloc {

  @override
  dispose() {
    //close all streams
  }

  static Bloc instance() => MySampleBloc();
  
}

class MyOtherBloc extends Bloc {

  @override
  dispose() {
    //close all streams
  }

  static Bloc instance() => MyOtherBloc();
}

3 - Run build_runner, it will generate the provider.g.dart class that you added as part on your provider class.

On project directory run in terminal:

pub run build_runner build

For flutter:

flutter packages pub run build_runner build

Note: If you encounter a conflict error, please add the --delete-conflicting-outputs argument to your command:

flutter packages pub run build_runner build --delete-conflicting-outputs

4 - Finally you can get your BLoC instance from anywhere, for example:

  @override
  Widget build(BuildContext context) {
    final _bloc = $Provider.of<MyOtherBloc>();

    return Container();
  }

  @override
  void dispose() {
    $Provider.dispose<MyOtherBloc>();
    super.dispose();
  }

Changelog

Please see the Changelog page to know what's recently changed.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.