Rxdartを使用して値の変化を他タブなど別画面に通知する方法

これは エキサイトホールディングス Advent Calendar 2021 21日目の記事です。

エキサイト株式会社の高野です。今回はFlutterにおける別画面への値渡しや通知をする方法についてです。

実装

まずはじめに通知を受ける変数として以下を定義します。

final hoge = BehaviorSubject<void>.seeded({});

この void の部分を任意の型にすることによって通知を投げる側からその型の値を受け渡しすることができます。

受け取る際には任意の画面のinitStateなりで以下のように定義します。

hoge.listen((value) => _exFunction())
        .addTo(subscription);

これで通知の受け取りができました。
次に投げる側です

hoge.sink.add({})

こちらを任意の場所で呼んであげることによって通知を投げれます。
addのなかに定義した型の渡したい値をいれます。(ex: add('fugafuga') )

以上で受け渡しができるようになります。これを別クラスにシングルトンで作って呼び出せるようにすると使いやすいと思います。

最後に

弊社では絶賛採用強化中です。もしご興味がある方がいましたら下記リンクよりアクセスいただけると幸いです。(カジュアルからもOKです) www.wantedly.com