モバイルアプリ開発 クロスプラットフォーム開発 比較
今回紹介するのは、
- Cordova
- Outsystems
- ReactNative
- Flutter
- Kotlin/Native
この6つのプラットフォームの立ち位置的なものを紹介します。
相関関係図
大きく分類して、1ソースからネイティブのUIを生成しているものとネイティブのUIを生成していないものに分けることができます。
非ネイティブの中でも、WebView上にレンダリングしているものと独自のViewにレンダリングしているものに分けられます。
では、一つ一つ構成を細かくみていきます。
Native UIを生成するPlatform
ReactNativeとKotlin/Nativeがそれに該当します。
ソースコードをコンパイルして、iOS/Androidそれぞれのバンドルファイルを生成します。
そのため、テーブルのようなものをコンパイルする際、
iOS→UITableView
Android→ListView
が生成されます。
そのため、パフォーマンスについては実質同じと言えます。
Original UIのPlatform
Flutterがこれに該当します。
こちらは、iOS/Androidでネイティブ上でViewのみを生成し、そのView上に独自のレンダリングエンジンでUIを描画する構成です。
Flutterの場合は、Skia Graphics Libraryというレンダリングエンジンを使用しています。こちらはChromeなどでも使用されているエンジン。
Web UIのPlatform
Cordova, Outsystemsがこちらに該当します。
こちらは、iOS/Androidでネイティブ上でWebViewのみを生成し、そのWebView上でHTML/CSS/JavaScriptによりUIをレンダリングする構成となっています。
広く利用されているWeb技術を利用していることがメリットになります。
比較表
3rd Party製のライブラリの数については、CordovaやFlutterなど非ネイティブのPlatformは、ネイティブのライブラリを使用できないので単純に数が多いです。
その点ReactNativeは、ネイティブのライブラリも使用することができるため、3rd Party製のライブラリの数は少ないです。
まとめ
背景で使われている技術、普遍的な技術かどうか、サポートや情報が得やすいのかどうか、Webアプリケーションを展開するのか?/すでにあるのか?など、アプリ開発の状況によって選定すべきPlatformは異なります。
ぜひ参考にしていただくとともに、誤った情報があれば、コメントください。
この記事が気に入ったらサポートをしてみませんか?