Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.0.6

cubit_base

Uma biblioteca leve para Flutter que simplifica a busca de dados e paginação usando Bloc/Cubit. Ela fornece estados padronizados e uma utilidade Fetcher para reduzir o código repetitivo.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
49
Curtidas
1
Pontos Pub
155

Instalar pacote

flutter pub add cubit_base

Visão geral do pacote

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

cubit_base é uma biblioteca leve do Flutter projetada para simplificar a busca de dados e paginação nos padrões Bloc/Cubit. Oferece gerenciamento de estado padronizado e uma utilidade interna Fetcher que minimiza o código repetitivo, facilitando o manuseio dos estados de carregamento, sucesso e erro. Ao reduzir o código boilerplate, acelera o desenvolvimento mantendo transições de estado limpas e previsíveis em todas as plataformas.

Casos de uso

  • Simplificando a busca de dados da API
  • Implementando listas paginadas
  • Reduzindo o código boilerplate de gerenciamento de estado
  • Construindo provedores de dados reutilizáveis
  • Gerenciando estados de carregamento e erro
  • Simplificando operações CRUD

Principais recursos

  • Estados padronizados para tratamento de UI consistente
  • Utilitário Fetcher embutido para operações assíncronas
  • Suporte para paginação de fábrica
  • Configuração mínima com estrutura clara
  • Compatibilidade multiplataforma
  • Separação clara de responsabilidades

Indicado para

  • Desenvolvedores usando padrões Bloc/Cubit
  • Projetos que exigem busca frequente de dados
  • Equipes que buscam reduzir o código boilerplate
  • Aplicativos com conteúdo paginado
  • Iniciantes aprendendo gerenciamento de estado
  • Prototipagem rápida e desenvolvimento de MVP

Considerações

  • Requer conhecimento prévio do Bloc/Cubit
  • Personalização limitada para lógica de estado complexa
  • Não ideal para fluxos de estado altamente dinâmicos
  • Mais adequado para operações de dados simples
  • Pode ser necessário camadas adicionais para cache avançado
  • Depende de dependências externas para funcionalidade completa

README original

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

cubit_base

A lightweight Flutter library to simplify data fetching and pagination using Bloc/Cubit. It provides standardized states and a Fetcher utility to reduce boilerplate in your Clean Architecture features.

Features

  • 🚀 Standardized States: BaseState and BasePaginationState for consistent UI handling.
  • 🔄 Simplified Fetching: Fetcher.fetchWithBase handles loading, success, and error states automatically.
  • 📑 Built-in Pagination: Fetcher.fetchWithPaginate manages page increments and "reached max" logic.
  • 🏗️ Clean Architecture Friendly: Designed to work seamlessly with UseCases and DataStates.

Installation

Add cubit_base to your pubspec.yaml:

dependencies:
  cubit_base: ^0.0.5

Usage

1. Simple Data Fetching

Define your state using BaseState:

class UserState {
  final BaseState<User> user;
  
  UserState({required this.user});
  
  UserState copyWith({BaseState<User>? user}) => UserState(user: user ?? this.user);
}

Use the Fetcher in your Cubit:

Future<void> getUser() async {
  await Fetcher.fetchWithBase<User>(
    fetcher: () => _getUserUseCase.call(),
    state: state.user,
    emitter: (newState) => emit(state.copyWith(user: newState)),
  );
}
2. Pagination

Define your state using BasePaginationState:

class ProductState {
  final BasePaginationState<Product> products;

  ProductState({required this.products});

  ProductState copyWith({BasePaginationState<Product>? products}) =>
      ProductState(products: products ?? this.products);
}

Implement pagination in your Cubit:

Future<void> getProducts({bool isRefresh = false}) async {
  await Fetcher.fetchWithPaginate<Product>(
    fetcher: () => _getProductsUseCase.call(
      params: ProductParams(
        page: isRefresh ? 1 : state.products.query.page,
        size: state.products.query.size,
      ),
    ),
    state: state.products,
    isRefresh: isRefresh,
    emitter: (newState) => emit(state.copyWith(products: newState)),
  );
}

State Components

BaseState<T>

Manages a single object of type T.

  • status: initial, loading, success, error.
  • data: The fetched object.
  • error: Error message if any.
BasePaginationState<T>

Manages a list of type T.

  • list: List of items.
  • status: initial, loading, paging, success, error.
  • query: Contains page and size.
  • reachedMax: Boolean indicating if all data is loaded.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.