Flutter を使う機会があったので、所管をざっくりと。
個人的に思うFlutterを使う際に留意すべき点
- Flutterのレンダリングは Skia ベースの独自エンジンで動いている
- Android的に言えば、どんな画面もView1枚である
- Plugin実装を読むと、
TextureId
を取得してカスタムレンダリングしているものも多い マルチプラットフォーム対応
でありながら、 よく使われるWebView
とのかみ合わせが悪い- WebViewの上にFlutterのViewを置くことが難しい
- Pluginをforkして頑張るか?
- これが
何
を示すかは、人それぞれである
- WebViewの上にFlutterのViewを置くことが難しい
- レンダリングが
OpenGLベースとは限らない
ので、iOS/Android両対応と言いつつ気軽に「おっしゃーごりっとOpenGLで書くかー」みたいなことはできない- iOSはDeprecatedである
- Metal Native or Vulkan on Metal で頑張る
- ビルドが圧倒的に簡単である
flutter doctor
コマンドが良く出来てる- 何かあったらとりあえずdoctorすれば良い
- IDEのサポートが未熟
hoge.var
で左辺生成とか標準にないDart
の好き嫌いは置いとく- Widget組立時に、末尾に
// Text
みたいなフッターを自動的につける(表示上のみ)けど、たまにウザい- 個人的にはコードとレイアウトは切り離したいが、郷に入っては郷に従おう
- Flutterが提供するWidgetやUI原則に従う限り、Flutterは強い
- そこから外れるなら、外れる可能性があるなら、外れなければならないのなら?
- 明日に向かってドロップキック
- 頭を抱えて予算とろう
Xamarinとどっちを使う?
- Flutterが便利なのは、Pluginがかなり充実していて、なおかつ各プラットフォームの事情をある程度知らなくても良いこと
- 自作Pluginが必要になると、途端につらい
- Android/iOSの両方に関して深い知見があるのなら、Xamarinもまた選択肢として残ると思う
Android / iOS Nativeは?
- 大抵のことができる
- 無理なもんは無理
- 予算の光あれ