副題「理性的にFlutterと向き合う」
著者:坚果
iOSおよびAndroidアプリケーションを開発する際、Flutterはよりシンプルかつ効率的であるため、しばしば推奨されます。Flutterには多くの利点があり、多くのモバイルアプリケーションにおいて優れた選択肢です。そのパフォーマンス、論理アーキテクチャ、ドキュメントは高く評価されています。国内のコミュニティも非常に活発ですが、状況によってはFlutterが最適とは言えない場合もあります。これが本ブログで見ていく内容です。いくつかのシナリオを見てみましょう…
1. プロジェクトが特定のデバイスやプラットフォームに依存する主要なライブラリを使用する場合
プロジェクトでWear OSバージョンやスマートTVアプリが必要な場合、いくつかの問題に直面します。技術的にはこれらのプラットフォーム向けにFlutterアプリを構築することは可能です。しかし、Wear OSはFlutterの多くの開発機能をサポートしていません。そのため、頭を悩ませることになるでしょう。
Android TVの場合、コントロールロジックをゼロから構築する必要があります。Android TVはリモートコントロール入力のみを読み取るのに対し、Flutterはタッチスクリーンとマウス移動を使用するからです。この点を踏まえて、自分で判断する必要があります。
2. アプリのサイズに厳しい要件がある場合
Flutterはネイティブではないため、アプリケーションの上にいくつかの追加ライブラリを乗せて動作します。アプリにとって1バイト1バイトが重要である場合、ネイティブプラットフォームでの開発を検討する必要があるかもしれません。Flutterは組み込みのウィジェットを使用し、ネイティブプラットフォームのウィジェットを使用しないため、Flutterアプリの最小サイズは4MBを超え、ネイティブJava(539KB)やKotlin(550KB)アプリよりも明らかに大きくなります。
正直なところ、競合他社も同じ問題を抱えており、React Nativeは7MBを占めます。
しかし、ハードウェア技術の進歩により、スマートフォンでさえもより大きなメモリとストレージを搭載しています。そのため、ほとんどの人はアプリのサイズを気にしていません。
3. ハードウェアサポート

Bluetooth経由でハードウェアデバイスに接続するアプリケーションにはFlutterを使用することは推奨されません。Flutter自体がデバイスのBluetoothを直接使用しないため、接続問題やパフォーマンスの問題が発生する可能性があります。
4. Flutter for Web
それはHTMLではありません。そうです、Web版Flutterも正式にリリースされていますが、インターネットの世界を揺るがすことはありません。ウェブサイトを開発するためのシンプルで効果的なライブラリは市場に多数存在します。ウェブサイト、ページの読み込み速度、SEO、パフォーマンスなどあらゆることが重要になる場合、Flutterが単純なdart to JSエンジンでこれらを実現するのは困難です。
しかし、まだ判断するには早すぎます。Flutterが素晴らしい最適化性能を提供するかもしれません。期待して待ちましょう。王叔の動画でもこのような問題について説明されています。こちらがアドレスです。
FlutterはWebサイトを作れるのか|Flutter Web 断念ガイド|入門から放棄までたった数分
5. プラットフォーム固有の外観とデザイン
MaterialウィジェットとCupertinoウィジェットは、それぞれAndroidアプリとiOSアプリの2つの異なる構成要素です。Flutterアプリを作成する際に両方のウィジェットを使用できますが、iOSビルドにMaterialウィジェットを使用すると、アプリはネイティブの外観と感触を欠きます。両方のアプリでネイティブな外観を実現するには、コード内でプラットフォームをチェックし、特定のウィジェットをレンダリングする必要があります。これはコーディングとアプリのパフォーマンスにおいて最もよくない部分です。

6. サードパーティ統合の不足
Flutterには19k以上のライブラリとプラグインがありますが、それでも多くの人気のあるライブラリやSDKが不足しています。現在、多くのパッケージが開発され、Flutterに移行されています。主にサードパーティのプラグインに依存するアプリケーションを開発する場合は、SDKの最新バージョンがFlutterに対応しているかどうかを確認してください。確認方法としては、
さらに、常に積極的にメンテナンスされているリポジトリを優先してください。
最後に、Flutterは常に素晴らしいわけではありません。事実、すべてのケースで万能ではありません。もちろん、これはFlutterをどこに配置するかを決める問題に過ぎません。Flutterは今でもシンプルかつ効率的に使用できます。