スマホアプリ開発で人気のクロスプラットフォーム環境を比較
スマホアプリ開発で人気のクロスプラットフォーム環境を比較
「新しいスマホアプリの開発を検討しているんだけど、どういった環境で開発しようか」 「できれば、iOSとAndroidのソースコードを一本化して開発したい」 そう考えている開発者も多いのではないでしょうか。 そんな悩みを解決してくれるのがクロスプラットフォームによる開発です。クロスプラットフォーム開発を行えば、同じソースコードでiOS、Androidの両デバイスに対応するアプリが作れます。 ここでは、クロスプラットフォームの概要とそのメリット、主なクロスプラットフォーム開発環境について説明します。
クロスプラットフォームとは
クロスプラットフォームとは、iOS、Androidといった仕様の異なる環境で同じように動作するプログラムを指します。 基本的にiOSアプリの開発にはObjective-CやSwift、Androidアプリの開発にはJavaが使用されます。同じアプリをそれぞれの環境に対して作るとなると開発コストはもちろん、ソースコードの管理などにも相応のコストがかかるでしょう。また、iOSには対応しているけどAndroidには非対応というアプリや、その逆にAnrdroidのみに対応しているといったアプリも出てきます。 このような問題を解決するための手法として、クロスプラットフォーム開発に注目が集まっています。
クロスプラットフォームのメリット
なんといっても最大のメリットはソースコードを共通化できることです。 iOSやAndroidなどの環境に左右されず、同じソースコードを使えて一元管理できれば、開発効率や保守の効率が断然アップします。また、言語や環境の違いによる学習コストも抑えることができるでしょう。 また、クロスプラットフォーム開発を用いることで、より多くのユーザーにアプリを使用してもらうことができます。
主なクロスプラットフォーム環境
React Native
React NativeはFacebook社が開発したクロスプラットフォーム開発のフレームワークです。 開発にはReactというJavaScriptフレームワークが使われるため、JavaScriptエンジニアにとって学習しやすいといえるでしょう。JavaScriptで書かれたプログラムがiOS、Androidのネイティブ環境上で動くため、動作が速いといった特徴があります。 エディタで編集したソースコードがコンパイル不要で即時反映される機能(Hot Reload機能)が実装されていて開発がはかどります。
Flutter
FlutterはGoogle社が開発しているオープンソースのクロスプラットフォーム開発フレームワークです。発表されたのは2018年12月と後発ですが、Githubスター数はReact Nativeを抜いており、とても勢いのあるフレームワークといえます。 開発言語には同じGoogleが開発したDart言語が採用されています。Dart言語はJavaScriptを元に開発されており、文法もJavaScriptに近いです。 React Nativeと同様、Hot Reload機能を備えているためソースコード修正時の確認が容易に行えます。
Xamarin
C#を開発言語として使用するクロスプラットフォーム開発環境です。もともとXamarin社が開発したものでした。2016年にMicrosft社がXamarin社を買収したことで、XamarinはVisual Studioにバンドルされるようになっています。 Xamarinで共通化できるのは、データベースアクセスや計算処理などのロジック部分のソースコードです。UI部分はiOS、Androidそれぞれで実装する必要があります。UI部分まで共通化するためにはXamarin.Formsというフレームワークを使います。
Cordova
CordovaはHTML5、CSS3、JavaScriptといったWebアプリケーションの技術を利用します。アプリの画面上でWebブラウザが動くイメージで、ハイブリッドアプリと呼ばれます。フロントエンドエンジニアには取り組みやすいフレームワークといえるでしょう。 Webでは利用できないカメラやGPS、ファイル管理の機能も使えます。
Unity
Unityは非常に人気の高い、クロスプラットフォームに対応したゲーム開発エンジンです。特に3Dゲーム開発が手軽に行える点が最大の特徴でしょう。2Dゲームにももちろん対応しています。 アセットと呼ばれる拡張機能を追加していくことで、プログラミング不要である程度のゲームを作ることができます。また、アセットは自分で作成し、アセットストアと呼ばれる場所で公開、販売ができます。 プログラミング言語にはC#、JavaScriptが使用されます。
まとめ
クロスプラットフォームを利用することで、iOS、Androidの両デバイスに対応したアプリを同一のソースコードで開発することができます。そのため、プログラミング言語やフレームワークの学習コスト、開発にかかるコストはもちろん、運用、保守にかかるコストも大幅に削減することが可能です。 クロスプラットフォームの開発環境にはさまざまな種類があります。現在のトレンドとしてはReact NativeかFlutterが有力です。それぞれの開発環境の特徴を把握して、自分に合った開発環境を選びましょう。