Flutter add-to-appのアーキテクチャ:概要
add-to-appの中核となる概念と、早い段階で正しく決めておくべきアーキテクチャ上の判断。
アーキテクチャ編は、シニア/スタッフエンジニア、アーキテクト、テックリードを対象にしています。add-to-app(既存ネイティブアプリへのFlutter組み込み)プロジェクトを設計する前に理解しておくべき概念、ネイティブとFlutterの境界、そしてスケールするプロジェクト構成の作り方を扱います。
中核となる概念
Flutterエンジン、Dart isolate、プラットフォームチャネル。add-to-appでよくある想定外の事態を避けるために理解しておくべき3つの要素です。
ネイティブとFlutterの通信
境界をまたいでデータやイベントをやり取りするためのパターン。
マルチエンジン構成でのプラグイン
エンジンごとのプラグイン登録、iOSとAndroidの非対称性、そして画面ごとにエンジンが生成・破棄されても問題なく動くプラグインの種類。
埋め込み
ネイティブ画面の中のFlutterビューと、Flutterの中のネイティブビュー。それぞれのコストと、まず検討すべき代替案。
プロジェクト構成
モノレポ、ポリレポ、git submodule。Flutterモジュール、ネイティブのホスト、共有コードをどこに置くか。
ビルド統合
ソースレベルの統合とビルド済みアーティファクト(AAR / XCFramework)の比較、そしてそれぞれに必要なCI/CDパイプライン。
バージョニング
モジュール、ネイティブのホスト、フレームワークのリリースを足並みをそろえて進める方法。
スケーリングとコード共有
Dart側をパッケージにモジュール化し、単体のFlutterアプリと共有する方法。