「出前館」に学ぶ、大規模プロジェクトのためのFlutter設計
出前館からはプロダクト本部 コンシューマ部 アプリ開発グループ アプリエンジニアのPARK YEONHO氏が登壇。昨年末にリアーキテクトしたエンドユーザー向けの「出前館」アプリにおける、設計上の工夫を語った。
このアプリではフォルダ構成として、Featureごとにフォルダを分けて管理する方針を選んでいる。「出前館」アプリでは大規模プロジェクトになりやすいため、チームでの分業や機能単位のメンテナンスが容易なこの構成が適していた。
次は、Asset管理について説明。「出前館」ではflutter_genを採用した。この方式ではAssetのパスや名前指定にIDEの自動補完機能を用いることで、パスや名前に関するエラーを防止できるため、開発生産性も向上する。
最後にState管理について説明。「出前館」アプリでは、BLoCパターンを使用している。この方式では、複雑度の高い状態管理とイベント処理が可能だ。さらに、Multi Class State+Freezedで運用することで、「状態ごとにクラスを分離し、可読性が高くなる」「状態別のフィールドを構築し、柔軟な構成を実現」「新しい状態追加またはメンテナンスが容易」などの利点を享受していると語った。