FlutterでWebRTCアプリを作る
iPresenceでは普段FlutterでWebRTCとテレプレゼンスロボットを使用するアプリケーションの開発を行っています。
そんな開発をしていく中でデファクトスタンダードとなっているライブラリを紹介していきます。
flutter_webrtc .
FlutterでWebRTCを使用するためのライブラリです。スマホのネイティブアプリやWeb版への対応もされており大体はこれで解決できます。
カメラの映像音声だけでなく画面共有機能もサポートされており様々機能をWebRTCのビデオ通話に乗せることができます。
riverpod / hooks_riverpod
Flutterでの状態管理をするのに定番となりつつあるライブラリです。
特に開発ではhooksと連携するhooks_riverpodを使用してアプリ内でも状態管理を行っています。
以前はreduxを使用していましたがコードの簡略化、Flutter開発での主流に合わせる形でriverpodを使用するようになりました。
freezed
Flutterでデータモデルを作成するライブラリです。
immutableなオブジェクトを生成し クローンを作為するcopyWith
メソッドなどを提供してくれます。
build_runner と組み合わせることで強力にかつ簡単にモデルの作成をしてくれます。
go_router
Flutterでデファクトスタンダードとなっているページ遷移を提供してくれるライブラリです。
riverpodでの状態管理もやりやすく、簡単な記述でルーティングの管理、リダイレクトの制御もできます。
日本語のドキュメントが多い点も手を付けやすくおすすめです。
shared_preferences
ローカルストレージにデータを保存するすためのライブラリです。
基本はFirebaseのFireStoreにてデータを管理していますが、ローカルストレージにデータの保存(アプリの設定等)が必要な場合に使用します。
mockito
テストをする際特定のクラスをモック化する場合に使用します。
特に外部との通信が必要なるコードなどをmockitoを使ってモック化してテストすることが多いです。
firebase fakes
Firebaseの機能をテスト時にモック化してくれる公式のライブラリです。
- firestore
- storage
- auth
- sign in
のみの対応ですがテストで使用するには十分の機能です。
終わりに
今回FlutterでWebRTCアプリを作る際によく使うライブラリの紹介でした。
各ライブラリの実際の使用方法などは今後紹介できたらと思います。