<aside>
💡 Flutter は、単一のコードベースからモバイル、Web、デスクトップ、および組み込みデバイス向けのネイティブにコンパイルされたアプリケーションを構築するためのオープンソース UI ツールキットです。Flutter は、主に Google から資金提供を受けており、世界中にコントリビューターがいます。
</aside>
Flutter 導入の判断基準
- UI デザインを各 OS でどのくらい共通化するか
- OS に依存した機能をどのくらい利用するか
- アプリサイズをどの程度まで削減したいか
- 今後のアプリ開発の体制をどうしていくか
- 採用戦略
- 内製化
メリット
- 共通化できるコードが多ければ多いほど、開発期間の短縮・開発や保守運用コストの削減につながる
- OS 独自の機能だったとしても Flutter パッケージが存在すれば共通化できる
- GPS・Beacon・Bluetooth などもパッケージは存在する
- マテリアルデザインが適用された Widget がパッケージとして提供されているため、マテリアルデザインによる UI の統一が簡単にできる
- 開発時にホットリロード(Hot Reload)機能が使えることによって、コード修正がすぐアプリに反映され確認がしやすく、開発スピードの向上が期待できる
デメリット
- 最新 OS の対応については、Flutter やパッケージの対応を待たざるを得ない
- Dart 言語の機能はまだ Kotlin・Swift には及ばない
- Flutter コアエンジンを含めないといけない関係上、どうしてもアプリサイズが一定増える(約4MB)
- Flutter のパッケージがない機能や SDK、OS に依存した設定などは、ネイティブコードを書かざるを得ない
- Salesforce SDK は現状 Flutter パッケージはない
- ネイティブの UI パーツに依存する機能のある SDK は、その部分について利用できない可能性がある