<?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>ハイブリッドアプリ開発最前線 &#8211; HTML5Experts.jp</title>
	<atom:link href="/series/hybrid-special/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>エキスパートがぶっちゃけトークで語る「ハイブリッドアプリ開発、ホントのトコロ」</title>
		<link>/miyuki-baba/7643/</link>
		<pubDate>Mon, 04 Aug 2014 00:00:11 +0000</pubDate>
		<dc:creator><![CDATA[馬場 美由紀]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[W3C仕様]]></category>
		<category><![CDATA[html5j]]></category>
		<category><![CDATA[デバイス]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=7643</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (9)HTML5を活用したハイブリッドアプリ開発について、Web業界を代表するエキスパート陣が様々な観点からレポートをお届けした「ハイブリットアプリ開発最前線」特集。 最後のレポート...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (9)</div><p>HTML5を活用したハイブリッドアプリ開発について、Web業界を代表するエキスパート陣が様々な観点からレポートをお届けした「<a href="https://html5experts.jp/series/hybrid-special/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ハイブリットアプリ開発最前線</a>」特集。</p>

<p>最後のレポートは「ハイブリッドアプリ開発、ホントのトコロ」と題し、第48回HTML5とか勉強会「ハイブリッドアプリ開発最新動向」の懇親会で行われたぶっちゃけトーク対談を再現レポートします。</p>

<p><img src="/wp-content/uploads/2014/07/main3.jpg" alt="" width="640" height="200" class="alignnone size-full wp-image-8045" srcset="/wp-content/uploads/2014/07/main3.jpg 640w, /wp-content/uploads/2014/07/main3-300x93.jpg 300w, /wp-content/uploads/2014/07/main3-207x64.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><br><span style="font-size: 95%;">▲登壇者（左から）：株式会社ニューフォリア <a href="https://html5experts.jp/htpboost/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">畠田喜丈</a>さん、アシアル株式会社 <a href="https://html5experts.jp/anatoo/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">久保田光則</a>さん、AngularJS Japan User Group管理人 <a href="https://html5experts.jp/canidoweb/ " data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">金井健一</a>さん、Google Developer Expert（Chrome）<a href="https://html5experts.jp/yoshikawa_t/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">吉川徹</a>さん<br>モデレーター：HTML5 Experts.jp編集長 <a href="https://html5experts.jp/shumpei-shiraishi/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">白石俊平</a></span></p>

<h2>ハイブリッドアプリ開発にしてよかったことは？</h2>

<p><br>
<strong>白石：</strong>ハイブリッドアプリ開発が注目され出してもう数年が経つんですが、まだくすぶってる感があると思うんです。今日は本音でいろいろ聞けたらと。まず、ハイブリッドアプリ開発にしてよかったと思うことを聞かせてください。<br><br>
<strong>久保田：</strong>僕はハイ・フィデリティ（忠実度の高い）なプロトタイプをさくっと作れることですね。アプリの機能は動かないけど、アプリのユーザーインターフェイスやインタラクションがわかる。動きやさわった感じが確かめられるし、アプリケーションの見た目の“ガワ”を作るのが断然早くなります。<br><br>
これがいいアプリなのか判断に迷うフェーズでも、実際のUIの“ガワ”をがっちり作ることで、高い確度で確かめることができる。それに、クロスデバイス,クロスプラットフォームでがしがし動くので、アプリのUIを確かめるのに役立っています。サービスの受託でやってたときに、お客様にもそんなに早くできるのかって驚かれたこともありますね。</p>

<p><div id="attachment_8051" style="width: 650px" class="wp-caption alignnone"><a href="https://html5experts.jp/anatoo/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/kubota3.jpg" alt="アシアル株式会社　久保田 光則さん" width="640" height="321" class="size-full wp-image-8051" srcset="/wp-content/uploads/2014/07/kubota3.jpg 640w, /wp-content/uploads/2014/07/kubota3-300x150.jpg 300w, /wp-content/uploads/2014/07/kubota3-207x103.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">アシアル株式会社　久保田 光則さん</p></div>
<br>
<strong>白石：</strong>ちなみにそのプロトタイプって、PCのWebブラウザでも動くんですか？<br><br>
<strong>久保田：</strong>動きますよ。開発スタイルにもよりますが、モバイルでいちいち確認するより、Webブラウザでも確認できたほうが早かったりします。お客さんにもすぐ触ってもらえるし、開発の後半で「ここのUIがいけてない」と指摘されるのを最初からつぶせるので便利です。<br><br>
<strong>畠田：</strong>そんな高品質なプロトタイプを無料で作っちゃうと、受注先のシステムインテグレーション企業とかに、「こんなに簡単にできるんなら安くして」って言われたりすることがありそう。なんかすごく頑張って作ったのに、損した気分にならない？<br><br>
<strong>久保田：</strong>もちろんハイブリッドアプリの利便性を理解してくれる、リテラシーが高いお客さんであることは条件になるかなと思います。<br><br>
<strong>畠田：</strong>やっぱり（笑）。<br><br>
<strong>畠田：</strong>私がハイブリッド開発で良いと思える点は、デザイナーとエンジニアの分担作業がしやすいところですね。モバイルアプリの案件って、だいたいUI上の要件は似たようなものが多いし、そういう繰り返し作業ってエンジニアにはつらいんですよね。同じことをずっとやり続けるのって技術力の向上も期待できないし。<br><br>
その点、ハイブリッドアプリはUIのデザインはコーディングも含めてデザイナーにお任せしやすいので、エンジニアはロジックに集中できる。早い・安いだけではない、エンジニアのモチベーションの根っこの部分に寄与することも多いような気がします。<br><br>
<strong>白石：</strong>HTML5を書けるデザイナーさんは増えてますもんね。<br><br>
<strong>金井：</strong>僕はある程度動くものがサクッと作れるので、早い段階からアプリのイメージをお客さんと共有できることですね。コストをかけずにハイブリッドアプリでまずリリースして、人気が出たらネイティブにしてもいいし、ダメならそのままで、みたいな選択肢がある。はじめからAndroidとiPhone用のネイティブアプリを両方開発するより、リスクが少ない。</p>

<p><img src="/wp-content/uploads/2014/07/photo.jpg" alt="" width="640" height="367" class="alignnone size-full wp-image-8067" srcset="/wp-content/uploads/2014/07/photo.jpg 640w, /wp-content/uploads/2014/07/photo-300x172.jpg 300w, /wp-content/uploads/2014/07/photo-207x118.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><br>
<strong>白石：</strong>ところで、ここまでクロスプラットフォームでの移植性の話があまり出てきていませんね。ハイブリッドの利点といえばそこだと思っていたので、意外。<br><br>
<strong>畠田：</strong>ああ、移植性については、まずありきのつもりで話してました。<br><br>
<strong>久保田：</strong>そうですね。ちなみに私はAndroid版は動作が遅いので、先に作るようにしています。前にiOSから作ってAndroidに移植したら遅くて大変な目に合ったことがあって…。<br><br>
<strong>白石：</strong>ちなみに最近は、Androidは2.3以上をターゲットにして開発しているんですか？まだ2.2もスコープに入ってるのかな。<br><br>
<strong>畠田：</strong>2.2が要求仕様書に入ってるところはまだ多いですね。ただ「端末買い換えが2年だからそこは切り捨てましょう」って、そこは削ってもらうように説得しようと試みますけどね（笑）。<br><br>
<strong>吉川：</strong>私は一エンジニアとしての視点から、ハイブリッドアプリでよかった点をお話すると、やはりWebエンジニアがJavaやObjective-Cが書けなくても、AndoroidやiOSアプリの仕事が受けられることですね。最近はWebのコードで書いて、Cordovaでコンパイルすればアプリが作れる。仕事の幅が広がって楽しいです。<br><br>
<strong>──ここで会場から質問が寄せられた</strong><br><br>
<strong>Q.</strong>ハイブリッドアプリというと移植性の話もあるけど、クックパッドの事例が成功として挙げられます。ユーザーを絞り込んだABテストが容易にできるだけではなく、デブロイの早さなどを考慮してハイブリッドアプリにしていると聞いたことがあるのですが、そのほかにハイブリッドアプリにしかできないことってありますか？<br><br>
<strong>畠田：</strong>ハイブリッドアプリって遅いんじゃないか？というハイブリッドアプリに否定的な声に対抗できるので、クックパッドさんの成功事例は我々にとってありがたいですね。<br><br>
詳しくは存じ上げないのですが、クックパッドさんにとっては、新機能のデプロイまでの時間を短くするための、現時点での最善策がハイブリッドアプリなのではないでしょうか。</p>

<p><div id="attachment_8046" style="width: 650px" class="wp-caption alignnone"><img src="/wp-content/uploads/2014/07/hatada.jpg" alt="株式会社ニューフォリア　畠田喜丈さん" width="640" height="351" class="size-full wp-image-8046" srcset="/wp-content/uploads/2014/07/hatada.jpg 640w, /wp-content/uploads/2014/07/hatada-300x164.jpg 300w, /wp-content/uploads/2014/07/hatada-207x113.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><p class="wp-caption-text">株式会社ニューフォリア　畠田喜丈さん</p></div>
<br>
<strong>久保田：</strong>機能面やUXの観点からいうと、なんだかんだ言っても“ネイティブが最高！”だと思ってます。だって、FacebookやTwitterはプラットフォームに合わせて書き換えてるじゃないですか。結局、それが一番いい体験だからなんですよね。ハイブリッドの利点は、機能やUXとは別の側面から語られるべきかな、と思います。<br><br>
<strong>──さらに会場からの質問が飛ぶ</strong><br><br>
<strong>Q.</strong>最近、ハイブリッドアプリを開発するときに、（PhoneGap）プラグインを使わないでできることが少なくて苦戦しています。時には、ネイティブコードでプラグインを書く必要が生じたりとか。これって、Web技術で全部書くという理想から言うと残念なのですが、どうお考えですか？<br><br>
<strong>久保田：</strong>さっき“ネイティブが最高！”と言ったのは、アプリの要件と環境によります。FacebookやTwitterみたいに開発予算があって、エンジニアが揃えられればなんでもできると思いますが、全部のプロジェクトがそんなことができるかというとできない。プラットフォームごとに最高のUXを提供することよりも、リリースのスピードや限られた予算と言った事情が優先されることもあるということです。<br><br>
だから絶対HTML5で書かなければいけないと思い込む事自体、ナンセンスかなと。例えばリリースのスピードが優先されている場合に、ネイティブで書いたほうが早ければ、ネイティブで書けばいいと思います。<br><br>
<strong>吉川：</strong>ネイティブでしか書けないものはネイティブアプリで作ればよいので、私は基本的にはハイブリッドアプリで“ネイティブコードで書いたら負け”と思ってます。ただ、お客さんはモバイルアプリ大好きなので、何でもかんでもモバイルで作ってくださいと言ってくることが多いのも現実としてあります。その時は機能面で妥協できるのかとか、それなりのコストがかかることを提示して、なるべくプラグインで書かなくていいようにしています。それくらいプラグインを書くのはつらい（笑）。</p>

<h2>ハイブリッドアプリで開発してドはまりしたことある？</h2>

<p><br>
<strong>白石：</strong>ところで、ハイブリッドアプリでドはまりした経験はありますか？デバックが全然できなかったとか、移植したら動作が違うとか。<br><br>
<strong>金井：</strong>端末によって同じCSSなのに見た目が全然違うのもそうですが、JavaScriptの挙動も違うところ。一方の端末は滑らかに動くのに、別の端末だとカクカクだったり、もっさりしたり。とにかく端末ごとに挙動が違うのは予想できないので、トライ＆エラーを繰り返すことになりましたね。</p>

<p><div id="attachment_8060" style="width: 650px" class="wp-caption alignnone"><a href="https://html5experts.jp/canidoweb/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/kanai11.jpg" alt="html5j Web先端技術味見部部長　AngularJS Japan User Group 管理人　金井 健一さん" width="640" height="350" class="size-full wp-image-8060" srcset="/wp-content/uploads/2014/07/kanai11.jpg 640w, /wp-content/uploads/2014/07/kanai11-300x164.jpg 300w, /wp-content/uploads/2014/07/kanai11-207x113.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">html5j Web先端技術味見部部長　AngularJS Japan User Group 管理人　金井 健一さん</p></div>
<br>
<strong>──会場からも同様の経験談が寄せられる</strong><br><br>
<strong>Q.</strong>2年前くらいにハイブリッドアプリを開発したとき、Android2.2と2.3の全盛期だったんですが、同じCSSを適用しているのにデバイスによって見た目が違うのが困りました。最近はどうなんでしょうか？<br><br>
<strong>吉川：</strong>最近のAndroidだと4.1以降は標準ブラウザがChromeになっていますし、4.4からは、内部のWebViewもBlink(Chromeのレンダリングエンジン)が利用されるようになっているので、2.x時代に比べると大分改善されていると思います。<br><br>
<strong>──ここで、当時のひどい開発事例の話が盛り上がり</strong><br><br>
<strong>畠田：</strong>昔は見た目のスピードを上げるために、ひどいハックをする端末メーカーもありました。ここにいるメンバーはハイブリッドアプリを推進する立場の人間だけど、なんでもかんでもハイブリッドアプリがいいですよと万能の薬のように言っていけないと思うんです。<br><br>
ハイブリッドアプリに向いてないものは全力で羽交い絞めして、止めるべきなんですよね。そうでないとハイブリッドアプリ自体が間違った方向で捉えられてしまう。ネイティブで開発したほうがいいものは、ちゃんとジャッジして伝えてあげるのも重要ですね。</p>

<h2>標準化の動きはどうなってる？</h2>

<p><br>
<strong>白石：</strong>CordovaやニューフォリアのAPI、Chrome AppsのAPIなど、モバイルデバイス向けのWeb APIは細分化しつつありますが、これって標準化できないものなんでしょうか。<br><br>
<strong>──ここで、白石さんが突然会場の<a href="https://html5experts.jp/futomi/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">羽田野太巳</a>さんを指名</strong><br><br>
羽田野さん、現状ってどんなかんじなんですか？<br><br>
<strong>羽田野：</strong>最新情報はあまりよく知らないんだけど、統一はしばらくないんじゃないかと思います。もちろんいつかは一緒にするために施策を立てているとは思いますが、現在はFirefox OS/Windows 8/Chrome Appsなど、各ベンダーが独自にAPIを作り込んでるのが現状です。<br><br>
でも、いつか標準化してくれるからそれまで開発を待とうなんてベンダーはないわけで。いろいろAPIが出てきて、いろんな事例を経験して、みんなが試していいものが残っていくし、ある意味健全です。だからまだまだ時間がかかる。個人的にはベンダーがそれぞれ独自のAPIで作っていくのは大歓迎ですね。<br><br>
これまではネイティブでしかできなかったことが、JavaScriptで何でも開発できるようになってきました。今はばらばらだけど、一つのプログラム言語だけでできるようになりつつあると思います。これはまだデファクトではないけど、コンソーシアム標準的には前向きに捉えていいのではないでしょうか。</p>

<p><div id="attachment_8032" style="width: 650px" class="wp-caption alignnone"><a href="https://html5experts.jp/futomi/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/hatano.jpg" alt="羽田野 太巳さん" width="640" height="327" class="size-full wp-image-8032" srcset="/wp-content/uploads/2014/07/hatano.jpg 640w, /wp-content/uploads/2014/07/hatano-300x153.jpg 300w, /wp-content/uploads/2014/07/hatano-207x105.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">有限会社futomi 代表取締役、株式会社ニューフォリア　取締役　最高技術責任者 羽田野 太巳さん</p></div>
<br>
<strong>吉川：</strong>ちなみに、Chrome AppsのAPIはまだ標準化するつもりはないと思います。将来的にはW3Cの議題にのせるという話も出ていますが、今は各プラットフォームが独自に作ってて、そのフィードバックを収集している段階じゃないかと。<br><br></p>

<h2>HTML5でデバイスごとの互換性や移植性がとれてない？</h2>

<p><br>
<strong>白石：</strong>ところで、HTML5ならデバイスごとの互換性や移植性がとれると言われていたのに、結局選ぶプラットフォームに依存していて、互換性がとれてないですよね？その辺はいかがでしょうか。</p>

<p><div id="attachment_8062" style="width: 650px" class="wp-caption alignnone"><a href="https://html5experts.jp/shumpei-shiraishi/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/shiraishi.jpg" alt="HTML5 Experts.jp編集長 　白石 俊平さん" width="640" height="305" class="size-full wp-image-8062" srcset="/wp-content/uploads/2014/07/shiraishi.jpg 640w, /wp-content/uploads/2014/07/shiraishi-300x142.jpg 300w, /wp-content/uploads/2014/07/shiraishi-207x98.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">HTML5 Experts.jp編集長　白石 俊平</p></div>
<br>
<strong>久保田：</strong>ネイティブの機能を呼び出すCordovaプラグインのAPIインターフェイスは、なるべく全部W3Cが出した仕様に従ってポリフィルを作っています。<br><br>
<strong>羽田野：</strong>そもそもHTML5に関わらずプラットフォームに対する互換性がないとか、Web標準やHTML5に期待しすぎな面があるよう気がします。Web標準ってキャッチアップにしかすぎなくて、最先端のものがいきなり標準化されるわけではありません。これまで標準化されたのはHTML5というのはWebの延長であって、アプリプラットフォームはあとから出てきたものなんですよね。<br><br>
OSが提供するAPIの数からすれば、WebのAPIなんてまだまだ足りない。はじめからHTML5が何でもできると思ってしまうこと自体ナンセンスで、足りないものは独自実装に頼るしかない。WebとOSの差分はどうしても出てしまうけど、それはしょうがないし、期待しすぎてはいけない。それでもこのトレンドでWebの技術しかなかった人がアプリを作れるようになってきたのだから、十分価値があると思います。<br><br>
<strong>畠田：</strong>Web技術の応用範囲はすごい勢いで広がっています。標準化のスピードと比較しても圧倒的に早いわけです。例えばクルマに使おうかとか、今まで思ってもみなかったところに拡大していて、私たちWeb業界の人間からすると、すごく面白いわけです。だから今は標準化はまだ先でもいいんじゃないかと思います。<br><br>
<strong>羽田野：</strong>もう一つ、標準化に対してブラックな話をすると、皆さんの仕事の単価が下がることにもつながるんです。だって誰が作っても同じクオリティのアプリがプラットフォームに上がってくるんですから、お金を取る理由がなくなってくるんです。<br><br>
今みたいにプラットフォームごとにばらばらのカオスな状況だからこそ、コストも請求できるといういい面もある。だから誰が作っても同じというものだけが標準化されていけばいい。価値が下がって単価が下がってもいいものだけが、標準化されればいいと考えたほうがいいと思いますよ。</p>

<h2>さまざまなデバイスでWeb技術が果たす役割</h2>

<p><br>
<strong>白石：</strong>これからさらに様々なデバイスが登場し、Web技術が果たす役割も増えていくと思います。皆さんはどのようにお考えですか？</p>

<p><img src="/wp-content/uploads/2014/07/photo3.jpg" alt="" width="640" height="341" class="alignnone size-full wp-image-8070" srcset="/wp-content/uploads/2014/07/photo3.jpg 640w, /wp-content/uploads/2014/07/photo3-300x159.jpg 300w, /wp-content/uploads/2014/07/photo3-207x110.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><br>
<strong>吉川：</strong>いろんなデバイスにWebの技術が広がっていくのはうれしいですね。Webの進化のスピードに合わせて、デジタル家電のUIやデザインの進化も加速するはず。期待したいです。<br><br>
<strong>畠田：</strong>ユーザーインターフェイスもだんだんWebに準じたものになり、今まで古くさかったデザインやUIが洗練されたものになっていくはずです。Webで活躍しているエンジニアやデザイナーたちによって使いにくいインターフェイスやマニュアルなどが革新されていく。誰でも使えるようになる世界が早く来てほしい。<br><br>
<strong>白石：</strong>ただ僕が心配しているのは、ウェアラブルなデバイスなど、デバイスの小型化がどんどん進んでいる現状では、デバイスの「非力化」も進んでいるんじゃないかと思うのです。そうなると、比較的高いCPUパワーを必要とするWeb技術は敬遠されて、ネイティブが当たり前になっちゃうんじゃないかと。Webブラウザを搭載しないデバイスも増えてきそうです。<br><br>
<strong>吉川：</strong>それは心配ないんじゃないでしょうか。ハードウェアの進化があったからこそ、ウェアラブルが出てきたはず。今後もハードウェアの進化は続くでしょう。<br><br>
例えば、昔のインターネット回線が遅かった時代は動画なんてありえませんでしたが、回線が早くなったからこそ品質が良くなって動画サービスがブレイクした。要は、環境次第で変わるということです。今は、ハードウェアの性能が上がってきているからこそ、Webを組み込んでも大丈夫じゃないかという流れですね。未来はそんなに暗くはないんじゃないかな。</p>

<div id="attachment_8054" style="width: 650px" class="wp-caption alignnone"><a href="https://html5experts.jp/yoshikawa_t/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/yoshikawa2.jpg" alt="Google Developer Expert（Chrome）　吉川 徹さん" width="640" height="295" class="size-full wp-image-8054" srcset="/wp-content/uploads/2014/07/yoshikawa2.jpg 640w, /wp-content/uploads/2014/07/yoshikawa2-300x138.jpg 300w, /wp-content/uploads/2014/07/yoshikawa2-207x95.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">Google Developer Expert（Chrome）　吉川 徹さん</p></div>

<p>さらに会場からは、HTMLとJavaScriptとCSSで書くから重くなるのではないかという声も。JavaScriptだけにすれば軽くなるのではという意見や、3つ以外の言語や新たなレンダリングエンジンが生まれる可能性、WebGLやFamo.usなどに対する期待の声も多く聞かれました。</p>

<p>未来のデバイスとWeb技術にも夢を馳せながら語り合った対談もここで終了。Webとネイティブのメリット、デメリットを合わせ持つハイブリッドアプリが、今後デバイスやWeb技術の進化とともにどう技術的課題をクリアしていくのか。編集部では今後も最新事情をお伝えしていきたいと思います。</p>

<h4>★今回の登壇者が執筆したハイブリッドアプリ特集記事もぜひ合わせてご覧ください。</h4>

<ul>
<li>久保田光則さん執筆：<a href="https://html5experts.jp/anatoo/7253/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5ハイブリッドアプリ開発、最新動向はやわかり！</a></li>
<li>金井健一さん執筆：<a href="https://html5experts.jp/canidoweb/7359/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">キミはionicを知っているか？AngularJS+PhoneGap+美麗コンポーネント群！</a></li>
<li>畠田喜丈さん執筆：<a href="https://html5experts.jp/htpboost/8318/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGapとは一味違う！純国産ハイブリッドアプリフレームワーク、「アプリカン」事始め</a></li>
<li>吉川徹さん執筆：<a href="https://html5experts.jp/yoshikawa_t/9240/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Chrome AppsをモバイルでもーChrome Apps on mobileー</a></li>
<li>ハイブリッドアプリ開発最前線：特集レポート一覧は<a href="https://html5experts.jp/series/hybrid-special/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a></li>
</ul>
]]></content:encoded>
		
		<series:name><![CDATA[ハイブリッドアプリ開発最前線]]></series:name>
	</item>
		<item>
		<title>Chrome AppsをモバイルでもーChrome Apps on mobileー</title>
		<link>/yoshikawa_t/9240/</link>
		<pubDate>Fri, 01 Aug 2014 00:00:37 +0000</pubDate>
		<dc:creator><![CDATA[吉川 徹]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Chrome Apps]]></category>
		<category><![CDATA[ハイブリッド]]></category>
		<category><![CDATA[モバイル]]></category>

		<guid isPermaLink="false">/?p=9240</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (8) ハイブリッドアプリ開発の手法のひとつして、Chrome Appsをモバイルアプリに変換するApache CordovaベースのChrome Apps on mobileについ...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (8)</div><p><style>.codecolorer-container.text.default { max-width: 95%; margin-left: 1em; margin-top: -1em; margin-bottom: 2em;}</style>
ハイブリッドアプリ開発の手法のひとつして、Chrome Appsをモバイルアプリに変換するApache CordovaベースのChrome Apps on mobileについて解説します。これによって、Chrome Appsとして作成したWebアプリがAndroidやiOS向けのネイティブアプリとして公開、インストールすることができるようになります。</p>

<!-- more -->

<p><a href="https://github.com/MobileChromeApps/mobile-chrome-apps" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Chrome Apps on mobile</a>は、まだデベロッパープレビュー版で、GitHub上でプロジェクトが公開されています。まだデベロッパープレビュー版ということで、Chrome AppsのすべてのAPIを利用できるわけではありませんが、順次対応される予定です。本記事では、そもそも「Chrome Appsとは何なのか？」というところから、Chrome Apps on mobileの開発環境の構築やビルド、実行までひと通り見ていきます。</p>

<h2>Chrome Appsとは？</h2>

<p>Chrome Appsとは、単にChromeで動作するWebアプリというわけではなく、<a href="https://chrome.google.com/webstore/category/apps?hl=ja" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Chromeウェブストア</a>上で配布・販売できるアプリケーションプラットフォームです。通常のWebアプリをChrome Appsとしてそのまま公開することもできますし（若干のマニフェストファイルを書く必要はあります）、Chromeに実装されている高機能なAPIを利用して、よりリッチなWebアプリを作ることもできます。</p>

<div id="attachment_9249" style="width: 310px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/07/chromeapps1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/chromeapps1-300x214.png" alt="Chromeウェブストア" width="300" height="214" class="size-medium wp-image-9249" srcset="/wp-content/uploads/2014/07/chromeapps1-300x214.png 300w, /wp-content/uploads/2014/07/chromeapps1-207x148.png 207w, /wp-content/uploads/2014/07/chromeapps1.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Chromeウェブストア</p></div>

<p>例えば、通常のWebアプリをChrome Appsとして公開する場合（Chrome独自のAPIを利用しないケース）、次のようにマニフェストファイル「manifest.json」とバックグラウンドで動作するJavaScriptファイル「background.js」を記述し、Webアプリのファイル一式と同梱することによって簡単にChrome Appsとして動作させることができます。</p>

<p>ChromeAppSample （任意のフォルダ）<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── index.html （Webアプリ本体一式を同梱する）<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├── manifest.json<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└── background.js<br></p>

<p></p><pre class="crayon-plain-tag">{
  "name": "Chrome App Sample",
  "version": "0.1",
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  }
}</pre><p></p>

<p></p><pre class="crayon-plain-tag">chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('index.html', {
    'bounds': {
      'width': 400, 'height': 500
    }
  });
});</pre><p></p>

<p>また、Chrome Apps上では、独自の<a href="https://developer.chrome.com/apps/api_index" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Chrome API</a>を使って、さらにリッチなWebアプリを作ることも可能になっています。Chrome Appsの作成方法についてのより詳細な情報は、公式ページの「<a href="https://developer.chrome.com/apps/about_apps" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">What Are Chrome Apps?</a>」にまとまっていますので、参考にしてください。簡単に試してみたいという場合は、「<a href="https://developer.chrome.com/apps/first_app" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Create Your First App</a>」を試してください。</p>

<h2>開発環境の構築</h2>

<p>まずは、Chrome Apps on mobileの開発環境を構築します。Chrome Apps on mobileは、iOSのバージョン6以降、Androidのバージョン4.0以降を対象にしています。どちらを対象にするかによって必要なツール・ライブラリが異なりますので、対象に合わせて準備しましょう。いずれの環境でも必要なのは、Node.js (バージョン0.10.0以降)です。既にインストールされている場合は必要ありませんが、まだの場合はWindows、Mac（またはLinux）いずれでも、<a href="http://nodejs.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">こちら</a>からダウンロードしてインストールしておきましょう。さらに環境によって次のようなツール・ライブラリが必要になります。</p>

<h3>Androidの場合</h3>

<ul>
<li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Java JDK7 以降</a></li>
<li><a href="http://developer.android.com/sdk/index.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Android SDK 4.4.2 以降</a>（ <code>sdk/tools</code> と <code>sdk/platform-tools</code> をPATHに追加する）</li>
<li><a href="http://ant.apache.org/bindownload.cgi" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Apache Ant</a>（ <code>apache-ant-x.x.x/bin</code> をPATHに追加する）</li>
</ul>

<h3>iOSの場合</h3>

<ul>
<li><a href="https://developer.apple.com/xcode/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Xcode 5 以降</a></li>
<li><a href="https://github.com/phonegap/ios-deploy" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ios-deploy</a>（iOSデバイスにデプロイする際に必要です）<br>
<code>> npm install -g ios-deploy</code></li>
<li><a href="https://github.com/phonegap/ios-sim" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ios-sim</a>（iOSシミュレーターにデプロイする際に必要です）<br>
<code>> npm install -g ios-sim`</code></li>
</ul>

<p>※ Appleストアに公開する場合は、iOSデベロッパー登録が必要です</p>

<h3>ccaコマンドラインツールのインストール</h3>

<p>最後に、Chrome Apps on mobileのツールとしてccaコマンドラインツールをインストールします。</p>

<p><code>> npm install -g cca</code></p>

<p>既に、ccaがインストール済みでアップデートをする場合は、<code>npm update -g cca</code>を実行しましょう。ccaのインストール後に、次のコマンドでAndroidおよびiOSの開発環境が揃っているか確認できます。</p>

<p><code></p>

<blockquote>
  <p>cca checkenv
  cca v0.2.2</p>
</blockquote>

<h2>Checking that tools are installed</h2>

<p>Android SDK detected.
Xcode detected.
</code></p>

<p>「Android SDK detected.」と「Xcode detected.」という結果が表示されればOKです。片方のみの環境であれば、いずれか片方だけが表示されます。例えば、Android環境のみの場合は、「Android SDK detected.」だけが表示されます。</p>

<h2>プロジェクトの作成とビルド、実行</h2>

<p>開発環境の構築が終わったら、実際にプロジェクトを作成してビルド、実行してみましょう。ccaコマンドツールを使って次の手順で行います。</p>

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

<ul>
<li><p>新規にプロジェクトを作成する場合
<code>> cca create ChromeSampleApp</code>
カレントディレクトに <code>ChromeSmapleApp</code> というフォルダが作成され、プロジェクトが作られます。</p></li>
<li><p>既にあるChrome Appsを元にプロジェクトを作成する場合</p></li>
</ul>

<p>既にChrome Appsを作成済みであれば、オプションでそれを指定します。指定方法には、次の2種類があります。</p>

<p><code>> cca create ChromeSampleApp --link-to=path/to/manifest.json</code></p>

<p>作成済みのChrome Appsのマニフェストファイルの場所を指定します。 <code>path/to/</code>を皆さんの環境に合わせて置き換えてください。<code>--link-to</code>オプションでは、指定したフォルダへのシンボリックリンクでプロジェクトが作成されます。</p>

<p><code>> cca create ChromeSampleApp --copy-from=path/to/manifest.json</code></p>

<p><code>--copy-from</code> オプションでは、指定先のフォルダをコピーしてプロジェクトが作成されます。</p>

<h3>ビルド、実行</h3>

<p>プロジェクトの作成が終わったら、いよいよビルドし、実行してみます。こちらも非常に簡単で、プロジェクトのルートフォルダ上で、次のようにccaコマンドを実行するだけで済みます。</p>

<ul>
<li>Androidのエミュレータで実行</li>
</ul>

<p><code>> cca emulate android </code></p>

<p>※ Androidのエミュレータが設定されていない場合、<code>android avd</code>コマンドでセットアップする必要があります</p>

<ul>
<li>Androidの実機で実行（デバイスをUSBデバッグモードで接続します）</li>
</ul>

<p><code>> cca run android </code></p>

<ul>
<li>iOSのシミュレーターで実行</li>
</ul>

<p><code>> cca emulate ios </code></p>

<ul>
<li>iOSの実機で実行（デバイスをUSBで接続します）
<code>> cca run ios </code></li>
</ul>

<p>それぞれの環境に合わせて、<code>cca emulate</code> または、<code>cca run</code>で簡単にビルド、実行することできます。単純にビルドするだけであれば、 <code>cca build</code>で可能です。是非試してみてください！</p>

<div id="attachment_9403" style="width: 169px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/07/chromeapps2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/chromeapps2-159x300.png" alt="iOSシミュレーターで実行" width="159" height="300" class="size-medium wp-image-9403" srcset="/wp-content/uploads/2014/07/chromeapps2-159x300.png 159w, /wp-content/uploads/2014/07/chromeapps2-545x1024.png 545w, /wp-content/uploads/2014/07/chromeapps2-109x207.png 109w, /wp-content/uploads/2014/07/chromeapps2.png 340w" sizes="(max-width: 159px) 100vw, 159px" /></a><p class="wp-caption-text">iOSシミュレーターで実行</p></div>

<h2>Chrome App Developer Tool</h2>

<p>Chrome Apps on mobileには、実際のデバイス上でChrome Appsを動作させつつ、開発（修正）＞ビルド＞実行のイテレートを高速に回すことができる開発ツール「<a href="https://github.com/MobileChromeApps/chrome-app-developer-tool/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Chrome App Developer Tool</a>」が用意されています。</p>

<p>Chrome App Developer Toolは、モバイルアプリですので、実機にインストールする必要があります。Androidの場合は、<a href="https://github.com/MobileChromeApps/chrome-app-developer-tool/releases" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">こちら</a>からapkファイルをインストールして使用することができます。（iOSの場合は、ソースコードからビルドする必要がありますので、公式サイトの「<a href="https://github.com/MobileChromeApps/chrome-app-developer-tool/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Building from Source (iOS or Android)</a>」を参考にインストールしてください）</p>

<p>Androidの場合、Chrome App Developer ToolをインストールしたデバイスをUSBデバッグモードで接続し、次のようにコマンドを実行します。</p>

<p><code>> adb forward tcp:2424 tcp:2424</p>

<blockquote>
  <p>cca push</code></p>
</blockquote>

<p><code>adb forward</code>コマンドは、デバイスを接続後に1回だけ実行します。その後<code>cca push</code>コマンドで、Chrome App Developer Tool上でChrome Appsが動作します。これは、ビルドせずにChrome AppsをそのままChrome App Developer Toolに転送して動作するため非常に高速です。</p>

<div id="attachment_9414" style="width: 178px" class="wp-caption alignleft"><a href="https://html5experts.jp/wp-content/uploads/2014/07/Screenshot_2014-07-30-17-50-35.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/Screenshot_2014-07-30-17-50-35-168x300.png" alt="Chrome App DeveTool 1" width="168" height="300" class="size-medium wp-image-9414" srcset="/wp-content/uploads/2014/07/Screenshot_2014-07-30-17-50-35-168x300.png 168w, /wp-content/uploads/2014/07/Screenshot_2014-07-30-17-50-35-576x1024.png 576w, /wp-content/uploads/2014/07/Screenshot_2014-07-30-17-50-35-116x207.png 116w, /wp-content/uploads/2014/07/Screenshot_2014-07-30-17-50-35.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a><p class="wp-caption-text">Chrome App DevTool起動</p></div>

<div id="attachment_9415" style="width: 178px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/07/Screenshot_2014-07-30-17-51-54.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/Screenshot_2014-07-30-17-51-54-168x300.png" alt="Chrome App DevTool 2" width="168" height="300" class="size-medium wp-image-9415" srcset="/wp-content/uploads/2014/07/Screenshot_2014-07-30-17-51-54-168x300.png 168w, /wp-content/uploads/2014/07/Screenshot_2014-07-30-17-51-54-576x1024.png 576w, /wp-content/uploads/2014/07/Screenshot_2014-07-30-17-51-54-116x207.png 116w, /wp-content/uploads/2014/07/Screenshot_2014-07-30-17-51-54.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a><p class="wp-caption-text">cca push後</p></div>

<p><br>
Chrome App Developer Toolで動作しているChrome Appsを終了するには、2本指で同時にダブルタップします。</p>

<p>また、<code>cca push --watch</code>コマンドでプロジェクトに変更があれば自動的にpushするということも可能です。ソースコードを修正しながら実機で逐次、動作確認できるのでおすすめです。</p>

<h2>まとめ</h2>

<p>Chrome Apps on mobileは、デベロッパープレビュー版ということで、まだまだこなれていない面もありますが、Chrome Appsがそのままモバイルで動作するということで非常に楽しみなプラットフォームです。単なるWebアプリをモバイルアプリにするのであればPhoneGapなどの方が簡単ですが、Chrome APIを利用したパワフルなChrome Appsを作って、Chrome Apps on mobileにチャレンジしてみてください！</p>

<p>現在対応している・今後対応するChrome APIのステータスは、<a href="https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/APIStatus.md" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">こちら</a>から確認することができます。高機能なAPIの多くは、これからの対応に期待ですが、ぜひ楽しみにしていただきたいと思います。</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>Visual Studio 2013 を使った楽ちんCordovaプログラミング</title>
		<link>/osamum_ms/7941/</link>
		<pubDate>Wed, 09 Jul 2014 01:00:14 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=7941</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (6)Visual Studioの開発機能は、これまでWindowsプラットフォーム向けのものでしたが、Visial Studio 2013 Update 2からは、Multi-De...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (6)</div><p>Visual Studioの開発機能は、これまでWindowsプラットフォーム向けのものでしたが、Visial Studio 2013 Update 2からは、<a title="Multi-Device Hybrid Apps" href="http://msdn.microsoft.com/ja-jp/vstudio/dn722381" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Multi-Device Hybrid Apps</a>というアドインをインストールすることにより <a title="Apache CORDOVA" href="http://cordova.apache.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Apache CORDOVA</a> を使用したAndroid、iOS用アプリを開発することができます。 </p>

<p>今回は<a title="Visual Studio 2013 Update 2" href="http://www.microsoft.com/ja-JP/download/details.aspx?id=42666" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Visual Studio 2013 Update 2</a>用のアドイン <a title="Multi-Device Hybrid Apps" href="http://msdn.microsoft.com/ja-jp/vstudio/dn722381" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Multi-Device Hybrid Apps</a>について紹介します。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb69.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="430" height="206" title="image_thumb69" style="border: 0px currentcolor" alt="image_thumb69" src="/wp-content/uploads/2014/07/image_thumb69_thumb.png" border="0"></a> 

  <br>(Multi-Device Hybrid Appsの構成)</p>

<p><br></p>

<h1>Multi-Device Hybrid Appsとは</h1>

<p>Multi-Device Hybrid Appsは<a title="Professional" href="http://www.visualstudio.com/products/visual-studio-professional-with-msdn-vs" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Professional</a>以上のエディションのVisual Studio 2013でApache CORDOVAを使用してAndroid、iOSアプリの開発を可能とするためのアドインです。</p>

<p>Visual Studio 2013の提供する強力なコード補完機能、デバッグ機能を使用して、Android、iOS (およびWindows 8とWindows Phone 8.0) のアプリを開発することができます。</p>

<p>Multi-Device Hybrid Appsが提供する機能は以下の図のとおりです。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb72.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="500" height="217" title="image_thumb72" style="border: 0px currentcolor" alt="image_thumb72" src="/wp-content/uploads/2014/07/image_thumb72_thumb.png" border="0"></a> 

  <br>(Multi-Device Hybrid Appsが提供する機能) 

  <br>※Windows 8、Windows Phone 8.1については割愛</p>

<h3>開発のターゲットとなるプラットフォーム</h3>

<ul>
  <li>Android 4+ (4.4 にもっとも最適な開発エクスペリエンスが提供されます)</li>

  <li>iOS 6 &amp; 7</li>

  <li>Windows 8.0 (ストアアプリ)</li>

  <li>Windows Phone 8.0</li>
</ul>

<h3>ビルド</h3>

<ul>
  <li>Android : 〇</li>

  <li>iOS : × </li>

  <li>Windows 8 : 〇</li>

  <li>Windows Phone 8.0 : 〇</li>
</ul>

<dl><dt><strong>[Mac OS用アプリのビルドについて]</strong><br />現状、iOS用アプリはWindows上でビルドすることはできません。Multi-Device Hybrid Appsで開発したソースをビルドしてApp Storeに公開するには、Mac OS X Mavericks上のXcode 5.1でコンパイルするか、Mac OS上にインストールしたリモートビルド用のエージェントを使用してビルドを行う必要があります。iOSアプリのリモートビルドの詳細な方法については、以下のドキュメントを参照してください。 <dl><dt><strong>Documentation Multi-Device Hybrid Apps for Visual Studio</strong> 

  <br><a title="Documentation Multi-Device Hybrid Apps for Visual Studio" href="http://go.microsoft.com/fwlink/?LinkID=397716" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://go.microsoft.com/fwlink/?LinkID=397716</a></dt></dl>



</dt></dl>

<h3>デバッグ</h3>

<p>Cordovaアプリの開発にVisual Studioがもたらす利点のひとつは、アプリの種類およびデバイス、 プラットフォーム全体を横断するシームレスかつ共通化されたツール類です。しかしながら現リリース (CTP1.1) の Multi-Device Hybrid Appsでは、すべてのデバイス、プラットフォームで同じVisual Studioデバッガ機能を利用することができません。</p>

<p>現在のデバッガのサポート状況は以下の通りです。</p>

<p><strong>Visual Studio デバッガサポート</strong>

<ul>
  <li>Android 4.4 : 〇 </li>

  <li>Android &lt; 4.4 : ×</li>

  <li>iOS 6 &amp; 7 : ×</li>

  <li>Windows 8 (ストア アプリ) : 〇</li>

  <li>Windows Phone 8.0 : ×</li>
</ul></p>

<p>(※)Visual Studio&nbsp;デバッガーはRippleやAndroid 4.4 エミュレーターまたはデバイスでの最初のページの読み込み前に発生するブレークポイントでは停止されません。ただし、ブラウザー&nbsp; (Ripple)を更新またはJavaScriptコンソールから &#8220;window.location.reload()&#8221; を実行したあとではこれらのブレークポイントにヒットします。</p>

<p><strong>アウトプット ウインドウでのJS コンソール メッセージ</strong></p>

<ul>
  <li>Android 4.4 : 〇</li>

  <li>Android &lt; 4.4 : 〇</li>

  <li>iOS 6 &amp; 7 : ×</li>

  <li>Windows 8 (ストア アプリ) : 〇</li>

  <li>Windows Phone 8.0 : ×</li>
</ul>

<h3>エミュレーター</h3>

<p>Multi-Device Hybrid Appsには、エミュレーターとしてApache Rippleがインストールされます。<a title="Apache Ripple" href="http://ripple.incubator.apache.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Apache Ripple</a> エミュレーターはChromeのようなWebKitブラウザー内部の Webアプリケーションとして実行されます。CORDOVA環境では、複数のデバイスとプラットフォームをシミュレートし、位置情報やデバイスの向きのような、CORDOVAプラグイン コアの基本的な機能をサポートします。</p>

<fieldset><legend><strong>Android OSのWeb viewについて</strong></legend>ご存じのとおり、WebkitはApple Safari、Google Chromeのレンダリングエンジンとして使用されていたので、iOS、Androidアプリのテストに使用するには理にかなっているのですが、現在ではChromeのレンダリングエンジンはBlinkに代わっています。BlinkはWebkitをフォームして作ったものなので、ある程度の挙動は同じかもしれませんが、完全に同じではないということを意識したほうがよいでしょう。 

  <br>ちなみにAndroid OSの既定のWebブラウザはChromeではなくてAndroidブラウザですが、4.3からはChromiumベースだそうですのでChrome と同じと考えよいと思います。 

 <br />&nbsp;<br /> <dl><dt>&lt;参考&gt; 
    <br>Migrating to WebView in Android 4.4 

    <br><a title="Migrating to WebView in Android 4.4" href="http://developer.android.com/guide/webapps/migrating.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://developer.android.com/guide/webapps/migrating.html</a></p>
</fieldset>

<p></dt></dl>Apache Rippleは、AndroidとiOS上で動作するアプリのオーサリングと検証の第一歩を簡単かつ迅速に提供しますが、Rippleは、iOS シミュレータのように、そのエミュレーションにおいて決して完全ではありません。「Web View (WebKit)での動作検証 + 基本的なCORDOVAコアAPIのテスト」くらいにとらえておくがよいでしょう。よって、完全な検証は実機で、少なくともネイティブのエミュレーターで行うことをお勧めします。</p></p>

<h1>Multi-Device Hybrid Appsのインストール</h1>

<p>Multi-Device Hybrid Appsを使用するメリットのもうひとつに、Cordova開発環境構築にかかる工数が圧倒的に少なくてすむということがあげられます。</p>

<p><a title="VisualStudio 2013 Update2" href="http://www.microsoft.com/ja-JP/download/details.aspx?id=42666" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">VisualStudio 2013 Update2</a> + Multi-Device Hybrid Appsを使用しない、従来の方法で Windows OSにCordoveの開発環境を構築するには、大まかに以下のステップが必要となります。</p>

<ol>
  <li><a title="Node.js" href="http://nodejs.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Node.js</a>のインストール</li>

  <li>Node.jsのnpmコマンドを使用した<a title="Apache Cordove" href="http://cordova.apache.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Apache Cordove</a>のインストール</li>

  <li><a title="Apache Ant" href="http://ant.apache.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Apache Ant</a>のインストール</li>

  <li><a title="Java SE Development Kit 7 Downloads" href="http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Java(JDK)</a>のインストール</li>

  <li>Android SDKのダウンロードと展開</li>

  <li>Android SDK&nbsp;のパスを通すための作業</li>

  <li>Androud SDKにあるSDK Managerを使用して必要なツールと拡張をインストールする</li>

  <li>ひな形となるCordoveプロジェクトの作成</li>

  <li>Cordoveプロジェクトから、目的のプラットフォーム用のプロジェクトを作成</li>
</ol>

<p>この手順は、インストールはもちろん、プロジェクトの作成まで、すべてコマンドラインで行う必要があります。</p>

<p>こう書くと、手順が多く操作も煩雑で、なんだかとても大変そうですが、実際のところとても大変です。Multi-Device Hybrid Appsを使用する場合は、Windows&nbsp; 8.1に&nbsp; Visual Studio 2013 Update 2がインストールされた環境で、Multi-Device Hybrid Appsのセットアップウィザードを実行するだけです。</p>

<p>また、Cordove開発環境が使用している各モジュールに更新が行われた場合には、VisualStudioが通知してくれるので、安心して使い続けることができます。</p>

<h1>インストールの前提条件</h1>

<p><a title="Multi-Device Hybrid Apps" href="http://msdn.microsoft.com/ja-jp/vstudio/dn722381" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Multi-Device Hybrid Apps</a>アドインをインストールする前に、以下のソフトウェアと各オプションをインストールし、正常に動作するようにしておく必要があります。   <ul>
  <li>Windows 8.1</li>

  <li>Visual Studio 2013のProfessional,、Ultimateもしくは、Premiumエディション<br />&nbsp;&nbsp;&nbsp;以下の機能がインストールされている必要があります。  <ul>  <li>Tools for Maintaining Store apps for Windows 8</li>   <li>Windows Phone 8.0 SDK (Windows Phone 8.0 アプリを開発するのであれば)</li>  </ul> </li>   <li><a title="Visual Studio 2013 Update 2" href="http://www.microsoft.com/ja-JP/download/details.aspx?id=42666" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Visual Studio 2013 Update 2</a> </li>
</ul> </p>

<h2>Multi-Device Hybrid Appsのインストール手順</h2>

<p>Muiti-Device Hybrid Appsアドインのインストールは。インストールをイメージを入手して実行し、セットアップウィザードのボタンをクリックしていくだけです。</p>

<p>具体的な手順は以下のとおりです。</p>

<ol>    <li><a title="Multi-Device Hybrid Apps (Preview)" href="http://msdn.microsoft.com/ja-jp/vstudio/dn722381" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Multi-Device Hybrid Apps (Preview)</a> の配布ページで「Download」リンクをクリックします。  <br /><br /> <dl style="margin-left:30px"><dt><strong>Multi-Device Hybrid Apps (Preview)</strong> 

    <br><a title="Multi-Device Hybrid Apps (Preview)" href="http://msdn.microsoft.com/ja-jp/vstudio/dn722381" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://msdn.microsoft.com/ja-jp/vstudio/dn722381</a></dt></dl>   </li>    <li>Download Center に遷移するので、ページ内の [Download] ボタンをクリックします。 
<br>&nbsp;</li>

  <li>「Choose the download you want」のパネルが表示されるので、vs2013mda_0.1.1.exe と Documentation for Multi-Device Hybrid Apps for Visual Studio CTP1.1.pdf&nbsp; にチェックをつけ [Next] ボタンをクリックします。 
<br />&nbsp;    <p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb57.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"> <img width="502" height="194" title="image_thumb57" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb57" src="/wp-content/uploads/2014/07/image_thumb57_thumb.png" border="0"></a>

</p>  exeファイルは Multi-Device Hybrid Appsのインストールイメージ、pdf は Multi-Device Hybrid Appsの詳細なドキュメント(英語)です。このドキュメントは、Multi-Device Hybrid Appsについての非常に詳細な情報が書かれているので一読されるのをおすすめします。       <br>&nbsp;</li>

  <li>exe ファイルとpdfファイルは別々にダウンロードされるので、「download.microsoft.comからvs2013mda.exeを実行または保存しますか?」ダイアログで [実行] ボタンをクリックしします。<br />&nbsp;   <p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb188.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="500" height="28" title="image_thumb188" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb188" src="/wp-content/uploads/2014/07/image_thumb188_thumb.png" border="0"></a>

    </p> </li>

  <li>インストールウィザードが起動してくるので、[Select All] にチェックが付いた状態で [INSTALL] ボタンをクリックし、インストールを行ってください。 
    <br />&nbsp;<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb187.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="300" height="421" title="image_thumb187" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb187" src="/wp-content/uploads/2014/07/image_thumb187_thumb.png" border="0"></a></p> あとはウィザードの内容に従って作業を進めてください。 

    <br>なお、インストール作業は、必ずコンピューターをネットワークに接続した状態でインストールを行ってください。&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br></li>

  <h2>Muiti-Device Hybrid Appsがインストールするもの</h2>

  <p>Muiti-Device Hybrid Appsアドインのセットアップウィザードは、以下のサードパーティー製のものも同時にインストールします。</p>

  <ul>      <li><a title="Joyent Node.js" href="http://go.microsoft.com/fwlink/?LinkID=396867" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Joyent Node.js</strong></a> &#8212; Apache CordovaのコマンドラインインターフェースとApache RipperエミュレーターをVisual Studioに統合します。</li>

    <li><a title="Git CLI" href="http://go.microsoft.com/fwlink/?LinkID=396870" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Git CLI</strong></a> &#8212; プラグイン用にgitのURLを手動で追加する場合にのみ必要です。</li>

    <li><strong>Google Chrome</strong> &#8212; Apache Ripperエミュレーターを動作させるのに必要です。</li>

    <li><a title="Apache Ant 1.8.0+" href="http://go.microsoft.com/fwlink/?LinkID=396869" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Apache Ant 1.8.0+</strong></a> &#8212; Android ビルドプロセスの依存関係として必要です。</li>

    <li><a title="Oracle Java JDK 7" href="http://go.microsoft.com/fwlink/?LinkID=396871" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Oracle Java JDK 7</strong></a><strong> </strong>&#8212; 〃</li>

    <li><a title="Android SDK" href="http://go.microsoft.com/fwlink/?LinkID=396873" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Android SDK</strong></a> &#8212; 〃</li>

    <li><a title="SQLLite for Windows Runtime" href="http://go.microsoft.com/fwlink/?LinkID=397310" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>SQLite for Windows Runtime</strong></a> &#8212; SQL接続をWindowsアプリに追加するのに必要です。(WebSQLのポリフィルプラグイン)</li>

    <li><a title="Apple iTunes" href="http://go.microsoft.com/fwlink/?LinkID=397715" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><strong>Apple iTunes</strong></a> &#8212; Windows PCに接続されたiOSデバイスにアプリを展開するのに必要</li>
  </ul>

  <p>アンインストールする際、Muiti-Device Hybrid Appsのインストーラーは、これれらのすべてを削除してはくれませんので、残ったものに関しては、それぞれ個別にアンインストールする必要がありますので、ご注意ください。</p>      <h1>Muiti-Device Hybrid Appsを使った Android、iOSアプリの開発</h1>   <p>Visual Studio 2013 で Cordoveを使用した開発を行うMuiti-Device Hybrid Appsプロジェクトを作成するには以下の手順を実行します。</p>     <ol>  <li>
Visual Studio 2013のメニュー [ファイル] – [新規作成] – [プロジェクト] を選択します。</li>       <li> [新しいプロジェクト] ダイアログボックスが表示されるので、同ダイアログボックス左のテンプレートツリーより[テンプレート] – [JavaScript] – [Muiti-Device Hybrid Apps ] を選択します。 <br />&nbsp; <p align="center">    <a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb60.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="450" height="274" title="image_thumb60" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb60" src="/wp-content/uploads/2014/07/image_thumb60_thumb.png" border="0"></a> <br />

(作成するプロジェクトを選択するダイアログボックス)</p>
 </li>    <li> 同ダイアログ中央のリストより、「Blank App(Apache Cordova)」を選択します。 <br />&nbsp; <p align="center"> <a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb68.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="430" height="57" title="image_thumb68" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb68" src="/wp-content/uploads/2014/07/image_thumb68_thumb.png" border="0"></a>

<br />(Apache Cordova用プロジェクト)</p>
</li>        <li>
ダイアログボックス下部の [参照] ボタンをクリックし、プロジェクトを保存する場所のパスをスペースや日本語を含まないものに変更し、[OK] ボタンをクリックします。</li>   <li> Visual Studio 2013 の IDEにプロジェクトがロードされるので、ウィンドウ右の [ソリューションエクスプローラー] からindex.htmlをダブルクリックします。   <br />&nbsp;       <p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb73.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="384" height="198" title="image_thumb73" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb73" src="/wp-content/uploads/2014/07/image_thumb73_thumb.png" border="0">

</a><br />(ソリューションエクスプローラーでの index.html の選択)</p>
</li>    <li>
IDE のエディタにindex.htmlの内容が展開されるので、&lt;/body&gt;の上に一行あけます。 <br /> 「h1」とタイプし、[Tab] キーを押下するとdivタグが挿入されるので、同タグ内に 「Hello World」と記述します。 
<br /> <p align="center"> <a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb261.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="200" height="23" title="image_thumb261" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb261" src="/wp-content/uploads/2014/07/image_thumb261_thumb.png" border="0"></a></p> </li>   <li> ツールバーの実行ボタン横のリストから「Ripple – Nexus (Galaxy)」が選択されていることを確認し、クリックします。  <br />&nbsp; <p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb83.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="240" height="158" title="image_thumb83" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb83" src="/wp-content/uploads/2014/07/image_thumb83_thumb.png" border="0"></a>

 

<br />(実行ボタンのデバイスリスト)</p>
</li>       <li>
Google Chromeが起動し、ウィンドウ内のRippleエミュレーターに実行結果が表示されます。 <br />&nbsp;  <p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb141.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="504" height="312" title="image_thumb141" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb141" src="/wp-content/uploads/2014/07/image_thumb141_thumb.png" border="0">   </a><br />(アプリの実行結果)</p>
</li>    <li>
実行を終了するにはVisual Studio 2013のツールバー上の [デバッグの停止] ボタンをクリックします。 <p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb151.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="180" height="80" title="image_thumb151" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb151" src="/wp-content/uploads/2014/07/image_thumb151_thumb.png" border="0">

</a>
<br />([デバッグの停止]ボタン)</p>
</li> </ol>        <h2>対象プラットフォームの切り替え</h2>   <p>Muiti-Device Hybrid Apps プロジェクトの既定の対象プラットフォームは Android OS となっています。</p>   <p>ここでは、対象のプラットフォームをiOSに変更する手順を例に紹介します。</p>         <ol>  <li>
Visual Studio 2013 のメニュー [ビルド] – [構成マネージャー] をクリックします。</li>   <li>
[構成マネージャー]&nbsp; ダイアログボックスが表示されるので、[アクティブ ソリューション プラットフォーム]ドロップダウンリストから「iOS」を選択し、[閉じる] ボタンをクリックします。<br />&nbsp;<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb204.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="350" height="174" title="image_thumb204" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb204" src="/wp-content/uploads/2014/07/image_thumb204_thumb.png" border="0"></a>

<br />(開発対象プラットフォームの一覧)</p>
</li>   <li>
設定が完了するとツールバーの実行ボタン横のリストにiOSデバイスが表示されるので、任意のデバイスをクリックして実行します。<p align="center"> <a href="https://html5experts.jp/wp-content/uploads/2014/07/image_thumb246.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="240" height="185" title="image_thumb246" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image_thumb246" src="/wp-content/uploads/2014/07/image_thumb246_thumb.png" border="0">

</a>

<br />(テスト可能なiOSデバイス一覧) </p>   </li>  Google Chrome が起動し、ウィンドウ内の Rippleシミュレーターに実行結果が表示されます。           <br>なお、Rippleエミュレーターは、Mac OS上で動作する iOSシミュレーターほど正確ではありませんので、アプリを提出する前には必ずMac OS上のiOSエミュレーターか、できれば実機でテストすることをお勧めします。 

        <br>Visual Studio 2013から、Mac OS上の iOSシミュレーターにアプリを転送してリモート実行する方法については、以下のドキュメントの <strong>Remote Build &amp; Simulation Agent for iOS [Optional]</strong>をご覧ください。<br></ol>         <dl><dt><strong>Document for Multi-Device Hybrid Apps for Visual Studio</strong> 

        <br><a title="Document for Multi-Device Hybrid Apps for Visual Studio" href="http://go.microsoft.com/fwlink/?LinkID=39771" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://go.microsoft.com/fwlink/?LinkID=39771</a></dt></dl>         
  </ol>

<h1>まとめ</h1>

<p>Multi-Device Hybrid Appsアドインをインストールすると、Visual Studio 2013でCordovaを使用したAndroid、iOS、Windows 8、Windows Pnone 8.0のアプリを開発できるようになります。</p>

<p>Visual Studio 2013のエディションはProfessionalである必要がありますが、試してみたい、という方は<a title="Visual Studio 2013" href="https://app.vssps.visualstudio.com/profile/review?context=eyJwZSI6MSwicGMiOjEsImljIjoxLCJhbyI6MSwiYW0iOjAsIm9wIjpudWxsLCJhZCI6bnVsbCwiZmEiOjMsImF1IjpudWxsLCJjdiI6MTM5NjE5MDI3NywiZnMiOjAsInN1IjowLCJlciI6MH01&amp;download=true&amp;family=VisualStudio&amp;edition=Professional&amp;release=VisualStudio2013Upd2&amp;type=web&amp;slcid=0x411&amp;mkt=ja-JP" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">90日間有効の試用版</a>を使用してみるとよいでしょう。また、Macユーザーだけど Visual Studio 2013を使ってみたい、という方には<a title="Windows 8.1 - 無償ダウンロード、ISO、サポート、ガイド、ヘルプ | TechNet" href="http://technet.microsoft.com/ja-jp/windows/windows-8.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows 8.1 の試用版</a>とあわせ、以下のドキュメントをご参照ください。</p>

<dl><dt><strong>Mac に Windows 8と開発者ツールをインストールする</strong></dt><dt>
<a title="Macに Windows 8と開発者ツールをインストールする" href="http://msdn.microsoft.com/ja-jp/library/windows/apps/jj680133" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">http://msdn.microsoft.com/ja-jp/library/windows/apps/jj680133</a></dt></dl>

<dl> <dt>&lt;備考&gt;</dt> <dd>今回の記事は以下をHTML5 Experts用に再編集したものです。</dd> <br /> <dd><a title="Visual Studio 2013でAndroid、iOSのアプリを開発するためのアドイン" href="http://blogs.msdn.com/b/osamum/archive/2014/06/16/visual-studio-2013-android-ios.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio 2013でAndroid、iOSのアプリを開発するためのアドイン</strong></a></dd><br />  <dd><a title="Visual Studio 2013 へのMulti-Device Hybrid Appsアドインのインストール" href="http://blogs.msdn.com/b/osamum/archive/2014/06/26/visual-studio-2013-multi-device-hybrid-apps.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio 2013 へのMulti-Device Hybrid Appsアドインのインストール</strong></dd><br />  <dd>
<a title="Muiti-Device Hybrid Appsを使った Android、iOSアプリの開発" href="http://blogs.msdn.com/b/osamum/archive/2014/07/02/muiti-device-hybrid-apps-android-ios.aspx" target="_blank"><strong>Muiti-Device Hybrid Apps を使ったAndroid、iOSアプリの開発</strong></a></dd> <br /> <dd>現在最新のVisual Studio 2013のHTML5関連の開発機能全般に興味をお持ちの方は以下の記事をご参照ください。</dd><br /> <dd><a href="http://blogs.msdn.com/b/osamum/archive/2014/06/12/visual-studio-2013-update-2-html5.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio 2013 Update 2でのHTML5関連の強化点</strong></a></dd> </dl>
]]></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>IDE完備！日本語の情報豊富！MonacaとOnsen UIで楽々ハイブリッドアプリ開発！</title>
		<link>/ataruohto/7274/</link>
		<pubDate>Fri, 04 Jul 2014 01:00:16 +0000</pubDate>
		<dc:creator><![CDATA[大塔 中]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Monaca]]></category>
		<category><![CDATA[Onsen UI]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=7274</guid>
		<description><![CDATA[連載： ハイブリッドアプリ開発最前線 (3)はじめに HTML5でのモバイルアプリ開発という手法が登場して以来、HTML5でモバイルアプリを開発する様々なツールやプラットフォームが登場しています。この記事ではそうしたHT...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/hybrid-special/" class="series-181" title="ハイブリッドアプリ開発最前線" data-wpel-link="internal">ハイブリッドアプリ開発最前線</a> (3)</div><h2>はじめに</h2>

<p>HTML5でのモバイルアプリ開発という手法が登場して以来、HTML5でモバイルアプリを開発する様々なツールやプラットフォームが登場しています。この記事ではそうしたHTML5でのモバイルアプリ開発ツールとして、Monacaおよび、Onsen UIを紹介させていただきます。</p>

<p>必要なもの</p>

<ul>
    <li>WindowsもしくはMac</li>
    <li>最新版のGoogle ChromeもしくはSafari</li>
</ul>

<h2>Monacaとは?</h2>

<p><br /></p>

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

<p><a href="http://monaca.mobi/ja/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>はHTML5でモバイルアプリを開発するためのツールです。このMonacaを使って開発されたアプリがGoogle PlayやApp Storeに2000以上登録されています。Monacaの<a href="http://monaca.mobi/ja/showcase" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">事例ページ</a>にはMonacaで開発されたいろいろなアプリが掲載されています。登録 (無料) するだけですぐにモバイルアプリの開発をスタートできます。</p>

<ul>
<li>Monacaで作るアプリはPhoneGapベースのため、PhoneGapの利点(クロスプラットフォームやネイティブにアクセスできるAPIなど)をそのまま享受できます。</li>
<li>Monacaには、Webブラウザ上で動作するIDEが付属しています。</li>
<li>ほかのプラットフォームと比較して、日本で開発されているので比較的日本語の情報が豊富です。</li>
<li>また、Monacaには<a href="https://play.google.com/store/apps/details?id=mobi.monaca.debugger&amp;hl=ja" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"> Google Play</a>や<a href="https://html5experts.jp//itunes.apple.com/ja/app/monaca/id550941371?mt=8&quot;" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">App Store</a>で専用のデバッグツール (Monaca Debugger) が公開されており、IDE上でコードを変更すると、即座にその変更をデバッグツールが反映するため、ビルドしなくてもアプリの実行結果を素早く確認することができます。</li>
</ul>

<h2>Onsen UIとは?</h2>

<p><br></p>

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

<p>HTML5で実際にアプリを開発していくと、様々な壁にぶつかります。例えば、モバイルアプリでのアニメーションを伴うページ遷移などです。まだ、HTML5でアプリを開発するノウハウが十分に浸透しているとは言い難く、ネイティブアプリでは当たり前のことをHTML5で実現しようとした時にいろいろな課題が実際には存在します。<a href="http://onsenui.io/" title="Onsen UI" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen UI</a>はスマホのトランジションやリッチなUIなどをHTML5で簡単に作成するためのフレームワークです。</p>

<ul>
<li>Onsen UIは<a href="https://angularjs.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">AngularJS</a>ベースのフレームワークです。AngularJSの<a href="https://docs.angularjs.org/api/ng/directive/ngRepeat" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ngRepeat</a>などの通常の<a href="https://docs.angularjs.org/guide/directive" target="_balnk" data-wpel-link="external" rel="follow external noopener noreferrer">ディレクティブ</a>に加えて、Onsen UIで独自に拡張したディレクティブを使うことができます。</li>
<li>Onsen UIは、AngularJSのディレクティブを拡張したWebコンポーネントライクに開発を行なうことができます。</li>
</ul>

<h2>MonacaとOnsen UIでHello World</h2>

<p><br /></p>

<p>それでは、実際にMonacaでOnsen UIを使ってみましょう。Onsen UIとMonacaはともに兄弟製品であり、MonacaからはOnsen UIを手軽に使うことができます。</p>

<h3>1.Monacaにサインアップする</h3>

<p><a href="http://monaca.mobi/ja/" title="Monaca" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>にアクセスして、ユーザー登録します。および基本的な使用は無料です。登録が完了すれば、すぐに開発を始められます。Google ChromeとSafariが推奨ブラウザなので、2つのどちらかでアクセスしてください。</p>

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

<p>Monacaに登録したら、登録したメールアドレスに確認メールが届いていますので、そのメール内の確認用URLをクリックして本登録を済ませましょう。</p>

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

<h3>2. ダッシュボードにログインする</h3>

<p><a href="http://monaca.mobi/ja/" title="Monaca" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>にサインアップすると、最初にダッシュボードと呼ばれる画面に遷移します。このダッシュボードはプロジェクト (アプリ) を管理するための画面です。既に「はじめてのMonacaアプリ」というプロジェクト (アプリ) がありますが、今回はOnsen UIを使うプロジェクトを作成したいので、「+ 新しいプロジェクト」ボタンをクリックして、新しくプロジェクトを作成しましょう。</p>

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

<h3>3. Onsen UI 最小限プロジェクトを作成する</h3>

<p>「+ 新しいプロジェクト」ボタンをクリックするとプロジェクト作成の画面に遷移します。下の方に遷移して「Onsen UI 最小限のテンプレート」をクリックします。</p>

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

<p>そして、「プロジェクトの作成」をクリックしてプロジェクトを作成します。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/07/onsen_minimum.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/07/onsen_minimum-281x300.png" alt="onsen_minimum" width="281" height="300" class="alignnone size-medium wp-image-7878" srcset="/wp-content/uploads/2014/07/onsen_minimum-281x300.png 281w, /wp-content/uploads/2014/07/onsen_minimum-194x207.png 194w, /wp-content/uploads/2014/07/onsen_minimum.png 417w" sizes="(max-width: 281px) 100vw, 281px" /></a></p>

<h3>4. Monaca IDEでOnsen UI 最小限のプロジェクトを開く</h3>

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

<p>「Onsen UI 最小限のテンプレート」が作成されました。「開く」ボタンをクリックして、このプロジェクトを開きます。</p>

<h3>5. 「page2.html」を編集する</h3>

<p>Monaca IDEを起動したら、アプリのコードが表示されます。最初は「index.html」のコードが表示されているはずです。ここでは左側の「page2.html」をクリックして、「page2.html」を開きましょう。「page2.html」を開いたら、&lt;h2&gt;Page 2&lt;/h2&gt;の箇所を&lt;h2&gt;Hello World!&lt;/h2&gt;に変更します。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/edit_page2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/edit_page2-300x174.png" alt="edit_page2" width="300" height="174" class="alignnone size-medium wp-image-7288" srcset="/wp-content/uploads/2014/06/edit_page2-300x174.png 300w, /wp-content/uploads/2014/06/edit_page2-207x120.png 207w, /wp-content/uploads/2014/06/edit_page2.png 600w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<h3>6. Monaca IDEのライブプレビューで簡単に結果を確認する</h3>

<p>Monaca IDEのライブプレビューで簡単にアプリの動作を確認してみましょう。Monaca IDE上部のプレビューをクリックして、ライブプレビューを開きます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/preview1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/preview1-300x90.png" alt="preview1" width="300" height="90" class="alignnone size-medium wp-image-7680" srcset="/wp-content/uploads/2014/06/preview1-300x90.png 300w, /wp-content/uploads/2014/06/preview1-1024x309.png 1024w, /wp-content/uploads/2014/06/preview1-207x62.png 207w, /wp-content/uploads/2014/06/preview1.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>すると、ライブプレビューが開きます。画面内の「pushPage」と記述してあるボタンをクリックしましょう。次の画面に遷移できて、「Hello World」という文字列が表示されます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/preview2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/preview2-300x251.png" alt="preview2" width="300" height="251" class="alignnone size-medium wp-image-7681" srcset="/wp-content/uploads/2014/06/preview2-300x251.png 300w, /wp-content/uploads/2014/06/preview2-207x173.png 207w, /wp-content/uploads/2014/06/preview2.png 639w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<p>簡単にpage1.htmlのコードを見てみましょう。</p>

<p>page1.html</p>

<div style="color:#5A9BCF;background: #000000;padding: 16px">
&lt;ons-page class=&#8221;center&#8221;&gt;<br /><br />

    &lt;ons-navigator-toolbar<br />
        title=&#8221;Welcome&#8221;&gt;<br />   
    &lt;/ons-navigator-toolbar&gt;<br /><br />

    &lt;h1&gt;Hello World!&lt;/h1&gt;<br /><br />

    &lt;ons-button ng-click=&#8221;ons.navigator.pushPage(&#8216;page2.html&#8217;)&#8221;&gt;Push Page 2&lt;/ons-button&gt;<br /><br />
    
&lt;/ons-page&gt;
</div>

<p>&lt;ons-button&gt;というディレクティブのng-clickとして設定されているons.navigator.pushPage()で別のページへの遷移を簡単に実現することができます。遷移した先のページから元のページに戻ってくる場合にはons.navigator.popPage()で戻ってくることができます。このようにOnsen UIを使えば簡単に画面遷移を実現することができます。</p>

<h3>7. Monacaデバッガーでプロジェクトを動かす</h3>

<p>実機を持っている人はMonacaデバッガーで確認してみましょう。Android端末もしくはiOS端末でストアを開き、「Monaca」と検索してMonacaデバッガーを検索してインストールします。MonacaデバッガーはMonacaのアプリを起動してシミュレーションするためのアプリです。</p>

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

<p>Monacaデバッガーを起動するとログインを求められますので、Monacaに登録したアドレスとパスワードでログインします。</p>

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

<p>そして、「Onsen UI 最小限のプロジェクト」をクリックしてアプリを起動します。</p>

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

<p>同期が完了したら、「Onsen UI 最小限のプロジェクト」アプリが起動します。アプリが起動したら、「Push Page2」ボタンを押して、「page2.html」に遷移しましょう。モバイルアプリでよく見られるスライドアニメーションで遷移することができます。</p>

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

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

<p>「page2.html」に遷移したら、先ほど記述した「Hello World」が表示されていることを確認しましょう。これで、MonacaでOnsen UIを使って、Hello Worldを行うことができました。</p>

<h2>外部リンク</h2>

<p>このアプリではOnsen UIのシンプルなアニメーションを伴ったトランジションを見ることができますが、Onsen UIにはほかにもスライド式のメニューやSplit ViewなどモバイルのUIには欠かせない様々な機能が用意してあります。Onsen UIの<a href="http://onsenui.io/guide/components.html" title="Components" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Components</a>のページでいろいろな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パターンが掲載されており、CSSとHTMLをダウンロードすることができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/06/Onsen-CSS-Components.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/06/Onsen-CSS-Components-300x215.png" alt="Onsen CSS Components" width="300" height="215" class="alignnone size-medium wp-image-7295" srcset="/wp-content/uploads/2014/06/Onsen-CSS-Components-300x215.png 300w, /wp-content/uploads/2014/06/Onsen-CSS-Components-1024x736.png 1024w, /wp-content/uploads/2014/06/Onsen-CSS-Components-207x148.png 207w, /wp-content/uploads/2014/06/Onsen-CSS-Components.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
]]></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>
