複数のOSに対応した開発方法として、クロスプラットフォーム開発があります。実際クロスプラットフォームが導入されることもありますが、それぞれのOSで開発を進めるのと比べて良いのでしょうか。
クロスプラットフォーム開発とはそもそも何か、どのような種類があるのか、どのようなツールがあるのかなどについて解説します。
クロスプラットフォーム開発とは
まずクロスプラットフォーム開発とは、複数のOSに対応した開発方法です。通常は、たとえばiOSのアプリを開発するならそれ専用に開発し、Androidのアプリを開発するならそれ専用に開発します。
またスマホ用のアプリとパソコン用のアプリは別物として開発する場合がほとんどでしょう。一方で、クロスプラットフォーム開発ならスマホの複数OS、場合によってはスマホとパソコンのOS両方に対応したアプリを開発することが可能なのです。
クロスプラットフォーム開発はおすすめなのか
クロスプラットフォーム開発は一見すると利便性が高いのですが、明確なデメリットもあります。それは、情報が少ない、OSごとに不具合が生じる可能性が高い、一部の機能はOSごとに用意する必要がある、などです。
クロスプラットフォーム開発は実用的に使われている開発手法ですが、アプリ開発の初心者が取るべき選択肢とは言えないでしょう。Xcodeなどでの開発にある程度慣れていて、次のステップとして選択するなら問題ありません。
ただしUnityについては例外で、ゲームアプリ開発の場合は最初からクロスプラットフォームであるUnityを選択すべきです。その理由はクロスプラットフォームであることよりも、単純にUnityの機能が充実しているからです。
ゲームアプリをXcodeですべて自力で実装するのは難易度が高いので、Unityの機能を最大限活用すべきでしょう。
クロスプラットフォームの種類
次に、クロスプラットフォームの種類をご紹介します。
ネイティブ型
ネイティブ型はネイティブアプリのようにクロスプラットフォーム開発を行う方法です。ネイティブアプリとは、OSにアプリケーションストア経由でインストールして使うアプリのことを指します。
アプリケーションストアとは、App StoreやGoogle Playです。スマホを使っている人なら利用したことがあるはずです。OSごとに最適化された設計になっていて、処理が高速という特徴があります。
ネイティブ型のクロスプラットフォーム開発ではそれぞれのOSでネイティブアプリ同等の処理を実現できるため、現状積極活用されています。
ハイブリッド型
ハイブリッド型はHTML、CSS、JavaScriptで作られるアプリケーションです。Webアプリに使われる場合が多いです。WebアプリとはWebブラウザ上で起動するアプリケーションで、たとえばGoogle Chrome、Internet ExplorerなどのWebブラウザを土台として利用します。
独自レンダラ型
独自レンダラ型は、独自の仕様によるツールで、OSにもWebブラウザにも依存しません。独自レンダラ型はゲームのクロスプラットフォームが有名で、具体的にはUnityが挙げられます。
クロスプラットフォームツール
次に、具体的なクロスプラットフォームツールをご紹介します。
Unity
Unityは2005年にUnity Technologies社が開発をしたゲームを開発するためのツールである人気のゲームエンジンです。クロスプラットフォーム開発用のツールというよりは、ゲーム開発に便利なツールとして認知されているでしょう。
実際ゲームアプリを開発するならUnityを使用するのがおすすめで、iOSのみに特化する場合もXcodeではなくUnityを選択した方が利便性が高いです。
Flutter
FlutterはGoogleが開発したバイルアプリケーションフレームワークです。オープンソースになっているという特徴があります。iOSとAndroidのクロスプラットフォーム開発に使用するのが一般的です。
クロスプラットフォーム開発はOS間で同じコードを共有できるというメリットがありますが、Flutterは100%のコードを共通化しないという選択をしています。
React Native
React NativeはFacebookによって開発されたクロスプラットフォーム開発ツールです。React NativeはJavaScriptのライブラリで、JavaScriptで開発ができます。上で紹介したクロスプラットフォームの種類の中ではネイティブ型に該当し、スマホアプリのクロスプラットフォーム開発に向いています。
Xamarin
XamarinはVisual Studioに標準搭載されているクロスプラットフォームツールで、クロスプラットフォーム開発用のツールでUnityの次くらいに知名度が高いのではないでしょうか。
Xamarinを使用すれば、iOS、Android、MacOS、Linux、Windowsなどスマホ、パソコン問わずに幅広いOSに対応します。上で紹介したクロスプラットフォームの種類の中ではネイティブアプリの開発を得意としているツールです。
Cordova
Cordovaはモバイルアプリ開発向けのオープンソースフレームワークです。開発にはHTML5、CSS3、JavaScriptなどの言語を使用します。10年以上使われているツールなので、ネット上に情報が多い点も魅力です。
Telerik Platform
Telerik PlatformはHTML、CSS、JavaScript、C#、.NET、など幅広い言語に対応しているクロスプラットフォーム開発ツールです。対応言語の幅が広いという点は大きなメリットですが、日本語の情報が少ないというデメリットもあります。
情報が少ないというデメリットは初心者にとっては特に大きいので、アプリ開発経験があまりない方はクロスプラットフォーム開発を行う場合も別のツールを選択するのがおすすめです。
まとめ
クロスプラットフォーム開発には複数の種類があり、ツールの選択肢も幅広いです。クロスプラットフォームを行うなら、なるべく知名度の高いツールを選択するのがおすすめです。理由としては、情報が多く利便性が高いからです。
ネット上に情報が多いという点は非常に重要で、英語が読める人以外は日本語検索してヒットするかどうかが開発に大幅に影響します。ただし、そもそもクロスプラットフォーム自体アプリ開発初心者がいきなり手を出すにはハードルが高めです。
Unityを使ったゲームアプリ開発は選択肢として良いのですが、それ以外のiOSアプリに関してはまずはXcodeで開発するのが王道です。Androidと同時開発する場合もクロスプラットフォームではなく別々の言語、環境で開発するという選択肢もあります。
別々に開発する方がハードルが低いので、まずはそちらをおすすめします。
監修者
-
エンジニア経験0の状態から1年間独学で勉強して独立
さまざまなiOSアプリの開発に携わる
2021年6月にiOS専門のオンラインプログラミングスクール「iOSアカデミア」を開校。iOSエンジニアを目指す人のサポートにも力を入れています