<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>PhoneGap &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/phonegap/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>PhoneGap/Cordovaの最新トピック満載！「PhoneGap Day US 2014」イベントレポート</title>
		<link>/masahiro/11178/</link>
		<pubDate>Tue, 28 Oct 2014 04:00:58 +0000</pubDate>
		<dc:creator><![CDATA[田中 正裕]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Monaca]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[イベント]]></category>
		<category><![CDATA[海外]]></category>

		<guid isPermaLink="false">/?p=11178</guid>
		<description><![CDATA[連載： イベントレポート (25)2014年10月24日、米サンフランシスコにてPhoneGap Day US 2014が開催されました。3年前から始まった本イベントですが、これまでアメリカではオレゴン州ポートランドで開...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (25)</div><p>2014年10月24日、米サンフランシスコにて<a href="http://pgday.phonegap.com/us2014/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PhoneGap Day US 2014</a>が開催されました。3年前から始まった本イベントですが、これまでアメリカではオレゴン州ポートランドで開催されていて、残念ながら参加する機会がありませんでした。今年は同じくサンフランシスコで開催された<a href="http://html5devconf.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">HTML5 Dev Conf 2014</a>と同じ週となった関係で、両方のカンファレンスに参加することができました。</p>

<p>HTML5ハイブリッドアプリ開発として幅広く使われているPhoneGapは、またの名を「<a href="http://cordova.apache.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Cordova</a>」と呼ばれます。CordovaはApache FoundationベースのOSSプロジェクトで、それをAdobeが製品として出している名称がPhoneGapとなります。そのため、PhoneGap Dayの内容も、主にCordovaに関するものがほとんどです。それもGoogleやMozilla、Microsoftなどに所属するCordova開発者のスピーチが多く、とてもオープンなカンファレンスとなっています。</p>

<p>司会は毎度ながらPhoneGap開発チームのリーダー的存在な<a href="http://brian.io/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Brian LeRoux</a>。<a href="http://app.phonegap.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PhoneGap Desktop App</a>の紹介などが行われました。</p>

<blockquote class="twitter-tweet" lang="en"><p>.<a href="https://twitter.com/Adobe" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">@Adobe</a>&#039;s <a href="https://twitter.com/brianleroux" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">@brianleroux</a> kicks off PhoneGap Day 2014 <a href="http://t.co/PJqfunCgwE" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://t.co/PJqfunCgwE</a> <a href="https://twitter.com/hashtag/pgdayus14?src=hash" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">#pgdayus14</a> <a href="https://twitter.com/hashtag/pgday14?src=hash" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">#pgday14</a> <a href="http://t.co/cIiYBoSYPP" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">pic.twitter.com/cIiYBoSYPP</a></p>&mdash; Eric Oesterle (@erico) <a href="https://twitter.com/erico/status/525687388425945088" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">October 24, 2014</a></blockquote>

<h2>ハイライト紹介</h2>

<h3>CrosswalkエンジンでAndroid WearでもCordovaが動いた</h3>

<p>Joe Bowserの「Many Webviews on PhoneGap Android」より。Intelがオープンソースプロジェクトとして進めている<a href="https://crosswalk-project.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Crosswalk Project</a>。これは、Chromium互換WebViewエンジンをCordovaに組み込み、ハイブリッドアプリの大きな課題であるAndroidバージョン依存や実行パフォーマンス、JavaScriptデバッグ機能の強化などを解決してしまおうというものです。PhoneGap Dayに先立ち公開されたCordova 4.0では、WebViewをAndroid標準WebViewからサードパーティ製のものに切り替える仕組みが備わり、Crosswalkの導入も簡単になりました。これを使うと、WebViewを持たないAndroid Wearにおいても、Cordovaアプリを動作させることができるとのこと。メモリーの問題等で実用ではないらしいですが、面白い取り組みです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/10/20141024_115359-e1414397245495.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/10/20141024_115359-e1414397245495-300x165.jpg" alt="20141024_115359" width="300" height="165" class="aligncenter size-medium wp-image-11184" srcset="/wp-content/uploads/2014/10/20141024_115359-e1414397245495-300x165.jpg 300w, /wp-content/uploads/2014/10/20141024_115359-e1414397245495-1024x565.jpg 1024w, /wp-content/uploads/2014/10/20141024_115359-e1414397245495-207x114.jpg 207w, /wp-content/uploads/2014/10/20141024_115359-e1414397245495.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h3>Visual StudioでCordova開発。次バージョンでiOSにも対応</h3>

<p>現在プレビュー公開されている<a href="http://www.visualstudio.com/en-us/explore/cordova-vs.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Multi-Device Hybrid Apps</a>ですが、近日中にアップデートが行われ、iOSのビルドができる機能が搭載されるとのこと。Windowsローカル環境で具体的にどうやって実現するのかなと思ってみていると、どうやらMac上にエージェントを起動し、Visual Studioはそのエージェントに対して、ネットワーク経由でリモートビルドをかけることで対応するようです。これで<del><a href="http://monaca.mobi/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Monaca</a>を使わなくても</del>WindowsユーザーがCordovaでiOS開発ができるようになりますね！</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/10/20141024_134936.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/10/20141024_134936-300x168.jpg" alt="20141024_134936" width="300" height="168" class="aligncenter size-medium wp-image-11185" srcset="/wp-content/uploads/2014/10/20141024_134936-300x168.jpg 300w, /wp-content/uploads/2014/10/20141024_134936-1024x576.jpg 1024w, /wp-content/uploads/2014/10/20141024_134936-207x116.jpg 207w, /wp-content/uploads/2014/10/20141024_134936.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h3>Ionic Frameworkの正式リリースは11月末か？</h3>

<p>モダンなUIフレームワークとして注目されている<a href="http://ionicframework.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Ionic Framework</a>ですが、11月末ごろに正式リリースされるという話がありました。これまで1年間ずっとベータ版のままでしたので、正式リリースでどのようになるのか楽しみです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/10/20141024_141039.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/10/20141024_141039-300x168.jpg" alt="20141024_141039" width="300" height="168" class="aligncenter size-medium wp-image-11186" srcset="/wp-content/uploads/2014/10/20141024_141039-300x168.jpg 300w, /wp-content/uploads/2014/10/20141024_141039-1024x576.jpg 1024w, /wp-content/uploads/2014/10/20141024_141039-207x116.jpg 207w, /wp-content/uploads/2014/10/20141024_141039.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h3>まとめ</h3>

<p>他にも、PhoneGapアプリのデバッグをするツールや、Mozillaが開発中の新しいWebViewエンジン、iOS 8で登場したWKWebViewの話など、PhoneGap/Cordovaデベロッパーにとって非常に面白いテーマが目白押しで、個人的にとても楽しむことができました。それと同時に、HTML5ハイブリッドアプリの世界は、CordovaというOSSフレームワークを通じて、メジャーどころが共同で開発を担っていることが実感されました。今後、PhoneGap Blogではセッションの録画ビデオを掲載していくと思いますので、ぜひチェックしてみてください。</p>

<h4>PR: Cordovaユーザー会で一緒に最前線を探索しませんか？</h4>

<p>PRとなりますが、このたびHTML5ハイブリッドアプリ全般の技術を扱うためのオープンソースコミュニティ「Cordovaユーザー会」を立ち上げました。この会では、HTML5ハイブリッドアプリ、とりわけCordovaの普及に向けて、実際にアプリ開発を実践されている方々が積極的に情報共有をしていくことを目的としています。キックオフ第1弾として<a href="https://atnd.org/events/57562" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">第1回Cordova勉強会</a>を11月5日、午後7時から開催する予定です。ぜひ興味ある方はご参加ください。</p>

<p>P.S. Google Chrome Apps Mobileの方に、Monacaの紹介をしてもらいました。Cordovaプラグインを開発しやすくするためのツールを作っていきます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/10/20141024_161004-e1414398586530.jpg" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/10/20141024_161004-e1414398586530-300x166.jpg" alt="20141024_161004" width="150" height="83" class="aligncenter size-medium wp-image-11188" srcset="/wp-content/uploads/2014/10/20141024_161004-e1414398586530-300x166.jpg 300w, /wp-content/uploads/2014/10/20141024_161004-e1414398586530-1024x567.jpg 1024w, /wp-content/uploads/2014/10/20141024_161004-e1414398586530-207x114.jpg 207w, /wp-content/uploads/2014/10/20141024_161004-e1414398586530.jpg 640w" sizes="(max-width: 150px) 100vw, 150px" /></a></p>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
		<item>
		<title>エンタープライズHTML5モバイルの開発手法─エンタープライズ×モバイルアプリ開発の最新動向(2)</title>
		<link>/masahiro/10470/</link>
		<pubDate>Mon, 08 Sep 2014 00:08:16 +0000</pubDate>
		<dc:creator><![CDATA[田中 正裕]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[システム開発]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[エンタープライズ]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=10470</guid>
		<description><![CDATA[連載： エンタープライズ開発特集 (6)エンタープライズモバイル開発で求められる要件については、前回の記事で概説しました。特に、BYODと相性の良いマルチプラットフォームの仕組みや、開発チームの統一、Webとネイティブア...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/enterprise/" class="series-197" title="エンタープライズ開発特集" data-wpel-link="internal">エンタープライズ開発特集</a> (6)</div><p>エンタープライズモバイル開発で求められる要件については、<a href="https://html5experts.jp/masahiro/10456/" title="前回の記事" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">前回の記事</a>で概説しました。特に、BYODと相性の良いマルチプラットフォームの仕組みや、開発チームの統一、Webとネイティブアプリの両刀対応など、業務で使うアプリならではの特有ニーズがあることが、エンタープライズの特徴です。</p>

<p>この分野では、B2CやPCの世界と比較しても、HTML5が大きな注目を受けています。その背景には、HTML5がモバイルアプリ開発、とりわけ業務アプリ開発との親和性が高いことが挙げられます。</p>

<h3>実行速度よりもコストメリットが優先</h3>

<p>「モバイルアプリ開発をHTML5で」というテーマで話をした際の反応として、HTML5だと速度が遅くて使いものにならないのでは、という懸念の声が挙がります。確かに、フルネイティブコードで書かれたアプリと比較すると、ブラウザーエンジン上で動作するHTML5アプリは、スピードのボトルネックが発生しやすのが事実です。とはいえ、「ネイティブかHTML5か」が中心テーマだった3年前と比較して、現在は端末の性能が、Android 2.3やiOS 4が主流だった当時と今では大きく状況が異なります。</p>

<p>参考のため、下記にAndroid端末の性能推移を紹介します。4年前の端末と比較して、10倍以上の性能向上が行われていることが理解できます。</p>

<div id="attachment_10462" style="width: 525px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/08/enpra2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/08/enpra2.png" alt="Android端末の性能推移" width="515" height="409" class="size-full wp-image-10462" srcset="/wp-content/uploads/2014/08/enpra2.png 515w, /wp-content/uploads/2014/08/enpra2-300x238.png 300w, /wp-content/uploads/2014/08/enpra2-207x164.png 207w" sizes="(max-width: 515px) 100vw, 515px" /></a><p class="wp-caption-text">Android端末の性能推移</p></div>

<p>出典: <a href="http://www.antutu.com/en/index.shtml" title="AnTuTuベンチマーク" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">AnTuTuベンチマーク</a></p>

<table>
<caption>（参考：元資料－田中作成）</caption>
<tr>
<th>名称</th><th>モデル</th><th>発売日</th><th>ベンチマークスコア</th><th>Android OS</th><th>CPU</th>
</tr>
<tr>
<td>Samsung Galaxy Note 3</td><td>SM-N9006</td><td>11/1/2013</td><td>35165</td><td>4.4.2</td><td>2.3GHz Quad</td>
</tr>
<tr>
<td>Samsung Galaxy S4</td><td>GT-I9500</td><td>4/1/2013</td><td>28018</td><td>4.4.2</td><td>1.6GHz Quad</td>
</tr>
<tr>
<td>Samsung Galaxy S3</td><td>GT-I9300</td><td>5/1/2012</td><td>12098</td><td>4.3</td><td>1.4GHz Quad</td>
</tr>
<tr>
<td>Samsung Galaxy S2</td><td>GT-I9100</td><td>4/1/2011</td><td>6173</td><td>4.1</td><td>1.2GHz Dual</td>
</tr>
<tr>
<td>Samsung Galaxy S</td><td>GT-I9000</td><td>6/1/2010</td><td>3143</td><td>2.3</td><td>1GHz</td>
</tr>
</table>

<p>アプリの実行パフォーマンスの点では、App Storeでトップ10を狙うようなコンシューマーアプリとは異なり、業務アプリで求められる必要十分な速度を満たせば問題ありません。フレームワーク選定の際に、速度重視のJavaScriptライブラリー（<a href="http://ja.onsenui.io/" title="Onsen UI" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Onsen UI</a>など）の採用を考慮することで、HTML5でも満足できる実行速度が達成できます。</p>

<p>それ以上に、次節の通り、開発時には下記にあるようなメリットがネイティブに勝ります。</p>

<h2>HTML5が業務アプリに向いている理由</h2>

<p>HTML5のメリットを一言で表現するならば、「つぶしが効く」というのが最も近いかもしれません。対応するOSの種類や画面サイズの広さもさることながら、使用技術やハイブリッド化によるネイティブアプリ作成まで、アプリ開発エンジンとしてHTML5は高い汎用性を備えています。</p>

<h3>マルチプラットフォーム・スクリーンサイズに対応</h3>

<p>HTMLを使えば、モバイルやPCといった端末の種類を問わず、また、画面の大小を問わず、同じコンテンツを展開できます。もちろん、画面サイズに合わせてコンテンツの配置を変更したり、最適化したりすることはよく行われます。同じコンテンツでも表示端末に最適化するという考え方はレスポンシブデザインとも呼ばれ、具体的にはCSS3メディアクエリーがよく使われます。</p>

<h3>Web技術者がヨコ展開できる</h3>

<p>HTML5は既存のWeb技術の延長線上にあります。開発言語としてはJavaScriptが用いられますが、<a href="http://angularjs.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">AngularJS</a>やjQueryなどのフレームワークやライブラリーもモバイルでそのまま利用可能です。非常に制約の大きかったiモード向けCHTMLなどと比較すると、スマートデバイスのHTML対応度はPCとほぼ同等の機能を備えています。ActiveXやFlashを用いたサイトを除き、スマートデバイスで閲覧できないWebサイトはありません。</p>

<h3>レンダリングエンジンの進化、今後はグラフィック性能向上が焦点</h3>

<p>端末性能だけでなく、ブラウザーも至る所で進化が進んでいます。その中でも性能強化が著しいのは、グラフィック描画の分野です。モバイルブラウザーが最新HTML5技術の1つであるWebGLに対応することで、2Dや3Dのグラフィックがさらに高速化され、より高い表現が求められるアプリへの適用範囲が広がります。</p>

<h3>HTML5ハイブリッドアプリでネイティブアプリ化</h3>

<p>ハイブリッドアプリとは、HTML5で作られたネイティブアプリです。具体的には、ネイティブコードとHTML5を組み合わせており、HTML5をベースとした開発でありながらも、プッシュ通知やデバイスAPIといったネイティブアプリでないと実現できない機能を組み込むことができます。</p>

<h2>モバイルアプリはHTML5ハイブリッドアプリの道へ</h2>

<p>HTML5の技術でネイティブなモバイルアプリ開発ができるハイブリッドアプリは、Web由来のクロスプラットフォーム性能を持ちながらも、端末機能やOS機能にアクセスできます。オフライン対応やパッケージ形式での配布と自動更新など、Webアプリでは実現が難しい課題にも対応できます。</p>

<div id="attachment_10463" style="width: 441px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/08/empra3.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/08/empra3.png" alt="Cordova/PhoneGap" width="431" height="230" class="size-full wp-image-10463" srcset="/wp-content/uploads/2014/08/empra3.png 431w, /wp-content/uploads/2014/08/empra3-300x160.png 300w, /wp-content/uploads/2014/08/empra3-207x110.png 207w" sizes="(max-width: 431px) 100vw, 431px" /></a><p class="wp-caption-text">CordovaとPhoneGap</p></div>

<p>現在、HTML5ハイブリッドアプリのライブラリとしては、アドビシステムズ社が提供する「<a href="http://phonegap.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PhoneGap</a>」がデファクトスタンダードです。また、このPhoneGapの開発元となっているオープンソースプロジェクト「<a href="http://cordova.io/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Cordova</a>」は、PhoneGapだけでなく、様々な製品に組み込まれ、エンタープライズソリューションとして利用されています。</p>

<p><figure>
<div id="attachment_10464" style="width: 753px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/08/enpra4.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/08/enpra4.png" alt="Cordovaは様々なエンタープライズソリューションの基盤に" width="743" height="412" class="size-full wp-image-10464" srcset="/wp-content/uploads/2014/08/enpra4.png 640w, /wp-content/uploads/2014/08/enpra4-300x166.png 300w, /wp-content/uploads/2014/08/enpra4-207x114.png 207w" sizes="(max-width: 743px) 100vw, 743px" /></a><p class="wp-caption-text">Cordovaは様々なエンタープライズソリューションの基盤に</p></div>
<figcaption>図: Cordovaは様々なエンタープライズソリューションの基盤に</figcaption>
</figure></p>

<h2>HTML5ハイブリッドアプリ開発の課題</h2>

<p>HTML5ハイブリッドアプリにも課題があります。その最も大きなものは、ハイブリッドアプリに特化した開発環境がまだ少ないということです。Cordova/PhoneGapアプリ開発に対応したソリューションとしては、私たちが開発している<a href="http://monaca.mobi/ja/" title="Monaca" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Monaca</a>だけでなく、最近ではVisual Studioや<a href="sencha.com" data-wpel-link="internal">Sencha</a>などの製品でもサポートが開始されました。</p>

<p>MonacaはCordova/PhoneGapに対応した開発環境で、クラウドを活用したプラットフォームとなっています。好きなエディタやIDEと組み合わせてローカルで開発することもできますが、ブラウザーベースのIDEを備えていたり、開発中のアプリをすぐに実機でデバッグできるMonacaデバッガー等の仕組みを用意しています。また、ビルド機能が組み込まれているため、SDK等をインストールしなくてもiOSやAndroid、Windows 8向けの配布パッケージを作ることができます。</p>

<p>開発環境の整備だけでなく、開発ノウハウを蓄積する場所、いわゆるナレッジベースも必要です。同じHTMLと言えども、Webサイトとモバイルアプリでは、情報設計の観点や実装上のポイントが大きく異なります。そのために、HTML5ハイブリッドアプリに特化したフレームワークの活用が推奨されます。Onsen UIやjQuery Mobileなどが候補となるでしょう。これらの製品は、モバイルアプリとしてHTML5を活用するためのノウハウが詰め込まれており、ユーザーインターフェースの開発負担を大幅に減らすことができます。</p>

<p>さて、エンタープライズモバイルではフロントエンドだけでなく、バックエンド方式も非常に重要な観点です。セキュアな通信は当然として、どのように社内のシステムと連携するのか、ソリューション選定のポイントは何なのか、開発後の運用基盤をどう整えるのか、などのトピックについて、次回に説明したいと思います。</p>
]]></content:encoded>
		
		<series:name><![CDATA[エンタープライズ開発特集]]></series:name>
	</item>
		<item>
		<title>PhoneGapとは一味違う！純国産ハイブリッドアプリフレームワーク、「アプリカン」事始め</title>
		<link>/htpboost/8318/</link>
		<pubDate>Fri, 25 Jul 2014 00:00:15 +0000</pubDate>
		<dc:creator><![CDATA[畠田 喜丈]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[ハイブリッド]]></category>
		<category><![CDATA[モバイル]]></category>

		<guid isPermaLink="false">/?p=8318</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (7)アプリカンは、純国産のハイブリッドアプリフレームワークです。いつも使っているエディタだけでアプリが作れるので、開発環境のOSも選びません。 アプリカンは2013年末に公開され、...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (7)</div><p>アプリカンは、純国産のハイブリッドアプリフレームワークです。いつも使っているエディタだけでアプリが作れるので、開発環境のOSも選びません。</p>

<p>アプリカンは2013年末に公開され、ハイブリッドアプリフレームワークとしては後発ですが、他のフレームワークとは異なるアプローチとして、様々なパートナー企業のサービスのSDKを組み込み、AR機能や、位置情報連動サービスなど複雑なサービスオプション機能を JavaScriptから簡単に呼び出せるようになっています。</p>

<p>基本は無料で利用できますが、前述の高機能なオプションを使ったり、無料ビルドしたアプリに表示される広告バナーを外す場合には有料となります。</p>

<h2>アプリカンの開発に必要なもの</h2>

<ul>
<li>エディタ</li>
<li>好奇心</li>
</ul>

<p>アプリカンの開発には、IDEを用意する必要はありません。
テンプレートとなる <code>web.zip</code> をアプリカンのサイトからダウンロードして開発マシン上で解凍し、そのフォルダの中に HTML5、JavaScript、CSSを作り込んでいき、できあがったものを zipで圧縮して、サーバーにアップロードするだけです。</p>

<p>デバッグは、iOS、Androidそれぞれのアプリマーケットからダウンロードできる アプリカンシミュレータで行います。</p>

<h2>Hello アプリカン World</h2>

<p>それでは実際にアプリカンでお約束のHello Worldを作ってみましょう。</p>

<p>アプリカンでのアプリ作成は3ステップ</p>

<ol>
<li>アプリカンサイトにユーザ登録</li>
<li>HTML5、CSS、JavaScriptでコンテンツを作成</li>
<li>ZIP圧縮して、アプリカンサイトにアップロード</li>
</ol>

<p>この3ステップで、iOSアプリとAndroidアプリを同時に開発することが可能です。</p>

<h3>1. アプリカンにユーザ登録を行う。</h3>

<p>アプリカンサイトにユーザ登録します。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/Capture_1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/Capture_1-300x178.png" alt="Capture_1" width="300" height="178" class="aligncenter size-medium wp-image-8319" srcset="/wp-content/uploads/2014/07/Capture_1-300x178.png 300w, /wp-content/uploads/2014/07/Capture_1-1024x609.png 1024w, /wp-content/uploads/2014/07/Capture_1-207x122.png 207w, /wp-content/uploads/2014/07/Capture_1.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>ユーザー登録、ログインが完了したら、基本になるテンプレートをダウンロードしましょう。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/capture_2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/capture_2-300x214.png" alt="capture_2" width="300" height="214" class="aligncenter size-medium wp-image-8320" srcset="/wp-content/uploads/2014/07/capture_2-300x214.png 300w, /wp-content/uploads/2014/07/capture_2-1024x733.png 1024w, /wp-content/uploads/2014/07/capture_2-207x148.png 207w, /wp-content/uploads/2014/07/capture_2.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>ユーザー画面の左サイドバーのメニューから各種ライブラリをクリックし、新しく開いたウィンドウから【シンプル】をダウンロードしましょう。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/capture_3.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/capture_3-300x200.png" alt="capture_3" width="300" height="200" class="aligncenter size-medium wp-image-8321" srcset="/wp-content/uploads/2014/07/capture_3-300x200.png 300w, /wp-content/uploads/2014/07/capture_3-207x137.png 207w, /wp-content/uploads/2014/07/capture_3.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h3>2.HTML5、CSS、JavaScriptでコンテンツを作成</h3>

<p>ダウンロードした<code>web.zip</code>を解凍すると、<code>index.html</code>、<code>applican-config.xml</code>、jsフォルダの中には <code>applican-1.5.js</code>が出てきます。</p>

<p>今回はHello Worldを表示するだけなので、 <code>index.html</code>を編集します。いつもお使いのエディタで <code>index.html</code>を開き、&#8220;タグの中の&#8221;SAMPLE&#8221;を &#8220;Hello World&#8221;に書き換え保存して終了します。</p>

<h3>3.ZIP圧縮して、アプリカンサイトにアップロード</h3>

<p>webディレクトリごと ZIPファイルに圧縮できたら、それをサイトにアップロードします。先ほどのアプリカンサイトにログインした状態から、プロジェクトを作成します。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/capture_4.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/capture_4-300x185.png" alt="capture_4" width="300" height="185" class="aligncenter size-medium wp-image-8322" srcset="/wp-content/uploads/2014/07/capture_4-300x185.png 300w, /wp-content/uploads/2014/07/capture_4-1024x632.png 1024w, /wp-content/uploads/2014/07/capture_4-207x127.png 207w, /wp-content/uploads/2014/07/capture_4.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>[新しいプロジェクトを作成]をクリックし、プロジェクト名、対象デバイス、プロジェクトの説明を入力し、作成ボタンをクリックします。</p>

<p>プロジェクト一覧に先ほど作成したプロジェクトができているので【選択】ボタンをクリックします。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/capture_5.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/capture_5-300x235.png" alt="capture_5" width="300" height="235" class="aligncenter size-medium wp-image-8323" srcset="/wp-content/uploads/2014/07/capture_5-300x235.png 300w, /wp-content/uploads/2014/07/capture_5-1024x802.png 1024w, /wp-content/uploads/2014/07/capture_5-207x162.png 207w, /wp-content/uploads/2014/07/capture_5.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>プロジェクト画面で【アップロードへ】を選択し、画面の指示に従って先ほど作成した ZIPファイルをサーバにアップロードします。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/capture_6.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/capture_6-300x216.png" alt="capture_6" width="300" height="216" class="aligncenter size-medium wp-image-8324" srcset="/wp-content/uploads/2014/07/capture_6-300x216.png 300w, /wp-content/uploads/2014/07/capture_6-1024x738.png 1024w, /wp-content/uploads/2014/07/capture_6-207x149.png 207w, /wp-content/uploads/2014/07/capture_6.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>アプリカンで作成したアプリは、本番ビルドをかける前に、シミュレータ上で動作確認を行うことができます。iOS端末、Android端末でそれぞれのストアを開き、「アプリカンシミュレータ」を検索しインストールしてください。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/capture_sim.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/capture_sim-300x127.png" alt="capture_sim" width="300" height="127" class="aligncenter size-medium wp-image-8325" srcset="/wp-content/uploads/2014/07/capture_sim-300x127.png 300w, /wp-content/uploads/2014/07/capture_sim-207x87.png 207w, /wp-content/uploads/2014/07/capture_sim.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>アプリカンサイトに登録したユーザー名、パスワードを入力すると、先ほど作成したプロジェクト名が表示されるのでそれをタップし、Hello Worldが表示されることを確認してください。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/ss_1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/ss_1-168x300.png" alt="ss_1" width="168" height="300" class="aligncenter size-medium wp-image-8326" srcset="/wp-content/uploads/2014/07/ss_1-168x300.png 168w, /wp-content/uploads/2014/07/ss_1-576x1024.png 576w, /wp-content/uploads/2014/07/ss_1-116x207.png 116w, /wp-content/uploads/2014/07/ss_1.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a>
<a href="https://html5experts.jp/wp-content/uploads/2014/07/ss_2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/ss_2-168x300.png" alt="ss_2" width="168" height="300" class="aligncenter size-medium wp-image-8327" srcset="/wp-content/uploads/2014/07/ss_2-168x300.png 168w, /wp-content/uploads/2014/07/ss_2-576x1024.png 576w, /wp-content/uploads/2014/07/ss_2-116x207.png 116w, /wp-content/uploads/2014/07/ss_2.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a>
<a href="https://html5experts.jp/wp-content/uploads/2014/07/ss_3.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/ss_3-168x300.png" alt="ss_3" width="168" height="300" class="aligncenter size-medium wp-image-8328" srcset="/wp-content/uploads/2014/07/ss_3-168x300.png 168w, /wp-content/uploads/2014/07/ss_3-576x1024.png 576w, /wp-content/uploads/2014/07/ss_3-116x207.png 116w, /wp-content/uploads/2014/07/ss_3.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a></p>

<h2>アプリカンならではの魅力</h2>

<p>アプリカンには、オプションサービス（有料）として、パートナー企業の提供するサービスのSDKを組み込んだベースアプリが用意されています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/applican_options.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/applican_options-300x73.png" alt="applican_options" width="300" height="73" class="alignnone size-medium wp-image-9105" srcset="/wp-content/uploads/2014/07/applican_options-300x73.png 300w, /wp-content/uploads/2014/07/applican_options-207x50.png 207w, /wp-content/uploads/2014/07/applican_options.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>現在用意されているサービスには、
&#8211; Remote TestKit (アプリ検証サービス)
&#8211; app C cloud (CPI広告)
&#8211; ARAPPLI PLUS (ARアプリ開発)
&#8211; popinfo (PUSH通知サービス)
があります。
これ以外にも、高速なデータ転送を実現するプロトコルスタックオプションや、OCR機能を実現するオプションなどが順次リリースされる予定です。</p>
]]></content:encoded>
		
		<series:name><![CDATA[ハイブリッドアプリ開発最前線]]></series:name>
	</item>
		<item>
		<title>スマートデバイスに特化したSencha Touchでハイブリッド開発（PhoneGap/Cordovaの利用）</title>
		<link>/albatrosary/7298/</link>
		<pubDate>Tue, 08 Jul 2014 01:00:32 +0000</pubDate>
		<dc:creator><![CDATA[佐川 夫美雄]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[Sencha]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=7298</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (5)Sencha Touchは、スマートデバイス開発に特化したJavaScriptフレームワークです。米Sencha社によって開発されました。米Sencha社にはデスクトップ用のS...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (5)</div><p>Sencha Touchは、スマートデバイス開発に特化したJavaScriptフレームワークです。<a href="http://www.sencha.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">米Sencha社</a>によって開発されました。米Sencha社にはデスクトップ用のSencha Ext JSもありますが、それ以外にもHTML5（JavaScript/CSSを含む）を使ってWebアプリケーションを構築するための様々な開発ツール/サービスを展開しています。</p>

<p>開発環境はWindowsでもMacでも可能です。ここではMacでの開発手順を示しますが、Windowsでも代わりありません。Sencha Touchが動作するデバイスはiPad/iPhone/Windows Phone/BlackBerry/Android 2.3+等、そのほとんどをサポートしています（<a href="http://www.sencha.com/products/touch/features/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://www.sencha.com/products/touch/features/</a>）。</p>

<h2>Senchaについて</h2>

<p>Senchaは、単にJavaScriptフレームワークの一つというものではなく、アプリケーションフレームワークです。強力でかつ整理されていて、拡張も可能、メンテナンスも可能なアプリケーションを構築することができます。そのためエンタープライズ向きと言われるところでもあります。</p>

<h3>特徴</h3>

<ul>
    <li>レイアウトマネージャによるデザイン設計</li>
    <li>UIコンポーネントが豊富</li>
    <li>Sencha独自のクラスシステム</li>
</ul>

<p>Senchaには「Sencha Cmd」という<a href="http://yeoman.io/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Yeoman</a>と同じようなSCAFFOLDING TOOLがあります。プロジェクトを作成すると、動くアプリケーションがすぐにでき上がります。この動くアプリケーションからコーティングを開始します（画面のハードコピーとソースを添付します）。</p>

<p>画面の構成はJSONで行いますが、ビジネスロジックは当然JavaScriptで記載します。Senchaは画面構成は設定レベルですませ、エンジニアを業務アプリケーションにとって、最も重要なビジネスロジック部に注力させるよう仕組み作りを行っています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/bb904cf5876c7a892bd9fc28156f5c70.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/bb904cf5876c7a892bd9fc28156f5c70-198x300.png" alt="スクリーンショット 2014-07-01 19.01.49" width="198" height="300" class="alignnone size-medium wp-image-7789" srcset="/wp-content/uploads/2014/07/bb904cf5876c7a892bd9fc28156f5c70-198x300.png 198w, /wp-content/uploads/2014/07/bb904cf5876c7a892bd9fc28156f5c70-676x1024.png 676w, /wp-content/uploads/2014/07/bb904cf5876c7a892bd9fc28156f5c70-136x207.png 136w, /wp-content/uploads/2014/07/bb904cf5876c7a892bd9fc28156f5c70.png 423w" sizes="(max-width: 198px) 100vw, 198px" /></a>
<a href="https://html5experts.jp/wp-content/uploads/2014/07/06aabe6359e9ab8a0af58b4eb992dc52.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/06aabe6359e9ab8a0af58b4eb992dc52-198x300.png" alt="スクリーンショット 2014-07-01 19.02.01" width="198" height="300" class="alignnone size-medium wp-image-7790" srcset="/wp-content/uploads/2014/07/06aabe6359e9ab8a0af58b4eb992dc52-198x300.png 198w, /wp-content/uploads/2014/07/06aabe6359e9ab8a0af58b4eb992dc52-676x1024.png 676w, /wp-content/uploads/2014/07/06aabe6359e9ab8a0af58b4eb992dc52-136x207.png 136w, /wp-content/uploads/2014/07/06aabe6359e9ab8a0af58b4eb992dc52.png 423w" sizes="(max-width: 198px) 100vw, 198px" /></a><a href="https://html5experts.jp/wp-content/uploads/2014/07/830864a9a2ab639d7007ea3225cb2c7b.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/830864a9a2ab639d7007ea3225cb2c7b-198x300.png" alt="スクリーンショット 2014-07-01 19.02.04" width="198" height="300" class="alignnone size-medium wp-image-7791" srcset="/wp-content/uploads/2014/07/830864a9a2ab639d7007ea3225cb2c7b-198x300.png 198w, /wp-content/uploads/2014/07/830864a9a2ab639d7007ea3225cb2c7b-676x1024.png 676w, /wp-content/uploads/2014/07/830864a9a2ab639d7007ea3225cb2c7b-136x207.png 136w, /wp-content/uploads/2014/07/830864a9a2ab639d7007ea3225cb2c7b.png 423w" sizes="(max-width: 198px) 100vw, 198px" /></a></p>

<p></p><pre class="crayon-plain-tag">Ext.define('SampleApp.view.Main', {
    extend: 'Ext.tab.Panel',
    xtype: 'main',
    requires: [
        'Ext.TitleBar',
        'Ext.Video'
    ],
    config: {
        tabBarPosition: 'bottom',

        items: [
            {
                title: 'Welcome',
                iconCls: 'home',

                styleHtmlContent: true,
                scrollable: true,

                items: {
                    docked: 'top',
                    xtype: 'titlebar',
                    title: 'Welcome to Sencha Touch 2'
                },

                html: [
                    "You've just generated a new Sencha Touch 2 project. What you're looking at right now is the ",
                    "contents of &lt;a target='_blank' href="app/view/Main.js"&gt;app/view/Main.js&lt;/a&gt; - edit that file ",
                    "and refresh to change what's rendered here."
                ].join("")
            },
            {
                title: 'Get Started',
                iconCls: 'action',

                items: [
                    {
                        docked: 'top',
                        xtype: 'titlebar',
                        title: 'Getting Started'
                    },
                    {
                        xtype: 'video',
                        url: 'http://av.vimeo.com/64284/137/87347327.mp4?token=1330978144_f9b698fea38cd408d52a2393240c896c',
                        posterUrl: 'http://b.vimeocdn.com/ts/261/062/261062119_640.jpg'
                    }
                ]
            }
        ]
    }
});</pre><p></p>

<h3>ライセンス形態</h3>

<p>Sencha Ext JS/Sencha Touch共に3つのライセンス形態が存在しています。</p>

<ul>
    <li>オープンソースライセンス(GPL v3)</li>
    <li>商用ライセンス</li>
    <li>商用OEMライセンス</li>
</ul>

<p>GPL v3ライセンスのもと、自由に利用することが可能ですが、商用アプリにSenchaを利用する場合は、商用ライセンス（開発者ライセンス）を購入する場合がほとんどです。</p>

<p>では、具体的に開発手順を追って説明します。</p>

<h2>開発手順</h2>

<p>Sencha Touchは100% PureなHTML5アプリケーションですが、カメラなどのハードウェアリソースを利用する場合にはPhoneGapもしくはCordovaを利用します（PhoneGap/Cordovaについては、<a href="https://html5experts.jp/fenomas/7672/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちらの記事</a>も参考にしてください）。開発手順の大まかな流れを以下に示します。</p>

<ul>
    <li>Sencha Touchアプリケーション開発の準備</li>
    <li>Sencha Touchプロジェクトの作成</li>
    <li>Sencha TouchとPhoneGapもしくはCordovaとの連携</li>
    <li>プラグインの追加およびコーティング</li>
    <li>エミュレータもしくは実機で実行</li>
</ul>

<h2>Sencha Touchアプリケーション開発の準備</h2>

<p>Sencha Touchでアプリケーション開発を行うための準備としては、以下の2つが必要です。</p>

<ul>
    <li><a href="http://www.sencha.com/products/sencha-cmd/download" title="Senchaコマンド" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Senchaコマンド</a>のインストール</li>
    <li><a href="https://www.sencha.com/products/touch/" title="Sencha Touch" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Sencha Touch Software Development Kit</a>のダウンロード</li>
</ul>

<p>Sencha Touch SDKをダウンロードしたら「~/Library/Sencha/」の中へ保存し展開します（習慣的に「~/Library/Sencha/」を利用しますが、どこでもかまいません）。SDKはZIP圧縮されていますので、unzipコマンド等で解凍します。</p>

<p>これに加え、Androidエミュレータ、iOSエミュレータ、PhoneGap、Cordovaなどの開発ツールも必要になりますので、必要なものをインストールしてください（それらのインストール手順については説明を割愛します）。</p>

<h2>Sencha Touchプロジェクトの作成</h2>

<p>Senchaでプロジェクト開発をする際、一番最初に実行するコマンドは以下の<code>sencha</code>コマンドです。</p>

<p><code>
$ sencha -sdk [使うsdkのディレクトリを指定] generate app [アプリケーション名] [アプリケーション開発ワークディレクトリ]
</code></p>

<p>今回は、以下のように実行しています（任意の空ディレクトリ上で実行してください）。</p>

<p><code>
$ sencha -sdk ~/Library/Sencha/touch-2.3.1 generate app SampleApp ./my_sencha_touch_app
</code></p>

<p>このコマンドを実行すると、以下の様なファイルやディレクトリが作成されます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/34246d01797bbc7d955f1c3fe9bb01a1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/34246d01797bbc7d955f1c3fe9bb01a1-300x261.png" alt="スクリーンショット 2014-06-19 15.11.01" width="300" height="261" class="alignnone size-medium wp-image-7314" srcset="/wp-content/uploads/2014/06/34246d01797bbc7d955f1c3fe9bb01a1-300x261.png 300w, /wp-content/uploads/2014/06/34246d01797bbc7d955f1c3fe9bb01a1-207x180.png 207w, /wp-content/uploads/2014/06/34246d01797bbc7d955f1c3fe9bb01a1.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h2>Sencha TouchとPhoneGapもしくはCordovaとの連携</h2>

<p>次に、Sencha TouchアプリケーションとPhoneGapを連携させます。そのために<code>sencha phonegap init</code>というコマンドを使います。</p>

<p><code></p>

<h1>PhoneGap環境の初期化</h1>

<p>$ sencha phonegap init com.albatrosary.SampleApp SampleApp
</code></p>

<p>Cordovaを利用する場合は<code>sencha cordova</code>を用います。</p>

<p><code>
$ sencha cordova init com.albatrosary.SampleApp SampleApp
</code></p>

<p><code>sencha phonegap</code>コマンドを実行することによりPhoneGap/Cordova用のセットアップが行われ、phonegapディレクトリ、phonegap.local.propertiesファイルが生成されています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/0c9d85af6ce73561bc8162d34f5a60f7.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/0c9d85af6ce73561bc8162d34f5a60f7-283x300.png" alt="スクリーンショット 2014-06-19 15.09.33" width="283" height="300" class="alignnone size-medium wp-image-7315" srcset="/wp-content/uploads/2014/06/0c9d85af6ce73561bc8162d34f5a60f7-283x300.png 283w, /wp-content/uploads/2014/06/0c9d85af6ce73561bc8162d34f5a60f7-195x207.png 195w, /wp-content/uploads/2014/06/0c9d85af6ce73561bc8162d34f5a60f7.png 605w" sizes="(max-width: 283px) 100vw, 283px" /></a></p>

<h2>プラグインの追加およびコーティング</h2>

<p>作成するアプリケーションでは、モバイルデバイスが備えるカメラを使用するため、PhoneGapプラグインの導入を行います。プラグインを追加するには<code>phonegap</code>コマンドを使います。<br />
カメラ用のプラグインをインストールするには、プロジェクトディレクトリ内にあるphonegapディレクトリに移動し、プラグイン追加のコマンドを実行してください。</p>

<p><code>
$ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git
</code></p>

<p>次にカメラを利用するためのアプリケーションをコーディングします。下記サンプルコードをapp/view/Main.jsに記載します。</p>

<p></p><pre class="crayon-plain-tag">Ext.define('SampleApp.view.Main', {
    extend: 'Ext.Panel',
    xtype: 'main',
    requires: [
        'Ext.Button',
        'Ext.Img'
    ],
    config: {
        layout: {
            type:"vbox",
            pack:"center",
            align:"center"
        },
        items: [
            {
                xtype: "image",
                src: "http://peatix.com.new.s3.amazonaws.com/user/229914/logo-html5j_200w.png",
                width: 200,
                height: 200
            },
            {
                xtype: "button",
                text: "Photo",
                handler: function() {
                    function success(image_uri) {
                        var img = Ext.ComponentQuery.query("image")[0];
                        img.setSrc(image_uri);
                    }

                    function fail(message) {
                        alert("Failed: " + message);
                    }

                    navigator.camera.getPicture(success, fail, 
                        {
                            quality: 50,
                            destinationType: navigator.camera.DestinationType.FILE_URI
                        }
                    );
                }
            }
        ]
    }
});</pre><p></p>

<p>対象となるデバイスを選択するため設定ファイル「phonegap.local.properties」を変更します。今回はphonegap.platformとしてAndroidを指定しています。</p>

<p><code></p>

<h1>The following are supported platforms for local building (blackberry is version 10)</h1>

<h1>android, blackberry, ios, wp7, wp8</h1>

<p>#</p>

<h1>The following are supported platforms for remote building (blackberry is version 6)</h1>

<h1>android, blackberry, ios, symbian, webos, wp7</h1>

<h1>This property can be a single platform or a space delimited list</h1>

<p>phonegap.platform=android</p>

<h1>This determines if build is remote (phonegap build) or local</h1>

<p>phonegap.build.remote=false</p>

<h1>Username for PhoneGap Build</h1>

<p>phonegap.build.remote.username={username}</p>

<h1>Password for PhoneGap Build</h1>

<p>phonegap.build.remote.password={password}
</code></p>

<p>phonegap.build.remote以降の設定内容は<a href="https://build.phonegap.com/plans" title="Adobe PhoneGap Build" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">リモートビルド</a>する場合の指定です（リモートビルドはCordovaの場合には存在しません）。</p>

<p>html5jのロゴをamazonaws.comから取得していますので「my_sencha_touch_app/config.xml」にアクセス許可のためにaccessタグのoriginとして「http://peatix.com.new.s3.amazonaws.com/*」を追加します。</p>

<p><code>
   origin="http://peatix.com.new.s3.amazonaws.com/*"
</code></p>

<p><br /></p>

<h2>エミュレータもしくは実機で実行</h2>

<p><code>
$ sencha app build -run native
</code></p>

<p>このコマンドは、実機がUSB接続されている場合は実機にモジュールが転送されますが、実機が接続されていない場合にはエミュレータが起動します。実機を接続しないで動かしてみます。</p>

<p>起動中の画面<br />
<a href="https://html5experts.jp/wp-content/uploads/2014/06/c99b6f834594a09276b3680cab825bf9.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/c99b6f834594a09276b3680cab825bf9-300x172.png" alt="スクリーンショット 2014-06-19 14.42.22" width="300" height="172" class="alignnone size-medium wp-image-7304" srcset="/wp-content/uploads/2014/06/c99b6f834594a09276b3680cab825bf9-300x172.png 300w, /wp-content/uploads/2014/06/c99b6f834594a09276b3680cab825bf9-1024x590.png 1024w, /wp-content/uploads/2014/06/c99b6f834594a09276b3680cab825bf9-207x119.png 207w, /wp-content/uploads/2014/06/c99b6f834594a09276b3680cab825bf9.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>起動完了<br />
<a href="https://html5experts.jp/wp-content/uploads/2014/06/5b8f7fd5ab6be4f09cc5e47de6ed5fea.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/5b8f7fd5ab6be4f09cc5e47de6ed5fea-300x172.png" alt="スクリーンショット 2014-06-19 14.42.45" width="300" height="172" class="alignnone size-medium wp-image-7305" srcset="/wp-content/uploads/2014/06/5b8f7fd5ab6be4f09cc5e47de6ed5fea-300x172.png 300w, /wp-content/uploads/2014/06/5b8f7fd5ab6be4f09cc5e47de6ed5fea-1024x589.png 1024w, /wp-content/uploads/2014/06/5b8f7fd5ab6be4f09cc5e47de6ed5fea-207x119.png 207w, /wp-content/uploads/2014/06/5b8f7fd5ab6be4f09cc5e47de6ed5fea.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>続いて、実機をUSB接続しコマンドを実行します。アプリケーションが転送されますので実行確認を行いました。実機のスクリーンショットを添付します。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-44.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-44-168x300.png" alt="Screenshot_2014-07-01-21-14-44" width="168" height="300" class="alignnone size-medium wp-image-7810" srcset="/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-44-168x300.png 168w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-44-576x1024.png 576w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-44-116x207.png 116w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-44.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a>
<a href="https://html5experts.jp/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-55.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-55-168x300.png" alt="Screenshot_2014-07-01-21-14-55" width="168" height="300" class="alignnone size-medium wp-image-7811" srcset="/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-55-168x300.png 168w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-55-576x1024.png 576w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-55-116x207.png 116w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-14-55.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a>
<a href="https://html5experts.jp/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-16-01.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-16-01-168x300.png" alt="Screenshot_2014-07-01-21-16-01" width="168" height="300" class="alignnone size-medium wp-image-7812" srcset="/wp-content/uploads/2014/07/Screenshot_2014-07-01-21-16-01-168x300.png 168w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-16-01-576x1024.png 576w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-16-01-116x207.png 116w, /wp-content/uploads/2014/07/Screenshot_2014-07-01-21-16-01.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a></p>

<h2>適用事例</h2>

<p>今回ご紹介させていただいたSencha Touch、Sencha Ext JSは様々なところで利用されています。ご参考までにわずかではありますが、いくつかの事例をご紹介します。</p>

<p><a href="http://www.sencha.com/apps/wacoal-thailand" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/wacoal-icon.jpg" alt="wacoal-icon" width="80" height="80" class="alignnone size-full wp-image-7843" srcset="/wp-content/uploads/2014/07/wacoal-icon.jpg 175w, /wp-content/uploads/2014/07/wacoal-icon-150x150.jpg 150w" sizes="(max-width: 80px) 100vw, 80px" /></a> <a href="http://www.sencha.com/apps/forbes-photos-videos" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/forbes-icon.jpg" alt="forbes-icon" width="80" height="80" class="alignnone size-full wp-image-7844" srcset="/wp-content/uploads/2014/07/forbes-icon.jpg 175w, /wp-content/uploads/2014/07/forbes-icon-150x150.jpg 150w" sizes="(max-width: 80px) 100vw, 80px" /></a> <a href="http://www.sencha.com/apps/loccitane-en-provence" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/Loccitane-en-provence_icon.jpeg" alt="Loccitane-en-provence_icon" width="80" height="80" class="alignnone size-full wp-image-7862" srcset="/wp-content/uploads/2014/07/Loccitane-en-provence_icon.jpeg 175w, /wp-content/uploads/2014/07/Loccitane-en-provence_icon-150x150.jpeg 150w" sizes="(max-width: 80px) 100vw, 80px" /></a> <a href="http://www.sencha.com/apps/airport-car-rental/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/airport-car-rental-logo.png" alt="airport-car-rental-logo" width="80" height="80" class="alignnone size-full wp-image-7868" srcset="/wp-content/uploads/2014/07/airport-car-rental-logo.png 175w, /wp-content/uploads/2014/07/airport-car-rental-logo-150x150.png 150w" sizes="(max-width: 80px) 100vw, 80px" /></a> <a href="http://www.sencha.com/blog/sencha-touch-customer-spotlight-nervana-group/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/nervana-group-logo-300x240.jpg" alt="nervana-group-logo" width="100" height="80" class="alignnone size-medium wp-image-7951" srcset="/wp-content/uploads/2014/07/nervana-group-logo-300x240.jpg 300w, /wp-content/uploads/2014/07/nervana-group-logo-207x165.jpg 207w, /wp-content/uploads/2014/07/nervana-group-logo.jpg 500w" sizes="(max-width: 100px) 100vw, 100px" /></a> <a href="http://www.sencha.com/blog/sencha-touch-and-ext-js-customer-spotlight-decidokompetensor-the-impossible/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/20131007-Decido.jpg" alt="20131007-Decido" width="100" height="80" class="alignnone size-full wp-image-7953" /></a> <a href="http://www.sencha.com/blog/sencha-touch-customer-spotlight-harmon-ie/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/20130821-harmonie-spotlight.jpg" alt="20130821-harmonie-spotlight" width="100" height="80" class="alignnone size-full wp-image-7954" /></a></p>
]]></content:encoded>
	<enclosure url="http://av.vimeo.com/64284/137/87347327.mp4" length="295" type="video/mp4" />
	
		<series:name><![CDATA[ハイブリッドアプリ開発最前線]]></series:name>
	</item>
		<item>
		<title>キミはionicを知っているか？AngularJS+PhoneGap+美麗コンポーネント群！</title>
		<link>/canidoweb/7359/</link>
		<pubDate>Mon, 07 Jul 2014 01:00:05 +0000</pubDate>
		<dc:creator><![CDATA[金井 健一]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[ionic]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=7359</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (4) ionic 概要 ionicはそのサイトのデザインからも見てわかるとおり、シンプルかつ美しいUIを取り揃えたコンポーネント群で、Apache Cordova を拡張して作られ...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (4)</div><p><a href="https://html5experts.jp/wp-content/uploads/2014/06/ionic1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/ionic1.png" alt="ionic" width="2000" height="1120" class="aligncenter size-full wp-image-7618" srcset="/wp-content/uploads/2014/06/ionic1.png 640w, /wp-content/uploads/2014/06/ionic1-300x168.png 300w, /wp-content/uploads/2014/06/ionic1-1024x573.png 1024w, /wp-content/uploads/2014/06/ionic1-207x115.png 207w" sizes="(max-width: 2000px) 100vw, 2000px" /></a></p>

<h2>ionic 概要</h2>

<p>ionicはそのサイトのデザインからも見てわかるとおり、シンプルかつ美しいUIを取り揃えたコンポーネント群で、<a href="http://cordova.apache.org/" title="Apache Cordova" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apache Cordova</a> を拡張して作られているフレームワークです。<br>
また、動的なUIコンポーネントを実装するために、 <a href="https://angularjs.org/" title="AngularJS" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AngularJS</a> を採用してる点もその特徴の1つです。</p>

<p>ionicがサポートしているプラットフォームは、iOS 6+とAndroid 4+です。（ただしAndroidについては、2.3+でもいくつかの機能を提供してるとのこと）<br>
現状ではこの2つのプラットフォームのみですが、Windows PhoneとFirefoxOSについても今後対応を進めていくようです。</p>

<h3>特徴</h3>

<ul>
<li><a href="http://cordova.apache.org/" title="Apache Cordova" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apache Cordova</a>を拡張して作られている、モバイルUIフレームワーク＆開発ツール</li>
<li>UIがシンプル、かつ美しい</li>
<li><a href="https://angularjs.org/" title="AngularJS" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AngularJS</a> を採用している</li>
<li>現状はiOS 6+とAndroid 4+のサポートのみで、Windows PhoneとFirefox OSについては今後対応予定</li>
</ul>

<h2>ionicでHello, World</h2>

<h3>事前準備</h3>

<p>ionicでアプリケーションを開発するためには、 <a href="http://nodejs.org/" title="Node.js" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Node.js</a> がインストールされている必要があります。
インストールされていない場合は、上記のリンクからダウンロードしてインストールしておきましょう。<br>
また、各プラットフォーム（Android、iOS）ごとに必要なSDKのインストールも必要です。<br>
こちらについては本稿では触れませんのでご了承ください。</p>

<h3>1. cordova-cliとionic-cliのインストール</h3>

<p>Node.jsのnpm-cliを利用して、cordova-cliとionic-cliをインストールします。<br>
今回はiOSを対象に解説していくため、ios-sim-cliもインストールしておきます。<br>
これは後述するiOSのエミュレータでの確認をするために必要となります。</p>

<p></p><pre class="crayon-plain-tag">$ sudo npm install -g cordova ionic
  $ sudo npm install -g ios-sim</pre><p></p>

<h3>2. ionicプロジェクトの作成</h3>

<p>ionicのプロジェクトを作成します。</p>

<p></p><pre class="crayon-plain-tag">$ ionic start myApp tabs</pre><p></p>

<p>実行すると&#8221;myApp&#8221;という名前のプロジェクトが作成されます。<br>
&#8220;tabs&#8221;という引数はデフォルトのテンプレートの指定になります。<br>
&#8220;blank&#8221;、&#8221;tabs&#8221;、&#8221;sidemenu&#8221;の3種類がテンプレートとして用意されていますので、ご自身で作成するアプリケーションの要件に応じて使い分けるとよいでしょう。<br>
各テンプレートのレイアウトは以下の画像を参照してください。
<a href="https://html5experts.jp/wp-content/uploads/2014/06/project.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/project.png" alt="project" width="1820" height="682" class="aligncenter size-full wp-image-7613" srcset="/wp-content/uploads/2014/06/project.png 640w, /wp-content/uploads/2014/06/project-300x112.png 300w, /wp-content/uploads/2014/06/project-1024x383.png 1024w, /wp-content/uploads/2014/06/project-207x77.png 207w" sizes="(max-width: 1820px) 100vw, 1820px" /></a></p>

<h3>3. 対象のプラットフォームを設定</h3>

<p>次に、作成したプロジェクト内に移動して作成するプラットフォームを指定します。<br>
iOS 向けの設定を追加します。</p>

<p></p><pre class="crayon-plain-tag">$ cd myApp
  $ ionic platform add ios</pre><p></p>

<h3>4. Hello, Worldを書く</h3>

<p>今回のケースでは、アプリケーション起動時に表示されるhtmlはmyApp/www/templates/tab-dash.htmlなので、このhtmlファイルを編集します。<br>
以下のように、h1要素のテキストを&#8221;Hello, World&#8221;に書き換えます。</p>

<p></p><pre class="crayon-plain-tag">&lt;ion-view title="Dashboard"&gt;
      &lt;ion-content class="has-header padding"&gt;
          <h1>Hello, World</h1>
      &lt;/ion-content&gt;
  &lt;/ion-view&gt;</pre><p></p>

<h3>5. 変更を確認する</h3>

<p>アプリケーションの動作確認をおこなうためには2つの方法があります。<br>
主にデザインやレイアウトの確認を行なう場合であればWebサーバを起動して確認するとよいでしょう。</p>

<p></p><pre class="crayon-plain-tag">$ ionic serve</pre><p></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/serve1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/serve1-300x245.png" alt="serve" width="300" height="245" class="aligncenter size-medium wp-image-7620" srcset="/wp-content/uploads/2014/06/serve1-300x245.png 300w, /wp-content/uploads/2014/06/serve1-1024x838.png 1024w, /wp-content/uploads/2014/06/serve1-207x169.png 207w, /wp-content/uploads/2014/06/serve1.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p></p><pre class="crayon-plain-tag">$ ionic build ios
  $ ionic emulate ios</pre><p></p>

<p>ネイティブのAPIを利用している箇所は、エミュレータを起動して確認しましょう。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/emu1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/emu1-200x300.png" alt="emu" width="200" height="300" class="aligncenter size-medium wp-image-7617" srcset="/wp-content/uploads/2014/06/emu1-200x300.png 200w, /wp-content/uploads/2014/06/emu1-137x207.png 137w, /wp-content/uploads/2014/06/emu1.png 426w" sizes="(max-width: 200px) 100vw, 200px" /></a></p>

<h3>6. 実機での動作確認</h3>

<p>Androidであれば、実機と開発環境をUSBケーブルで接続してから</p>

<p></p><pre class="crayon-plain-tag">$ ionic run android</pre><p></p>

<p>で実機にインストールすることができます。</p>

<p>iOSの場合は、ionicコマンドから実機にインストールすることができません。<br>
iOSでの実機確認を行なうには、XcodeからmyApp/platforms/iosを開いて実機にインストールすることができます。<br>
これ以降はXcodeでの作業になります。</p>

<h3>ionic の機能</h3>

<p>ionicコマンドで作成されたプロジェクトには、以下のディレクトリが配置されます。<br>
これらがionic独自のディレクトリで、Apache Cordovaとは大きく異なる点です。<br>
Apache Cordovaで作られたプロジェクトにはこれらのディレクトリは存在しません。</p>

<p></p><pre class="crayon-plain-tag">myApp/www/lib/ionic
  myApp/scss/</pre><p></p>

<p>myApp/www/lib/ionic配下のファイル群がionicが提供するUIコンポーネント群の実体です。<br>
またionicはSassを採用しているので、myApp/scss/やmyApp/www/lib/ionic/scss配下のファイルを編集することで、UIコンポーネントをカスタマイズすることも可能です。<br>
もちろん、myApp/www/lib/ionic/css配下のcssファイルを直接編集することも可能ですが、7000ステップ以上ありますので現実的ではありません。<br>
カスタマイズを前提とするならば、Sassの導入は必須となります。</p>

<h3>Optional</h3>

<p>ionicは、タスクランナーとしてgulp.jsを採用しています。<br>
gulp-cliを利用することで、Sassを自動コンパイルさせたりすることもできます。<br>
設定方法について詳しく知りたい方は<a href="http://ionicframework.com/docs/guide/installation.html" title="install gulp" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a>を参照してください。</p>

<h2>ngCordovaモジュール</h2>

<p>2014/6/3に公式ブログから <a href="http://ngcordova.com/" title="ngCordova" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ngCordova</a> のαリリースが発表されました。<br>
cordova.js（ネイティブの機能を呼び出すためのApache Cordovaのライブラリ）をAngularJSでラップしたモジュールです。<br>
ionicにとっては、cordova.jsを直接呼び出して使用するよりも、ngCordovaというAngularJSのモジュールとして扱うことで親和性が高くなり、これまで以上に機能拡張が容易になります。</p>

<h2>最後に</h2>

<p>以下のProductsのページには、&#8221;Coming mid-2014: Powerful mobile development tools and services for Ionic.&#8221;と記述されていて、近々大きなリリースを予定しているのが伺えます。<br>
注目されているフレームワークの1つですので、今のうちから試してみてはいかがでしょうか。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/products1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/products1.png" alt="products" width="2000" height="884" class="aligncenter size-full wp-image-7619" srcset="/wp-content/uploads/2014/06/products1.png 640w, /wp-content/uploads/2014/06/products1-300x132.png 300w, /wp-content/uploads/2014/06/products1-1024x452.png 1024w, /wp-content/uploads/2014/06/products1-207x91.png 207w" sizes="(max-width: 2000px) 100vw, 2000px" /></a></p>

<h2>参照リソース</h2>

<ul>
<li><a href="http://ionicframework.com/" title="ionic" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ionic http://ionicframework.com/</a></li>
<li><a href="http://ngcordova.com/" title="ngCordova" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ngCordovaモジュール http://ngcordova.com/</a></li>
<li><a href="http://ionicons.com/" title="ionicons" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ionicons</a></li>
<li><a href="http://cordova.apache.org/" title="Apache Cordova" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apache Cordova</a></li>
<li><a href="https://angularjs.org/" title="AngularJS" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AngularJS https://angularjs.org/</a></li>
</ul>
]]></content:encoded>
		
		<series:name><![CDATA[ハイブリッドアプリ開発最前線]]></series:name>
	</item>
		<item>
		<title>ハイブリッドアプリ開発といえばこれ！PhoneGap/Cordova事始め</title>
		<link>/fenomas/7672/</link>
		<pubDate>Thu, 03 Jul 2014 01:00:09 +0000</pubDate>
		<dc:creator><![CDATA[Andy Hall]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[ハイブリッド]]></category>
		<category><![CDATA[モバイル]]></category>

		<guid isPermaLink="false">/?p=7672</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (2) PhoneGapの概要と歴史 PhoneGapとは、ハイブリッドアプリのフレームワークです。つまり、HTML5コンテンツをラッピングして、いろんなデバイスやOSでネイティブア...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (2)</div><p><img src="/wp-content/uploads/2014/06/phonegap-banner.png" alt="phonegap-banner" width="900" height="206" class="alignnone size-full wp-image-7704" srcset="/wp-content/uploads/2014/06/phonegap-banner.png 640w, /wp-content/uploads/2014/06/phonegap-banner-300x68.png 300w, /wp-content/uploads/2014/06/phonegap-banner-207x47.png 207w" sizes="(max-width: 900px) 100vw, 900px" /></p>

<h2>PhoneGapの概要と歴史</h2>

<p><a href="http://phonegap.com/" title="PhoneGap" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGap</a>とは、ハイブリッドアプリのフレームワークです。つまり、HTML5コンテンツをラッピングして、いろんなデバイスやOSでネイティブアプリとしてインストール可能なアプリケーションを作成できる技術です。元々は2009年にiPhoneDevCamp（ハッカソンのようなイベント）で生まれ、Nitobiという会社によって開発されました。2011年にアドビがNitobiを買収し、同時にPhoneGapのソースコードをApache Foundationに寄付して、<a href="http://cordova.apache.org/" title="Apache Cordova" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apache Cordova</a>というオープンソースプロジェクトが作られました。</p>

<p>現在では、Cordovaという下層のフレームワークの上に、アドビのサービスに連携するPhoneGapのレイヤーが乗っています。しかし使い方はほぼ同じであるため、PhoneGapとCordovaは大体同じものという認識で問題ありません。</p>

<h2>ゼロ（環境設定）からHello Worldまで</h2>

<p>PhoneGap/Cordovaは、<a href="http://nodejs.org/download/" title="Node.js" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Node.js</a>で使うコマンドラインアプリケーションです。ゼロから始める手段は下記の通り：</p>

<h5>1. Node.jsを<a href="http://nodejs.org/download/" title="Node.js" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">インストール</a>して、ターミナルで使えることを確認します：</h5>

<p></p><pre class="crayon-plain-tag">&gt; node -v
v0.10.13
&gt;</pre><p></p>

<h5>2. Node.jsのパッケージマネージャー npm（上記ステップでインストールされます）を利用して<pre class="crayon-plain-tag">cordova</pre>をインストールします：</h5>

<p></p><pre class="crayon-plain-tag">&gt; npm install -g cordova
npm http GET https://registry.npmjs.org/cordova
npm http 200 https://registry.npmjs.org/cordova
...
&gt;</pre><p> 
※ Macでは、多くの場合には<pre class="crayon-plain-tag">sudo</pre>が必要です。エラーが出た場合は、次のコマンドを使ってください：
</p><pre class="crayon-plain-tag">&gt; sudo npm install -g cordova
Password: 
npm http GET https://registry.npmjs.org/cordova
npm http 200 https://registry.npmjs.org/cordova
...
&gt;</pre><p></p>

<h5>3. <pre class="crayon-plain-tag">cordova create</pre>のコマンドを使って、新規プロジェクトを作ります。コマンドのパラメータとして、フォルダ名、アプリID、アプリ名を渡します。</h5>

<p></p><pre class="crayon-plain-tag">&gt; cordova create testapp com.example.test "Test App"
Creating a new cordova project with name "Test App" 
and id "com.example.test" at location "~/testapp"
&gt;</pre><p></p>

<h5>4. 新規プロジェクトのフォルダに移動します：</h5>

<p></p><pre class="crayon-plain-tag">&gt; cd testapp/
&gt;</pre><p></p>

<h5>5. <pre class="crayon-plain-tag">cordova platform add</pre>のコマンドで、作りたいアプリのプラットフォームをプロジェクトに追加します。この例ではAndroidを使います：</h5>

<p></p><pre class="crayon-plain-tag">&gt; cordova platform add android
Creating android project...
...</pre><p></p>

<h5>6. デバイスをマシンに接続して、アプリのビルドと動作確認します。</h5>

<p></p><pre class="crayon-plain-tag">&gt; cordova run android
Generating config.xml from defaults for platform "android"
Preparing android project
...</pre><p></p>

<p><pre class="crayon-plain-tag">cordova run ...</pre>を実行するとアプリのビルドの後、接続されたデバイスにアプリがインストールされ、起動されます。デバイスが接続されていない場合、Cordovaがエミュレータを起動しようとします。また、<pre class="crayon-plain-tag">cordova build</pre><pre class="crayon-plain-tag">cordova emulate</pre>などのコマンドで、個別に各ステップを行えます。利用可能コマンドを確認するには、<pre class="crayon-plain-tag">cordova help</pre>を実行してください。</p>

<p><strong>注意：</strong>ビルドを行うためには、各プラットフォームの仕組みが必要となります。例えばAndroidの場合は<a href="http://developer.android.com/sdk/" title="Android SDK" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Android SDK</a>、iOSの場合は<a href="https://developer.apple.com/xcode/" title="Apple Developer Tools" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">XCode</a>のインストールが完了している必要があります。SDK不要のビルド方法については後ほど説明します。</p>

<h2>PhoneGapアプリの構成について</h2>

<p><pre class="crayon-plain-tag">cordova create</pre>コマンドによって作られるフォルダの中身を確認しましょう：
<img src="/wp-content/uploads/2014/06/pg-folder.png" alt="pg-folder" width="201" height="229" class="aligncenter size-full wp-image-7727" srcset="/wp-content/uploads/2014/06/pg-folder.png 201w, /wp-content/uploads/2014/06/pg-folder-181x207.png 181w" sizes="(max-width: 201px) 100vw, 201px" /></p>

<ol>
<li>ルートにある <pre class="crayon-plain-tag">config.xml</pre> は、アプリのメタデータ（アプリ名など）を定義します</li>
<li><pre class="crayon-plain-tag">/www</pre>フォルダはHTMLアプリのソースです。 <pre class="crayon-plain-tag">cordova create</pre> によって参考用のサンプルコードが作成されますが、編集・削除・上書きを自由にします。このフォルダの <pre class="crayon-plain-tag">index.html</pre> がアプリの初期画面になります。</li>
</ol>

<p>上記2点以外のコンテンツは、編集する必要は通常ありません。</p>

<p>ところで、新規プロジェクトに生成される参考用の<pre class="crayon-plain-tag">index.html</pre>を確認してみると、<pre class="crayon-plain-tag">cordova.js</pre>を指している<pre class="crayon-plain-tag">script</pre>タグがあります。<pre class="crayon-plain-tag">cordova.js</pre>は、フレームワークが動的に生成しますので、ソースにそのファイルを置く必要はありません。しかし、既存のHTMLをPhoneGapアプリに使う時は、<pre class="crayon-plain-tag">cordova.js</pre>を指すスクリプトタグを追加しましょう。</p>

<h2>プラグインについて</h2>

<p>標準のHTMLでは、デバイスの機能（カメラロール、ノーティフィケーションなど）にアクセスできない場合があります。その際は、PhoneGapプラグインを使います。基本的な手順は：</p>

<ol>
<li><a href="http://plugins.cordova.io/" title="Plugin レポジトリ" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pluginレポジトリ</a>でプラグインを探します。この例では<a href="http://plugins.cordova.io/#/package/org.apache.cordova.dialogs" title="ノーティフィケーションのプラグイン" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ノーティフィケーションのプラグイン</a>を使います。</li>
<li>ターミナルで<pre class="crayon-plain-tag">cordova plugin add [ID]</pre>で追加します：
<pre class="crayon-plain-tag">&gt; cordova plugin add org.apache.cordova.dialogs
Fetching plugin "org.apache.cordova.dialogs" via plugin registry
...</pre></li>
<li>アプリソースのJSから、プラグインのAPIを呼びます：
<pre class="crayon-plain-tag">navigator.notification.prompt("hoge");</pre> </li>
</ol>

<p>JavaScriptで定義されたプラグインのAPIが呼ばれると、各OSの対応するネイティブコードが各デバイスの機能を呼び出す仕組みになっています。その際、デバイス機能がAndroid/iOSなどで仕組みが違っていても、プラグインのインターフェイスは共通なのでPhoneGapアプリのソースを別バージョンに分ける必要がありません。しかしデバイス側の機能がプラットフォームによって実装が変わる場合もあります。その場合は、アプリの動作を各OSの挙動に合わせる必要があったりしますので、各プラグインのドキュメンテーションにある「Quirks（方言）」セクションに目を通しましょう。</p>

<h2>クラウドで行うアプリ作成サービス「PhoneGap Build」</h2>

<p>
アプリのビルドを行う際に、各プラットフォームのSDKが必要と説明しましたが、それが難しい場合もあります。例えばiOSのSDKはMacでしか動きませんので、Windowsでは利用不可能です。</p>

<p>この場合、アドビのクラウドビルドサービス<a href="https://build.phonegap.com/" title="PhoneGap Build" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGap Build</a>の利用をオススメします。Android、iOS、そしてWindows 8アプリをSDKの準備なしでビルドできます。PhoneGap Buildの使い方で前述の解説と異なるところは主に次の２点です。</p>

<ol>
<li><pre class="crayon-plain-tag">cordova</pre>ではなく<pre class="crayon-plain-tag">phonegap</pre>コマンドを使用</li>
<li>クラウド側で実行するコマンドに<pre class="crayon-plain-tag">remote</pre>というキーワードを追加</li>
</ol>

<p>具体的には次のような流れで利用できます：
</p><pre class="crayon-plain-tag">&gt; sudo npm install -g phonegap
...
&gt; phonegap create test com.example.test2 Test
...
&gt; cd test
&gt; phonegap remote build android</pre><p></p>

<p>初回はPhoneGap Buildのユーザ名、パスワードを要求されます。既存のAdobe IDでログインするか、アドビのWebサイトでAdobe IDを<a href="https://www.adobe.com/account.html" title="Adobe アカウント" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">新規作成</a>（無料）してください。その後、アプリがクラウド側でビルドされます。アプリの確認、インストールなどを<a href="https://build.phonegap.com/" title="PhoneGap Build" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGap Build</a>サイトでできます。</p>

<h2>まとめ</h2>

<p>PhoneGap/Cordovaは非常に軽量なフレームワークです。HTML5コンテンツのアプリ化に特化しており、他フレームワークとの競合も少なく、比較的導入し易いフレームワークだと言えます。HTMLコンテンツからモバイルアプリまでの最短経路だと思いますので、ぜひお試しください！</p>
]]></content:encoded>
		
		<series:name><![CDATA[ハイブリッドアプリ開発最前線]]></series:name>
	</item>
		<item>
		<title>HTML5ハイブリッドアプリ開発、最新動向はやわかり！</title>
		<link>/anatoo/7253/</link>
		<pubDate>Wed, 02 Jul 2014 01:00:51 +0000</pubDate>
		<dc:creator><![CDATA[久保田 光則]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Monaca]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=7253</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (1)ここ数年、従来のJavaやObjective-Cでのモバイルアプリ開発以外に、HTML5を使ってモバイルアプリを開発する手法、HTML5ハイブリッドアプリ開発が注目を浴びていま...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (1)</div><p>ここ数年、従来のJavaやObjective-Cでのモバイルアプリ開発以外に、HTML5を使ってモバイルアプリを開発する手法、HTML5ハイブリッドアプリ開発が注目を浴びています。この記事では、第48回HTML5とか勉強会（ハイブリッドアプリ開発最新動向）で発表した「<a href="http://www.slideshare.net/monaca_mobi/html5-35122937" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">はやわかりHTML5ハイブリッドアプリ開発事情</a>」での内容を解説することで、HTML5モバイルアプリについての基本的な知識を簡単に紹介します。</p>

<h2>HTML5ハイブリッドアプリとは?</h2>

<p>それでは、まずHTML5ハイブリッドアプリの構造についてご紹介します。ハイブリッドアプリではアプリの画面としてWebViewというネイティブのコンポーネントを使います。このWebViewの中でHTMLの画面を表示するモバイルアプリがハイブリッドアプリです。図で表現すると、以下の画像でハイブリッドアプリの構造を表現することができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/hybrid_app_structure1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/hybrid_app_structure1.png" alt="hybrid_app_structure" width="300" height="159" class="aligncenter size-full wp-image-7270" srcset="/wp-content/uploads/2014/06/hybrid_app_structure1.png 300w, /wp-content/uploads/2014/06/hybrid_app_structure1-207x109.png 207w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h2>なぜハイブリッドアプリなのか?</h2>

<p>従来の純粋なJavaやObjective-Cで開発するネイティブアプリとHTML5で開発するハイブリッドアプリがどのように異なるのか、ハイブリッドアプリを採用する際のメリットをご紹介します。</p>

<h3>1.クロスプラットフォーム</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/cross_platform.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/cross_platform.png" alt="cross_platform" width="299" height="135" class="aligncenter size-full wp-image-7258" srcset="/wp-content/uploads/2014/06/cross_platform.png 299w, /wp-content/uploads/2014/06/cross_platform-207x93.png 207w" sizes="(max-width: 299px) 100vw, 299px" /></a></p>

<p>従来のアプリ開発では、アプリ開発対象のOSの流儀に従わなくてはなりませんでした。JavaやObjective-Cといった開発言語も違えば、開発環境や必要とされる知識やノウハウも異なります。ハイブリッドアプリではWebViewという各OSに共通のコンポーネントを用いるので、HTMLやCSS、JavaScriptでどのOSでも共通に動作するアプリを記述することができます。</p>

<h3>2. Web標準の知識をモバイルアプリ開発に適用できます</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/html5_banner.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/html5_banner.png" alt="html5_banner" width="300" height="150" class="aligncenter size-full wp-image-7259" srcset="/wp-content/uploads/2014/06/html5_banner.png 300w, /wp-content/uploads/2014/06/html5_banner-207x103.png 207w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>ハイブリッドアプリ開発ではHTMLやCSS、JavaScriptといったWeb開発では必須の言語でモバイルアプリを開発することができます。もちろんPCでのブラウザ向けの開発とは違い、モバイル端末のスペックやそれ上で動作するブラウザのことは考慮しなければいけませんが、もっぱらWeb開発に携わっていた方が、モバイルアプリを開発する際にも比較的、敷居は低くなります。</p>

<h3>3. JavaScriptから各OSのAPIを呼び出すことができます</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/os_api_call.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/os_api_call.png" alt="os_api_call" width="300" height="121" class="aligncenter size-full wp-image-7266" srcset="/wp-content/uploads/2014/06/os_api_call.png 300w, /wp-content/uploads/2014/06/os_api_call-207x83.png 207w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>Cordovaなどのハイブリッドアプリ開発用のフレームワークを使うことで、カメラや、センサーなどのモバイル端末でのみ利用できるAPIをJavaScriptから呼び出すことができます。</p>

<h2>ハイブリッドアプリが向いていない場面</h2>

<p>ハイブリッドアプリを採用する際のメリットをご紹介しましたが、ここでは逆にハイブリッドアプリがあまり向いていない場面、不得意な分野もあります。</p>

<p>例えば、高速な描画処理が要求されるゲームなど、ネイティブでOpenGL等を使ってバリバリに高速描画させているゲームなどをハイブリッドアプリで実現しようとすると厳しいものがあります。モバイル端末でのWebGL実装の普及に伴って解決されていく問題かもしれませんが、今のところHTML5ハイブリッドアプリでは、こういった分野は苦手です。</p>

<p>また、HTMLのレンダリングエンジン上で動くという性質上、端末のスペックを最大限引き出すような処理もネイティブアプリと比べると苦手です。</p>

<h2>ハイブリッドアプリの作り方</h2>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/hybrid_app_tools.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/hybrid_app_tools.png" alt="hybrid_app_tools" width="299" height="150" class="aligncenter size-full wp-image-7261" srcset="/wp-content/uploads/2014/06/hybrid_app_tools.png 299w, /wp-content/uploads/2014/06/hybrid_app_tools-207x103.png 207w" sizes="(max-width: 299px) 100vw, 299px" /></a></p>

<p>ハイブリッドアプリを開発するためのフレームワークがいくつかありますが、その中でも最も有名なものは「Cordova (PhoneGap)」です。ここでは「Cordova (PhoneGap)」について紹介します。</p>

<p>よく呼称の問題で「Cordova」か「PhoneGap」かということが議論になっていることがありますが、基本的にはどちらも同じものと考えて、ここでは差し支えありません。</p>

<h3>1. HTML5とネイティブ間のブリッジ</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/cordova_bridge.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/cordova_bridge.png" alt="cordova_bridge" width="265" height="299" class="aligncenter size-full wp-image-7257" srcset="/wp-content/uploads/2014/06/cordova_bridge.png 265w, /wp-content/uploads/2014/06/cordova_bridge-183x207.png 183w" sizes="(max-width: 265px) 100vw, 265px" /></a></p>

<p>Cordavaを使うことでJavaScriptからカメラ、コンパス、センサー、連絡先、ネットワークなどの本来JavaやObjective-CでしかアクセスできないネイティブのAPIを呼ぶことができます。また、Cordovaのプラグインを自分で作ってHTML5アプリに組み込むことで、JavaScriptから呼ぶことのできるネイティブのAPIを拡張することができます。</p>

<h3>2. HTML5をアプリとしてラッピングする</h3>

<p>CordovaにはデフォルトでモバイルアプリをWebViewで表示する機能が備わっています。CordovaがWebViewに関連するネイティブのコードを提供するので、ハイブリッドアプリ開発者は、HTMLアプリを用意するだけで、ネイティブのコードを記述することなしにアプリを開発できます。</p>

<h2>フレームワークを使わない選択肢</h2>

<p>ネイティブアプリ開発でも、アプリの一部分をWebViewで記述するということは、よく行なわれています。自前で用意したWebViewをアプリ内に組み込むこともできますが、ここは開発するアプリの要件に併せて検討が必要でしょう。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/no_cordova.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/no_cordova.png" alt="no_cordova" width="300" height="167" class="aligncenter size-full wp-image-7264" srcset="/wp-content/uploads/2014/06/no_cordova.png 300w, /wp-content/uploads/2014/06/no_cordova-207x115.png 207w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h2>ハイブリッドアプリの事例</h2>

<p>有名なところではWikipediaのモバイルアプリや、クックパッドのAndroid版はHTML5が用いられています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/cookpad.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/cookpad-300x229.png" alt="cookpad" width="300" height="229" class="aligncenter size-medium wp-image-7256" srcset="/wp-content/uploads/2014/06/cookpad-300x229.png 300w, /wp-content/uploads/2014/06/cookpad-207x158.png 207w, /wp-content/uploads/2014/06/cookpad.png 310w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/wikipedia.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/wikipedia.png" alt="wikipedia" width="300" height="237" class="aligncenter size-full wp-image-7268" srcset="/wp-content/uploads/2014/06/wikipedia.png 300w, /wp-content/uploads/2014/06/wikipedia-207x163.png 207w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>ほかにもPhoneGapの<a href="http://phonegap.com/app/" title="公式サイトへアクセス" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">公式サイト</a>にたくさん事例が掲載されていますので、興味がある方は<a href="http://phonegap.com/app/" title="公式サイトへアクセス" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">アクセス</a>してみてください。</p>

<h2>HTML5ハイブリッドアプリ開発のFAQ</h2>

<p>ここまで簡単にHTML5ハイブリッドアプリについて紹介しましたが、ハイブリッドアプリについてよく聞かれる疑問について答えていきたいと思います。</p>

<h3>1. ハイブリッドアプリは遅いのでは?</h3>

<p>普通にWebサイトのように作ると遅くなってしまいます。Android2.3等のWebViewだと特にパフォーマンスに問題が出ます。ここではHTML5アプリの描画や、パフォーマンスのチューニング方法を知っていることが重要になってきます。</p>

<h3>2. この機能はハイブリッドアプリで作れますか?</h3>

<p>実際に仕様策定段階に入る前に実現したい機能が本当にHTML5アプリで実現可能なのか、実現可能であるとしても意図した挙動になるのかというのを事前に検証しましょう。HTML5のAPIで実現できなくてもPhoneGapのプラグインが公開されている場合もあります。場合によってはPhoneGapプラグインを自作することで、対応可能である場合もあります。もちろん、ネイティブ部分をどんどん拡張していけば、HTML5でアプリを作るメリットも薄れてきますので、ハイブリッドアプリ以外の選択肢もあることを意識しておきましょう。</p>

<h2>ハイブリッドアプリ開発のテクニック•ノウハウ</h2>

<p>ハイブリッドアプリを実際に作っていくと、いろいろな問題に遭遇します。特によくあるのはレンダリングや反応が遅いという問題や、アプリっぽいUIを作るのが難しい問題でしょう。</p>

<p>過去に私が発表した<a href="http://www.slideshare.net/monaca_mobi/hybridapp-tips" title="スライド" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">スライド</a>の後半で、アプリの最適化のテクニックを紹介していますので、参考にしてください。また、私が執筆した<a href="http://www.amazon.co.jp/Android%E5%AF%BE%E5%BF%9C-HTML5-ハイブリッド%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA-Software-Design-ebook/dp/B00HEB6UFM/ref=sr_1_1?ie=UTF8&amp;qid=1402460687&amp;sr=8-1&amp;keywords=ハイブリッド%E3%82%A2%E3%83%97%E3%83%AA%E3%80%80%E5%AE%9F%E8%B7%B5" title="[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門</a>にもハイブリッドアプリ開発のノウハウや知識を網羅的に詰め込んでいます。よろしければ、ご覧ください。</p>

<h2>ハイブリッドアプリの開発環境</h2>

<p>ハイブリッドアプリを開発するためのツール群や開発環境も近年、豊富に出てきています。Adobe社が提供している<a href="https://build.phonegap.com/" title="PhoneGap Build" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGap Build</a>やTelerik社の<a href="http://www.telerik.com/appbuilder" title="AppBuilder" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AppBuilder</a>、<a href="http://www.appgyver.com/composer" title="AppGyver" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AppGyver</a>、また、ハイブリッドアプリのデバッグ環境としては<a href="http://people.apache.org/~pmuellr/weinre/docs/latest/Home.html" title="Weinre" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Weinre</a>や<a href="https://www.jshybugger.com/" title="jsHybugger" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">jsHybugger</a>などが出てきています。</p>

<p>最後にハイブリッドアプリ開発環境として、私も開発に携わっている<a href="http://monaca.mobi/ja/" title="Monaca" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>と<a href="http://onsenui.io/" title="Onsen UI" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen UI</a>についてご紹介させていただきます。</p>

<p><a href="http://monaca.mobi/ja/" title="Monaca" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>はクラウド上でAndroidやiOSなどのモバイルアプリ開発を行なうためのツールです。登録するだけで、すぐに無料で使うことができます。Monacaにはクラウド上のIDEが備わっており、Webブラウザ上でコーディングからデバッグ、ビルドまでを一貫して行なうことが可能です。このMonacaを使って、既にGoogle PlayストアやApp Storeには、2000以上のアプリが公開されています。</p>

<p><a href="http://onsenui.io/" title="Onsen UI" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen UI</a>は、モバイルアプリらしいUIを手軽に作成することを目的として開発されているUIフレームワークです。フレームワークとして人気の高い<a href="https://angularjs.org/" title="AngularJS" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">AngularJS</a>を組み込んでいます。Onsen UIのCSSを用いて作成されたモバイルアプリUIのコレクションとして、<a href="http://components.onsenui.io/" title="Onsen CSS Components" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen CSS Components</a>というサイトを用意しています。ここでは、Onsen UIのCSSを用いて作成された様々なモバイルアプリのUIのHTML、CSSを自分好みのテーマに自由にカスタマイズしてダウンロードすることができます。</p>

<h2>終わりに</h2>

<p>ここまでこの記事では、HTML5ハイブリッドアプリ開発に関する諸事情をまとめて紹介しましたが、いかがだったでしょうか。</p>

<p>以前からハイブリッドアプリに関する動きを見てみると、開発者が実際にHTML5を使ったアプリを開発・公開する事例が増えてきました。また、モバイル端末のスペックが向上してきたおかげでHTML5でもそれなりの速度がでるようになり、だんだんとハイブリッドアプリ開発に関する開発者の認知が上がってきています。</p>

<p>それのおかげで開発者間での話題も、単に「WebViewを使ってみました」程度の話から、実際に「HTML5を使ってどうやって質の良いアプリを開発するか」というような現実的な話にシフトしてきている印象です。</p>

<p>また開発者の意識だけではなく、この記事で紹介したようなハイブリッドアプリ開発のためのツール、ライブラリや最適化のためのノウハウもだんだんと育ってきています。</p>

<p><a href="https://github.com/MobileChromeApps" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Mobile Chrome Apps</a>や<a href="http://www.mozilla.org/ja/firefox/os/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Firefox OS</a>など、最初からHTML5でモバイルアプリを書くことを前提とするプロダクトも出ていることを考えると、今後ますますモバイルアプリ開発でのHTML5の活躍する場所が広がっていくものと思われます。</p>

<p>読者の方もぜひHTML5ハイブリッドアプリ開発に挑戦していただければと思います。</p>
]]></content:encoded>
		
		<series:name><![CDATA[ハイブリッドアプリ開発最前線]]></series:name>
	</item>
	</channel>
</rss>
