「YOUTRUST x ゆめみ Flutter LT会@渋谷 #3」の登壇資料です。
Flutter導入時に警戒すべき要件X選YOUTRUST x ゆめみ Flutter LT会@渋谷 #3K9i - Kota Hayashi
View Slide
自己紹介
よく聞かれるので本名:Kota Hayashi→K + 9文字(ota Hayash) + i → ハンドルネーム:K9i名前:Kota→Tako(並び替え) → アイコン:🐙K9iの読み方:ケーナインアイ(ケーキューアイでも)
Flutterのデメリットを知りたいという声がある- Flutterを選択しないほうがいいプロジェクトもある- Flutterは銀の弾丸ではない- Wikipediaで「銀の弾などない」で検索🔍- 初心者にはその判断は難しい- ゆめみのテックリードチームメンバーに聞き込み- Flutterに向かないと感じる要件- 総合的な判断の材料にしてね
本編🥳
プラットフォームに強く依存する要件がある- 例)ヘルスケア・カーナビ系- 共通して使えるpluginがあったとしても、個別のプラットフォーム実装について理解が必要- Flutter採用によるシングルコード故の開発効率化が図りづらい- 一方で、上記要件のある案件でも、UI部分のみFlutter適用するなどの方式は効果的
アプリサイズを可能な限り削減したい- Flutter コアエンジンを含めないといけない関係上、どうしてもアプリサイズが一定増える(約4MB)ため- App Clipは15MBの容量制限があった- iOS 17から50MBに緩和されたらしい- NFCタグとかの物理呼び出しだと15MBのままとか
高度なグラフィックを要する時- Impeller Scene を用いることでFlutter側で3Dグラフィックを表示することは可能だが 安定していない- PlatformViewを用いることで、既存のAndroid・iOS向けの資産(Ex.Google MapやMapBox)を利用することができるが、MethodChannelにて大量のデータをやり取りすると、画面・やり取り自体が重くなってしまいUXが悪くなってしまう- ネイティブで実装した方が安心で早い場合がある
できる限り早くプラットフォームの新機能をアプリに組み込みたい- Flutter 自体やプラグインの新プラットフォーム対応を待たざるを得ず、新機能を早く対応するためにはネイティブのみでの開発に劣るため
iOS, Android でまったく異なるデザインシステム・UI/UX にしたい- 場合によってはこれでも選ぶ可能性はあるが、Flutter の最大のメリットであるはずのデザインシステム・UI/UX の共通化をしないということになると、メリットよりデメリットのほうが上回ってしまう可能性が高いため
まとめ- ゆめみのFlutterエンジニアに聞いたFlutter向きでない要件を紹介しました- (気が向いたら)Qiita版を出そうと思います- この要件も!みたいなのあったらコメントとかで教えてください