Flutter add-to-appとフルリライトの比較:add-to-appを使うべきとき
add-to-appが効果を発揮するとき、そしてフルリライトのほうが適しているとき。
Flutter add-to-appとフルリライト(全面書き直し)は、既存のネイティブアプリをFlutterへ移行する2つの主な方法です。add-to-appでは、ネイティブアプリのリリースを続けながら、画面ごとに段階的にアプリを置き換えます。フルリライトでは、新しいFlutterアプリをゼロから作り、機能のパリティに達した時点でユーザーを切り替えます。
Flutter add-to-appを使うべきとき
多くのチームがadd-to-appを採用する理由は、次の3つのいずれかです。
大規模アプリの段階的な移行
最も多い目的は、一度にすべてを書き直すことなく既存アプリをFlutterへ移行することです。画面やユーザージャーニー全体を1つずつ移行し、それぞれをフィーチャーフラグの裏で本番にリリースします。その間も、ネイティブアプリには新機能が追加され続けます。この作業をどの順序で進めるかは、段階的な移行を計画するで解説しています。
PoC
PoC(概念実証)は、移行を決断する前にFlutterを試すための、小規模でリスクの低い方法です。既存アプリの1つの画面やフローをFlutterで作り直し、実際のデータ、ナビゲーション、ネイティブ連携を備えた本物のプロダクトの中で動かします。
これにより、単体のデモでは答えられない疑問に答えが出ます。自分たちのアプリの中でFlutterがどう動くのか、ネイティブ連携にどれだけの作業が必要か、チームがFlutterにどう馴染むか、といった点です。ネイティブ版はそのまま残るので、実験がうまくいかなくても損失はわずかです。うまくいけば、ステークホルダーは具体的なものを見て判断でき、多くの場合ネイティブの画面と並べて比較できます。
両プラットフォーム向けに一度で作る新機能
add-to-appは、既存の部分を移行するためだけのものではありません。新機能やUIの比重が大きいモジュールを計画しているなら、最初からFlutterで作ることで、iOSとAndroidで2回書く代わりに1回で済ませられます。
アプリの残りの部分はネイティブのままで、後からさらに移行を進めると決めた場合にも、新しいコードはすでにFlutterで書かれています。
フルリライトのほうが適しているとき
一方で、次のような場合はadd-to-appが最善の選択ではないかもしれません。
- アプリが数か月でフルリライトできるほど小規模な場合。add-to-appはかなりの複雑さを伴うため、小さなアプリではそのコストを正当化しにくくなります。
- アプリがレガシーで、すでにメンテナンスされていない場合。Flutterを組み込むためだけにアプリを蘇らせるより、フルリライトしたほうが簡単なこともあります。