クロスプラットフォームは特定の OS に依存しないプログラムです。様々な iOS で同じ仕様のアプリを利用できるよう、開発できます。
クロスプラットフォームなら、それぞれの OS に対応したネイティブ言語を知らなくてもアプリを開発できます。
この記事では、クロスプラットフォームのメリット・デメリットのほか、代表的な開発環境やプログラミング言語について解説します。
クロスプラットフォームは、特定の OS に依存しないプログラムのことを指します。 iOS 、 Android 、 Windows 、 Mac など、さまざまなプラットフォーム上で同じ仕様のアプリケーションを動かせるプログラムです。
従来のアプリ開発は、特定の OS に依存していました。 アップル や Google が推奨する開発言語は、彼らが提供する OS との親和性が高く、多くのメリットがあるため、多くの開発者が好んで使用してきました。
ところが現在は、スマートフォンの多様化すると同時に動作環境もさまざまなため、特定の OS に依存するアプリではユーザーの幅を狭めてしまいます。
実際、スマートフォンに対応したアプリ開発では、 iOS と Android の両方に対応せねばならないことがほとんどです。そのため近年では、クロスプラットフォームでのアプリ開発が一般的になっています。
クロスプラットフォームには、さまざまなメリットがあります。特に重要なのが、発工数を抑えられる、開発人員の確保の2つです。ここでは2つのメリットについて解説します。
ICT 市場調査コンサルティングの MM 総研の調査によると、 2021 年上期の国内携帯電話端末の出荷台数は 1472.4 万台で、スマートフォン出荷台数シェア 1 位はアップル、2位はソニー、3位はシャープ、4位は Samsung 、5位が OPPO 、6位が FCNT となっています。
参考資料:https://www.m2ri.jp/release/detail.html?id=515
日本ではアップルの iPhone シリーズが長きに渡りトップシェアを維持していますが、国外では必ずしもそうではありません。アジアやアフリカの新興国では、安価で高性能なスマートフォンのニーズが増大しており Android のシェアが伸びています。 iPhone は、欧米圏を中心に高い人気を誇ります。
このようにどちらの OS もシェアを確保しているからこそ、 iOS と Android の両方に対応したアプリ開発が求められます。クロスプラットフォームでは2つの OS に対応したアプリを作るのにコーディングが 1 回で済み、工数を削れます。
システム開発では仕様変更を求められる場面が多々あります。クロスプラットフォームでは、 1 つの仕様変更に対し、 iOS と Android の計 2 回修正する必要がないため、工数や時間の短縮につながります。また、開発を進めながら詳細な仕様を詰めるアジャイル開発の際の仕様変更に対応しやすいのもメリットと言えるでしょう。
さらに、アプリの保守運用やメンテナンスに時間も人員も割かずに済み、開発コストはもちろん運用コストも大きくコストダウンできます。
クロスプラットフォームによって OS に依存しないアプリ開発が実現し、自社のエンジニアに合った言語を採用できます。
特に日本では、エンジニアの人材不足が深刻な問題になりつつあります。
クロスプラットフォームでは OS のネイティブ言語に依存する必要がないため、言語の選択肢が広がり、エンジニアの採用に多様性が生まれます。
クロスプラットフォームにはメリットがある一方、デメリットもあります。ここではクロスプラットフォームのデメリットとして、 OS 個別の不具合対応が困難であること、日本での開発事例がまだ少ないことを挙げて解説します。
クロスプラットフォーム開発では、各 OS ごとに発生する不具合への対応が難しいです。 OS の仕様として一部不具合があった場合には、その部分だけは各言語で作るなど個別の対応が求められます。
クロスプラットフォームは、開発時、ネイティブ言語に依存しないことがメリットですが、 OS 個別の不具合が発生したときにはネイティブ言語での対応が求められるため、新たなプログラミング言語の習得が必要になります。各機能を切り離せるように作るなど、マイクロサービス化することが求められ、管理が煩雑になります。
エンジニアは、新たなプログラミング言語の習得やエラー内容を調べる際、ネットで検索することが多いです。ところが、現状では日本でのクロスプラットフォームアプリ開発の実績はそれほど多くないため、検索結果に日本語で書かれたものが少なく、エンジニアにとって、ハードルが高く感じられるというデメリットがあります。
ここでは、クロスプラットフォームの開発環境のうち、代表的なツールを 4 つ挙げて紹介します。
Xamarin (ザマリン)は、 Micrsoft が提供する開発環境です。 C# を使って iOS 、 Android 、 Windows 、 Mac 向けのネイティブアプリを開発します。 Xamarin では、 iOS 、 Android 、 Mac とそれぞれの OS に対応したネイティブアプリの開発言語を、 C# 、 F# で開発できます。
Unity (ユニティ)は、 Unity Technologies が提供するゲーム開発用のツールです。主に 2D ゲームや 3D ゲームを開発する為に使用されています。統合開発環境のサポートがあり、開発効率を向上することができます。使用する言語は C# です。
iOS や Android などのスマホアプリはもちろん、コンシューマーゲームなど、幅広いゲーム開発に用いられています。スマートフォンゲーム開発と言えば Unity と言っても過言ではないほど使われています。
Flutte rは、 Google が提供しているアプリケーションフレームワークです。 Google は2021年3月に、 Flutter の新バージョン Flutter2 を公開しています。ワンコードで iOS 、 Android 、 Windows 、 Mac 、 Linux のアプリ、 Web アプリ、組み込みデバイスのアプリ生成までカバーします。開発は、 Dart という言語で開発します。ホットリロード機能により、変更をその場で確認できます。
Flutter2 の公開後、世界企業である Canonical (カノニカル)、 Microsoft (マイクロソフト)、 TOYOTA (トヨタ)が、 Flutter2 を実装した次世代プロダクトの開発・検討を進めていることを公表しています。
React Native は、 Facebook 改め Meta 社が開発したモバイル向けのアプリケーションフレームワークです。 Android ・ iOS 向けのネイティブアプリを作成できます。
開発言語は JavaScript です。Web アプリケーション開発で用いられることが多い JavaScript で開発ができるため、エンジニアを確保しやすい点もあります。 Instagram や NAVITIME などのアプリが React Native で開発されています。
スマートフォンの多様化が進むにつれ OS のシェアが均衡しつつある現代では、ユーザーを狭めないためにもさまざまな OS に対応したアプリ開発が求められます。また、新たなプログラミング言語を習得しなくても開発できるため、人材確保がしやすいです。
クロスプラットフォームでは、スピーディかつコストを削減しながらさまざまな OS に対応するアプリ開発ができるため、今後、採用されることが増えていくと予想されます。クロスプラットフォームのメリット・デメリットを理解して、多くの人に利用されるアプリ開発を進めましょう。