FlutterKaigi(11/29,30)に「実例と歴史から学ぶ!Flutterの状態管理方法の選定 」で登壇した※アンケートの結果もあるよ
こんにちはentakuです。
この記事はタイトルの通りFlutterKaigiへ登壇した振り返りを書きます。
なお、こちらはFlutter KaigiのYouTubeチャンネルから動画が出てますので、こちらをご覧ください。
FlutterKaigiとは?
FlutterKaigiは、日本において開催されるFlutter技術情報の共有とコミュニケーションを目的としたカンファレンスです(原文ママ)。
11/29,30に開催されました。
僕の知る限りではこの規模のFlutterカンファレンスは初めてかなと思います。
プロポーザル出したきっかけ
勢いもあったのですが、Flutter開発で自分が感じたことを話してみたいと思い出しました。特に仕事の開発でもどんな状態管理がいいかをよく議論したりするのでその状態管理について話してみたいと思いました。
作成途中
状態管理について話したい!と言いながらセッションでも話した通り状態管理の手法ってかなり多いんですよね。何を選定すべきかっていうのは「開発するエンジニアによる」に帰結してしまいそうですが、特に公式が出しているようなものから外れないような情報を中心に取り上げるようにしました
個人的には「特定の状態管理手法に精通していてその状態管理を使った方が開発が速くなると自分で確信が持てる」場合以外は公式のものを使うのがいいと思います。
またこのような感想もいただけて大変嬉しいです。僕もそう思って状態管理の歴史というテーマでまとめました(ならまとめに書け)
動画撮影
今回はZoomでの撮影を行いました
あまり撮影に慣れておらず何回か撮り直しと再提出をしました。
動画の解像度などの設定わからず四苦八苦しました。。。
zoomの画面共有の解像度の上げ方がわからないマンことワイ
— entaku / Voicy iOSエンジニア (@entaku_0818) November 23, 2021
登壇中
登壇中はTwitterを見ながら楽しんでいました
状態管理について多くの議論ができて良かったですし、好意的なコメントが多く楽しんでできました
また ちゅーやんさんが言及していましたがInheritedWidgetについても資料内で触れられると良かったかなと思います。
興味がある人は調べてみてください。
Provider が偉いのはFlutter標準のInheritedWidgetのラッパーという立ち位置を明確に決めているところだと思っている。Flutterの基礎的な考えに沿っているので、パッケージ独自の世界観や思想みたいなものがほとんどない。 #FlutterKaigi
— ちゅーやん@「内側から理解する Flutter」Zenn で販売中 (@chooyan_i18n) November 29, 2021
アンケート
今回、Flutterの状態管理についてアンケートを取りました。
カンファレンス前は19件だったのですが、なんと71件もの回答をいただけました回答いただいた皆さん本当にありがとうございます。
あなたが一番近いものを選択してください
Flutter開発者の内、約半数がFlutterから入ったエンジニアのようです。
あとはiOSエンジニアの方が多いようですね
今まで利用したことのあるFlutterの状態管理手法にチェックをしてください!
StatefulWidgetを使っていた方が多いですね。誰もが通る道という感じでしょうか。ProviderとRiverpodが同じくらいの数なのは意外でした。
現在利用している状態管理手法にチェックをしてください!
ここはStatefulWidgetが少なくなり、Riverpodの割合が一番多くなりましたね
今後導入してみたい状態管理手法があったら教えてください!
回答のあった中からなんと 3 / 4がRiverPodを使いたいという結果でした。
他BLoCやReduxも多めですね。他環境で利用していてという方が多いのでしょうか?あとGetXが表記揺れになってしまいました。選択肢用意できてなくてすいません。
紹介
また資料内では紹介しきれなかったのですが、今回の資料を作る上でのインプットに利用したものをぜひ紹介したいので記載します。
iOSアプリ設計パターン入門
iOSエンジニアの方は知らない人がいないくらい有名な本かもしれません。
この本を読みながらiOSアプリ開発の勉強をしました。
特に「はじめに」と「第1部 設計を知る」は全アプリエンジニアに読んで欲しい設計への考え方の知見が散りばめられています。ぜひ読んでください
機能ごとに動作するミニアプリでプレビューサイクルを爆速にした話
今年のiOSDCにて発表されていたクックパッドさんのミニアプリについてです。
今後Flutterでも大規模アプリ開発に関する知見が増えていくと思い参考にしました。
Flutterの状態管理手法の選定
monoさんが書かれているFlutterの状態管理手法の選定についての記事です。今から1年以上前の記事ですがすごくわかりやすく知見がまとめられています。
状態管理の手法だけでなく、freezedなどのライブラリとFlutter(というかDart)の状態管理において気になるTipsがまとめられています。
Flutterで参考になるアプリ「Pilll」
bannzaiさんが作成、公開しているPilllというアプリです。
このように実際に触れるアプリがGitHubで公開されているパターンは少ないのではないでしょうか?
個人開発ではよく使われるfirebaseログインやFireStore、またコンポーネントの分割など参考にできるポイントがたくさんあります。
リンクをクリックしたらスターをしてからコードを見ましょうね⭐️
最後に
今回開催いただいた運営の皆さん初め、登壇者参加者の皆さんありがとうございました。個人的には無理なく登壇できたのでとても楽しかったです。
特に運営の皆さんには動画でのライセンスチェックなどとても助けられました
皆さんの状態管理の悩みの一助になったらありがたいです