A curated list of Flutter Bloc libraries, tools, tutorials, articles and more.
- bloc - A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern.
- flutter_bloc - Flutter Widgets that make it easy to implement the BLoC (Business Logic Component) design pattern. Built to be used with the bloc state management package.
- bloc_concurrency - Custom event transformers inspired by ember concurrency. Built to be used with the bloc state management package.
- hydrated_bloc - An extension to the bloc state management library which automatically persists and restores bloc states.
- replay_bloc - An extension to the bloc state management library which adds support for undo and redo.
- bloc_test - A testing library which makes it easy to test blocs. Built to be used with the bloc state management package.
- bloc_lint - Set of lint rules for the Flutter BLoC library.
- bloc_tools - Tools for building applications using the bloc state management library.
Packages that are not officially part of the bloc
ecosystem but are commonly used with bloc
.
- equatable - A Dart package that helps to implement value based equality without needing to explicitly override == and hashCode.
- stream_transform - A collection of utilities to transform and manipulate streams.
- formz - A unified form representation in Dart which aims to simplify form representation and validation in a generic way.
- flow_builder - Flutter Flows made easy! A Flutter package which simplifies flows with a flexible, declarative API.
- intl - Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.
- mocktail - A Dart mock library which simplifies mocking with null safety support and no manual mocks or code generation.
- mocktail_image_network - A Dart package which allows you to mock Image.network in your widget tests with confidence using the mocktail package.
- mockingjay - A package that makes it easy to mock, test and verify navigation calls in Flutter.
- json_serializable - Automatically generate code for converting to and from JSON by annotating Dart classes.
- freezed - Code generation for immutable classes that has a simple syntax/API without compromising on the features.
- very_good_analysis - Lint rules for Dart and Flutter used internally at Very Good Ventures.
- bloc_presentation - Extends blocs with an additional stream which can serve as a way of indicating single-time events (so-called "presentation events").
- bloc_presentation_test - A testing library for Blocs/Cubits which mixin BlocPresentationMixin. To be used with bloc_presentation package.
- hooked_bloc - Flutter package that simplifies injection and usage of Bloc/Cubit.
- talker_bloc_logger - Lightweight and customizable BLoC state management library logger on talker base.
- riverbloc - BlocProvider implementation with riverpod as alternative to provider, similar to StateNotifierProvider.
- flutter_hooks_bloc - A flutter_bloc reimplementation based on flutter_hooks with the same API.
- flame_bloc - Integration for the Bloc state management library to Flame games.
- bloc_effects - Cubit and Bloc abstractions and Flutter Widget that make it easy to add UI Effects to the BLoC state management.
- bloc_event_transformers - Configurable transformers for your bloc (bloclibrary.dev) events. Throttle, debounce, skip, and delay with ease.
- form_bloc - Easy Form State Management using BLoC pattern. Separate the Form State and Business Logic from the User Interface. Async Validation, Progress, Dynamic fields, and more.
- flutter_form_bloc - Create Beautiful Forms in Flutter. The easiest way to Prefill, Async Validation, Update Form Fields, and Show Progress, Failures or Navigate by Reacting to the Form State.
- leancode_forms - A package for managing form state based on BLoC.
- lyform - Dart package to implement forms in an easy, fast and effective way using the bloc package.
- flutter_lyform - Flutter package to implement forms in an easy, fast and effective way using the lyform and flutter_bloc packages.
- bloc_lens - Lenses and extensions based on lens_base, made for the bloc package.
- broadcast_bloc - An extension to the bloc state management library which adds support for broadcasting state changes to stream channels.
- blowe_bloc - An advanced Flutter package for state management and business logic components, extending flutter_bloc.
- context_watch_bloc - context_watch adapter for the bloc package.
- bloc_network - A dart package to bootstrap using bloc state management for network requests.
Bloc Library has an Official Recommended Architecture for using bloc
in your Flutter applications.
Also, check out the other architectures that are commonly used with bloc
:
- Very Good Ventures Layered Architecture
- LeanCode Feature-Based Flutter App Architecture
- Reso Code Clean Architecture
- Flutter Starter App (Core) - A Flutter starter application with VGV-opinionated best practices.
- Flutter News Toolkit - A news application template built in Flutter, by Google and Very Good Ventures.
- Flutter Flame Game - A Very Good Flame Game created by Very Good Ventures.
- Sizzle Starter - Production ready template for Flutter applications.
- bloc - Generate a new Bloc in Dart. Built for the bloc state management library.
- flutter_bloc - Generate a new Flutter feature with bloc. Built for the bloc state management library.
- feature_route_bloc - A generic feature template with BLoC and Route.
- feature_brick - A brick to create a feature using best practices and your state management of choice!
Not directly related to bloc
, but useful for development with Flutter and bloc
:
- model - A brick to create your model with properties and all the supporting methods, copyWith, to/from json, equatable and more!
- flutter_counter
- flutter_timer
- flutter_weather
- flutter_todos
- flutter_shopping_cart
- flutter_infinite_list
- flutter_complex_list
- flutter_login
- flutter_firebase_login
- flutter_form_validation
- flutter_dynamic_form
- flutter_wizard
- github_search
- flutter_bloc_with_stream
- very_good_core
- financial_dashboard
- vehicle_cockpit
- airplane_entertainment_system
- io_crossword
- fluttercon_usa_2024_dart_frog_aws
- slide_puzzle
- digital_escape_room
- accessibility_example
- dash_ai_search
- spacex_demo
- io_flip
- pinball
- photobooth
- web_socket_counter_flutter
- flutter_amplify_login
- supabase_example
- very_good_adventures
- bloc_concurrency_demos
- chat_location
Thanks to all the contributors who have helped to build this awesome list.
Special thanks to Felix Angelov, the creator of the bloc
library, and all the bloc library contributors for creating and maintaining the bloc
ecosystem.
Also, thanks to the Flutter Community for creating awesome stuff with bloc
and sharing it with the world.
This project is licensed under the MIT License - see the LICENSE file for details.
Maintained by Robson Silva.