クロスプラットフォームアプリの開発手法まとめ

技術系

スマホ向けのアプリを作成するにあたって、iPhoneとAndoroidのどちらでも利用可能であることは、最近では必須条件に近くなっています。
そこで、クロスプラットフォームのアプリ開発手法についてまとめました。

大きく4種類に分けて、整理しています。
①ネイティブ型
②独自レンダラ型
③ハイブリット型(ネイティブ+ハイブリット)
④Web型

ネイティブ型の特徴

ネイティブ型は、ソフトウェアをOS上で操作するタイプです。
以下のような特徴があります。

・OS上で動作する
・OS(デバイス)が提供する機能は、すべて利用できる
・Webアプリに比べてパフォーマンスが優れている
・コードの共通化が困難
・プラットフォーム毎の開発言語による開が必要
・アプリストアによる配信が必要

■Xamarin
 開発元:Microsoft
 言語:C#、F#
 開発環境:VisualStudio
 
 ・共通化できるのは、コア部分だけ
  Xmarin.Formasを使うと、Android/iOS共通化したUIを作ることができる
  うまくやれば、80%共通化というイメージ
 ・XAMLの知識が必要
 ・開発環境の準備が結構大変&重た

■ReactNative
 開発元:Facebook
 言語:JavaScript、TypeScript
 開発環境:Atom

 ・Facebookが開発した開発環境 
 ・JavaScriptのフレームワーク
 ・Reactを使いつつ、ネイティブなJSでアプリ開発ができる
 ・MicrosoftもReactNativeを採用している
・処理速度の速さに定評がある

独自レンダラ型

独自レンダラ型は、独自のシステムで画面への描画を行うことで、OSに関係ない使用を実現しています。ネイティブ型は、OSへ適合することによりクロスプラットフォームを実現、一方、独自レンダラ型は、OSに依存しないことで、クロスプラットフォームを実現します。

■Unity
 開発元:Unity Technologies
 言語:C#
 開発環境:VisualStudio

 ・ゲーム開発に最適、業務向けでの使いやすさはいまいち

■Flutter
 開発元:Google
 言語:Dart
 開発環境:Intellij、Android Studio、VisualStudio Code

・どのプラットフォームでも統一された見た目になる

ハイブリット型(Web+ネイティブ)の特徴

・OSとWebViewで動作
・アプリストアによる配信が必要
・WebView上の機能は、Nativeに比べてパフォーマンスが劣る
・デバイスが提供する機能の一部が利用できない可能性がある
・コードの部分的な共通化が可能
・Native部分に関しては、複数の開発言語による開発が必要

■Cordova
開発元:Apache Cordova
 言語:HTML5、CSS3、JavaScrip
 Monacaのフレームワークとして採用されている
 Webアプリ(ネイティブアプリよりパフォーマンスが劣る)、インタプリタ
 Web Viewでつくるガワアプリ
 monacaのフレームワーク

Web型の特徴

・アプリストアによる配信が不要
Nativeアプリに比べてパフォーマンスが劣る
デバイスが提供する機能は、一切使用できない
コードの共通化が容易
・プラットフォーム毎の開発言語による開発は不要

■PWA(Progressive Web App)
 言語:HTML、JavaScript、CSS
 ・ストア公開もできる

まとめ

現在の主流は、
・ReactNative

今後の注目は、
・Flutter
・PWA

今後のトレンドの変化に注視していきたいと思います。

コメント

タイトルとURLをコピーしました