クロスプラットフォームとは
クロスプラットフォームとは、iOS、Android、Windows、macOSなど異なるプラットフォーム上で、同じ仕様のアプリケーションを動かせるプログラムのことです。
基本的に、ソフトウェアは動作させる環境を想定し、それに合わせて開発を行います。したがって、ある環境を想定して作ったソフトウェアは、ほかの環境では使えません。
しかし、動作環境が多様化している昨今、そのような状態はユーザーの幅を狭めてしまいます。そこで、単一のプログラムで複数の動作環境に対応できるクロスプラットフォームのソフトウェアが望まれています。実際、スマホ対応のアプリに関してはiOS・Android両対応であることが多く、クロスプラットフォームアプリ開発が一般的となっているのがわかるでしょう。
クロスプラットフォームの種類
一口にクロスプラットフォームといっても、それを実現する仕組みは複数存在します。ここでは代表的な3種類を見ていきましょう。
OS上のシステムを操作する「ネイティブ型」
ネイティブ型は、OSプラットフォーム上の描画エンジンを利用するタイプです。フレームワークからOSのUI部分を操作する感覚なので、扱いやすいでしょう。また、後述するほかのタイプと比べ、処理が高速なのも特徴です。
ネイティブ型のクロスプラットフォームの開発環境は、iOS、Android、Windowsなど複数のプラットフォームで動作するクラスライブラリやランタイムが装備されている必要があります。なお、オフライン環境でも操作できるゲームアプリやヘルスケアアプリなどの開発に向いています。
WebView上でネイティブ機能を利用する「ハイブリッド型」
WebViewとは、OS上で動作するソフトウェアで、WebページをSafariやChromeなどのブラウザと同じように表示する機能を持ち、スマホのアプリに組み込まれています。WebViewを利用したソフトウェアは、OS上で動作しWebページを表示するため、ハイブリッド型と呼ばれています。
OSの機能を直接使ってクロスプラットフォーム開発をすることは難しいですが、Web上の機能であれば、HTMLやCSS、Javascriptなどを駆使して容易にできるでしょう。
ただし、機能の一部をWebに頼る分、処理速度が遅いのが難点です。また、ネイティブ型ほど高度な機能も実現できません。
自前でレンダリングする「独自レンダラ型」
プログラミング言語を解釈し、描画するシステムのことをレンダリングエンジンといいます。例えばWebブラウザやWebViewは、HTMLレンダリングエンジンによってHTMLを解釈・描画します。
上述したネイティブ型、ハイブリッド型は、OSのレンダリングエンジンやWebViewを用いています。一方、独自レンダラ型は、その名のとおり独自のレンダリングエンジンを使っています。そのため、OSに関係なく使えます。
ネイティブ型はOSへの適合によるクロスプラットフォームです。それに対して独自レンダラ型は、OSに依存しないことでクロスプラットフォームを実現する方法であり、主にゲーム開発に向いています。
\ 開発ツール の製品を調べて比較 /
製品をまとめて資料請求!
資料請求フォームはこちら
資料請求した製品の比較表が無料で作成できます
クロスプラットフォーム開発に使える代表的なツール
クロスプラットフォーム開発手法として、代表的なツールをいくつか紹介します。
Xamarin
Microsoft社が提供する開発環境です。iOSやAndroid、Mac向けのネイティブアプリを開発できます。それらのOSに対するネイティブアプリの開発言語を、C#に置き換えることでクロスプラットフォーム対応を実現します。
Flutter
Google社が提供する開発環境です。AndroidとiOS向けのアプリを、Google社が開発したDartという言語で開発します。描画は独自レンダラで対応しています。また、ホットリロード機能により、リアルタイムで変更が確認できるのも特徴です。
React Native
Facebook社が開発した、モバイル向けのJavaScriptの開発環境です。Android・iOS向けのネイティブアプリを作成できます。処理速度の早さに定評があり、有名企業での導入実績も豊富です。
Swift
Apple社が開発したプログラミング言語です。iOS・Mac・Linuxで利用でき、現在はiPhoneアプリで使われる基本的な言語として知られています。従来使われていたObjective-Cの後継的存在で、学習コストの低さや迅速性が特徴です。
Kotlin/Native
JetBrains社が開発したプログラミング言語です。そして、Kotlin/NativeはKotlinでプログラムを記述し、LLVMでネイティブ向けのバイナリデータを作成する仕組みです。Windows・Mac・Android・iOS・Linuxのネイティブアプリを作成できます。
Cordova
Apacheソフトウェア財団が提供するモバイルアプリ開発環境です。HTML5やCSS3、JavaScriptなどWeb開発の基本的な技術により、ハイブリッド型クロスプラットフォームを実現します。プラグインが豊富なのが特徴です。
Titanium Mobile
Appcelerator社が提供する開発環境です。JavaScriptにより、iOS・Android用のネイティブアプリを作成できます。加速度センサなどのハードウェアへのアクセスやHTTPClientによる通信、SQLiteによるデータベース処理などを実装可能です。
Unity
Unity Technologies社が提供するゲーム開発環境です。C#やJavaScriptを利用してネイティブアプリを作成できます。もともとMac向けの開発環境でしたが、現在はWindowsやiOS、Androidのほか、多様なゲーム機にも対応しています。描画は独自のレンダラで行います。
Cocos2d-x
オープンソースのゲーム開発環境です。主としてPythonを使いますが、C++やJavaScriptの利用も可能です。iOSやAndroid、Windowsなど多数のOSに対応し、ネイティブアプリを開発できます。描画は独自のレンダラで行います。
クロスプラットフォームについて理解し、開発を効率化!
クロスプラットフォームとは、異なるプラットフォーム上で、同じ仕様のアプリケーションを動かせるプログラムのことです。また、クロスプラットフォームは、ネイティブ型、ハイブリッド型、独自レンダラ型に分類されます。それぞれ特徴があるので適したタイプを選択し、ツールを用いて開発しましょう。