SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

次のページ
開発するOSの選択

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Apache Cordovaで本格スマホアプリに挑戦しよう連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9218 2016/04/07 10:46

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング