13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flutter開発で便利そうなpackageまとめ

Posted at

この記事は

CA21 Advent Calendar 2020 の17日目の記事です.

私はAndroidアプリ開発を始めてまだ1年ちょっとですが,最近はiOSアプリも同時に開発したくなることが多々ありFlutterを用いた開発を行っています.

Flutterは比較的簡単ということもあり,手を出している人も多いと思いますが,私がFlutter開発していて便利だなや,Androidアプリ開発のデファクトスタンダードなライブラリと似ていてよく使われてそうだなと思うpackageをまとめたいと思います.

僕が普段Androidをやっているということもあり,Android関連の技術と比較した説明が多めです.

アーキテクチャ

Flutterのアーキテクチャに関してはAndroidに比べるとまだ戦国時代みたいな感じがします.自分もFlutterを始めて半年くらいしか経っていませんが3つほどアーキテクチャに関してはこれが良さそうというふうに変わってきている気がします.

provider

Remi Rousseletさんによって開発されたpackageです.StatefulWidgetを使ってWidgetと状態管理クラスを混ぜ合わせて状態が変わったタイミングでWidgetを更新していたものを,ViewModelをつくるようにWidget(View)と実際の状態管理している部分(ViewModel)を分けて記述できるようになります.状態管理するクラスをDIするためにも使われます.
ChangeNotifierと組み合わせて使われることも多く見ます.

state notifier

こちらもRemi Rousseletさんによって開発されたpackageです.ChangeNotifierとProviderを使った開発では状態を更新する際に notifyListeners()呼ぶ必要がありましたが,StateNotifierではそれが不要です.また,ChangeNotifierとProviderではAndroidで言うViewModelのような構成でLiveDataとそれを更新するロジックが同一のクラスに属していましたが,StateNotifierではLiveDataだけが属するimmutableなクラスとそれを更新するクラスを完全に分離することができます.

freezed

こちらもRemi Rousseletさんによって開発されたpackageです.StateNotifierで値を更新する際に毎回状態そのものを持っているimmutableなクラスを生成して更新していた手間をシュッとかけるようにしてくれます.

riverpod

こちらもRemi Rousseletさんによって開発されたpackageです.providerの上位互換みたいなものです.グローバル変数としてproviderを宣言できるようになって従来のproviderのBuildContextの依存がなくなりとても使いやすくなりました.

flutter hooks

React HooksのFlutterバージョンのようなものです.riverpodと一緒に使われることが多いイメージです.

ローカルDB

これに関しては@kabochapoさんがわかりやすくまとめた記事があるのでそちらを参照してもらいたいと思います.

通信周り

dio

AndroidのOkhttpっぽくかけるHTTPクライアントpackageみたいです.

retrofit

名前の通り,Androidでよく使われるRetrofitにインスパイアされたFlutter版です.

その他

image picker

端末内に保存されている画像を選択して取ってくるやつを作れるやつです.

url launcher

URLをWebViewで表示するようにしたり,ブラウザアプリで表示するようにしたり,事前に定められているフォーマット通りにURLを記述すれば端末内にインストールされているTwitterアプリなどに飛ばしてくれるやつを作れます.

intl

日付や数字などアプリをグローバル化してくれるpackageです.

おわり

私もまだFlutterに手を出して日が浅いので,「こんなのもあるよ」みたいなpackageあれば教えて下さい.

PR

内定先のCyberAgentでは22卒のエンジニア採用を行っています!

13
10
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
13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?