🐤

FlutterKaigi 2024 振り返り

2024/11/30に公開

FlutterKaigi2024に登壇&参加してきたので簡単に振り返りをしたいと思います。

登壇について

Day2/Bdash/13:30~の「気をつけたい!Desktop対応で陥りやすい罠とその対策」という題で発表させていただきました。内容としてはMobileのFlutterアプリをWeb対応した際に遭遇した課題とその解決策を元に、DesktopやWeb、マルチデバイス対応で気をつけたいポイントをお話ししております。
視聴してくださった方、ありがとうございました!

https://speakerdeck.com/goto_tsl/qi-wotuketai-desktopdui-ying-dexian-riyasuimin-tosonodui-ce

プロポーザル出すまでの話

これまでモバイルアプリの開発ばかりしていたのですが、業務でWebアプリをFlutterでリプレイスするプロジェクトに参加することになり、そこで初めてデスクトップ環境向けのFlutterアプリ開発に挑戦しました。モバイルとは全然違う環境ならではの問題がいろいろ出てきて、試行錯誤の連続でした。中でも、ReorderableListViewのようなデスクトップ特有の分岐の入っているWidgetが印象に残っていて、これをきっかけにプロポーザルを出そうと思いました。

採択されてから当日までの話

自身は技術系イベントはもちろん、FlutterKaigiのような大規模カンファレンスでの登壇経験が全くありませんでした。そのため、採択された時は本当に嬉しかった反面、「ちゃんとやれるだろうか」と不安も大きかったです。

まずは話す内容を整理して、大まかな流れを決めるところからスタートしました。でも、その後何度も迷走してしまい、相談に乗ってもらいながら方向性を修正する日々が続きました。全体の構成を考えるだけでも一苦労でしたが、それに加えて一つひとつの事例を深掘りする作業も大変で…。
「あのときの問題、どのIssueだったっけ?」とか、「最終的にこの対応に決まった理由って何だったっけ?」など、問題の原因や対応の経緯を集めるのに苦労しました。こういう情報は、発表の有無に関わらず、普段からドキュメントにしっかり残しておくべきだと改めて実感しました。

スライド作成後にはフィードバックをもらい、「こういう部分をもっと強調すると良い」などのアドバイスを受けました。特に登壇経験が豊富な方々からの意見は非常に貴重で、迷走しがちだった自分をいつも軌道修正してくれました。練習のたびにフィードバックをもらい、その都度改善を重ねて本番に臨みましたが、不安は最後までつきまとい、直前までスライドを修正していました。振り返ると、もっと余裕を持って準備できたら良かったなと思います。

本番の話

いざ本番。会社のメンバーがそばで見守ってくれていたおかげで、思いのほか緊張せずにスタートできました。ただ、発表を始める際にタイマーをスタートさせるのを忘れてしまい、「時間が分からない!」と途中で焦りました。結局タイムキーパーの方のカウントに頼りながら進行しましたが、最後は少し駆け足になってしまいました。

一方で、実際に話してみると予想以上に反応が良かった箇所もあり、「あれは冒頭に持ってきた方が良かったかも」など新たな気付きも得られました。初登壇ゆえに反省点は多々ありますが、終わった後にスタッフの方や会社のメンバーから「良かったよ」と声をかけてもらえたことが、とても励みになりました。

印象に残ったセッション

Effective Form ~ Flutterによる複雑なフォーム開発の実践 ~

過去にRiverpod + flutter_hooksでフォームの実装に取り組んだことがあったためとても気になっていました。
Dirty管理というワードは初めて聞きました。FlutterのForm+〇〇FormFieldとかで基本的なバリデーション実装はできるけど、まさにDirty管理のようなエラーメッセージの表示タイミングを適切に制御する必要もあるのでその辺をformzというライブラリを使って上手くやる方法が知れて勉強になりました。

ただ、実プロダクトだとそれだけだと歯が立たないということで、後半は複雑なフォーム実装を取り巻く3つの課題をどのように解決しているかについての内容でした。App State、Ephemeral StateでRiverpodとflutter_hooksを使い分けたりくらいしか意識していなかったので、SSOTや宣言的な状態管理の徹底などはとても勉強になりました。今後複雑なフォーム実装をする際は指針にしたいと思いました。
https://2024.flutterkaigi.jp/session/c56e7002-02e3-44d5-825c-b64934d12288

全体を通して

Day1は登壇を控えていて心の余裕がなく、セッション内容がほとんど頭に入りませんでした。しかし、FlutterKaigiの雰囲気や懇親会では緊張を一瞬忘れて楽しむことができました。登壇者としても参加者としても、とても充実した3日間でした。

最後に、運営の皆さん、本当にありがとうございました!
来年もまた参加したいです🏃

Discussion