<?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>Chrome Apps &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/chrome-apps/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>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>
	</channel>
</rss>
