47
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KDDIアジャイル開発センター(KAG)Advent Calendar 2023

Day 3

【flutter】 実際に使ってわかった便利なライブラリ20選!

Last updated at Posted at 2023-12-02

はじめに

Flutterはいろいろなライブラリがあってどれを使えばいいのか困ると思います。
そこで、実際に使ってみてとても便利だと思ったライブラリを紹介します。
アプリの仕様に依存しないライブラリを多めに選んでみたので是非参考にしてください。

必須

1. riverpod

状態管理のライブラリです。
とても人気で便利なライブラリなので入れておいて損はないと思います。
ただ状態を管理するだけではなくて、依存関係にある状態を自動で更新したり、キャッシュしておいたりしてくれるのでパフォーマンスも良くなります。

2. flutter_hooks

React hooksのようにuseStateuseEffectなどの関数を使えるようになります。
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」のところを追加してくれます。

スクリーンショット 2023-12-02 17.31.34.png

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で実行できるようになります。

pubspec.yaml
scripts:
  build: dart run build_runner build --delete-conflicting-outputs

19. pedantic_mono

コードの保守性や可読性向上のためのルールを追加してくれるパッケージです。
よくない書き方をするとエラーとして表示されるようになります。

20. logger

ログ用のライブラリです。
以下の画像のようにカラフルに表示してくれたり、ログを出力する条件(リリースビルド以外など)を定義できるようになります。
リッチにしすぎると逆に見にくくなるので注意しましょう。

まとめ

Flutterの便利なライブラリ20選でした。
他にも便利なライブラリがあれば是非教えてください!!!

47
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?