パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v3.0.2

multiple_stream_builder

複数のネストされた StreamBuilder ウィジェットを置き換えるための Flutter ウィジェット

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
3060
いいね数
38
Pub ポイント
160

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

flutter pub add multiple_stream_builder

パッケージ概要

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

ネストされた StreamBuilder ウィジェットを1つのシンプルなウィジェットに置き換えることで、複数のストリームとの作業を簡素化するFlutterパッケージです。単一のビルドコンテキスト内で複数の非同期データソースを効率的かつ読みやすく扱うことを可能にし、ボイラープレートを削減し、パフォーマンスを向上させます。リアルタイムダッシュボードや複数データ入力フォームなど、複数のストリームからの同時更新が必要なUIに最適です。このパッケージはすべての主要プラットフォームをサポートしており、既存のFlutterコードとシームレスに統合できます。

用途

  • 複数のデータフィードを備えたリアルタイムダッシュボード
  • 複数のストリームからのライブ検証を必要とするフォーム
  • 異なるソースからの並行な状態更新
  • マルチストリームデータ用の簡素化されたUIロジック
  • 複雑なストリームベースのUIにおけるネストの削減

主な機能

  • 複数のストリームを管理するための1つのウィジェット
  • ネストされた StreamBuilder の複雑さを解消します
  • 最小限のオーバーヘッドで効率的な再構築
  • すべての Flutter プラットフォームをサポートしています
  • ストリーム処理のための洗練された読みやすい構文

適している対象

  • 複数の非同期データソースを管理する開発者
  • よりクリーンなUIコードを求めるチーム
  • 複雑なリアルタイムデータ要件を持つプロジェクト
  • リアクティブパターンを使用するFlutterアプリ
  • ウィジェットツリーの深さを減らしたい人

注意事項

  • Stream および StreamBuilder の基礎について理解が必要です
  • バンドルサイズがわずかに増加する可能性があります
  • 2つ以上の同時ストリームに適している
  • 単一ストリームのシナリオには適していない
  • ストリームベースのデータソースに限定

元の README

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

multiple_stream_builder

Flutter widgets to replace multiple nested StreamBuilder widgets

Installing

To add use this package in your Flutter project add this to your pubspec.yml

dependencies:
  multiple_stream_builder: ^3.0.0

Usage example

var stream1 = Stream<int>.periodic(Duration(seconds: 1), (x) => x);
var stream2 = Stream<int>.periodic(Duration(seconds: 2), (x) => x);
var stream3 = Stream<int>.periodic(Duration(seconds: 3), (x) => x);

// Instead of writing out nested StreamBuilders
Widget build(BuildContext context) {
  return StreamBuilder<int>(
    stream: stream1,
    initialData: 0,
    builder: (context, snapshot1) {
      return StreamBuilder<int>(
        stream: stream2,
        initialData: 0,
        builder: (context, snapshot2) {
          return StreamBuilder<int>(
            stream: stream3,
            initialData: 0,
            builder: (context, snapshot3) {
              return Text(
                'stream1: ${snapshot1.data} - stream2: ${snapshot2.data} - stream3: ${snapshot3.data}',
              );
            },
          );
        },
      );
    },
  );
}

// Pass multiple streams into a single StreamBuilder
Widget build(BuildContext context) {
  return StreamBuilder3<int, int, int>(
    streams: StreamTuple3(stream1, stream2, stream3),
    initialData: InitialDataTuple3(0, 0, 0),
    builder: (context, snapshots) {
      return Text(
        'stream1: ${snapshots.snapshot1.data} - stream2: ${snapshots.snapshot2.data} - stream3: ${snapshots.snapshot3.data}',
      );
    },
  );
}

カテゴリー

ソースリポジトリ

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

データはまだありません。