CodeZine(コードジン)

特集ページ一覧

Apache Cordovaで本格スマホアプリに挑戦しよう

Apache Cordovaで本格スマホアプリに挑戦しよう 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/02/10 14:00

目次

ネイティブアプリ VS ハイブリッドアプリ

 どうしても「ハイブリッドアプリについては懐疑的だ!」もしくは「やっぱり"ネイティブ"でアプリを作った方がいいのでないか?」という疑問をお持ちの方もいるのではないかと思います。

 しかし、これらについては実はあまり気にする必要はありません。というのも、全般的なアプリとしての話をすれば、ハイブリッドアプリと言われているアプリも、「ネイティブ」でアプリを作る際の手法の一つですので、ネイティブアプリの選択肢がとれる方にとっては、その疑問は実はあまり意味があるものとはいえなくなるからです。

 実際の開発ではCordovaを使わない場合にも、部分的にWebViewを組み込むことはよく行い、良い方を選べる選択肢をもっているのであれば、なおその違いを気にする必要は少なくなってきます。例えば、どうしてもネイティブで作成する必要が出てきた場合には、画面が必要ないのであれば独自のネイティブプラグインとしても実装可能ですし、画面を作る必要が出てた場合でも、図3のように必ずしもWebViewの上で動作するものに限定する必要はなく、Androidであれば独自のActivityやiOSであれば独自のViewControllerなどを用いて、それぞれのプラットフォームに応じた画面プログラムを保持することも可能です。

図3 Cordovaを一つのライブラリとして扱う場合
図3 Cordovaを一つのライブラリとして扱う場合

 したがって、どうしても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というクラウド上でモバイルアプリをビルドできるサービスでも使われています。

図4 Apache Cordovaの歴史
図4 Apache Cordovaの歴史

サポートしている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の機能をエミュレーションするためのもので、実機を使わずブラウザだけでもおおよその開発が進められるのが特徴です。ただし、対応していないプラグインもまだ多々ありますので、まだまだ注意が必要です。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Apache Cordovaで本格スマホアプリに挑戦しよう

もっと読む

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。個人紹介主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしど...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5