1 ポイント 投稿者 seonwookkim 2026-04-23 | まだコメントはありません。 | WhatsAppで共有

Flutterプロジェクトの規模が大きくなると、ビルド性能やレイヤー分離のためにモジュール化(パッケージ分割)を選ぶようになります。しかし、モジュール数が増えるほど数十個のpubspec.yamlを管理する負担が増え、コードレビューだけではアーキテクチャのルールを強制するのが難しくなります。

FlutistはiOSのTuistに着想を得て、Dart 3.6+のpub workspaces上でプロジェクトの仕様とルールをコードとして宣言・管理できるように設計されたフレームワークです。

「なぜFlutistなのか?」

  1. 宣言的なプロジェクト構成
    各モジュールのpubspec.yamlを直接修正する代わりに、package.dartにパッケージのバージョンを、project.dartにモジュール間の依存グラフを宣言します。一度定義すれば、すべてのモジュールのpubspec.yamlflutist generateコマンドで同期されます。

  2. アーキテクチャルールの自動強制
    クリーンアーキテクチャでは、domainがdataを直接参照したり循環依存が発生しても、pubはそれを防ぎません。flutistはstrictModeを有効にすることで、これに違反した場合はgenerate時にエラーを表示します。ドキュメントやコードレビューにしかなかった原則が、実行可能なルールになります。

  3. 型安全性と生産性
    文字列ベースのパッケージ参照の代わりに、自動生成されたアクセサを通じてIDEの自動補完とコンパイル時の型チェックをサポートします。また、繰り返し発生するレイヤー構造やボイラープレート生成のためのスキャフォールディング機能を提供し、初期設定コストを最小限に抑えます。

  4. 開発体験の最適化
    モジュールごとの並列/個別テスト実行はもちろん、flutist graphを通じて複雑に絡み合ったモジュール依存関係をブラウザ上で視覚的に即座に確認できます。

サポートするモジュールタイプ 4種類

  • clean — Clean Architecture 3-layer (domain / data / presentation)
  • micro — Microfeature 5-layer (interface / implementation / testing / tests / example)
  • litemicroからexampleを除いた4-layer
  • simple — 単一パッケージ(ユーティリティ、共有モデル、アプリシェル用)

CLIコマンド

  • flutist init / create / generate / check / pub / scaffold / test / graph
  • flutist checkはファイルを生成せずにアーキテクチャのみを検査 → CIパイプライン向け
  • flutist graph --openでmermaid依存グラフをブラウザですぐに確認

リンク

Flutterのマルチモジュールアーキテクチャを検討している方には、flutistの導入をおすすめします。フィードバックをいただければ積極的に反映していきます! ありがとうございます🙏

まだコメントはありません。

まだコメントはありません。