両方の経験
React Native経験:
- UdemyのThe Complete React Native + Hooks Course [2020 Edition]のコースを40%を完了した
- 実務でAndroid側でiOS風のアプリ評価のダイアログをペアプロで作った
Flutterの経験:
- UdemyのFlutter & Dart - The Complete Guide [2020 Edition]のコースを40%を完了した
- 実務で画面の作成とAPI呼び出し
結構違うと感じたところ
画面レイアウトの設定
画面の要素の間のスペースを設定するとき
React Nativeでは、CSS感覚でStyleSheetで、その要素にMarginとPaddingを設定するが、Flutterではその要素の外にWidget(例えばContainer)をwrapし、MarginとPaddingを設定する
画面の要素の相対位置を設定するとき
React NativeのJSXはCSS感覚で、StyleSheetでFlexで要素を縦・横に並ぶことができるが、
Flutterの場合は、WidgetとしてRowとColumnなどのを使って、要素の配置を設定する。
テストについて
React Nativeの場合
React NativeではJS Bridgeが存在し、ソースコードをiOS・AndroidそれぞれのNative UI elementsに変換する。よって、iOSとAndroidのUIが異なるため、修正が入ったら、両方のテストが必要になる。
Flutterの場合
FlutterはSkiaという自分のエンジンがあるため、SikaでUIをレンダリングするため、プラットフォームによるUIの差がない。テストがより楽になる。