開発するOSの選択
ブラウザだけでもハイブリッドアプリ開発が部分的に進められると述べましたが、実際の実機での確認やリリース作業までを含めるとどのOSでも開発が可能というわけにはいきません。
例えば、iOSアプリの場合、ビルド作業などでMacが必要になるなど、ネイティブアプリ開発と同じ制約があります。Androidアプリの場合にはSDKをWindows向けにもMac/Linux向けにもリリースしているので開発するOSは問いません。
通常のアプリ開発では、AndroidとiOSの場合が多いと思いますので、多くのアプリ開発者がMacを使わざるを得ない状況になっています。また、Windows向けアプリもサポートする必要がある場合には、Windowsの開発環境が必要になります。業務でアプリ開発を行っている人は開発業務以外ではWindowsを使っていると思うので、Windowsの操作について戸惑うことはないと思いますが、Macを使ったことがない人にとって、実機検証などをするためだけにMacを操作することが面倒ではあります。そして、会社によってはセキュリティポリシーの都合上、Macを社内ネットワークに接続することを禁じている場合などもあります。
また、iOSの場合、つい最近までは開発時に自分のiPhoneやiPadにアプリをインストールにも、iOS Developer Programという有料のプログラムへの参加と、MacもしくはiOS Developer Program上のサイトを使ってプロビジョニングファイルというのを作成し、アプリにサイニング(証明書とアプリをまとめてパッケージング)する必要があり、開発したアプリを実機にインストールすることも簡単にはできませんでした。
現在では、この制約はなくなり実機確認が楽にはなりましたが、Mac自体は依然として必要です。
それでも、できるだけiOSのアプリ開発をMacを使わず開発を進めたい場合には、後ほど紹介するMonacaのようなクラウド上でアプリをビルドできるサービスを用い、これらの作業の軽減をすることは可能ですので、導入を検討してみるのも良いでしょう。これらのサービスでは実機上でデバッグできるアプリもあるため、実機での動作確認も容易になります。
ただし、サードパーティのプラグインや、自分で作っているプラグインを使う場合には、完全な確認をすることは難しいと思われるので、その場合にはネイティブアプリと同様の開発環境が必要になります。
それでも、開発メンバーの全員がこれらの知識をもつ必要がなく、一部のメンバーが使えればいいので、これもApache Cordovaで作るメリットの一つと言えると思います。
Cordovaが使えるサービス・フレームワーク
続いて、Apache Cordova(または、PhoneGap)が使えるサービスやフレームワークなどを紹介します。Apache Cordovaは現在では様々なサービスやフレームワークに対応しているので、クラウドサービスを使って手軽に始めたり、より本格的なアプリを作る際にはフレームワークを用いることもできます。
PhoneGap/PhoneGap Build
Cordovaの歴史でも紹介しましたが、PhoneGap/PhoneGap Buildはアドビシステムズ社が提供するApache Cordovaのディストリビューションとクラウド上でモバイルアプリを構築するサービスです。利用するコマンド名などに若干の違いや、設定ファイルなどにも違いがあります。
図5はPhoneGap Buildを使ったアプリの作成画面です。HTMLファイルをZipでアーカイブしてアップロードするだけの簡単なインターフェースなので、非常に手軽に始められます。また、phonegapコマンドを使ってローカルで開発することもできるので、いろいろな開発スタイルが採れます。
Monaca
Monacaはアシアル社が提供するクラウド上でモバイルアプリを開発できるサービスです。PhoneGap Buildと違って図6のようにクラウド上にあるIDEを使うことで、AndroidやiOSなどの環境を用意せずに手軽に開発できます。また、ローカル上で開発できる「Local Kit」や、Visual Studioとの連携ができたり、独自のUIフレームワークを提供したりと、アシアル社自体が積極的にApache Cordovaに対しての普及活動なども行っています。
Ionic framework
ionic frameworkはモバイルアプリが作りやすいように独自のUIフレームワークを提供しているフレームワークで、海外ではよく利用されています。SassやAngularJSを内部で利用しているため、これらの経験を持っていればより速く開発ができます。また、Apache Cordovaで用意されているコマンドではなく、独自のコマンドを使うようになっていますので、少々の注意が必要になります。
Sencha Touch
Sencha TouchはExt JSなどで有名なSencha社が提供するモバイル向けHTML5フレームワークです。モバイル向けアプリケーションに特化したものではありませんが、このSencha Touchを使ってアプリケーションを作ると、それをそのまま、Sencha Cmdというツールを使ってモバイルアプリケーションにすることができます。内部ではApache CordovaもしくはPhoneGapを使っています。