🕊️

【初心者向け】Flutter おすすめパッケージ

2024/04/23に公開1

先日、初めてFlutterアプリをリリースしました。

https://apple.co/3JwoKMA

Flutterでの開発が初めてだったため、どんなパッケージ(ライブラリ)が存在するかも分からない状態だったのですが、実際に使ってみて「これは良さそう」と感じたパッケージをまとめてみました。参考になれば嬉しいです。

1. アプリ起動前〜起動時

flutter_launcher_icons

アプリのアイコンを設定できるパッケージです。
pubspec.yaml に、アイコン画像のパスを設定するだけで、簡単にアイコンを設定できます。

https://pub.dev/packages/flutter_launcher_icons

flutter_native_splash

スプラッシュ画面を表示できるパッケージです。
スプラッシュ画面とは、アプリを開いた時に数秒間表示される画面で、一般的にはアプリのロゴなどで構成されます。

このパッケージでは、pubspec.yaml 内にロゴ画像のパスと背景色を指定するだけで、簡単にスプラッシュ画面を作ることができます。

https://pub.dev/packages/flutter_native_splash

flutter_dotenv

環境変数を読み込むことができるパッケージです。
開発時と本番ビルド時で別々の環境変数を読み込む運用が可能になります。

https://pub.dev/packages/flutter_dotenv

ユニバーサルリンクからアプリを起動した際の処理を簡単にできるパッケージです。
ユニバーサルリンクとはURLのような文字列で、アクセスすると特定のアプリが起動するリンクのことです。

https://pub.dev/packages/uni_links

2. UIフィードバック

flutter_easyloading

ローディングマークを表示できるパッケージです。
個人的には、以下のようなタイミングで使うと良いと思います。

  • データ読み込み中
  • フォーム送信中(データ保存中)

ローディングマークのWidgetや、背景色などもカスタマイズ可能です。

https://pub.dev/packages/flutter_easyloading

fluttertoast

トーストを表示できるパッケージです。
トーストとは、画面の下の方などに数秒間表示されるお知らせ的なUIのことです。
以下のようなタイミングで表示すると良いでしょう。

  • データ保存が成功した
  • 何らかのエラーが発生した

トーストを表示する際に context が不要なので、とても使いやすいです。

https://pub.dev/packages/fluttertoast

3. アプリ外部

share_plus

特定のコンテンツをシェアできるダイアログを表示できるパッケージです。
SNSでシェアできるようにしたり、招待リンクをLINEで送信できるようにしたりできます。

https://pub.dev/packages/share_plus

url_launcher

アプリ内ブラウザで、特定のURLにアクセスできるパッケージです。
例えば、お問い合わせのGoogleフォームをWebで用意して、アプリからはアプリ内ブラウザでこのGoogleフォームにアクセスさせる、といった使い方が可能です。

https://pub.dev/packages/url_launcher

4. フォーム

flutter_form_builder

フォーム関連を楽に実装できるパッケージです。

Flutterにはデフォルトで Form ウィジェットが存在しますが、フォーム送信時(フォームの内容を取得する際)など、ちょっと使いづらい印象です。こちらのパッケージを使うことで、ある程度解決できます。

https://pub.dev/packages/flutter_form_builder

5. 通信

retrofit

API通信などに使えるパッケージです。
APIを叩き、返ってきたデータを特定のクラスのインスタンスに変換したりすることができます。

https://pub.dev/packages/retrofit

6. 状態管理

flutter_hooks

ReactというJavaScriptの有名ライブラリに、React Hooksという仕組みがあるのですが、それを Flutterで実装したライブラリです。個人的には、ウィジェット内での状態管理は、StatefulWidgetを使わず、このパッケージを使う方がシンプルで良いと思っています。

https://pub.dev/packages/flutter_hooks

riverpod

アプリ内全域で使うことができる、状態管理のライブラリです。
個人的には、画面をまたいで同じデータを使いたい、という場合に使用します。
例えば、「ログインしているユーザーの情報」などが分かりやすいかと思います。

https://pub.dev/packages/riverpod

7. その他

intl

国際化(internationalization)に関するパッケージで、日付や数字のフォーマットなどを行うことが可能です。

例えば、任意の DateTime オブジェクトを、yyyy/MM/dd H:mm のフォーマットで表示、といったことができます。

https://pub.dev/packages/intl

おわりに

パッケージ開発者の皆さん、ありがとうございます!

Discussion