カテゴリー・パッケージ・リポジトリを検索

パッケージ詳細v9.2.1

bloc

BLoC(ビジネスロジックコンポーネント)デザインパターンの実装を支援する予測可能な状態管理ライブラリです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
245万
いいね数
3220
Pub ポイント
160

パッケージをインストール

flutter pub add bloc

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Bloc は、BLoC(ビジネスロジックコンポーネント)デザインパターンを実装したFlutter用の状態管理ライブラリであり、予測可能でテスト可能な状態変更を促進します。ビジネスロジックとUIを分離することで、複雑なアプリの状態管理が容易になります。ストリームとシンクを使用することで、非同期イベントや状態遷移を効率的に処理できます。ホットリロードをサポートし、他のFlutterツールとも良好に統合されます。このライブラリはスケーラブルで保守性の高いアプリケーションに広く採用されています。

用途

  • 複雑なアプリケーション状態の管理
  • 非同期操作とユーザーのインタラクションの処理
  • UIをビジネスロジックから分離する
  • スケーラブルなFlutterアプリの構築
  • ステート遷移のテスト
  • 複数のプラットフォーム間でビジネスロジックを再利用する

主な機能

  • ストリームベースの状態管理
  • 予測可能な状態遷移
  • Flutter のウィジェットツリーとの統合
  • ホットリロードのサポート
  • 包括的なテスト機能
  • 関心事の明確な分離

適している対象

  • 大規模なFlutterアプリ
  • 保守可能なコードを必要とするチーム
  • リアクティブプログラミングを使用する開発者
  • 堅牢な状態管理を必要とするプロジェクト
  • 複雑なワークフローを持つアプリケーション
  • クロスプラットフォーム開発

注意事項

  • 初心者には学習曲線が急峻です
  • ストリームとシンクの理解が必要です
  • より単純な解決策よりも多くのボイラープレートコード
  • 小さなアプリには過剰かもしれない
  • 複雑さを避けるために、慎重なアーキテクチャが必要です
  • 値の等価性のために equatable などの外部パッケージに依存しています

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Bloc

build codecov Star on Github style: bloc lint Flutter Website Awesome Flutter Flutter Samples License: MIT Discord Bloc Library


A predictable state management library that helps implement the BLoC design pattern.

Package Pub
angular_bloc pub package
bloc pub package
bloc_concurrency pub package
bloc_lint pub package
bloc_test pub package
bloc_tools pub package
flutter_bloc pub package
hydrated_bloc pub package
replay_bloc pub package

Sponsors

Our top sponsors are shown below! [Become a Sponsor]


Overview

Bloc Architecture

The goal of this library is to make it easy to separate presentation from business logic, facilitating testability and reusability.

Documentation

Migration

Examples

Dart
  • Counter - an example of how to create a CounterBloc (pure dart).
Flutter
  • Counter - an example of how to create a CounterBloc to implement the classic Flutter Counter app.
  • Form Validation - an example of how to use the bloc and flutter_bloc packages to implement form validation.
  • Bloc with Stream - an example of how to hook up a bloc to a Stream and update the UI in response to data from the Stream.
  • Complex List - an example of how to manage a list of items and asynchronously delete items one at a time using bloc and flutter_bloc.
  • Infinite List - an example of how to use the bloc and flutter_bloc packages to implement an infinite scrolling list.
  • Login Flow - an example of how to use the bloc and flutter_bloc packages to implement a Login Flow.
  • Firebase Login - an example of how to use the bloc and flutter_bloc packages to implement login via Firebase.
  • Github Search - an example of how to create a Github Search Application using the bloc and flutter_bloc packages.
  • Weather - an example of how to create a Weather Application using the bloc and flutter_bloc packages. The app uses a RefreshIndicator to implement "pull-to-refresh" as well as dynamic theming.
  • Todos - an example of how to create a Todos Application using the bloc and flutter_bloc packages.
  • Timer - an example of how to create a Timer using the bloc and flutter_bloc packages.
  • Shopping Cart - an example of how to create a Shopping Cart Application using the bloc and flutter_bloc packages based on flutter samples.
  • Dynamic Form - an example of how to use the bloc and flutter_bloc packages to implement a dynamic form which pulls data from a repository.
  • Wizard - an example of how to build a multi-step wizard using the bloc and flutter_bloc packages.
  • Bloc Concurrency Visualizer - an example of visualizing the various bloc_concurrency transformers.
  • Fluttersaurus - an example of how to use the bloc and flutter_bloc packages to create a thesaurus app -- made for Bytconf Flutter 2020.
  • I/O Photo Booth - an example of how to use the bloc and flutter_bloc packages to create a virtual photo booth web app -- made for Google I/O 2021.
  • I/O Pinball - an example of how to use the bloc and flutter_bloc packages to create a pinball web app -- made for Google I/O 2022.
  • I/O Holobooth - an example of how to use the bloc and flutter_bloc packages to create a virtual photobooth experience -- made for Flutter Forward.
  • I/O Flip - an example of how to use the bloc, flutter_bloc, and flame_bloc packages to create a card game -- made for Google I/O 2023.
Web
  • Counter - an example of how to use a CounterBloc in an AngularDart app.
  • Github Search - an example of how to create a Github Search Application using the bloc and angular_bloc packages.
Flutter + Web
  • Github Search - an example of how to create a Github Search Application and share code between Flutter and AngularDart.

Articles

Books

  • Flutter Complete Reference - A book about the Dart programming language (version 2.10, with null safety support) and the Flutter framework (version 1.20). It covers the bloc package (version 6.0.3) in all flavors: bloc, flutter_bloc hydrated_bloc, replay_bloc, bloc_test and cubit.

Extensions

  • IntelliJ - extends IntelliJ/Android Studio with support for the Bloc library and provides tools for effectively creating Blocs for both Flutter and AngularDart apps.
  • VSCode - extends VSCode with support for the Bloc library and provides tools for effectively creating Blocs for both Flutter and AngularDart apps.

Community

Learn more at the following links, which have been contributed by the community.

Packages
Video Tutorials
Written Resources
Extensions

Maintainers

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

ランキング