前回、Monacaでアプリ開発【入門編・初心者向け】ハイブリッドアプリの作り方という記事を書きました。
これから少しずつアプリ開発に役立つ実践的な情報をお届けしようと思います…が、その前に、先に「Cordova」と「PhoneGap」との違いについて触れておきます。
Monacaによるハイブリッドアプリの開発にあたって絶対必要な知識ではないのですが、ご一読いただくことで各種チュートリアルやマニュアルが理解しやすくなると思います。
また、「PhoneGap」と「PhoneGap Build」との違いについてもご説明します。
ネイティブ機能を使うために必要なCordova/PhoneGap
ネイティブアプリ(SwiftやJavaで作成したアプリ)と比較して、Web制作者が使い慣れたHTML+CSS+JavaScriptを利用してアプリを作成できるのが、ハイブリッドアプリのメリットのひとつです。
しかし、iPhoneやAndroid端末のネイティブ機能(カメラ、GPS、加速度センサー…などの端末特有の機能)を操作したい場合は、ハイブリッドアプリにCordova/PhoneGapを組み込む必要があります。
Cordova/PhoneGapには色々なプラグインが用意されていて、例えば、
- Camera:カメラ機能を利用する
- Dvice:端末情報にアクセスする
- InAppBrowser:アプリ内ブラウザを利用する
などです。
利用したい機能のプラグインを開発ファイル内にインストールし、プラグイン特有のAPIを利用することで、デバイスのネイティブ機能の操作が可能になります。
そのため勘違いしやすいのですが、「Monaca=ネイティブ機能を利用できる」ということではなく、「Monacaの中にCordova/PhoneGapを組み込むことでネイティブ機能を利用できるようになる」ということになります。
ちなみにMonacaではデフォルトの段階でCordova/PhoneGapのベースは組み込まれているので、あとは利用したいネイティブ機能のプラグインをインストールして開発していきます。
CordovaとPhoneGapとの違いは?
先程から「Cordova/PhoneGap」と表記していますが、ハイブリッドアプリの開発時にまず疑問に思うのが「CordovaとPhoneGapって何がどう違うの?」という点だと思います。
各種チュートリアルやマニュアル、またネットの情報の中では、「Cordova」という言葉が使われいたり、「PhoneGap」という言葉が使われていたりするので、とてもややこしいですよね…
ですが、一言で言うと、ハイブリットアプリの開発においては「同じ意味」と認識して問題ないと思います。
歴史的な流れ
「同じ意味」と言いましたが、じゃあ何で呼び名(名前)が違うんだ?という疑問が生まれます。これはソースを管理・配布している所が2つに分かれたためです。それをご説明するために、歴史的な背景を少し見てみます。
- Nitobi社がPhoneGapを開発
- Adobe社がNitobi社を買収
- これによりPhoneGapがAdobe社のプロダクトとなる
- Adobe社がPhoneGapのソースコードをApacheソフトウェア財団に寄与
- これによりApache Cordovaとなる(オープンソース化)
- 引き続きAdobe社でも開発が進められており、これをAdobe PhoneGapと呼ぶ
というような流れがあり、「Cordova」と呼ばれたり「PhoneGap」と呼ばれたりしています。この辺りはMonacaでのアプリ作成に直接関係ないので、詳しく知る必要はないのですが。。
でも厳密には違う
ただし、厳密にはCordovaとPhoneGapは違うものです。Monacaでハイブリットアプリを開発する上では気にしなくても良いのですが、詳しく知りたい方はこちらの記事が参考になります。
PhoneGap Buildとは?
「Cordova」と「PhoneGap」は(とりあえず)同じ意味だと認識してアプリ開発を進めれば良いのですが、もうひとつ混同しそうになるのが「PhoneGap Build」の存在です。
「PhoneGap Build」は「PhoneGap」とはイコールではありません。
PhoneGap(Cordova)については先程ご説明しました通り、デバイスのネイティブ機能を操作するために必要なフレームワークです。Monacaでアプリを開発する際にも利用されます。
一方、PhoneGap Buildは、ハイブリッドアプリのファイル(HTML、CSS、JavaScriptなど)をAppStoreやGooglePlayで配布可能な形にビルド(変換)してくれるWebサービスのことを言います。
ハイブリッドアプリとして作成したファイルをPhoneGap Buildにアップロードすれば、クラウド上でビルドを行って、各OS向け(iOS用, Android用)にパッケージ化してくれます。
では、Monacaでハイブリッドアプリを開発する場合も、最終的にPhoneGap Buildを利用する必要があるのでしょうか??
いいえ、PhoneGap Buildは必要ありません。
Monacaではこのビルド(変換)をMonacaクラウド上で行ってくれます。つまり、Monacaを利用してアプリを作成する場合は、PhoneGap Buildは全く不要なので、PhoneGap Buildの機能や使い方を理解する必要はありません。
ちなみに、PhoneGap Buildについて詳しく知りたい方は、下記2サイトを見ればすぐに理解できると思います。
なお、MonacaにしてもPhoneGap Buildにしても料金プランによってビルドの回数に制限がありますので、無料プランと有料プランを比較検討する際には、ビルドの回数もチェックしておきましょう。
以上、今回の記事はアプリ作成とは直接関係ありませんでしたが、混乱しやすいCordovaとPhoneGapとの違いについてでした。