見出し画像

モバイルアプリ開発 クロスプラットフォーム開発 比較

今回紹介するのは、
- Cordova
- Outsystems
- ReactNative
- Flutter
- Kotlin/Native
この6つのプラットフォームの立ち位置的なものを紹介します。

相関関係図

画像1

大きく分類して、1ソースからネイティブのUIを生成しているものとネイティブのUIを生成していないものに分けることができます。

非ネイティブの中でも、WebView上にレンダリングしているものと独自のViewにレンダリングしているものに分けられます。

では、一つ一つ構成を細かくみていきます。

Native UIを生成するPlatform

ReactNativeとKotlin/Nativeがそれに該当します。

画像2

ソースコードをコンパイルして、iOS/Androidそれぞれのバンドルファイルを生成します。
そのため、テーブルのようなものをコンパイルする際、
iOS→UITableView
Android→ListView
が生成されます。

そのため、パフォーマンスについては実質同じと言えます。

Original UIのPlatform

Flutterがこれに該当します。

画像3

こちらは、iOS/Androidでネイティブ上でViewのみを生成し、そのView上に独自のレンダリングエンジンでUIを描画する構成です。

Flutterの場合は、Skia Graphics Libraryというレンダリングエンジンを使用しています。こちらはChromeなどでも使用されているエンジン。

Web UIのPlatform

Cordova, Outsystemsがこちらに該当します。

画像4

こちらは、iOS/Androidでネイティブ上でWebViewのみを生成し、そのWebView上でHTML/CSS/JavaScriptによりUIをレンダリングする構成となっています。

広く利用されているWeb技術を利用していることがメリットになります。


比較表

画像5

3rd Party製のライブラリの数については、CordovaやFlutterなど非ネイティブのPlatformは、ネイティブのライブラリを使用できないので単純に数が多いです。

その点ReactNativeは、ネイティブのライブラリも使用することができるため、3rd Party製のライブラリの数は少ないです。


まとめ

背景で使われている技術、普遍的な技術かどうか、サポートや情報が得やすいのかどうか、Webアプリケーションを展開するのか?/すでにあるのか?など、アプリ開発の状況によって選定すべきPlatformは異なります。

ぜひ参考にしていただくとともに、誤った情報があれば、コメントください。

この記事が気に入ったらサポートをしてみませんか?