【イベントアーカイブ】Flutter技術構成を紐解く クロスプラットフォーム開発の裏側

Flutter技術構成を紐解く クロスプラットフォーム開発の裏側

Flutterでのアプリ開発においては、状態管理、ディレクトリ構成、ウィジェット等の構成が、プロダクトや組織の特性に合わせてカスタマイズされています。 これらを最適化していくことは保守性や可読性を高め、アプリの品質にも大きく影響します。

本イベントは、Flutterアプリのアーキテクチャ設計に焦点を当て、2024年10月8日に開催。各サービスでの具体的な実装例とあわせて、そのプロジェクトにおける課題と解決策、得られた知見について共有いただきました。

「4年間変わらなかった YOUTRUSTのアーキテクチャ」(ashdikさん)

YOUTRUSTのアプリ開発チーム リードエンジニア ashdikさんによる、3年前の発表内容をアップデートした、アーキテクチャの解説。

「開発効率と保守性を両立させる」という観点から、ディレクトリ構成とアーキテクチャについて紹介いただきました。 特にFeature-first構成については、開発への集中度、柔軟性、責任範囲の明確化という3つの利点を挙げ、実際のディレクトリ構成例を交えてお話しいただきました。

キーワード
  • Feature-first
  • ディレクトリ構成
  • アーキテクチャ
  • Facade
  • ViewModel


「メルカリ ハロ アプリの技術スタックの紹介」(atsumoさん)

今年の3月にリリースされた、メルカリ ハロ アプリの技術スタックに関する発表。

「デザインとコードの一貫性を保ちながら、効率的な開発を実現する」という方針のもと、モノレポによるコード管理、GraphQLを中心とした状態管理、そして独自デザインシステムという3つの柱について紹介されました。
特にデザインシステムについては、Figmaのコンポーネントプロパティを活用しWidgetbookでカタログ化することで、開発効率を向上させた事例をお話しいただきました。

キーワード
  • GraphQL
  • モノレポ
  • FlutterBloc/Cubits
  • デザインシステム
  • UIカタログ
  • Widgetbook


「スタサプ ForSCHOOLアプリのシンプルな設計」(koji-1009さん)

Android・iOSのネイティブアプリとしてリリースされた『スタディサプリ for SCHOOL』アプリを、Flutterでリプレースした事例の発表。

シンプルな設計、「書きやすく、レビューしやすい」構造、「Flutter + Riverpodを信じる」という方針―――リプレース成功の鍵として3つの要因が挙げられました。特に"シンプルな設計"を採用し、条件分岐を考慮するべき箇所を削減できた点について、具体的に解説いただきました。

キーワード
  • Riverpod
  • シンプルな設計
  • 単方向データフロー
  • アプリケーション状態とローカル状態の分離


「Riverpod 移行を支えた LivMap のアーキテクチャ」(ちゅーやん(中條 剛)さん)

LivMapアプリで、Riverpodへの移行を円滑に進めるため設計されたアーキテクチャについての発表。

アーキテクチャ設計の際に「課題から考えた」というちゅーやんさん―――プロジェクト固有の課題を考慮し、それらに合わせた設計を重要視されたとのことです。 また、状態管理パッケージへの依存を最小限に抑える構造が採用され、プロジェクトの成長に応じてアーキテクチャを変化させる重要性についても触れられました。

キーワード
  • Riverpod
  • 状態管理パッケージ
  • 依存関係の整理
  • プロジェクト特有の課題