<?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="/masahiro/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>Cordovaは今やMicrosoftが主導！？最新状況と基本を素早く再チェック！</title>
		<link>/masahiro/20562/</link>
		<pubDate>Wed, 07 Sep 2016 00:31:55 +0000</pubDate>
		<dc:creator><![CDATA[田中 正裕]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>

		<guid isPermaLink="false">/?p=20562</guid>
		<description><![CDATA[連載： Web技術でアプリ開発2016 (2)Web技術でアプリ開発2016特集・第二弾は、Cordovaの最新状況と基本をご紹介。その歴史からプラットフォーム／ライブラリの特徴、ネイティブな機能を呼び出す方法などを解説...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/web-based-apps-2016/" class="series-391" title="Web技術でアプリ開発2016" data-wpel-link="internal">Web技術でアプリ開発2016</a> (2)</div><p>Web技術でアプリ開発2016特集・第二弾は、Cordovaの最新状況と基本をご紹介。その歴史からプラットフォーム／ライブラリの特徴、ネイティブな機能を呼び出す方法などを解説していきます。</p>

<h1>概要</h1>

<p><a href="https://cordova.apache.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Cordova</a>は<a href="http://phonegap.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGap</a>と呼ばれていた時代を含めると、8年以上の歴史があります。PhoneGapが産声を上げたのは2008年、Nitobi社がハッカソンでPhoneGapを発表しました。オープンソースで提供されていたPhoneGapは注目され、2011年にはNitobiはAdobe社に買収されます。その結果、オープンソースで提供されているフレームワーク（PhoneGap本体）はCordovaと名前がつけられ、Apache Foundationの仲間入りします。</p>

<p>その結果、Adobeだけでなく、GoogleやMicrosoft、IBM、インテルといった会社がCordovaを支えています。現在、コミュニティをリードしているのはMicrosoftで、Cordovaのコア機能の実装だけでなく、開発者向けの製品へのCordova対応を進めています。</p>

<p>PhoneGapは、Adobe Creative Cloudのいちプロダクトとして、Cordovaをベースとした有償の<a href="https://build.phonegap.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ビルドツールを提供している</a>ほか、エンタープライズ製品も発表されています。</p>

<h1>Hello, World</h1>

<p>Cordovaはクロスプラットフォームではありますが、ビルドできるアプリはビルド環境に依存します。</p>

<ul>
<li>macOS: iOS, Android</li>
<li>Windows: Windows, Android</li>
<li>Linux: Android</li>
</ul>

<p>ローカル環境に依存してしまうため、クラウド環境を使って複数のOSに対応させるソリューションが各社から提供されています。詳しくは<a href="https://build.phonegap.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGap Build</a>や<a href="https://ja.monaca.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>を参照してください。</p>

<p>Cordovaアプリの開発には様々なオプションがあります。エディタとしては、MicrosoftのVisual StudioやVS Code、JetBrainsのWebStormなど、Web開発と親和性の高いツールを選ぶと良いでしょう。</p>

<p>Cordovaがオフィシャルに提供しているツールとしてCordova CLIがあります。これを使うと、コマンドラインツールでPC上でのシミュレートからビルドまで行うことができます。Cordova CLIはNode.jsを入れた後、下記のようにインストールします。なお、Cordova CLIはNode.jsバージョン4以上に対応しています。</p>

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

<p>インストールしたらcordovaコマンドが使えるようになります。早速アプリを作成するために、cordova createコマンドを実行します。</p>

<p></p><pre class="crayon-plain-tag">$ cordova create helloworld
$ cd helloworld
$ cordova -v
6.3.1</pre><p></p>

<p>これでプロジェクトが作成されました。次にプラットフォームを追加します。cordova platformコマンドを使用し、引数にはプラットフォーム名（android、ios、windows等）を指定します。</p>

<p></p><pre class="crayon-plain-tag">$ cordova platform add android (ios, windows)</pre><p></p>

<p>ブラウザーでプレビューするには、cordova serveコマンドを使います。</p>

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

<p>ブラウザーを開き、<a href="http://localhost:8000/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://localhost:8000/</a>にアクセスします。下記の画面が表示されたら成功です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/08/cordova-serve.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/08/cordova-serve-186x300.png" alt="cordova-serve" width="186" height="300" class="aligncenter size-medium wp-image-20572" srcset="/wp-content/uploads/2016/08/cordova-serve-186x300.png 186w, /wp-content/uploads/2016/08/cordova-serve-129x207.png 129w, /wp-content/uploads/2016/08/cordova-serve.png 385w" sizes="(max-width: 186px) 100vw, 186px" /></a></p>

<p>実際のアプリを表示するには、プラットフォーム名をクリックします。なお、ブラウザではネイティブAPIとの連携ができないため、ブラウザー上で変なエラーメッセージ等が表示される可能性があります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/08/cordova-deviceready.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/08/cordova-deviceready-186x300.png" alt="cordova-deviceready" width="186" height="300" class="aligncenter size-medium wp-image-20573" srcset="/wp-content/uploads/2016/08/cordova-deviceready-186x300.png 186w, /wp-content/uploads/2016/08/cordova-deviceready-129x207.png 129w, /wp-content/uploads/2016/08/cordova-deviceready.png 385w" sizes="(max-width: 186px) 100vw, 186px" /></a></p>

<p>最後にビルドを行ってみましょう。USBで接続した端末に実行するにはemulateを、パッケージを作るにはbuildコマンドを使用します。</p>

<p></p><pre class="crayon-plain-tag">$ # エミュレータを起動します
$ cordova emulate android (ios, windows)
$ # ビルドを実行します
$ cordova build android (ios, windows)</pre><p></p>

<h1>プラットフォーム／ライブラリの特徴</h1>

<table>
<thead>
<tr>
  <th>項目</th>
  <th>説明</th>
</tr>
</thead>
<tbody>
<tr>
  <td>対応プラットフォーム</td>
  <td>iOS, Android, Windows, Firefox OS, Ubuntu&#8230;</td>
</tr>
<tr>
  <td>コードベースは（ほぼ）完全に統一できるか？</td>
  <td>統一できる</td>
</tr>
<tr>
  <td>UIを記述する言語</td>
  <td>HTML、CSS、JavaScript</td>
</tr>
<tr>
  <td>UIはネイティブか、Webか</td>
  <td>WebView上で実行される</td>
</tr>
<tr>
  <td>パフォーマンス</td>
  <td>WebViewのためネイティブより遅い</td>
</tr>
<tr>
  <td>ネイティブな機能を呼び出せるか？</td>
  <td>Cordovaプラグインを通じて呼び出せる</td>
</tr>
</tbody>
</table>

<p>以下に上の表を補足します。</p>

<h2>サポートするプラットフォーム</h2>

<ul>
<li>iOS</li>
<li>Android</li>
<li>Windows (Windows Phone, Windows 10)</li>
</ul>

<p>以前から数多くのモバイルOSに対応しており、上記以外にもBlackberryやTizen、Firefox OSなどもラインアップに加わっています。アンオフィシャルなものでは、<a href="https://github.com/stevengill/cordova-electron" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Electron対応</a>もあります。</p>

<h2>コードベースは完全に統一できるのか？</h2>

<p>作り方次第ではありますが、基本的には完全に統一できます。ただし、プラットフォームごとにブラウザーエンジンが異なるため、その癖を理解しておく必要があります。</p>

<p>iOSはWebKit、AndroidはWebKitから派生したBlinkが使われるため、近い挙動となります。一方Windowsアプリでは、セキュリティの理由でInnerHTMLやインラインJavaScriptが禁止されているなど、細かい挙動に違いがあります。</p>

<p>また、CSSのプロパティやJavaScriptのサポート度合いもブラウザ依存です。その辺りに気をつけて確認をしながら開発を行うことが求められます。</p>

<p>一方、ネイティブ側は各OSごとの実装依存となります。プラットフォームごとの注意点について、CordovaのAPIドキュメントに記述されています。</p>

<h2>UIを記述する言語</h2>

<p>WebView上にUIを表現します。そのためWebサイトやWebアプリと同様、HTML、CSS、JavaScriptの組み合わせで記述していきます。</p>

<p>ただしモバイルUIにゼロから対応していくのは大変です。そのため、<a href="http://ja.onsen.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen UI</a>や<a href="http://ionicframework.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ionic</a>といったオープンソースのUIライブラリーが多用されます。</p>

<h2>パフォーマンス</h2>

<p>WebView上で動作させることから、ネイティブと比べてボトルネックが発生しやすいです。ただし端末スペック向上やブラウザの最適化などのおかげで、昔と比べるとはるかにスムーズに動作します。</p>

<p>一方で、パフォーマンスチューニングの要であるブラウザ上での高速化テクニックに乏しいという事情もあります。Service WorkerやWebAseemblyといった技術に期待したいところです。</p>

<h2>UIはネイティブか、Webか</h2>

<p>WebView上で開発しますので、ブラウザの持つHTML、CSS、JavaScriptを使用します。</p>

<p>ネイティブUIを実装する取り組みも行われており、Microsoftからは<a href="http://microsoft.github.io/ace/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Project Ace</a>というプロジェクトが立ち上がりました。これを使うと、パフォーマンス向上だけでなく、WebView上にネイティブウィジェットを配置したり、WebViewをネイティブUIの中に組み込むといった事が可能になります。</p>

<h2>ネイティブな機能を呼び出す方法</h2>

<p>Webレイヤーからネイティブレイヤーに、非同期的にネイティブAPIを呼び出す仕組みを備えています。SwiftやJavaで記述する必要がありますが、JavaScript APIで実現できないOSやデバイスの機能を呼び出すことができます。</p>

<p>また、Cordovaプラグイン仕組みが提供されており、npmには様々なプラグインが<a href="https://www.npmjs.com/browse/keyword/ecosystem:cordova" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">公開されています</a>。プラグインを組み込むにはcordova pluginコマンドを実行します。</p>

<p></p><pre class="crayon-plain-tag">$ cordova plugin add cordova-plugin-camera</pre><p></p>

<p>上記の例では、カメラを制御するプラグインを組み込んでいます。これで、下記のようにしてカメラ画像の撮影が可能になります。</p>

<p></p><pre class="crayon-plain-tag">navigator.camera.getPicture(onSuccess, onFail, {
  quality: 50,
  destinationType: Camera.DestinationType.FILE_URI
});
function onSuccess(imageURI) {
  var image = document.getElementById('myImage');
  image.src = imageURI;
}
function onFail(message) {
  alert(message);
}</pre><p></p>

<h1>まとめ</h1>

<p>かつてPhoneGapと呼ばれていた頃と異なり、WebやモバイルOSの進化の流れを受け、だいぶ様変わりしました。一方で、一昔前はアーリーステージにつきものの仕様変更や互換性問題がありましたが、現在では比較的落ち着き、良くも悪くも枯れてきたように思います。</p>

<p>Cordovaの強みは、Web技術をそのまま生かすことでのエンジニア層の厚さと、幅広く使われていることによるエコシステムの大きさではないでしょうか。一度使ったことがある方も、そうでない方も、最新のCordovaを試してみてはいかがでしょうか。</p>
]]></content:encoded>
		
		<series:name><![CDATA[Web技術でアプリ開発2016]]></series:name>
	</item>
		<item>
		<title>HTML5ハイブリッドアプリの濃いネタ満載！第1回Cordova勉強会まとめ</title>
		<link>/masahiro/11351/</link>
		<pubDate>Mon, 17 Nov 2014 00:00:52 +0000</pubDate>
		<dc:creator><![CDATA[田中 正裕]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[イベント]]></category>

		<guid isPermaLink="false">/?p=11351</guid>
		<description><![CDATA[連載： イベントレポート (28)先週の11月5日、Apache Cordova勉強会の第1回が開催されました。HTML5ハイブリッドアプリについて、実際の開発者によるプレゼンテーションが行われました。今回は、参加できな...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (28)</div><p>先週の11月5日、Apache Cordova勉強会の第1回が開催されました。HTML5ハイブリッドアプリについて、実際の開発者によるプレゼンテーションが行われました。今回は、参加できなかった方のために、その勉強会のまとめを紹介したいと思います。</p>

<h3>Cordova勉強会とは？</h3>

<p>まず始めに、そもそも勉強会の目的から。<a href="http://cordova.apache.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Apache Cordova</a>というのは、<a href="http://phonegap.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">PhoneGap</a>や<a href="http://ja.monaca.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>といった製品に組み込まれている、HTML5ハイブリッドアプリを開発するためのオープンソースなフレームワークです。このCordovaの技術情報を共有するために、「日本Cordovaユーザー会」として、月に1度のペースで勉強会を開く活動を行っています。今回は、その第1回となります（第1回の案内は<a href="https://atnd.org/events/57562" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a>）。</p>

<ul>
<li>Twitterハッシュタグ: <a href="https://twitter.com/search?q=https%3A%2F%2Fhtml5experts.jp%23cordovajp&amp;src=typd" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">#cordovajp</a></li>
<li>YouTube公開録画: <a href="https://www.youtube.com/watch?v=Fn_6Soc2U10" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">第1回Apache Cordova勉強会</a></li>
</ul>

<h3>Cordovaの最近ホットな話題</h3>

<p><a href="http://www.slideshare.net/AsialCorp/cordova-41147919" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="http://image.slidesharecdn.com/cordova-141105044351-conversion-gate01/95/cordova-1-638.jpg?cb=1415185221" alt="Cordovaで業務アプリを作る" width="300" class="aligncenter size-medium wp-image-11421" /></a></p>

<h4>新しいbrowserプラットフォームは、ブラウザー上でデバイスAPIをエミュレーション動作</h4>

<p>これまで、iOSやAndroidアプリの開発を目的としていましたが、ブラウザー用のAPIも整備が進み出しました。現時点ではまだ対応APIも少ないものの、今後は充実していくことになりそうです。</p>

<p>browserプラットフォームを使うと、ブラウザー上でCordova APIのエミュレーションが実行されます。ビルドはzip形式で圧縮します。</p>

<h4>ChromeベースとGeckoベースの新しいWebViewエンジンを使えるように</h4>

<p>Cordova 4.0では、WebViewエンジンを選択することができるようになりました。それに伴い、Intelが主導する<a href="https://crosswalk-project.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Crosswalkプロジェクト</a>ではChromiumベースのWebViewエンジンが、MozillaはGeckoベースの<a href="https://github.com/infil00p/MozillaView" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MozillaViewエンジン</a>が登場しました。これにより、下記のようなメリットが挙げられます。</p>

<h5>1. ブレークポイントやプロファイリングなどの高度なデバッグ機能が利用可能に</h5>

<p>Crosswalkを組み込むと、Chrome Dev Toolsを用いたデバッグができるようになります。PCブラウザーとほぼ同じデバッグ機能を、Cordovaアプリでも使えるようになります。</p>

<h5>2. Androidのバージョン問題から解放される</h5>

<p>同一Androidバージョンにおいても、端末メーカーが独自にカスタマイズするWebViewでは、細かな実装レベルに違いがありました。WebViewをCordovaアプリに内包することで、すべてのAndroid端末で、同じブラウザーエンジンを使うことができます（その分アプリサイズは大きくなります）。フラグメンテーションが全く存在しないAndroidネイティブアプリ開発が可能になります。</p>

<h5>3. WebGLなどの最新機能が使える</h5>

<p>最新のブラウザーエンジンが持つHTML5機能を利用できます。CanvasやWebGLを使った3Dグラフィックスもスムーズに動きます！</p>

<h4>Cordova 3.5.0での脆弱性問題には速やかに対応を</h4>

<p>Cordova 3.5.0にて脆弱性が<a href="http://securityintelligence.com/apache-cordova-phonegap-vulnerability-android-banking-apps/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">発見されました</a>。そのため、Google Playストアでは、古いCordovaアプリを利用している場合に警告メッセージが表示されます。速やかに最新版にアップデートしましょう（Google Playストアで非公開扱いされるリスクがあります）。</p>

<h3>Cordova開発のベストプラクティスを学ぶ</h3>

<p><a href="https://speakerdeck.com/anatoo/cordovadezuo-ruhtml5haiburitudoapuri-kai-fa-besutopurakuteisuwoxue-bu" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="https://speakerd.s3.amazonaws.com/presentations/796fe7f0470c0132b5a75e86c61bf7eb/slide_0.jpg?1415242929" alt="Cordovaで業務アプリを作る" width="300" class="aligncenter size-medium wp-image-11421" /></a></p>

<h4>要件定義が重要</h4>

<p>下記のような内容について、クライアント（もしくは企画側）と話し合い、コンセンサスを得ることが重要です。</p>

<ul>
<li>OSバージョンはどこまで対応するか？</li>
<li>Androidの動作保障端末は？</li>
<li>Cordovaプラグインでどこまで実装するか？</li>
</ul>

<p>これはCordovaに限った話ではありませんが、特にCordovaでは後々の方針変更は大きな痛手になる可能性があります。</p>

<h4>UI設計はOSの違いを考慮する</h4>

<p>プラットフォームごとにUI規約は異なります。それを理解したうえで、UI設計を行いましょう。</p>

<h4>巨大なリスト構造はHTML5には不向き</h4>

<p>巨大な数のDOM要素が入るようなUIはHTML5では難しいです。ページ送りなどで代用することも検討しましょう。</p>

<h4>開発アーキテクチャーは「SPA」</h4>

<p>いわゆるSingle-Page Application形式で開発するのがおすすめです。<a href="http://ja.onsen.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Onsen UI</a>や<a href="http://ionicframework.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ionic Framework</a>など、ハイブリッドアプリ用のUIを組み込んだSPAフレームワークが開発での候補になるでしょう。</p>

<h4>コーディングサイクルを最適化</h4>

<p>毎回コンパイルするのは時間の無駄です。browserプラットフォームを使ってPC上で確認したり、<a href="http://ja.monaca.io/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca Localkit</a>のような高速に実機に転送してくれるツールを利用しましょう。</p>

<h4>ボトルネック探しはインスペクターを使う</h4>

<p>JSの処理・CSSのマッチング処理・DOMリフロー・GPUへの転送・描画処理など、アプリのボトルネックの要因は様々です。<a href="https://speakerdeck.com/anatoo/html5deiosapuriandroidapuriwozuo-rou-html5haiburitudoapurikai-fa-ru-men" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちらの資料</a>を参考にしてください。<a href="https://www.genuitec.com/products/gapdebug/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">GapDebug</a>というツールも便利です。</p>

<h4>DOMリークをきちんと対処する</h4>

<p>DOMリークとは、解放されるべきDOM要素がJSから参照されたまま解放されない問題です。やっかいなのが、ドキュメントに含まれないDetatched DOMツリー自体がリークしてしまい、そこに含まれる画像などもメモリー上から解放されません。DOMリークを防ぐ方法として、必要に無くなったDOM要素の参照をきちんと切ったり、イベントリスナーをremoveすることが重要です。</p>

<h4>実機がない端末はクラウドでテスト</h4>

<p>たとえば<a href="http://appkitbox.com/testkit/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Remote Test Kit</a>というサービスでは、クラウドを通じて実端末を一定時間レンタルすることができます。自由にアプリをインストールすることができるため、機種問題で悩まされている場合は、こういったツールが非常に効果的です。</p>

<h3>開発事例 〜iPad向け業務アプリ（サービスマン支援システム）〜</h3>

<p><a href="http://artisanedge.jp/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">アルティザンエッジ合同会社</a>の井上さんより、実際の業務アプリの事例と、そのなかで苦労した点や工夫した点を紹介して頂きました。</p>

<p><a href="https://html5experts.jp//www.slideshare.net/inoccu" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/11/Untitled-300x168.png" alt="Cordovaで業務アプリを作る" width="300" height="168" class="aligncenter size-medium wp-image-11421" srcset="/wp-content/uploads/2014/11/Untitled-300x168.png 300w, /wp-content/uploads/2014/11/Untitled-1024x576.png 1024w, /wp-content/uploads/2014/11/Untitled-207x116.png 207w, /wp-content/uploads/2014/11/Untitled.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>

<ul>
  <li>Cordovaを採用した理由</li>
  <li>BackboneやjQuery Mobileを用いたアーキテクチャー</li>
  <li>ネイティブで開発した「Cordovaプラグイン」も数多い</li>
  <li>Cordovaアプリ開発でハマったこと</li>
  <li>メモリー消費量について</li>
</ul>

<p>ぜひ<a href="https://html5experts.jp//www.slideshare.net/inoccu" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">このリンク</a>より、スライドをご覧になってください。</p>

<h3>次回の勉強会について</h3>

<p>第2回Cordova勉強会は、12月2日午後7時より開始予定です。ご興味ある方は、ぜひ下記のリンクよりお申込みください。</p>

<p><a href="http://7b543bd41af4571f0bdafff1b5.doorkeeper.jp/events/17138" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">第2回Apache Cordova勉強会（DoorKeeper）</a></p>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
		<item>
		<title>PhoneGap/Cordovaの最新トピック満載！「PhoneGap Day US 2014」イベントレポート</title>
		<link>/masahiro/11178/</link>
		<pubDate>Tue, 28 Oct 2014 04:00:58 +0000</pubDate>
		<dc:creator><![CDATA[田中 正裕]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Monaca]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[イベント]]></category>
		<category><![CDATA[海外]]></category>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<h3>まとめ</h3>

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

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

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

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

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

		<guid isPermaLink="false">/?p=10518</guid>
		<description><![CDATA[連載： エンタープライズ開発特集 (7)前々回、前回と業務アプリのフロントエンドについて主に説明しました。今回は、バックエンドに焦点を当てて説明を行います。 業務アプリの多くは、ブラウザーを通じて利用されるWebアプリ方...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/enterprise/" class="series-197" title="エンタープライズ開発特集" data-wpel-link="internal">エンタープライズ開発特集</a> (7)</div><p><a href="https://html5experts.jp/masahiro/10456/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">前々回</a>、<a href="https://html5experts.jp/masahiro/10470/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">前回</a>と業務アプリのフロントエンドについて主に説明しました。今回は、バックエンドに焦点を当てて説明を行います。</p>

<p>業務アプリの多くは、ブラウザーを通じて利用されるWebアプリ方式で提供されます。この場合、サーバー側でJavaやPHP、Rubyといった言語を用いてサーバーサイドプログラムが実行されます。もちろんHTML5やJavaScriptを用いてリッチなWebアプリを実現することができますが、その場合においてもビジネスロジックのほとんどはバックエンドに記述されてます。</p>

<p>一方、モバイルアプリの世界では、この割合が大きく異なります。たとえば、バックエンドの機能は、フロントエンドと連携するためのAPI機能が中心となります。フロントエンドについては、HTML5で開発しようと、ネイティブで開発しようと、バックエンドから受け取ったデータを表示したり、データを編集してバックエンドに送信するといった機能が必要とされます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/09/backend-diff-e1409629910516.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/09/backend-diff-1024x524.png" alt="Webアプリとモバイルアプリのバックエンドの違い" width="450" class="aligncenter size-large wp-image-10531" /></a></p>

<h2>異なるスキルセットが必要</h2>

<p>処理がバックエンドとフロントエンドに分散する問題点の一つは、アプリ開発のスキルセットが異なることです。フロントエンド開発では、ユーザビリティに関する知識や、HTML5やJavaScriptといった言語の理解が必要となります。一方、バックエンド開発では、ビジネスロジックの理解と、フロントエンド開発とは異なるサーバーサイド言語の知識が必要です。エンジニアが両者を一手に引き受けるのは簡単ではありません。</p>

<p>また、バックエンドにおいても、モバイルアプリに特化した機能を求められるケースがあります。たとえば、任意のタイミングでアプリに情報を送信するプッシュ通知や、App StoreやGoogle Playストアを経由せずにアプリを配信する機能、モバイルアプリからユーザー認証を行う機能などです。これらはネイティブ機能を用いて実現され、フロントエンド側にも対応する機能が実装されている必要があります。</p>

<p>さらに、業務アプリを考える上でバックエンドに求められる最も重要な機能は、既存システムとの接続です。これは、既存の業務システムやイントラネットに配置されたデータベースと連携するために必要です。そのためには、ファイアーウォール内に配置された各種システムにインターネットを経由して接続する仕組みを構築する必要があります。</p>

<p>こういったモバイル特有の課題を実現するために、専用のバックエンドをゼロベースで開発することは非現実的です。そのために、クラウドやパッケージ形式でモバイルバックエンドを提供するソリューションが存在します。これらのソリューションを使うと、フロントエンドの開発者はバックエンドの知識に乏しい場合でも、安全に業務システムに接続したり、モバイルアプリの機能を実現することができます。</p>

<h2>既存システムとの接続</h2>

<p>業務システムの運用では、社内ネットワーク（イントラネット）だけでなく、ハイブリッドクラウドやSaaSといったクラウドサービスを利用しているケース、そして両方を使い分けているような場合も考えられます。まずは、こういった多彩なシステムに対していかに接続するか、という観点が重要になります。</p>

<p>接続先として考えられるのは、ERPやCRMといった基幹系システム、Active DirectoryやLDAPといったユーザー管理システム、グループウェアやメールシステムといった情報系システムが挙げられます。B2Cアプリのバックエンドに求められる、FacebookやTwitterなどのソーシャル連携や、広告配信システムなどとは大きく異なることが分かります。</p>

<div id="attachment_10535" style="width: 864px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/09/cloud.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/09/cloud.png" alt="企業モバイルの典型的な接続先" width="400" class="size-full wp-image-10535" srcset="/wp-content/uploads/2014/09/cloud.png 640w, /wp-content/uploads/2014/09/cloud-300x200.png 300w, /wp-content/uploads/2014/09/cloud-207x138.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">企業モバイルの典型的な接続先</p></div>

<h2>開発後の運用基盤</h2>

<p>また、アプリ運用時の基盤についても考慮する必要があります。具体的には、アプリケーションの配布や更新を管理する機能、ユーザーやデータの権限を管理する機能、そしてエラーログや利用状況などを一元的に把握する機能などが挙げられます。</p>

<p>アプリのインストール数が数万台を超えるB2Cアプリと比べて、B2BやB2Eアプリは数十から数千台が中心となります。端末やアプリ管理を集約することで、運用にかかる工数を抑えることができます。</p>

<h3>MEAPはスモールスタートに向いていない</h3>

<p>モバイルエンタープライズの開発・運用基盤として、これまで中心的な存在であったのはMEAP製品です。MEAPとは、Mobile Enterprise Application Platformの略で、2008年に<a href="http://en.wikipedia.org/wiki/Mobile_enterprise_application_platform" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ガートナー社が提唱した概念</a>です。</p>

<p>MEAPは、エンタープライズ向けモバイルアプリに要求される、長期的な開発～運用を担う総合的なソリューションの総称です。MEAPソリューションの具体的な例としては、IBMの<a href="http://www-06.ibm.com/software/jp/websphere/mobile-solutions/worklight/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Worklight</a>や<a href="http://www.kony.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Kony</a>といった製品が挙げられます。</p>

<p>MEAPの大きな機能の1つに、クロスプラットフォーム開発が挙げられます。実はどの製品も、<a href="https://html5experts.jp/masahiro/10456/" target="_blank" data-wpel-link="internal">第1回で紹介した</a>Cordovaフレームワークをベースにしており、HTML5ハイブリッドアプリとして開発されます。</p>

<p>MEAPにも問題点があります。それは、オールインワンとしての利用が前提となるため、どうしてもソリューションとしての規模が大きくなってしまい、それに伴い、値段も上がってしまうことです。特に、モバイルプロジェクトはスモールスタートすることが多いことから、MEAPは向いていないと判断される例が少なくありません。</p>

<p>また、モバイルアプリの開発では、様々なツールやサービスを組み合わせてアプリを作っていくことがよくあります。たとえば、プッシュ通知やテスト配信、アプリ管理などに特化した専用ツールが提供されています。MEAPを利用した場合に、こういった外部ツールとの連携がとりづらくなり、結果としてオープンな環境で開発できないといった懸念があります。</p>

<h2>エンタープライズ向け次世代モバイル基盤</h2>

<p>その中で、次世代モバイル基盤とも言える、新たなエンタープライズ向けのバックエンド基盤が登場しています。2013年末に発表された<a href="http://www.yankeegroup.com/about_us/press_releases/2013-12-10.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">米Yankeeグループの調査結果</a>によると、サービス形式でバックエンド基盤を提供するMBaaSプロバイダーは既に一般的な存在になっており、より優れた技術を持ち、顧客ベースが確立している成長企業が今後主役になるだろうとしています。</p>

<div id="attachment_10541" style="width: 310px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/09/kidozen.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/09/kidozen-300x287.png" alt="エンタープライズ向けモバイルバックエンド" width="300" height="287" class="size-medium wp-image-10541" srcset="/wp-content/uploads/2014/09/kidozen-300x287.png 300w, /wp-content/uploads/2014/09/kidozen-207x198.png 207w, /wp-content/uploads/2014/09/kidozen.png 516w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">エンタープライズ向けモバイルバックエンド</p></div>

<p>その中の1社である<a href="http://kidozen.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">KidoZen</a>社を紹介したいと思います。KidoZenはエンタープライズに特化したバックエンドを提供しており、クラウドだけでなくオンプレミスでの運用にも対応しています。イントラネット内で稼働する各種ユーザー認証基盤やデータベース製品に接続できるだけでなく、Salesforce.comやOffice 365といったクラウドベースのサービスとも連携できます。データ仮想化によるセキュリティ向上や、バックエンドの利用統計といった機能も搭載されています。</p>

<p>今後は、こういった単体でも利用でき、様々なツールと組み合わせて活用できるバックエンド基盤ソリューションが普及すると考えられます。使い勝手の面や、導入や運用コストが、従来のMEAP製品と比べて優位であるためです。</p>

<p>ただし、こういった製品には開発機能が含まれていません。そのために、HTML5開発プラットフォームである<a href="http://monaca.mobi/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Monaca</a>や<a href="http://http://www.applican.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">アプリカン</a>といったソリューションと組み合わせた開発が広がっています。実際に、ガートナーは2013年、MEAPに代わって<a href="https://www.gartner.com/doc/2570424/magic-quadrant-mobile-application-development" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MADP（Mobile Application Development Environment）という概念</a>を紹介し、開発機能とバックエンド運用機能を別軸で捉えはじめています。</p>

<p>モバイルソリューション全般に言えることですが、バックエンドもテクノロジーの進化が早く、ともすると大きな投資の結果、半歩遅れのものができあがるということも考えられます。一方で、エンタープライズ向けのモバイルアプリ開発ソリューションの選択肢も広がってきました。ツールやサービスを組み合わせることで、開発と運用効率を高めることが、今後も求められることになるでしょう。</p>
]]></content:encoded>
		
		<series:name><![CDATA[エンタープライズ開発特集]]></series:name>
	</item>
		<item>
		<title>エンタープライズHTML5モバイルの開発手法─エンタープライズ×モバイルアプリ開発の最新動向(2)</title>
		<link>/masahiro/10470/</link>
		<pubDate>Mon, 08 Sep 2014 00:08:16 +0000</pubDate>
		<dc:creator><![CDATA[田中 正裕]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[システム開発]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[エンタープライズ]]></category>
		<category><![CDATA[ハイブリッド]]></category>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<p>さて、エンタープライズモバイルではフロントエンドだけでなく、バックエンド方式も非常に重要な観点です。セキュアな通信は当然として、どのように社内のシステムと連携するのか、ソリューション選定のポイントは何なのか、開発後の運用基盤をどう整えるのか、などのトピックについて、次回に説明したいと思います。</p>
]]></content:encoded>
		
		<series:name><![CDATA[エンタープライズ開発特集]]></series:name>
	</item>
		<item>
		<title>エンタープライズモバイルはカスタムアプリへ─エンタープライズ×モバイルアプリ開発の最新動向(1)</title>
		<link>/masahiro/10456/</link>
		<pubDate>Fri, 05 Sep 2014 00:00:44 +0000</pubDate>
		<dc:creator><![CDATA[田中 正裕]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[システム開発]]></category>
		<category><![CDATA[エンタープライズ]]></category>
		<category><![CDATA[モバイル]]></category>

		<guid isPermaLink="false">/?p=10456</guid>
		<description><![CDATA[連載： エンタープライズ開発特集 (5)スマートフォンやタブレットが普及する中で、エンタープライズ分野でのモバイル活用が注目を集めています。特にモバイルファーストという掛け声のもと、B2E（Business to Emp...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/enterprise/" class="series-197" title="エンタープライズ開発特集" data-wpel-link="internal">エンタープライズ開発特集</a> (5)</div><p>スマートフォンやタブレットが普及する中で、エンタープライズ分野でのモバイル活用が注目を集めています。特にモバイルファーストという掛け声のもと、B2E（Business to Employee）やB2B（Business to Business）において、スマートデバイスを活用する動きが広まっています。</p>

<p>私としても「多くの企業ではモバイルを活用するのかしないのか」という議論から、「いつモバイルを始めるのか？」「どのように実装するのか？」という内容に論点が移っていることを実感しています。</p>

<p>もう一つの大きな特徴は、事業部門がモバイル化を先導している一方、情報システム部や総務部はセキュリティリスクやBYOD等の対処を迫られていることです。企業モバイル先進国であるアメリカでは、モバイル化を前提として業務の見直しを進めながら、上手くアプリを活用している事例が多く見受けられます。</p>

<h2>企業のモバイル活用はカスタムアプリへ</h2>

<p>モバイル化を進める上で重要なことは、モバイルでの業務範囲を見定め、その範囲に最適化したアプリを設計することです。モバイル活用レベルに応じて課題も変わってきますが、下記の3フェーズに分けて考えるとイメージしやすいと思います。</p>

<div id="attachment_10523" style="width: 460px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2014/08/enpra11.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img src="/wp-content/uploads/2014/08/enpra11.png" alt="エンタープライズのモバイル化における3フェーズ" width="450" class="size-medium wp-image-10523" srcset="/wp-content/uploads/2014/08/enpra11.png 600w, /wp-content/uploads/2014/08/enpra11-300x253.png 300w, /wp-content/uploads/2014/08/enpra11-207x174.png 207w" sizes="(max-width: 600px) 100vw, 600px" /></a><p class="wp-caption-text">エンタープライズのモバイル化における3フェーズ</p></div>

<p>それぞれの段階によって、必要となる基盤が異なります。フェーズ1や2では、MDMやVPN、セキュアブラウザーといったセキュリティ対策や管理用ツールがその中心的な存在となります。実際に、現状では話題の多くがこの状況を反映しているのではないでしょうか。</p>

<p>今後、モバイル化がさらに推進され、業務をよりモバイルに最適化していく中で、カスタムで開発するアプリの重要性が一層高まっていきます。その中でHTML5が重要な技術として位置づけられ、フロントエンドに採用されていくことでしょう。また、その場合のバックエンド技術についても検討が必要です。</p>

<p>まずは技術的な側面から、エンタープライズモバイルの特徴を紹介したいと思います。</p>

<h2>エンタープライズ分野におけるモバイルアプリの技術要件</h2>

<p>大きくフロントエンドとバックエンドに分けて、エンタープライズモバイルの技術的な課題について紹介します。</p>

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

<p>App Store等で配信するアプリでは、通常iOSやAndroidといった特定のプラットフォームに向けて開発されるネイティブアプリが主流です。ユーザーエクスペリエンスを高め、ユーザーから高い評価を得ることが最優先されるためです。</p>

<p>一方で、エンタープライズアプリはクロスプラットフォームが選択の中心となります。その背景として、従業員が自分のプライベート端末を業務でも使用する、BYOD（Bring Your Own Device）が挙げられます。企業がBYODを選択すると、マルチプラットフォームでアプリをサポートすることは必須要件になるためです。</p>

<p>また、業務システムは5年～10年という、一般のコンシューマーアプリと比較しても長いライフスパンで使うことが前提となります。そのため、現時点で採用されたプラットフォームに限定したシステムは、メンテナンスのリスクが伴います。移植性がより重要視されるわけです。</p>

<h3>開発効率</h3>

<p>技術選定の際には、評価軸としてアプリの実行速度よりも開発効率が重要になります。特に、モバイルアプリ開発エンジニアの確保と育成のしやすさ、Webやサーバーサイドといったテクノロジーとの親和性も重要なポイントです。</p>

<h3>UIの作りやすさ</h3>

<p>モバイル開発全般に当てはまりますが、アプリはビジネスロジックが比較的少ない一方で、ユーザーインターフェースの品質が使い心地に直結します。そのため、ワイヤーフレームやモックアップという形でプロトタイプを作りながら、ユーザーの視点で使い勝手を評価していく開発スタイルが好まれます。</p>

<p>業務アプリと言えども、ユーザーはB2Cアプリの使い心地に慣れているため、コンシューマー向けの開発フローを参考にすることが望まれます。ヌルヌル、キビキビ動く必要はありませんが、PC版の画面から表示項目数を落としてモバイルアプリ化するといった配慮が必要です。</p>

<h3>メンテナンスコスト</h3>

<p>端末の性能もさることながら、OSとその周辺環境は驚異的なペースで進化しています。その結果、WebやPC版のアプリと比較しても、TCO（Total Cost of Ownership）の中でメンテナンスの占めるウェイトが高く、リリースしてからの改修、改善をいかにスムーズに行っていくかが重要です。その中で機能改修や新バージョンへの対応のしやすさだけでなく、アプリのアップデートのしやすさも大きなポイントになります。</p>

<h2>フロントエンド技術の本命はHTML5</h2>

<p>さて、コンシューマー向けのアプリとは明らかに性格の異なる要件が連なっていますが、実際の開発技術には変わりがありません。ネイティブアプリやWebアプリなど様々な方式があり、どれも長所と短所を備えています。</p>

<p>その中で、エンタープライズモバイルの要件を満たす最有力候補となるのは、ネイティブアプリにもWebアプリにも対応できるHTML5です。では、なぜエンタープライズ向けフロントエンド技術の本命がHTML5なのか、次回に解説を進めていきたいと思います。</p>
]]></content:encoded>
		
		<series:name><![CDATA[エンタープライズ開発特集]]></series:name>
	</item>
	</channel>
</rss>
