पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv0.0.6

cubit_base

एक हल्का फ्लटर लाइब्रेरी जो ब्लॉक/क्यूबिट के उपयोग से डेटा लेने और पृष्ठांतरण को सरल बनाती है। यह मानकीकृत अवस्थाएं और एक Fetcher उपकरण प्रदान करती है जो बॉयलरप्लेट को कम करती है।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
49
लाइक
1
Pub अंक
155

पैकेज इंस्टॉल करें

flutter pub add cubit_base

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

cubit_base एक हल्का Flutter लाइब्रेरी है जो Bloc/Cubit पैटर्न में डेटा फ़ेचिंग और पेजिनेशन को सुविधाजनक बनाती है। यह मानकीकृत राज्य प्रबंधन और एक आंतरिक Fetcher उपकरण प्रदान करता है जो दोहराव वाले कोड को कम करता है, जिससे लोडिंग, सफलता और त्रुटि अवस्थाओं को हैंडल करना आसान हो जाता है। बॉयलरप्लेट को कम करके यह विकास को तेज करता है और प्लेटफॉर्म के बीच स्पष्ट और पूर्वानुमान योग्य राज्य संक्रमण बनाए रखता है।

उपयोग

  • API डेटा लेने को सरल बनाना
  • पेज़ वाली सूचियों का कार्यान्वयन
  • राज्य प्रबंधन बॉयलरप्लेट को कम करना
  • पुनर्उपयोगी डेटा प्रदाता बनाना
  • लोडिंग और त्रुटि स्थितियों का प्रबंधन
  • CRUD ऑपरेशन को सरल बनाना

मुख्य विशेषताएँ

  • स्थिर उपयोगी अवस्था के लिए समान उपयोगी व्यवहार
  • असिंक्रोनस संचालन के लिए निर्मित Fetcher उपकरण
  • बॉक्स के बाहर एक आवश्यकता के लिए समर्थन
  • न्यूनतम सेटअप और स्पष्ट संरचना
  • क्रॉस-प्लेटफॉर्म संगतता
  • चिंता के स्पष्ट विभाजन

इनके लिए उपयुक्त

  • Bloc/Cubit पैटर्न का उपयोग करने वाले डेवलपर्स
  • अक्सर डेटा लेने की आवश्यकता वाले प्रोजेक्ट्स
  • बॉयलरप्लेट को कम करने की कोशिश कर रही टीमें
  • पृष्ठांकित सामग्री वाले ऐप्स
  • राज्य प्रबंधन सीख रहे शुरुआती लोग
  • त्वरित प्रोटोटाइपिंग और एमवीपी विकास

विचार योग्य बातें

  • Bloc/Cubit के प्रति परिचय आवश्यक है
  • जटिल राज्य तर्क के लिए सीमित कस्टमाइजेशन
  • अत्यधिक डायनामिक राज्य प्रवाह के लिए उपयुक्त नहीं
  • सरल डेटा संचालन के लिए सबसे उपयुक्त
  • उन्नत कैशिंग के लिए अतिरिक्त परतों की आवश्यकता हो सकती है
  • पूर्ण कार्यक्षमता के लिए बाहरी निर्भरताओं पर निर्भर करता है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

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.

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।