はじめに
Flutterはいろいろなライブラリがあってどれを使えばいいのか困ると思います。
そこで、実際に使ってみてとても便利だと思ったライブラリを紹介します。
アプリの仕様に依存しないライブラリを多めに選んでみたので是非参考にしてください。
必須
1. riverpod
状態管理のライブラリです。
とても人気で便利なライブラリなので入れておいて損はないと思います。
ただ状態を管理するだけではなくて、依存関係にある状態を自動で更新したり、キャッシュしておいたりしてくれるのでパフォーマンスも良くなります。
2. flutter_hooks
React hooksのようにuseState
やuseEffect
などの関数を使えるようになります。
Stateが更新されたタイミングでの描画更新、Widgetが破棄されたタイミングでの適切なStateの破棄なども自動で実施してくれるのでコード量が少なくなります。
React経験者にはもちろんですが、React未経験者にも是非使ってみてほしいライブラリです。
3. freezed
クラスに便利なメソッドを自動で実装してくれるライブラリです。
インスタンスを複製するためのcopyWith
メソッドや文字列に変換するtoString
、Jsonオブジェクトに変換する関数などを自動で実装してくれます。
最初は必要性が理解できないかもしれないですが、わかると非常に便利です。
4. collection
配列に対して使える便利な関数を増やしてくれるライブラリです。
たとえば、標準で組み込まれているfirstWhere
を拡張したfirstWhereOrNull
があります。
firstWhere
では要素が見つからなかったときにエラーが発生しますが、firstWhereOrNull
ではエラーが発生せずにnull
を返してくれます。(firstWhere
でもorElse
に見つからなかったときの処理をかけますが面倒です。)
// Uncaught Error: Bad state: No element
[2].firstWhere((e)=>e==1)
// null
[2].firstWhereOrNull((e)=>e==1)
こんな感じの便利関数の詰め合わせです。
5. go_router
画面遷移のライブラリです。
Flutter公式なのでとりあえずこれを使っておけばいいと思います。
便利
6. flutter_native_splash
スプラッシュ画面(アプリ起動時に表示される画像)をコマンド一発で実装できます。
7. flutter_launcher_icons
アプリのアイコンコマンド一発で実装できます。
8. keyboard_actions
なぜかiOSで数字キーボードを表示すると閉じられないので、Close
ボタンを追加してくれるライブラリです。
↓の画像の「↑」「↓」と「CLOSE」のところを追加してくれます。
9. isar
データベースライブラリです。Rust
で実装されており、非常に高速に動作します。
NoSQLなのでSQLにくらべて検索に弱いですが、今後公開される予定のv4
では強化されそうです。
用途は限られるが便利
10. flutter_local_notifications
通知を表示するためのライブラリ。
11. fl_chart
グラフ表示のためのライブラリ。
円グラフ、棒グラフなど一通り揃っています。
12. webview_flutter
WebViewを表示するためのライブラリ。
13. permission_handler
アプリの権限(位置情報やカメラなど)を管理するためのライブラリ。
現在の権限状態の取得だけではなくて要求もできる。
14. tutorial_coach_mark
いい感じのチュートリアルを実装できるライブラリ。
カスタマイズ性も高くて使いやすい。
15. firebase系
若干設定がめんどくさいですが、firebase_analytics
(分析)とfirebase_crashlytics
(クラッシュレポート)は無料なので入れておいたほうがいいと思います。
テスト
16. mocktail
モック化を簡単にできるライブラリ。
Riverpodでoverrideできるようにしておくと完璧です。
17. golden_toolkit
Golden Test(画像比較テスト)を簡単に実装できるライブラリです。
差分が発生したときにはエラーが発生して差分画像が出力されるので、レイアウト崩れをすぐに見つけることができます。
また、様々なデバイスサイズでの画像も出力できます。
その他
18. derry
よく実行するコマンド類をpubspec.yaml
に記載しておいてショートカットコマンドを作成できるライブラリです。
例えば、ビルドのたびにdart run build_runner build --delete-conflicting-outputs
と入力しなければいけないですが、以下のように記載しておくとderry build
で実行できるようになります。
scripts:
build: dart run build_runner build --delete-conflicting-outputs
19. pedantic_mono
コードの保守性や可読性向上のためのルールを追加してくれるパッケージです。
よくない書き方をするとエラーとして表示されるようになります。
20. logger
ログ用のライブラリです。
以下の画像のようにカラフルに表示してくれたり、ログを出力する条件(リリースビルド以外など)を定義できるようになります。
リッチにしすぎると逆に見にくくなるので注意しましょう。
まとめ
Flutterの便利なライブラリ20選でした。
他にも便利なライブラリがあれば是非教えてください!!!