ネイティブアプリ VS ハイブリッドアプリ
どうしても「ハイブリッドアプリについては懐疑的だ!」もしくは「やっぱり"ネイティブ"でアプリを作った方がいいのでないか?」という疑問をお持ちの方もいるのではないかと思います。
しかし、これらについては実はあまり気にする必要はありません。というのも、全般的なアプリとしての話をすれば、ハイブリッドアプリと言われているアプリも、「ネイティブ」でアプリを作る際の手法の一つですので、ネイティブアプリの選択肢がとれる方にとっては、その疑問は実はあまり意味があるものとはいえなくなるからです。
実際の開発ではCordovaを使わない場合にも、部分的にWebViewを組み込むことはよく行い、良い方を選べる選択肢をもっているのであれば、なおその違いを気にする必要は少なくなってきます。例えば、どうしてもネイティブで作成する必要が出てきた場合には、画面が必要ないのであれば独自のネイティブプラグインとしても実装可能ですし、画面を作る必要が出てた場合でも、図3のように必ずしもWebViewの上で動作するものに限定する必要はなく、Androidであれば独自のActivityやiOSであれば独自のViewControllerなどを用いて、それぞれのプラットフォームに応じた画面プログラムを保持することも可能です。
したがって、どうしてもWebViewの上ではパフォーマンスを出せないものは、ネイティブ画面として実装してしまうこともできます。このようにネイティブアプリという選択肢がとれるのであれば、問題を回避する実装が可能なために、それほどセンシティブになる必要はありません。
また、多少面倒になってしまいますが、独自に実装した部分のソースコードはプラグイン形式として管理することで、既存の管理方法を変えず運用することもできます。ただし、この場合には、通常のネイティブアプリと同じ知識を求められてしまうので、ハイブリッドアプリで得られるメリットは小さくなってしまうのと、WebView上で動く画面部品と、ネイティブの画面部品では見た目が異なってしまいますので注意が必要になります。
Cordovaの歴史
ここまでApache Cordovaについて説明を行ってきましたが、むしろ、PhoneGapという言葉の方が知っているという方もいるのではないでしょうか。実は2011年10月まではCordovaという名前ではなく、PhoneGapという名前でした。この頃にあたらしい方法として話題になったことからも、こちらの呼び方の方を知っている方も多いことと思います。
Apache Cordovaは、図4に示すように2011年10月にアドビシステムズ社が開発元であるNitobi社からPhoneGapとPhoneGap Buildを買収し、その後、アドビシステムズ社が同年中にPhoneGapのソースコードをApache財団に寄贈したために、Apache財団によるPhoneGapのソースコードのメンテナンスが始まったのです。このとき、Apache財団としてはPhoneGapという名称が使えなかったために、Apache Cordovaという名称に変更されました。
ただし、PhoneGapという名称は現在でもアドビシステム社が使っていますが、こちらは、Apache Cordovaの一つのディストリビューションとなっていて、PhoneGap Buildというクラウド上でモバイルアプリをビルドできるサービスでも使われています。
サポートしているOS
Apache Cordovaは以下に示す様々なOS上で動作するアプリケーションの作成をサポートしています。
- Android
- iOS
- Windows Phone 8
- Windows 8/8.1/10
- Firefox OS
- Amazon Fire OS
- Blackberry 10
- Ubuntu
- Tizen
ただし、これらのOSそれぞれがすべての機能をサポートしているわけではありません。Cordovaでサポートされていない場合でも、サードパーティのプラグインや自分でプラグインを作成すれば機能は実現できますが、その代わりOSもしくは端末毎の制約はそのまま受けてしまいます。したがって、各プラットフォームの特性を少なからず意識する必要があります。
また、"Browser"というプラットフォームもサポートしています。これは、主にブラウザ上でCordovaの機能をエミュレーションするためのもので、実機を使わずブラウザだけでもおおよその開発が進められるのが特徴です。ただし、対応していないプラグインもまだ多々ありますので、まだまだ注意が必要です。