Open3
Flutter2.0とNull-Safety対応について
Flutter2.0
2021.03.03のFlutter EngageというイベントでFlutter2.0が発表された
2.0で変わったこと
- モバイルクロスプラットフォームからクロスプラットフォームへ
- Web、 Windows、 MacOS、LinuxがStable化
- Null-Safety対応 (Flutter同梱のDart2.12より)
- Google Mobile Ads to Beta
参考記事
- https://itome.team/blog/2021/03/flutter-v2/
- https://medium.com/flutter/whats-new-in-flutter-2-0-fe8e95ecc65
トヨタが車載のUIエンジンにFlutterを導入予定, Microsoftとの協業などベンチャー以外の企業への導入も
Null-Safetyのマイグレーションをやってみる
null安全だと何が嬉しいかは割愛
null-safetyマイグレーションはこちら
プロダクト(ネイティブアプリ)のFlutter移行について
向いていないアプリ
- OS固有のfeatureを全面的に使っているアプリ
- ReplayKitを使ったLiveアプリ
- Visionフレームワークを使った画像認識アプリ..etc
Flutter移行
それ以外のアプリは大体Flutterでリプレイスできると思う
- 一部上記のようなOS固有のfeatureを使う場合はMethod Channelという仕組みでネイティブのコード実行が可能
- カメラロールからの画像選択などiOS, Android両方でサポートしている機能は大体Flutterでブリッジしているライブラリがあるので、それを使うのもアリ
- 内部的にはMethod Channelを使っているだけ
- Androidはパフォーマンス安定しているので、AndroidだけFlutter化するのもアリ
- (Androidだけ対応したらiOSもやりたくなるよ..絶対)
懸念点
- 個人的にはiOSのパフォーマンスの低さが最大の課題
- アプリ起動直後、fpsが60出ない問題がある
- 今後も注力して改善するとロードマップで明言してくれてるので、時間の問題ではある
- Androidは安定している
- アプリ起動直後、fpsが60出ない問題がある
- iOS側のサポートが遅い
- コアメンバーがAndroid出身の人が多いのかGoogleが提供してるからかMaterial Designの新コンポーネントなどのサポートは速い
- iOS側はiOS14のDatePickerがまだWidgetとして対応されてなかったりサポートが遅い
Flutter良い点
- DXが最高
- ライブプレビューではない。実コードがcmd+Sで実装中のアプリ(Debugモード)に反映される
- ドキュメントが充実
- 公式サイト一通り読めば大体のことは把握できる
- 1コードでマルチプラットフォームにリリースできる
- コード量は2/3くらいになると思う
- OS固有の対応もあったりするので、1/2に綺麗にはいかない
- 担当者が違ってコミュニケーションコストがかかることがない
- コード量は2/3くらいになると思う
- 最近null-safetyになった(Dart2.12~)
- ネイティブのコード書けるひとだったらスムーズに開発できる。Dartはそんなに癖のない言語