<?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>de:code &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/decode/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>進化するWeb ～Progressive Web Appsの実装と応用～(de:code2018より)</title>
		<link>/osamum_ms/25709/</link>
		<comments>/osamum_ms/25709/#respond</comments>
		<pubDate>Thu, 05 Jul 2018 02:00:10 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PWA]]></category>
		<category><![CDATA[Progressive Web Apps]]></category>
		<category><![CDATA[Service Worker]]></category>
		<category><![CDATA[de:code]]></category>

		<guid isPermaLink="false">/?p=25709</guid>
		<description><![CDATA[2018年5月に開催された日本マイクロソフト主催のイベントde:code 2018で「進化するWeb ～Progressive Web Appsの実装と応用～」というセッションを担当しました。 イベントに参加できなかった...]]></description>
				<content:encoded><![CDATA[<p>2018年5月に開催された日本マイクロソフト主催のイベント<a href="https://www.microsoft.com/ja-jp/events/decode/2018/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">de:code 2018</a>で「進化するWeb ～Progressive Web Appsの実装と応用～」というセッションを担当しました。</p>

<p>イベントに参加できなかった方に向けてセッションの内容を記事にまとめましたので、ぜひご覧ください。</p>

<div style="margin-bottom:5px"> <strong> <a href="https://html5experts.jp//www.slideshare.net/osamum/web-progressive-web-apps" title="進化する Web ～ Progressive Web Apps の実装と応用 ～" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">進化する Web ～ Progressive Web Apps の実装と応用 ～</a> </strong> from <strong><a href="https://www.slideshare.net/osamum" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Osamu Monoe</a></strong> </div>

<p>この記事では、昨今話題に上ることが多いPWAことProgressive Webアプリケーションについて、実際の作り方を解説しながら、それがいったいどういったものであるかを詳(つまび)らかに紹介することを目的としています。</p>

<p>Webでは、「ネイティブアプリと同じことができる」「ネイティブアプリを置き換える」など、期待に胸を膨らませずにいられない浪漫に満ちた噂がありますが、それが本当かどうか記事をご覧いただくとご理解いただけると思います。</p>

<p>Progressive Web Appsの作り方を紹介する前に、簡単に概要を紹介しましょう。</p>

<h2>Progressive Web Appsとは?</h2>

<p>Progressive Web Apps(以下PWAと記述) は、一言でいうならば「ネイティブアプリのようなUXを提供するWebアプリの概念」といったところでしょう。2015年の11月に開催された<a title="Chrome Dev Summit 2015" href="https://codelabs.developers.google.com/chrome-dev-summit" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Chrome Dev Summit 2015</a>のキーノートで発表されて話題となりました。</p>

<p>もともとは、その年の10月にAlex Russell氏(Google)が<a title="Progressive Web Apps: Escaping Tabs Without Losing Our Soul" href="https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ブログ記事</a>に投稿した、クライアントの性能に合わせて段階的に進歩するWebアプリケーションのコンセプトでした。</p>

<p>PWAというと、&#8221;ネイティブアプリのような体験&#8221;といった特徴ばかりが注目されますが、大きな特徴がもう一つあります。それは、PWAという名前にも含まれているProgressiveというところです。</p>

<p>これはHTML5が普及しはじめた頃にあった、「HTML5が解釈できるモダンブラウザーにはリッチな体験を、そうでないブラウザーには従来とおなじ体験を」というデザインの考え方&nbsp;<a href="https://www.blwisdom.com/dictionary/item/6559-001474.html" title="プログレッシブ・エンハンスメント" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Progressive Enhancement</a>に由来します。</p>

<p>PWAはこの思想を踏襲し、性能の低いWebブラウザーを切り捨てることなく、クライアントの性能に合わせた機能提供を行います。</p>

<p>PWAは、性能の低いWebブラウザーからアクセスがあった場合は従来と同じWebページとして動作し、PWAが動作する機能を備えたWebブラウザーからアクセスがあった場合は、その機能を活かし、これまでのWebアプリにはなかったネイティブアプリのような体験を提供します。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/pwa.png" alt="Web アプリケーションの Progressive Enhancement" width="1634" height="900" class="alignnone size-full wp-image-5485" /></p>

<h2>Progressive Web Appsを実現する機能</h2>

<p>それでは、&#8221;これまでのWebアプリにはなかったネイティブアプリのような体験&#8221;というのはどのようなものがあるでしょう? </p>

<p>代表的なものとしては以下の4つが挙げられます。</p>

<ol style="font-size:15px">
<li>オフラインサポート</li>
<li>プッシュ通知</li>
<li>バックグラウンド処理</li>
<li>デバイスへのインストール(デバイスのホーム画面から起動できる)</li>
</ol>

<p>これらはの機能はそれぞれ以下のような新しいAPIによって実現されます。</p>

<ol style="font-size:15px">
<li>オフラインサポート&nbsp;&#8211;&nbsp;<span style="color:blue;font-weight:bold">Cache API</span></li>
<li>プッシュ通知&nbsp;&#8211;&nbsp;<span style="color:blue;font-weight:bold">Push API</span></li>
<li>バックグラウンド処理&nbsp;&#8211;&nbsp;<span style="color:blue;font-weight:bold">Background Sync</span></li>
<li>デバイスへのインストール(OSのメニューから起動できる)&nbsp;&#8211;&nbsp;<span style="color:blue;font-weight:bold">Web App Manifest</span></li>
</ol>

<p>そして、これらの機能を提供しているのが1～3が<a href="https://developer.mozilla.org/ja/docs/Web/API/ServiceWorker_API" target="_blank" title="MDN - サービスワーカー API" data-wpel-link="external" rel="follow external noopener noreferrer">Service Worker</a>で、4が<a href="https://developer.mozilla.org/ja/docs/Web/Manifest" title="MDN - Web App Manifest" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Web App Manifest</a>です。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/sw_new2.png" alt="新しいAPIの提供の図" width="1083" height="456" class="aligncenter size-full wp-image-5505" /></p>

<p>PWAの定義に明確なものはありませんが、上記の機能の中からオフラインサポートと、インストール（アイコンをデバイスのホーム画面に追加）機能をサポートしていれば、PWAを名乗ってもそう否定されることはないでしょう。</p>

<p>これらの機能により、デバイスのホーム画面から、ナビゲーションバーなどのブラウザーUIがない状態でアプリケーションを起動し、オフラインの状態でも使用できる、という体験をユーザーに提供できます。これらの体験は、これまでのWebアプリケーションにはなかったネイティブアプリのならではのメリットと言えるでしょう。</p>

<p>それでは、逆に Web ならではのメリットとはなんでしょう?</p>

<h2>Webのメリット</h2>

<p>ネイティブアプリにはないWebならではのメリットを、Googleさんのイベントではよく以下の<a href="https://paul.kinlan.me/slice-the-web/" title="SLICE: The Web - Tales of a Developer Advocate by Paul Kinlan" target="_blank" style="font-weight:bold" data-wpel-link="external" rel="follow external noopener noreferrer">SLICE</a>という言葉で表しています。</p>

<ul style="font-size:15px">
<li><span style="font-weight:bold">S</span>ecure (安全)</li>
<li><span style="font-weight:bold">L</span>inkable (リンク可能)</li>
<li><span style="font-weight:bold">I</span>ndexable (インデックス可能)</li>
<li><span style="font-weight:bold">C</span>omposable (再構成可能)</li>
<li><span style="font-weight:bold">E</span>phemeral (一時的な利用)</li>
</ul>

<p>これら従来のWebとネイティブアプリの体験上のメリットを合わせたものが、PWAのメリットとなります。</p>

<h2>Progressive Web Appsが提供する価値</h2>

<p>PWAの提供する価値について、Googleさんのイベントではよく<a href="https://youtu.be/NITk4kXMQDw?t=5m48s" title="PWAs: building bridges to mobile, desktop, and native (Google I/O &#039;18)" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">FIRE</a>という言葉で紹介されていますが、 </p>

<ul style="font-size:15px">
<li><span style="font-weight:bold">F</span>ast: パフォーマンスの良い、軽快な動作</li>
<li><span style="font-weight:bold">I</span>ntegrated: OSと統合されたユーザー体験</li>
<li><span style="font-weight:bold">R</span>eliable: オフラインでも動作する利便性と信頼性</li>
<li><span style="font-weight:bold">E</span>ngaging: Webサイトの価値向上</li>
</ul>

<p>この記事ではもう少しかみ砕いて紹介しましょう。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/PWA_Merit.png" alt="" width="1100" height="455" class="aligncenter size-full wp-image-5515" /></p>

<h3 style="font-weight:bold">発見性</h3>

<p>PWAであれば、アプリを公開するのにアプリストアにわざわざお金を払ってアプリを提出したり、審査を通すための不自由なルールに縛られる必要はありません。これまでのWebアプリと同じようにインターネットに公開しておけば、検索エンジンがクロールして見つけてくれます。</p>

<p>いままでのSEOのスキルがそのまま使える上、Webはアプリストアとは比べものにならない数のユーザーが、比べものにならないくらいの回数、常に検索を行っています。この圧倒的なオポチュニティ（機会）の違いは、自分自身が今日何回Webを検索したか、アプリストアを何回検索したか、比べてみればよくわかるでしょう。</p>

<h3 style="font-weight:bold">インストール可能</h3>

<p>PWAはさまざまなデバイスにインストール可能ですが、そのためにプラットフォームごとに違う開発言語で書き直したりパッケージンクしなおしたりする必要はありません。PWAをサポートしているWebブラウザーであれば、同じアプリケーションをその全部にインストールして使うことができます。</p>

<p>また、&#8221;インストールしなくても使える&#8221;点もメリットです。もともとがWebページなので、ちょっとだけ使ってみるということが可能です。</p>

<p>サービスを試用してみようと思ったときに、&#8221;アプリのインストールが障壁になって利用を中断してしまった&#8221;、という経験は誰にでもあることでしょう。また、スマートフォンでコンテンツを閲覧中に、突然、アプリのストア画面が表示され、アプリのインストールを促されて不快な思いをしたこともあるかと思いますが、そういったことを避けられます。</p>

<p>PWAであれば提供者もユーザーもアプリのインストールについてのネガティブな点を回避することができます。</p>

<h3 style="font-weight:bold">再エンゲージ可能</h3>

<p>従来のWebページであれば、ユーザーがコンテンツから離脱したあとは、再び訪問してくれることを祈るくらいしかできませんでしたが PWAはサーバー側から通知をPushすることができます。</p>

<p>これによりユーザーに即時的な価値を提供できます。例えば、ECショップであればタイムセールの開始であるとか、オークションサイトであればオークションの開始や、最高落札額の更新などです。</p>

<p>通知機能を適切に利用することで、ユーザー側の機会獲得を増やし、再エンゲージを促すことができます。</p>

<p>逆にどうでもいいことを通知しすぎるとユーザーの心象を害するので注意が必要です。特に、初めてページを訪問したユーザーに「プッシュ通知を許可しますか?」というメッセージを表示するのは避けたいところです。</p>

<h3 style="font-weight:bold">ネットワーク非依存</h3>

<p>PWAはオフラインでの使用が可能ですので、ネットワークの状態に左右されないように作ることが可能です。また、常に使用されるアセットをローカルにキャッシュすることで表示のスピードアップや、回線の使用料を減らすことにも貢献します。</p>

<h3 style="font-weight:bold">プログレッシブとレスポンシブ</h3>

<p>PWAはきちんとその思想を理解して開発すれば、低機能なブラウザーやPWAをサポートしないデバイスにもサービスを提供できます。また、さまざまな画面サイズに対応するためのレスポンシブな機能については、WebにはMedia Queries等、そのためのナレッジもリソースも豊富に存在するため、既存のスキルを活かして機能を実装できます。</p>

<h3 style="font-weight:bold">安全</h3>

<p>PWAはWebコンテンツと同じWebブラウザーの強力なサンドボックス内で動作するため、ネイティブアプリのようにユーザーの強い権限で動作しないため、誤動作や悪意のあるコードによってシステムに深刻なダメージを与えることはありません。またhttpsによる接続でのみ動作するのでサーバーとのやりとりを安全に行うことができます。</p>

<h3 style="font-weight:bold">リンク可能</h3>

<p>PWAはインターネット上でユニークな URL をもっており、ハイパーリンクのあるさまざまなところからサービスに接続することができます。PWAを使用するのにアプリ ストアは必要なく、面倒なインストールプロセスも必要ありません。</p>

<p></p>

<p>PWAのメリットは、Webとネイティブ アプリのメリットを合わせたということだけでなく、それらを状況に合わせて取捨選択できることです。</p>

<h2>Progressive Web Appsを実現するAPI</h2>

<p>ここからはPWAを実現するためのAPIと、それらをどのように使ってアプリケーションを構築していくかについて紹介します。</p>

<h3>Service Worker</h3>

<p>PWAを実現する上で中心となる機能を提供するのが、Service Workerです。</p>

<p>Service Workerとは何か？ 端的に言うと、「バックグラウンドで動作する<span style="font-weight:bold">&#8220;プログラミング可能な&#8221;ネットワークプロキシ</span>」です。</p>

<p>Service WorkerはWeb Workerの一つで、Webページのスクリプトとは独立して動作しており、DOMにアクセスしたりすることはできませんが、Webページのネットワークリクエストすべてをインターセプトできます。</p>

<p>つまり、Webページからのリクエストを横取りしてキャッシュしたものを返したり、改ざんしたりといったことができます。そのため localhost、127.0.0.1接続以外はhttpsの使用が必須となります。</p>

<h3>Service Workerが提供する機能</h3>

<p>Service Workerが提供する機能は主に以下の4つです。</p>

<ul style="font-size:15px">
<li>キャッシュ</li>
<li>リクエストのハンドリング</li>
<li>Push通知</li>
<li>バックグラウンド同期</li>
</ul>

<p>これらの機能を図で紹介します。</p>

<h3 style="font-weight:bold">キャッシュとリクエストのハンドリング</h3>

<p>Service WorkerはWebページからのリクエストの中に、自分のキャッシュリストに含まれるアセットを見つけると、レスポンスからこれを取得してキャッシュします。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/SW_Chache01.png" alt="" width="1207" height="546" class="aligncenter size-full wp-image-5525" /></p>

<p>それ以降、Webページからリクエストされたアセットがキャッシュ内に存在する場合は、そのキャッシュされたアセットを返します。ネットワークから取得しないので、アセットの取得は高速に完了し、通信コストは発生しません。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/SW_Chache02.png" alt="" width="1206" height="545" class="aligncenter size-full wp-image-5535" /></p>

<h3 style="font-weight:bold">Push通知</h3>

<p>関連付けられたWebページがアクティブでなくても、サーバーからのPushを受け取り、Notification API等を使用してユーザーに通知を行えます。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/sw_push1.png" alt="" width="1206" height="544" class="aligncenter size-full wp-image-5555" /></p>

<h3 style="font-weight:bold">バックグラウンド同期</h3>

<p>オフライン中にユーザーが行った操作をキャッシュし、</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/SW_Offline.png" alt="" width="1207" height="546" class="aligncenter size-full wp-image-5565" /></p>

<p>オンライン時にその内容を同期することができます。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/sw_backgroundsync.png" alt="" width="1205" height="544" class="aligncenter size-full wp-image-5575" /></p>

<p>このように Service Worker は<span style="font-weight:bold">プログラミング可能なネットワークプロキシ</span>として、これまでにないさまざまな機能を提供します。</p>

<p>これらの機能の2018年6月時点の<a href="https://caniuse.com/#search=service%20worker" target="_blank" title="Can I use... Support tables for HTML5, CSS3, etc" data-wpel-link="external" rel="follow external noopener noreferrer">サポート状況</a>は以下のとおりです。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/SW_Browser_support.png" alt="" width="1218" height="496" class="aligncenter size-full wp-image-5585" /></p>

<p>ここからは、Service Workerの具体的使い方について解説していきます。</p>

<h2>Service Workerを使う準備 </h2>

<p>Service Workerを使った開発を行う際に用意しなければならないものがあります。</p>

<p>まず、Service Workerを利用するためのWebアプリケーション、もしくはWebコンテンツが必要です。これはけしてSPA(Single Page Application)のようなアプリケーション然としたものである必要はなく、既存の一般的な Web ページであってもかまいません。</p>

<p>このWebページ、もしくはWebアプリケーションは、htmlやcss、jsや画像に代表されるメディアといった複数のファイルで構成されていると思いますが、それとはべつにService Worker用のJavaScriptファイルをひとつ用意します。ここでは便宜上sw.jsと名付けます。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/06/webAsser.png" alt="" width="800" class="aligncenter size-full wp-image-5595" /></p>

<p>このService Worker用のJavaScriptファイルはWebコンテンツ側のJavaScriptコードから登録され稼働を開始します。</p>

<p>Service Workerは、自身のファイルが配置された以下のディレクトリに対しスコープを持つので、コンテンツ/アプリケーション全体をキャッシュするなど管理下におきたい場合はWebサイトのルートに配置します。</p>

<h2>Service Workerの登録</h2>

<p>Service Workerの登録はWebコンテンツのJavaScript から行います。</p>

<p>登録に必要なコードは非常にシンプルで、最低限、以下のコードで問題を発生させることなく、Service Workerの登録が行えます。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
<div style="text-align:center;width:140px;height:20px;background-color:black;float:right;color:white;margin-top:-10px;margin-right:-10px">Webコンテンツ側</div>
<span style="color:#32CD32">//Service Workerがサポートされているかチェック</span>
if&nbsp;(navigator.serviceWorker)&nbsp;{
&nbsp;&nbsp;&nbsp;<span style="color:#32CD32">//Service Worker を登録</span>
&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">navigator.serviceWorker.</span><span style="font-weight:bold;color:blue">register</span><span style="font-weight:bold;color:fuchsia">(&#8216;</span><span style="font-weight:bold;color:blue">/sw.js</span><span style="font-weight:bold;color:fuchsia">&#8216;);</span>
<br />
}
</div>
</div>

<p>&nbsp;<br /></p>

<p>Webコンテンツ側のコードから、navigator.serviceWorker.registerメソッドにより、Service Workerの登録が行われると、Service Worker用のJavaScriptコード（ここではsw.js）ではinstallイベントが発生します。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
<div style="text-align:center;width:140px;height:20px;background-color:black;float:right;color:white;margin-top:-10px;margin-right:-10px">sw.js側</div>
<span style="color:#32CD32">//キャッシュするアセットのリスト</span><br />
var <span style="font-weight:bold;color:green">urlsToCache</span> = [<br />
&nbsp;&nbsp;&nbsp;&#8216;/&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/index.html&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/css/index.css&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/script/index.js&#8217;<br />
];<br />
<span style="color:#32CD32">//install イベントのハンドラ</span><br />
<span style="font-weight:bold;color:fuchsia">Self.addEventListener(&#8216;</span><span style="font-weight:bold;color:blue">install</span><span style="font-weight:bold;color:fuchsia">&#8216;, function(event) {</span><br />
&nbsp;&nbsp;&nbsp;event.waitUntil(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#32CD32">//キャッシュを開く</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caches.open(&#8216;キャッシュの名前&#8217;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(function(cache) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#32CD32">//アセットのリストをキャッシュに登録</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return cache.addAll(<span style="font-weight:bold;color:green">urlsToCache</span>);<br />
&nbsp;&nbsp;&nbsp;}));<br />
});
</div>
</div>

<p><br /></p>

<p>install イベントハンドラ内では、キャッシュを開き</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
<span style="color:#32CD32">//キャッシュするアセットのリスト</span><br />
var urlsToCache = [<br />
&nbsp;&nbsp;&nbsp;&#8216;/&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/index.html&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/css/index.css&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/script/index.js&#8217;<br />
];<br />
<span style="color:#32CD32">//install イベントのハンドラ</span><br />
Self.addEventListener(&#8216;install&#8217;, function(event) {<br />
&nbsp;&nbsp;&nbsp;event.waitUntil(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#32CD32">//キャッシュを開く</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">caches.open(</span><span style="font-weight:bold;color:blue">&#8216;キャッシュの名前&#8217;</span><span style="font-weight:bold;color:fuchsia">)</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(function(cache) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#32CD32">//アセットのリストをキャッシュに登録</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return cache.addAll(urlsToCache);<br />
&nbsp;&nbsp;&nbsp;}));<br />
});
</div>
</div>

<p>&nbsp;<br /></p>

<p>キャッシュにアセットのリストを登録します。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
<span style="color:#32CD32">//キャッシュするアセットのリスト</span><br />
var <span style="font-weight:bold;color:blue">urlsToCache</span> = [<br />
&nbsp;&nbsp;&nbsp;<span style="color:blue">&#8216;/&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/index.html&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/css/index.css&#8217;,<br />
&nbsp;&nbsp;&nbsp;&#8216;/script/index.js&#8217;</span><br />
];<br />
<span style="color:#32CD32">//install イベントのハンドラ</span><br />
Self.addEventListener(&#8216;install&#8217;, function(event) {<br />
&nbsp;&nbsp;&nbsp;event.waitUntil(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#32CD32">//キャッシュを開く</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caches.open(&#8216;キャッシュの名前&#8217;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(function(<span style="font-weight:bold;color:fuchsia">cache</span>) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#32CD32">//アセットのリストをキャッシュに登録</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return <span style="font-weight:bold;color:fuchsia">cache.addAll</span>(<span style="font-weight:bold;color:blue">urlsToCache</span>);<br />
&nbsp;&nbsp;&nbsp;}));<br />
});
</div>
</div>

<p>&nbsp;<br /></p>

<p>Service Workerが登録され、installイベント内の処理が無事に完了すると、次にactivateイベントが発生します。（もしinstallイベント内の処理が失敗した際にはerrorイベントが発生します）</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
<span style="font-weight:bold;color:fuchsia">self.addEventListener(&#8216;</span><span style="font-weight:bold;color:blue">activate</span><span style="font-weight:bold;color:fuchsia">&#8216;,&nbsp;function(e)&nbsp;{</span><br />
&nbsp;&nbsp;e.waitUntil(<br />
&nbsp;&nbsp;&nbsp;&nbsp;caches.keys().then(function(keyList)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Promise.all(keyList.map(function(key)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(key&nbsp;!==&nbsp;&#8216;キャッシュの名前&#8217;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;caches.delete(key);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));<br />
&nbsp;&nbsp;&nbsp;&nbsp;})<br />
&nbsp;&nbsp;);<br />
<span style="font-weight:bold;color:fuchsia">});</span>
</div>
</div>

<p>&nbsp;<br /></p>

<p>installイベント内で&#8221;しなければいけない処理&#8221;というものは特にないのですが、一般的に古いキャッシュを削除するのに使用されます。このサンプルコードではキャッシュからキーの一覧を取り出し、</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
self.addEventListener(&#8216;activate&#8217;,&nbsp;function(e)&nbsp;{<br />
&nbsp;&nbsp;e.waitUntil(<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">caches.keys().then(function(</span><span style="font-weight:bold;color:blue">keyList</span><span style="font-weight:bold;color:fuchsia">)&nbsp;{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Promise.all(keyList.map(function(key)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(key&nbsp;!==&nbsp;&#8216;キャッシュの名前&#8217;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;caches.delete(key);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">})<br />
&nbsp;&nbsp;);</span><br />
});
</div>
</div>

<p>&nbsp;<br /></p>

<p>キャッシュの名前（新しく指定された）と比較し、異なるものをすべて削除しています。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
self.addEventListener(&#8216;activate&#8217;,&nbsp;function(e)&nbsp;{<br />
&nbsp;&nbsp;e.waitUntil(<br />
&nbsp;&nbsp;&nbsp;&nbsp;caches.keys().then(function(keyList)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;<span style="font-weight:bold;color:fuchsia">Promise.all(keyList.map(function(</span><span style="font-weight:bold;color:blue">key</span>)&nbsp;<span style="font-weight:bold;color:fuchsia">{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">if&nbsp;(</span><span style="font-weight:bold;color:blue">key</span>&nbsp;<span style="font-weight:bold;color:fuchsia">!==&nbsp;&#8216;キャッシュの名前&#8217;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;caches.delete(</span><span style="font-weight:bold;color:blue">key</span><span style="font-weight:bold;color:fuchsia">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));</span>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;})<br />
&nbsp;&nbsp;);<br />
});
</div>
</div>

<p>&nbsp;<br /></p>

<p>上記サンプルコードの、&#8221;キーの一覧と新しく登録されたキャッシュの名前を比較して異なるものをすべて削除してしまう&#8221;、というやり方は少々乱暴かもしれませんので、実際に実装を行う際にはどのようにキャッシュの削除を行うかは十分に考慮してください。</p>

<h3 style="font-weight:bold">なぜ、activateイベントでキャッシュを削除するのか？</h3>

<p>Service Worker自体は、Service Worker用のJSファイルを更新することで再登録されますが、キャッシュが削除されるわけではありません。よって、いずれどこかのタイミングで用済みとなった古いキャッシュを削除する必要が出てきます。</p>

<p>例えば、キャッシュの対象となっているindex.htmlに更新があった場合は、更新前のindex.htmlを保持しているキャッシュを削除しないかぎりユーザーにはいつまでも更新前のindex.htmlが表示されることになります。</p>

<p>Service Worker用のJSファイルが更新されたあと、新しいService Workerはバックグラウンドでインストールされますが、まだ動作はしません。新しいService Workerに制御が移るタイミングは、古いService Workerが制御しているすべてのページが閉じた後からになります。そのためinstallイベントで古いキャッシュを削除してしまうと、まだ動作している古いService Workerはキャッシュを使用できなくなってしまいます。</p>

<p>一方、activateイベントではページの制御が新しいService Workerに移っているので、古いService Workerが使用していたキャッシュを削除することができます。</p>

<h3 style="font-weight:bold">何をキャッシュさせるか？</h3>

<p>Service Workerにキャッシュさせるべきは、App Shellです。App ShellはアプリケーションのUIが機能するために必要な最小限のリソースです。App Shellをローカルにキャッシュすることで、アプリケーションのUI表示と使用可能となるまでの時間を短縮することができ、オフラインでの使用も可能になります。また要件に応じて、キャッシュが有効となるアセット類を指定してもよいでしょう。</p>

<p>しかし、何でもキャッシュさせればよいというものでもありません。例えば、WebGLベースのゲームは、一般的に使用するアセット類のサイズが大きく、これを毎度起動する際にサーバーからダウンロードするのは時間もかかり、通信コストもかさみます。たしかに、これらをキャッシュさせておけば、通信コストを下げ、ゲーム開始までの時間も短縮できます。</p>

<p>しかし、キャッシュストレージの容量には制限があり、また、cacheオブジェクトの代わりに容量の大きいIndexedDBを使用したとしてもクライアントのストレージを占有することになります。</p>

<p>PCなどのストレージ容量の大きいデバイスではあまり問題にならないかもしれませんが、スマートフォンのようなモバイルデバイスではストレージ容量を圧迫することにつながります。よって、なにをキャッシュさせるかは十分に考慮する必要があります。</p>

<h2>リクエストのハンドリング</h2>

<p>Service Workerは有効化(activate)された後、アイドル状態となり、WebページからのリクエストやサーバーからのPushを待ちます。</p>

<p>アイドル状態のとき、制御下にあるWebページでリンクをクリックするなどしてネットワークリクエストが発生するとService Worker ではfetchイベントが発生します。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
<span style="font-weight:bold;color:fuchsia">self.addEventListener(&#8216;</span><span style="font-weight:bold;color:blue">fetch</span><span style="font-weight:bold;color:fuchsia">&#8216;,&nbsp;function(e)&nbsp;{</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;e.respondWith(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caches.match(e.request)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(function(response)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;response&nbsp;||&nbsp;fetch(e.request);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}));<br />
<span style="font-weight:bold;color:fuchsia">})</span>
</div>
</div>

<p>&nbsp;<br /></p>

<p>fetchイベントハンドラの引数として渡されるオブジェクトに、発生したリクエストが含まれるので、同リクエストがキャッシュ内に存在するのか調べ、</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
self.addEventListener(&#8216;fetch&#8217;,&nbsp;function(<span style="font-weight:bold;color:blue">e</span>)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;e.respondWith(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">caches.match(<span style="font-weight:bold;color:blue">e</span>.request)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(function(response)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;response&nbsp;||&nbsp;fetch(e.request);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}));<br />
})
</div>
</div>

<p>&nbsp;<br /></p>

<p>キャッシュ内にリクエストが存在すればそれを返し、存在しなければfetchメソッドを使用してネットワークにリクエストを投げます。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
self.addEventListener(&#8216;fetch&#8217;,&nbsp;function(e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;e.respondWith(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caches.match(<span style="font-weight:bold;color:blue">e.request</span>)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">.then(function(</span><span style="font-weight:bold;color:green">response</span><span style="font-weight:bold;color:fuchsia">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return</span>&nbsp;<span style="font-weight:bold;color:green">response</span>&nbsp;<span style="font-weight:bold;color:fuchsia">||&nbsp;fetch(</span><span style="font-weight:bold;color:blue">e.request</span><span style="font-weight:bold;color:fuchsia">);</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;}));<br />
})
</div>
</div>

<p>&nbsp;<br /></p>

<p>それぞれの処理結果をリクエスト元のWebコンテンツ側に返します。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
self.addEventListener(&#8216;fetch&#8217;,&nbsp;function(e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">e.respondWith(</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;caches.match(e.request)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(function(response&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;response&nbsp;||&nbsp;fetch(e.request);<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-weight:bold;color:fuchsia">}));</span><br />
})
</div>
</div>

<p>&nbsp;<br /></p>

<p>この動作により、Webコンテンツ側ではService Workerやキャッシュを意識することなく、これまで通りの方法でページの制作を行うことができます。</p>

<p>また既存のWebコンテンツにService Workerの機能を追加する場合も、Service Workerを登録するためコードを追加する以外の作業は基本的に必要ありません。</p>

<p>de:code 2018のセッション動画で<a href="https://youtu.be/mk5qkxekFUs?t=20m3s" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Service Workerを追加するデモ</a>を行っていますので、ぜひ実際の動作をご覧ください。</p>

<h2>Web App Manifest</h2>

<p>Web App Manifestは、デバイスのブラウザーによって[ホーム画面に追加]される際のアイコンや、ホーム画面から起動した際のスプラッシュアイコンや背景色、アプリケーションが動作するウィンドウのスタイルを定義します。</p>

<p>manifestは、json形式で記述し、以下のようなlinkタグをWebコンテンツ/アプリケーション側に追加して参照させます。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px;text-align:center">
&lt;<span style="font-weight:bold;color:fuchsia">link</span> rel=&#8221;<span style="font-weight:bold;color:blue">manifest</span>&#8221; href=&#8221;<span style="font-weight:bold;color:blue">/manifest.json</span>&#8220;&gt;
</div>
</div>

<p>&nbsp;<br /></p>

<p>Web App Manifestについては、詳しい解説が<a href="https://developer.mozilla.org/ja/docs/Web/Manifest" target="_blank" title="Web App Manifest | MDN" data-wpel-link="external" rel="follow external noopener noreferrer">MDN</a>にあるので、そちらを参照することをお勧めしますが、以下に簡単な説明を兼ねたサンプルを掲示します。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
{<br />
&nbsp;&nbsp;&nbsp;&#8220;lang&#8221;:&nbsp;&#8220;ja&#8221;,<span style="color:gray">&nbsp;←&nbsp;言語</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;name&#8221;:&nbsp;&#8220;The enemy of galaxy&#8221;,<span style="color:gray">&nbsp;←&nbsp;アプリケーションの名前</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;short_name&#8221;:&nbsp;&#8220;T.E.O.G&#8221;,<span style="color:gray">&nbsp;←&nbsp;アプリケーションのショートネーム</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;start_url&#8221;:&nbsp;&#8220;/?utm_source=pwd&#8221;,<span style="color:gray">&nbsp;←&nbsp;開始するときの&nbsp;URL&nbsp;(※1)</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;display&#8221;:&nbsp;&#8220;standalone&#8221;,<span style="color:gray">&nbsp;←&nbsp;ウィンドウのスタイル</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;background_color&#8221;:&nbsp;&#8220;black&#8221;,<span style="color:gray">&nbsp;←&nbsp;背景色</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;description&#8221;:&nbsp;&#8220;銀河に平和を取り戻すためのゲームです。&#8221;,<span style="color:gray">&nbsp;←&nbsp;説明文</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;orientation&#8221;:&nbsp;&#8220;portrait&#8221;<span style="color:gray">&nbsp;←&nbsp;画面の向き</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8220;icons&#8221;:&nbsp;[{<span style="color:gray">&nbsp;(※2)</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;src&#8221;:&nbsp;&#8220;images/homescreen48.png&#8221;,<span style="color:gray">&nbsp;←&nbsp;画像ファイルのパス</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;sizes&#8221;:&nbsp;&#8220;48&#215;48&#8221;,<span style="color:gray">&nbsp;←&nbsp;サイズ</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;type&#8221;:&nbsp;&#8220;image/png&#8221;<span style="color:gray">&nbsp;←&nbsp;画像の種類</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;src&#8221;:&nbsp;&#8220;images/homescreen72.png&#8221;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;sizes&#8221;:&nbsp;&#8220;72&#215;72&#8221;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;type&#8221;:&nbsp;&#8220;image/png&#8221;<br />
&nbsp;&nbsp;&nbsp;}]<br />
}
</div>
<div style="width:600px;margin:0 auto">
<p style="margin-top:10px">(※1)Google Analytics等を使用しているときはクエリーストリングを使用することでPWAとして起動されたのか、ブラウザからページにアクセスしたのか判断が可能</p>
<p>(※2)iPhoneやiPadでアイコンが反映されない場合は、apple-touch-iconを使用</p>
</div>
</div>

<p>de:code 2018のセッション動画で<a href="https://youtu.be/mk5qkxekFUs?t=27m24s" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Web App Manifest を追加するデモ</a>を行っているので、ぜひ実際の動作をご覧ください。</p>

<h3>現在のWindows 10バージョン 1803のProgressive Web Appsの動作</h3>

<p>なお、2018年6月現在のWindows 10バージョン1803(OS ビルド 17134.112)では、残念ながらWeb App Manifestによるウィンドウの制御は有効になりません。</p>

<p>例えば、Windows 10のMicrosoft EdgeでProgressive Web Appsのページをタスクバーにピン留めして起動したとしてもWebブラウザーのUIを表示したまま起動してきます。</p>

<p>Windows 10でProgressive Web Appsにそれらしい動作をさせるにはUWP(Universal Windows Platform)アプリでラップする必要があります。</p>

<p>しかし、Windows 10の次のアップデートでは、Web App Manifestのdisplayの設定に対し、PWAのウィンドウは<a href="https://youtu.be/6fb-t9ffDvo?t=10m5s" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">以下のような表示になるそうです。</a></p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/07/win10display.png" alt="" width="1283" height="449" class="aligncenter size-full wp-image-5605" />
<br />&nbsp;</p>

<h2>マイクロソフトのProgressive Web Appsへの<br />取り組み</h2>

<p>Windows 10の[Microsoft Store]から Progressive Web Appsとして作られたアプリを入手することができます。</p>

<p>Web App Manifestのところで書いたとおり、現在のWindows 10にプレーンな Progressive Web Appsをインストールしても、ネイティブアプリのような外観にはなりません。そのためMicrosoft Storeから入手できるProgressive Web AppsはUWPアプリにラップされています。</p>

<h3>MicrosoftストアでのProgressive Web Appsの公開</h3>

<p>MicrosoftストアでProgressive Web Appsを公開するには 2つの方法があります。</p>

<p>1つめがBingによる自動インデックスによる登録と、2つめがProgressive Web Appsの提供者がMicrosoftストアにProgressive Web Appsを提出するセルフパブリッシングです。</p>

<p>以下でこの 2つの方法について紹介します。</p>

<h3>Bingによる自動インデックス(BETA)</h3>

<p>現在はまだBETAの状態ですが、BingがWeb上のProgressive Web Appsを検出し、レビューを行い、自動的にMicrosoftストアに公開します。</p>

<p>Bingに自動インデックスされるための条件は、現在のところ以下のようなものがあります。</p>

<ul>
<li>HTTPS、セキュアなエンドポイント</li>
<li>高品質の manifest</li>
<li>オフラインサポート</li>
<li>ストアの審査をパス
   <ul>
      <li>デジタルグッズを販売しないこと</li>
      <li>アダルトコンテンツを含まないこと</li>
      <li>不快なコンテンツは不可</li>
</ul></li>
<li>Windowsならではの差別化がされている</li>
</ul>

<p>上記リストで、最後の&#8221;Windowsならではの差別化がされている&#8221;というのは、少しわかりづらいかもしれません。</p>

<p>Microsoft Storeで公開されるProgressive Web Appsは、UWPアプリにラップされるので<a href="https://docs.microsoft.com/ja-jp/uwp/api/" target="_blank" title="Windows UWP Namespaces" data-wpel-link="external" rel="follow external noopener noreferrer">WinRT (Windows Runtime) API</a>を使用することができます。</p>

<p>つまりWinRT APIを使用することで、Windows 10で使用した際には、純粋なProgressive Web Appsからはアクセスできないプラットプラットフォームやハードウェアリソースの機能を使用することができるため、これらを利用した機能を実装することで差別化を図ることができます。</p>

<h3>Microsoftストア向けProgressive Web Appsの検証</h3>

<p>決して、Progressive Web Appsの検証に限ったものでなく、ましてやMicrosoftストア向けのWebコンテンツ用に限定するものではありませんが、WebサイトやProgressive Web Appsの品質をチェックするための<a href="https://sonarwhal.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">sonarwhal</a>というサービスが公開されています。</p>

<p><a href="https://sonarwhal.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="https://msdnshared.blob.core.windows.net/media/2018/07/sonarwhal.png" alt="" width="400" class="aligncenter size-full wp-image-5625" /></a></p>

<p>sonarwhalはProgressive Web AppsがMicrosoftストア向けの準備がてきているか、だけでなく、一般的なWebサイトやアプリケーションのパフォーマンスやユーザーエクスペリエンス、セキュリティの向上の役に立つ情報を提供してくれます。</p>

<h3>Bingに検出されないようにするには</h3>

<p>インターネットで公開しているProgressive Web AppsをMicrosoftストアから配布されたくない場合、Progressive Web Appsが以下のいずれかの条件に合致していた場合、Bingは自動インデックスを行いません。</p>

<ul>
<li>manifest なし</li>
<li>https なし、もしくは オフラインで動作しない</li>
<li>Robot.txtファイルが設定されている</li>
<li>manifestのdisplay設定がbrowser</li>
</ul>

<p>既に Microsoftストアで公開されているものを取り消したい場合は、アプリを削除するよう <a href="reportapp@microsoft.com" data-wpel-link="internal">reportapp@microsoft.com</a>宛にサービスリクエストを出します。</p>

<h3>セルフパブリッシングによるMicrosoftストアでの公開</h3>

<p>Bingの自動インデックスに期待するのではなく、明示的にMicrosoftストアでProgressive Web Appsを公開するには<a href="https://developer.microsoft.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">dev.microsoft.com</a>で開発者アカウントを取得し、パッケージ(appx)化してMicrosoftストアに提出します。アプリの内容がMicrosoftストアの審査をパスすればMicrosoftストアで公開されます。</p>

<p>Progressive Web Appsをパッケージ化するには以下の方法があります。</p>

<ul>
<li><a href="https://visualstudio.microsoft.com/ja/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Visual Studio 2018</a> を使用する</li>
<li><a href="https://www.pwabuilder.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">PWABuilder</a> を使用する</li>
<li><a href="https://github.com/pwa-builder/ManifoldJS/releases" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">pwa-builder CLI</a> を使用する</li>
</ul>

<h3 style="font-weight:bold">PWABuilder</h3>

<p><a href="https://www.pwabuilder.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><img src="https://msdnshared.blob.core.windows.net/media/2018/07/PWABuilder.png" alt="" width="400" class="aligncenter size-full wp-image-5635" /></a></p>

<p>PWABuilderはインターネットにホストされているサービスで、同じくインターネットにホストされているWebアプリケーションのためのmanifestファイルやService Workerのコード、Service Workerを登録するためのコードを生成します。</p>

<p>また、UWPのHostedアプリのパッケージも生成できるので、Progressive Web AppsをMicrosoftストアで公開する際にはこれをストアに提出します。</p>

<p>PWABuilderを使用した既存のWebアプリケーション用のmanifestファイルやService Workerのコードを生成する手順については de:code 2018 の
<a href="https://youtu.be/mk5qkxekFUs?t=35m19s" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">セッション動画のデモ</a>をご覧ください。</p>

<h3 style="font-weight:bold">Windows ストア(UWP) アプリの価値</h3>

<p>前述しましたが、Progressive Web AppsをUWPアプリ(<a href="https://msdn.microsoft.com/en-us/magazine/mt797652.aspx" target="_blank" title="UWP Apps - Develop Hosted Web Apps for UWP" data-wpel-link="external" rel="follow external noopener noreferrer">Hosted Web アプリ</a>)としてラップすることで WinRT が提供するすべての機能を利用することができます。</p>

<p>これは予定表やアドレス帳といったプラットフォームが提供するソフトウェア的なリソースはもちろん、USBやセンサー類といったハードウェアリソースも含まれます。</p>

<p>アプリケーションが通常のWebブラウザー上で動作しているのか、UWPで動作しているかは JavaScriptのif文で簡単に判断できるので、WinRT APIにアクセスするためのコードをインターネットでホストされているコンテンツに含めておくことができます。</p>

<div style="width:100%">
<div style="width:600px;background-color:gainsboro;margin:0 auto;padding:10px;font-size:15px">
//UWP として動作しているかどうか<br />
if(window.Windows){<br />
&nbsp;&nbsp;&nbsp;//セカンダリータイルをピン留めする<br />
&nbsp;&nbsp;&nbsp;tile&nbsp;=&nbsp;new&nbsp;Windows.UI.StartScreen.SecondaryTile(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tileId,&nbsp;text,&nbsp;text,&nbsp;&nbsp;activationArguments,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newTileDesiredSize,&nbsp;logoUri);<br />
}
</div>
</div>

<p><br /></p>

<p>JavaScriptで記述したUWPから,WinRT APIを使用するサンプルコードは以下に豊富に用意されているので、Windows 10限定となってしまいますが、純粋なProgressive Web Appsの機能だけでは実現できない要件がある場合は、こういった方法もあるということを覚えておくとよいかもしれません。</p>

<p><a href="https://developer.microsoft.com/ja-jp/windows/samples" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">・コードサンプル &#8211; Windows アプリの開発</a></p>

<p>Visual Studio 2018を使用してProgressive Web AppsをUWPでラップし、WindowsRT APIを使用する方法については、de:code 2018 の<a href="https://youtu.be/mk5qkxekFUs?t=42m9s" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">セッション動画のデモ</a>をご覧ください。</p>

<p>その他、Progressive Web AppsをUWPとしてMicrosoftストアに公開することで、Microsoftストアの提供するマーケティングデータ (ダウンロード数、ユーザーの性別、年齢層、国、etc.)や、決済のためのストアのAPIが利用できたり、人気があればMicrosoftストアのトップページに掲示されたり、とさまざまなメリットもあります。</p>

<p>しかも、Hostedアプリであれば、共通のコンテンツでありながら純粋なままのProgressive Web Appsがインターネットでホストされているので、アプリストアを通さない場合のメリットも享受できます。</p>

<p>【参考】<br />
<a href="https://developer.microsoft.com/ja-jp/windows/pwa" target="_blank" style="font-size:15px" data-wpel-link="external" rel="follow external noopener noreferrer">・Windows デベロッパーセンター &#8211; PWAとWindows10</a>
</p>

<p>この記事では、UWPのHostedアプリについて紹介しましたが、Apache Cordovaでもさまざまなモバイル プラットプラットフォーム向けに Hostedアプリを開発することができます。興味のある方は以下の記事をご覧ください。</p>

<p><a href="https://docs.microsoft.com/en-us/visualstudio/cross-platform/tools-for-cordova/first-steps/create-a-hosted-app?view=toolsforcordova-2015" target="_blank" style="font-size:15px" data-wpel-link="external" rel="follow external noopener noreferrer">・Create a hosted web app using Apache Cordova</a></p>

<h2>Progressive Web Appsの価値を高める API</h2>

<p>ここまでWindows 10で動作するUWPアプリでラップされたProgressive Web Appsの紹介をしていましたが、ここからは再びプレーンな Progressive Web Appsについてです。</p>

<p>Progressive Web Appsは、ネイティブアプリのような体験を提供しますが、WebアプリケーションなのでWebブラウザーの機能を超えて動作することはできません。</p>

<p>例えば、表示速度や動作速度はネイティブアプリと比較するとどうしても劣ります。</p>

<p>しかし、Webブラウザーで新しくサポートされた以下のような機能を使用すれば、その能力的な差を縮めることができます。これまでの Webコンテンツにはなかった新しい体験をユーザーに提供したり、決済の仕組みもWeb標準のAPIを使用してこれまでよりも少ない工数で組み込むことができるので、これらを使用してアプリケーションの価値を高めることができます。</p>

<ul>
<li><span style="font-weight:bold;font-size:15px"><a href="https://www.w3.org/TR/css3-namespace/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSS3</a></span>
3D Transform関連等GPUを使用する設定があり、これを意識的に利用することで描画速度を向上させることができます。
</li>
<li><span style="font-weight:bold;font-size:15px"><a href="https://webassembly.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">WebAssembly</a></span>
C言語などで記述し、あらかじめコンパイルしたものをWebブラウザーで動作させるため高速な計算が可能となります。
</li>
<li><span style="font-weight:bold;font-size:15px"><a target="_blank" data-wpel-link="internal">WebVR</a></span>
VRデバイスの提供するAPIをサポートし、ユーザーによりImmersiveな体験を提供できます。
</li>
<li><span style="font-weight:bold;font-size:15px"><a href="https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/paymentrequest/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Payments</a></span>
決済画面その他、支払いに関する機能を提供します。これとPaypalやStripeなどが提供する決済用のAPIを繋げれば少ない工数で独自に決済期の機能を実装できます。自前の決済の仕組みがあれば、もう何かを販売するたびにアプリ ストアに使用料を支払う必要はありません</li>
</ul>

<p>この他にも、最新のWebブラウザーにはこれまでできなかった機能が日々搭載されてきます。そういった新機能をいち早く利用できるのも、逆にレガシーなWebブラウザーには引き算した機能を提供できるのもProgressive Web Appsの良いところです。(もちろん、そう作れば、ですが)</p>

<h1>Progressive Web Appsの位置づけ</h1>

<p>PWAことProgressive Web Appsは「ネイティブアプリのような体験を提供する」という言葉が独り歩きしてしまい、まるで「ネイティブアプリを置き換える」といった印象を持っている人も多いようです。とはいえ、「ネイティブアプリを置き換えることはできない」というのも真ではないでしょう。</p>

<p>例えば、スマートフォンアプリには、アプリとしてインストールさせるためだけに外側をWeb Viewでラップしたいわゆる「ガワアプリ」と呼ばれるものがあります。こういったものは今後はProgressive Web Appsに置き換えられていくでしょう。</p>

<p>実際にイベントサイトや、カンファレンスのセッションスケジュールの部分をPWA化してユーザーが持ち歩けるようにしているサイトはすでにいくつか存在します。</p>

<ul>
<li><a href="https://abc.android-group.jp/2018s/" target="_blank" style="font-size:15px" data-wpel-link="external" rel="follow external noopener noreferrer">ABC 2018 Spring | 日本最大級のAndroidデベロッパーの祭典</a></li>
<li><a href="https://ngjapan.org/" target="_blank" style="font-size:15px" data-wpel-link="external" rel="follow external noopener noreferrer">ng-japan &#8211; The Angular conference in Tokyo, Japan (2018/6/16)</a></li>
</ul>

<p>こういったものもProgressive Web Appsが出てくる以前はWebページとは別にスマートフォン用のアプリを、場合によってはプラットフォームごとに別々の言語で開発し、それぞれのアプリストアに提出して審査を受けるといったことをしていました。</p>

<p>Webページとアプリの開発が共通化でき、配布の手間もかからないということは予算や時間的にも非常に大きなメリットがあります。</p>

<p>しかし、Webブラウザー内のJavaScriptからアクセスできないプラットフォームの機能を利用するアプリケーションや、高速な動作や描画を必要とする用途には今後もネイティブ アプリが選択されることでしょう。</p>

<p><img src="https://msdnshared.blob.core.windows.net/media/2018/07/PWA_position.png" alt="" width="1141" height="292" class="aligncenter size-full wp-image-5645" /></p>

<p>Progressive Web AppsはWebアプリケーションとネイティブアプリの体験的なメリットを受け継ぎ、ちょうどその中間に位置し、その隙間を埋めるものです。</p>

<p>Webのページではpoorだったもの、逆にネイティブアプリではtoo muchだったものが、Progressive Web Appsには最適なのかもしれません。</p>

<p>少し作って試すだけの実装ならそれほど難しくありませんので、気になる人はぜひProgressive Web Appsを作ってみることをお勧めします。</p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>/osamum_ms/25709/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>de:codeで澤円さんが伝えたかった「エンジニアに必要なマネジメント」の真意とは？</title>
		<link>/miyuki-baba/23726/</link>
		<pubDate>Wed, 14 Jun 2017 01:30:27 +0000</pubDate>
		<dc:creator><![CDATA[馬場 美由紀]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[de:code]]></category>
		<category><![CDATA[マネジメント]]></category>
		<category><![CDATA[澤円]]></category>

		<guid isPermaLink="false">/?p=23726</guid>
		<description><![CDATA[連載： de:code 2017 特集 (4)5月23・24日の二日間に渡って開催された日本マイクロソフトの開発者向けカンファレンス「de:code 2017」。その中でも定員数をはるかにオーバーし、入場規制もかかった澤...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2017/" class="series-449" title="de:code 2017 特集" data-wpel-link="internal">de:code 2017 特集</a> (4)</div><p>5月23・24日の二日間に渡って開催された日本マイクロソフトの開発者向けカンファレンス「de:code 2017」。その中でも定員数をはるかにオーバーし、入場規制もかかった澤円さんのセッション「これからのエンジニアに必要な『マネジメント』の考え方」が興味深かったので、レポートしたいと思います。</p>

<p><img src="/wp-content/uploads/2017/06/DSC01357.jpg" alt="" width="640" height="410" class="alignnone size-full wp-image-23730" srcset="/wp-content/uploads/2017/06/DSC01357.jpg 640w, /wp-content/uploads/2017/06/DSC01357-300x192.jpg 300w, /wp-content/uploads/2017/06/DSC01357-207x133.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>マネジメントは「管理職」のことだけはない</h2>

<p>エンジニアの世界では日常茶飯事で交わされている以下のセリフ。皆さんも聞き覚えがありませんか？</p>

<p><span style="font-size: 120%;">「<strong>これさ、なるはやでチャチャっと作ってよ</strong>」</span></p>

<p><span style="font-size: 120%;">「<strong>とりあえずいい感じに仕上げといて</strong>」</span></p>

<p><span style="font-size: 120%;">「<strong>なんかこれ、あんまり動かないよ</strong>」</span></p>

<p>実はこれ、澤さんいわく「<strong>マネジメントが欠けている状態</strong>」なのだとか。どんなマネジメントが欠けているのかというと…、</p>

<ul>
<li><span style="font-size: 120%;"><strong>なるはやでチャチャっと　→　スケジュールマネジメント</strong></span></li>
<li><span style="font-size: 120%;"><strong>とりあえずいい感じに　→　クオリティマネジメント</strong></span></li>
<li><span style="font-size: 120%;"><strong>あんまり動かない　→　リスクマネジメント</strong></span></li>
</ul>

<p>このように全ての出来事にはマネジメントがからんでいます。</p>

<p>マネジメントという言葉からは人事管理や人事評価といった「管理職」をイメージしがちですが、必ずしもそれだけではありません。仕事をする全ての人は、上記のようになんらかの形でマネジメントを「する側」の人であるのです。こうした<strong>マネジメントをきちんと意識して仕事をすることが「エンジニアを救う」</strong>のだと澤さんは言います。</p>

<p>マネジメントという言葉は、もしドラ（※もし高校野球の女子マネージャーがドラッカーの『マネジメント』を読んだら）でピーター・F・ドラッカー氏とともにメジャーになりましたが、セッションではそのドラッガーの名言として澤さんが紹介したのがこちら。</p>

<p><img src="/wp-content/uploads/2017/06/FireShot-02.jpg" alt="" width="640" height="356" class="alignnone size-full wp-image-23747" srcset="/wp-content/uploads/2017/06/FireShot-02.jpg 640w, /wp-content/uploads/2017/06/FireShot-02-300x167.jpg 300w, /wp-content/uploads/2017/06/FireShot-02-207x115.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>テクノロジーで生活は便利になる。効率化するツールが出てくることによって、幸せになることもあれば、逆に振り回されることもある。ある人に都合のいいことは、ある人には都合が悪い場合もある。それは全てのマネジメントは常に「人」にあるからであり、エンジニアも結局は「人」だから。</p>

<p>「テクノロジーは人を幸せにするし、人の生活を豊かにするために存在するものですが、『Visual Studioはこういうことができます』『Windows 10にはこういう機能があります』というように、技術や製品の機能に人を合わせて説明してしまうと、だいたいうまくいかなくなります。主役は人であることを常に意識し、ユーザーサイドに立ち、主語を人にして人の立場をメインに話すとわかりやすくなります。そのために大事になってくるのは、最終的にはコミュニケーションです」</p>

<p>では、コミュニケーションをうまくするにはどうしたらいいのでしょうか。</p>

<p><span style="font-size: 120%;"><strong>「ここの色を変えて」「画面遷移を逆にしといて」</strong></span></p>

<p>要求する側にしたら簡単にできそうに思えますが、その作業の裏側には数えきれないメソッドや作業が潜んでいたりします。なぜそう誤解してしまうのかというと、要求する側は自分の都合のいい状態で頭の中でイメージしてしまうからなのです。</p>

<p>「それを防ぐには、何が問題なのか、何が原因なのか、何がどう見えているのかを理解し、言語化して伝えることで、お互いの合意にもっていかなくてはいけません。しかし、日本人はそうしたマネジメントが根付いていません。どちらかと言えば、曖昧なコミュニケーションを好む傾向があります」</p>

<p>コンピュータの世界は、0と1のみ。「なる早でちゃちゃっと」では通じません。エンジニアがコーディングするとなれば、明確な仕様、要件定義が必要です。それを伝えるためにはわかりやすい言葉に置き換える必要があるのです。</p>

<h2>シリコンバレーは“マインドセット”の聖地</h2>

<p>ここで澤さんは、シリコンバレーに在住する友人の言葉を紹介。</p>

<p><img src="/wp-content/uploads/2017/06/FireShot-03.jpg" alt="" width="640" height="355" class="alignnone size-full wp-image-23753" srcset="/wp-content/uploads/2017/06/FireShot-03.jpg 640w, /wp-content/uploads/2017/06/FireShot-03-300x166.jpg 300w, /wp-content/uploads/2017/06/FireShot-03-207x115.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>「シリコンバレーは地名ではなく、マインドセット。マインドセットは空気を共有するのに必要不可欠」だという友人の言葉に、澤さんはすごく腹落ちしたそうです。</p>

<p>時間と空間を共有できる価値、カッティングエッジとパッション、優秀な頭脳はもちろんですが、マインドセットが共有されている場がシリコンバレーなのだと。</p>

<p>そして、このマインドセットが輸出され、最も息づいているところはインドだといいます。ただ勉強や仕事をして帰ってくるだけではなく、マインドセットを吸収し、帰国して起業する人が増え、インドはシリコンバレー化しているのだそうです。</p>

<p>「インド人は成長力が高くて問題解決能力が抜群であり、GoogleやMicrosoftをはじめとするグローバル企業でもインド人の優れた経営者が数多くいることがそれを証明しています」</p>

<h2>当事者全員が「理解できる」のがマネジメント</h2>

<p>実際にMicrosoftではどのように開発フローが進められているのか、マイクロソフトディべロプメントのトップ・安達理社長にヒアリングした話を紹介してくれました。</p>

<h3>１）カスタマープロミス</h3>

<p>まず最初に行うのは、<strong>カスタマーに対してどんな約束ができるのか、全員で合意</strong>すること。全員というところが大事　合意しないことに対して何かすると必ずエラーになる。</p>

<h3>２）シナリオプランニング</h3>

<p>具体的にどんなシーンでどんな使い方をするのかなどを考えてプランニングする。例えば「最高のエクスペリエンスとエンターテインメント機能を持つコンピュータを提供する」としたら、どんなシーンで使うのかといったことをペルソナを作りながら考えていく。</p>

<h3>３）デリバラブル定義</h3>

<p>実現できるかどうか　デリバリできるかどうかを検討する。</p>

<h3>４）タスク設定</h3>

<p>誰が何を担当するかを決めてタスク設定し、アジャイルで開発していく。</p>

<p>ポイントは、上の人が決めたことに対して言われた通りに開発するのではなく、みんなで合意して作っていくということ。実際の作業はこのように細分化されて開発が進んでいくといいます。</p>

<p><img src="/wp-content/uploads/2017/06/FireShot-04.jpg" alt="" width="640" height="352" class="alignnone size-full wp-image-23758" srcset="/wp-content/uploads/2017/06/FireShot-04.jpg 640w, /wp-content/uploads/2017/06/FireShot-04-300x165.jpg 300w, /wp-content/uploads/2017/06/FireShot-04-207x114.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>それぞれのタスクにはKPIが設定され、責任範囲や実行状況などを判断していきます。このKPI設定とタスク設定がきちんとしていないとプロジェクトはうまくいかないと澤さんは言い切ります。</p>

<p>「タスクは降ってくるものだという意識でいると仕事はできません。自分たちで定義して作っていくもの、権利だと考えるべきです。不得意なことは人に任せるという手もあるが、タスクを自分で定義することが大事。イノベーションは言われたことをやっているだけでは絶対に生まれません。それができていないのなら、提言してみる。それでも変わらないと思うのなら転職をしほうがいいくらい重要な権利なのです」</p>

<p>ちなみに、Microsoftではオーナーシップという言葉がよく使われるそうです。タスク設定した人がオーナーでボスで、責任はその人にある。だからオーナーシップをとるという考え方。案件を作った瞬間にその人は一番偉い立場となり、社内はリソース化します。たとえ社長であってもリソースの一部なので、必要であれば社長を動かすこともできるのだとか。</p>

<p>ただし、全てのボスには説明責任があります。構築までのステップから改変作業まで可視化して説明し、リスク、コスト、スケジュール、リソースをマネジメントする責任や、場合によっては交渉や提案する責任もあります。</p>

<p><img src="/wp-content/uploads/2017/06/FireShot-05.jpg" alt="" width="640" height="353" class="alignnone size-full wp-image-23791" srcset="/wp-content/uploads/2017/06/FireShot-05.jpg 640w, /wp-content/uploads/2017/06/FireShot-05-300x165.jpg 300w, /wp-content/uploads/2017/06/FireShot-05-207x114.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>「当事者全員が理解できることがマネジメント。説明責任を果たすためには、言語化が必要です。技術的に詳しいことは武器ですが、それに説明スキルを持つエンジニアはさらに無敵。論理的かつ簡単に説明する能力を磨くべきだと思います。その技術や製品に対して何も知らない人に説明するといい訓練になります」</p>

<p>自分で案件を生み出しマネジメントするのであれば、時間も人のリソース、働く場所も自由に選べるメリットがあります。自由と責任のバランスは大事なポイントであり、責任を果たせば自由が手に入る。責任を果たせれば、さらにもっと大きな責任を任されるようになり、世の中に貢献する場が増えるでしょう。</p>

<p><img src="/wp-content/uploads/2017/06/DSC01410.jpg" alt="" width="640" height="398" class="alignnone size-full wp-image-23792" srcset="/wp-content/uploads/2017/06/DSC01410.jpg 640w, /wp-content/uploads/2017/06/DSC01410-300x187.jpg 300w, /wp-content/uploads/2017/06/DSC01410-207x129.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><br><span style="font-size: 80%;">▲<strong>通路もステージ前も受講者で埋まっていた澤さんのセッション会場</strong></span></p>

<p>最後にシリコンバレーの友人が教えてくれたこととして、以下の3つを挙げました。</p>

<ul>
<li><span style="font-size: 120%;"><strong>クリエイティブであること</strong></span></li>
<li><span style="font-size: 120%;"><strong>リーダーシップを発揮すること</strong></span></li>
<li><span style="font-size: 120%;"><strong>起業家精神をもつこと</strong></span></li>
</ul>

<p>「AIやロボットが発達していったとしても、この3つは機械にはできないこと。そうであってほしい、そうでなくてはいけない。最前線で仕事をしているのに、置き換えられるなんてもったいない、つまらないですよね。皆さんも組織の中でも起業家精神を持ちつつ、リーダーシップを発揮してクリエイティブなことをしたいと思っている人は多いはず。<br>僕も文系の大学でしたが、ITは大きなものを生み出せるし、世の中を変えることができるんじゃないかと思って、IT企業に入ったんです」</p>

<p>ITは、人の幸せを創るために存在しています。そう信じることがマネジメントの神髄であり、ITと触れていれば、仕事のやり方も変わってきます。</p>

<p>「どうやったら人を幸せにできるテクノロジーを生み出せるかを考える、人がどう幸せを感じるのか見てみることは本当に大事なことです。ステキな未来を一緒に創っていくために我々はここにいます。創る権利、パワー、能力、理解など、もし足りてないものがあれば、私たちからもピックアップしてください」</p>

<p>そんなエモーショナルなメッセージでセッションは終了。50分間があっという間でした。澤さんのセッションはMicrosoftの動画チャンネル<a href="https://channel9.msdn.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">channel9</a>で公開されるそうなので、動画で見たいという方はぜひチェックしてみてください。</p>

<p><img src="/wp-content/uploads/2017/06/18581922_10154730969122297_8877811173777889003_n.jpg" alt="" width="640" height="418" class="alignnone size-full wp-image-23793" srcset="/wp-content/uploads/2017/06/18581922_10154730969122297_8877811173777889003_n.jpg 640w, /wp-content/uploads/2017/06/18581922_10154730969122297_8877811173777889003_n-300x196.jpg 300w, /wp-content/uploads/2017/06/18581922_10154730969122297_8877811173777889003_n-207x135.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><br><span style="font-size: 80%;">▲<strong>セッション前の澤さん自撮りショットから拝借。参加者の皆さん、嬉しそうですね</strong></span></p>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2017 特集]]></series:name>
	</item>
		<item>
		<title>de:code参加者アンケートトップ！Microsoft澤円氏が語った「クラウド心配性な上司を説得するコツ」とは？</title>
		<link>/miyuki-baba/19232/</link>
		<pubDate>Thu, 09 Jun 2016 00:00:15 +0000</pubDate>
		<dc:creator><![CDATA[馬場 美由紀]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[de:code]]></category>
		<category><![CDATA[クラウド]]></category>

		<guid isPermaLink="false">/?p=19232</guid>
		<description><![CDATA[連載： de:code 2016 特集 (8)5月23・24日の二日間に渡って開催され、大盛況のうちに幕を閉じた日本マイクロソフトの開発者向けカンファレンス「de:code 2016」。その参加者アンケートの総合点数で、...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2016/" class="series-371" title="de:code 2016 特集" data-wpel-link="internal">de:code 2016 特集</a> (8)</div><p>5月23・24日の二日間に渡って開催され、大盛況のうちに幕を閉じた日本マイクロソフトの開発者向けカンファレンス「de:code 2016」。その参加者アンケートの総合点数で、134セッションの中でトップのスコアを獲得したのが、2日目の最終セッションに登壇した澤円氏のセッションだ。</p>

<p>澤氏のセッション、「クラウド心配性な上司を説得するコツを伝授します。本当に信頼できるクラウドの構築/運用とは～マイクロソフト クラウド成長の軌跡～」の概要をレポートする。</p>

<p><img src="/wp-content/uploads/2016/06/da228ee35fa34d2ddd9421483b0d7cf6.jpg" alt="" width="640" height="411" class="alignnone size-full wp-image-19620" srcset="/wp-content/uploads/2016/06/da228ee35fa34d2ddd9421483b0d7cf6.jpg 640w, /wp-content/uploads/2016/06/da228ee35fa34d2ddd9421483b0d7cf6-300x193.jpg 300w, /wp-content/uploads/2016/06/da228ee35fa34d2ddd9421483b0d7cf6-207x133.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /><br><span style="font-size: 80%;">▲日本マイクロソフト株式会社　マイクロソフトテクノロジーセンター センター長　澤円氏</span></p>

<h2>クラウド心配性な上司を説得するコツを伝授</h2>

<p>プレゼンで重要なのは、伝えたい内容をいかに伝言ゲームのように伝播させていくか。そう常日頃から断言している澤氏。今回伝えたい相手は、クラウド導入に納得してくれない上司である。どう伝えたら説得できるのか、参加者が会社に持ち帰ってそのまま話したくなるような情報とネタが満載のプレゼンスタイルでセッションは行われた。</p>

<p>セッションの構成は大きく「データセンター構築から運用まで」「データセンター構築中」「データセンター運用」の3つのシーンに分けて語られた。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00511.jpg" alt="" width="640" height="381" class="alignnone size-full wp-image-19600" srcset="/wp-content/uploads/2016/06/DSC00511.jpg 640w, /wp-content/uploads/2016/06/DSC00511-300x179.jpg 300w, /wp-content/uploads/2016/06/DSC00511-207x123.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>【上司に提言】海外との通信に専用線は高すぎますよね？</h2>

<p>Microsoftのデータセンター構築から運用まで一連のオペレーションは、Microsoft Cloud Infrastructure and Operations、略してMCIOと呼ばれる。データセンター構築の情報を漏らさないために、会議室の予約は別の部署の名前を使うなど、情報管理は徹底している。</p>

<p>データセンターの場所選定は、さまざまな条件を要する。まずは電源が確保できること。発電所の近くであり、さらには発電所が停電になったことも考えると二カ所に近いほうが望ましい。液体燃料の確保が必要なので、道路の選定もデータセンター設置の条件となる。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00521.jpg" alt="" width="640" height="333" class="alignnone size-full wp-image-19624" srcset="/wp-content/uploads/2016/06/DSC00521.jpg 640w, /wp-content/uploads/2016/06/DSC00521-300x156.jpg 300w, /wp-content/uploads/2016/06/DSC00521-207x108.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>電源ケーブルは二重化するのは当然のこと、アメリカでは米国基地とネットワーク網を共有している。海底ケーブルへも大型投資を行っているという。海底ケーブル最大の敵はサメ。サメがかじっても切れないケーブルを用意しているという小ネタも披露された。</p>

<p>こうしたトピックをもとに、<strong>「自分だけの専用ケーブルを引いてるみたいだから、ネットワークも信用できるみたいですよ。うちの会社で海外との通信に専用線は高すぎますよね？自分の国にデータセンターを持っているし、グローバルにクラウドの話をしてくれるはず」</strong>と上司に提案するヒントを語る澤氏。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00526.jpg" alt="" width="640" height="325" class="alignnone size-full wp-image-19625" srcset="/wp-content/uploads/2016/06/DSC00526.jpg 640w, /wp-content/uploads/2016/06/DSC00526-300x152.jpg 300w, /wp-content/uploads/2016/06/DSC00526-207x105.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>実は、日本にMicrosoftのデータセンターを置くことを決めたのはCEOのサティア・ナデラ氏だという。日本の地下ネットワーク網は世界最強と言われており、マイクロソフト専用線も複数本ある。さらにその徹底されたグローバル標準について、話を進める。</p>

<h2>【上司に提言】ここまでの標準化ってできますか？</h2>

<p>Microsoftは、Open Compute Projectへの参加をしている。これはFacebookやGoogle、Intel、rackspaceなども参加しているプロジェクトで、サーバーの内部設計がすべて公開されている。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00534.jpg" alt="" width="640" height="346" class="alignnone size-full wp-image-19631" srcset="/wp-content/uploads/2016/06/DSC00534.jpg 640w, /wp-content/uploads/2016/06/DSC00534-300x162.jpg 300w, /wp-content/uploads/2016/06/DSC00534-207x112.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>組み立てられたサーバー、ラックは同じ品質・クオリティで世界に出荷され、100カ所以上、40か国以上・22リージョン以上（※現在も増加中）にラックの状態でデータセンターに納品される。徹底的な標準化で大幅なコストダウンを目指し、標準化スタイルを決めたらそれを貫く。データセンターでやることはほぼケーブル接続だけだという。</p>

<p>特徴的なのは、ラックが白であることだ。白にすることで明るくなるので、接続ミスを減らすことができるし、何より光の量が少なくて済む。空調も使わず、空気の流れで調節している。これらはコストカットにもつながる。そして、こうした対応は一切の例外を認めておらず、全世界共通に行われている。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00542.jpg" alt="" width="640" height="347" class="alignnone size-full wp-image-19633" srcset="/wp-content/uploads/2016/06/DSC00542.jpg 640w, /wp-content/uploads/2016/06/DSC00542-300x163.jpg 300w, /wp-content/uploads/2016/06/DSC00542-207x112.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>「そうはいっても」とマジックワードを繰り出す上司がいたら、<strong>「うち、ここまでの標準化ってできますか？」</strong>そう上司に問いかけることを勧める澤氏。ダラダラと妥協を繰り返すことは、コストを増やすだけと指摘した。</p>

<h2>【上司に提言】サーバールームのログ取れてます？</h2>

<p>さらに徹底したデータセンター運用について説明する澤氏。人はミスする、機械は壊れるを大前提として、人の手を介さない「自動化」を徹底すべきだと語る。</p>

<p>白いラックの上には、むき出しのケーブルが設置されている。なぜなら下（地下）だと手元が見えないから。すべての行動は追跡され、不正がないように手元が見えない状態を作らない。すべてがモニタリングの対象になる。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00552.jpg" alt="" width="640" height="375" class="alignnone size-full wp-image-19647" srcset="/wp-content/uploads/2016/06/DSC00552.jpg 640w, /wp-content/uploads/2016/06/DSC00552-300x176.jpg 300w, /wp-content/uploads/2016/06/DSC00552-207x121.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>不正があれば証拠が残るが、逆にやってなかった場合も証明になる。データが守られると同時に社員も守られているという。知っていることで事故が起こることがある。その可能性をMicrosoftは徹底的に排除している。</p>

<p>データセンターで働く人は情報を見る術を持っていない。サーバーの電源や物理層だけチェックしている。鍵の管理は別組織だ。壊れていたらラックごと交換する。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00559.jpg" alt="" width="640" height="344" class="alignnone size-full wp-image-19648" srcset="/wp-content/uploads/2016/06/DSC00559.jpg 640w, /wp-content/uploads/2016/06/DSC00559-300x161.jpg 300w, /wp-content/uploads/2016/06/DSC00559-207x111.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>ハードディスクもデータセンターから生きて出ることはない。役目を終えたハードディスクは4つに分割されて、それぞれ別の国で処理される。時間と手間がかかることで、犯罪者もあきらめる。犯罪の余地を作らないのだ。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00563.jpg" alt="" width="640" height="344" class="alignnone size-full wp-image-19649" srcset="/wp-content/uploads/2016/06/DSC00563.jpg 640w, /wp-content/uploads/2016/06/DSC00563-300x161.jpg 300w, /wp-content/uploads/2016/06/DSC00563-207x111.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>ここでの上司への質問は<strong>「誰が触ったかわからない状態ってこわくないですか？うち、サーバールームの出入りって全部ログ取れてましたっけ？」</strong>。顧客データと社員を守るため、という大義名分に反論できる上司はなかなかいないだろう。</p>

<h2>【上司に提言】「日本の法律」に対応できるそうですよ</h2>

<p>最近Microsoftが変わりだしたのは、CEOのサティア・ナデラ氏によるところが大きいというのはよく聞く話だ。だが、社長のBrad Smith氏が弁護士だということを知る人は少ないのではないだろうか。彼が大切だと考えているのは、セキュリティ・プライバシー・透明性・法令順守。これはMicrosoftが法を順守する会社であるということを意味すると、澤氏は言う。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00572.jpg" alt="" width="640" height="340" class="alignnone size-full wp-image-19650" srcset="/wp-content/uploads/2016/06/DSC00572.jpg 640w, /wp-content/uploads/2016/06/DSC00572-300x159.jpg 300w, /wp-content/uploads/2016/06/DSC00572-207x110.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>さらにCOOのKevin Turner氏によるMicrosoftのコミットメントを披露。上司に<strong>「日本の法律にちゃんと対応できるそうですよ」</strong>と言える要素を紹介した。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00578.jpg" alt="" width="640" height="354" class="alignnone size-full wp-image-19651" srcset="/wp-content/uploads/2016/06/DSC00578.jpg 640w, /wp-content/uploads/2016/06/DSC00578-300x166.jpg 300w, /wp-content/uploads/2016/06/DSC00578-207x114.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>【上司に提言】あの人たちやりすぎです</h2>

<p>最後に澤氏は、海底に設置するデータセンター「Project Natick」を紹介。究極の水冷化とセキュリティを実現する取り組みでありつつも、「あの人たちやりすぎです」と自虐ツッコミで会場の笑いをとった。</p>

<p><img src="/wp-content/uploads/2016/06/DSC00586.jpg" alt="" width="640" height="342" class="alignnone size-full wp-image-19652" srcset="/wp-content/uploads/2016/06/DSC00586.jpg 640w, /wp-content/uploads/2016/06/DSC00586-300x160.jpg 300w, /wp-content/uploads/2016/06/DSC00586-207x111.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>人々を成長させるためのモバイルファースト、クラウドファーストに徹底的にコミットして世の中をよく変える。「未来を一緒に」つくるために、今できることを伝える努力を最大限やっていきたいと宣言し、セッションを終えた。</p>

<p><img src="/wp-content/uploads/2016/06/DSC04121.jpg" alt="" width="640" height="386" class="alignnone size-full wp-image-19594" srcset="/wp-content/uploads/2016/06/DSC04121.jpg 640w, /wp-content/uploads/2016/06/DSC04121-300x181.jpg 300w, /wp-content/uploads/2016/06/DSC04121-207x125.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p>澤氏のセッションはMicrosoftの動画チャンネルchannel9で公開されている。澤氏のde:codeでのプレゼンを見たいという方は<a href="https://channel9.msdn.com/Events/de-code/2016/SPL-002" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a>からどうぞ！</p>

<ul>
<li>クラウド心配性な上司を説得するコツを伝授します
～本当に信頼できるクラウドの構築/運用とは？ マイクロソフト クラウド成長の軌跡～【<a href="https://channel9.msdn.com/Events/de-code/2016/SPL-002" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">動画公開中</a>】</li>
</ul>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2016 特集]]></series:name>
	</item>
		<item>
		<title>進化の早いMicrosoft EdgeとWebプラットフォーム ～「de:code 2016」セッションレポート ～</title>
		<link>/albatrosary/19173/</link>
		<pubDate>Thu, 26 May 2016 06:00:50 +0000</pubDate>
		<dc:creator><![CDATA[佐川 夫美雄]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Edge]]></category>
		<category><![CDATA[de:code]]></category>

		<guid isPermaLink="false">/?p=19173</guid>
		<description><![CDATA[連載： de:code 2016 特集 (5)エキスパートの佐川が、「de:code2016」のセッションレポート、日本マイクロソフトエバンジェリスト・物江修氏の「Developing on the Edge. 〜 We...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2016/" class="series-371" title="de:code 2016 特集" data-wpel-link="internal">de:code 2016 特集</a> (5)</div><p>エキスパートの佐川が、「de:code2016」のセッションレポート、日本マイクロソフトエバンジェリスト・物江修氏の「Developing on the Edge. 〜 WebプラットフォームとCordova 〜」をご紹介します。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03849.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03849-640x480.jpg" alt="DSC03849" width="640" height="480" class="alignnone size-large wp-image-19176" srcset="/wp-content/uploads/2016/05/DSC03849.jpg 640w, /wp-content/uploads/2016/05/DSC03849-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03849-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>今年の夏、MicrosoftはWindows 10の大型アップデート「Windows 10 Anniversary Update」を予定している。このアップデートで「Microsoft Edge」にも数多くのAPIが追加される。このセッションでは新しく追加されるAPIの紹介と、それらを利用したUniversal Windows Platform(以下、UWPと記載する)、Cordovaアプリケーションの開発ポイントを紹介する。</p>

<ul>
<li>Microsoft EdgeとWindows10のWebプラットフォーム</li>
<li>EdgeHTMLの新機能とこれからの方向性</li>
<li>Webプラットフォームを利用したアプリケーション開発</li>
</ul>

<h1>Microsoft EdgeとWindows10のWebプラットフォーム</h1>

<p>初めに、Microsoft EdgeとWindows 10で「Webプラットフォーム」と呼んでいる事柄についてみていく。すでにご存じのとおり、Windows10には、2つのマイクロソフト製のブラウザが含まれている。Windows10から新しく採用された「Microsoft Edge（以降、Edgeと記載する）」と「Internet Explorer11」である。</p>

<p>Webブラウザが2つ入っている理由は、以下のとおり。</p>

<ul>
<li>Edgeは相互運用性を重視し、最新のWebコンテンツをブラウズするため</li>
<li>Internet Explorer 11は過去のバージョンのIE向けに作られたコンテンツを従来どおりに見るため</li>
</ul>

<p>この二つは物理的に完全に別なものとなっていて、レンダリングエンジンもJavaScriptエンジンも異なる。</p>

<p>EdgeのレンダリングエンジンとJavaScriptの組み合わせが、Windows 10用のアプリケーションを開発する際に使用されるWebプラットフォームになるが、現状、Windows 10で動作するアプリケーションのすべてがEdgeのエンジン（以降、EdgeHTMLと記載する）を利用しているわけではない。</p>

<p>どういう意味か。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03858.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03858-640x480.jpg" alt="DSC03858" width="640" height="480" class="alignnone size-large wp-image-19175" srcset="/wp-content/uploads/2016/05/DSC03858.jpg 640w, /wp-content/uploads/2016/05/DSC03858-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03858-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>アプリケーションとの組み合わせを見てみる。Windows 10から採用されたUWPアプリケーションは、EdgeHTMLを使用している。しかし、以前の環境で作られたWindows 8系のいわゆるWindowsストア・アプリケーションやデスクトップ・アプリケーションであるWin32アプリケーションは、以前の Tridentを使用している。</p>

<p>新しいSDKに含まれるWeb ViewコントロールはEdgeを使用するようになっているので、もしどちらも選択が可能である場合はEdgeHTMLを使用する。</p>

<h1>Windows 10 Anniversary Updateまでに搭載されるEdgeの新機能</h1>

<p>ここからは「Windows 10 Anniversary Update」までに搭載されるEdgeの新機能について紹介していく。Edgeのエンジンが、Windows 10でアプリケーションを開発する際に使用するWebプラットフォームの機能になるので、そのままアプリケーションから使用できるようになる。</p>

<p>Edgeの2016年の機能実装を含めた展望については、今年の2月に<a href="https://blogs.windows.com/msedgedev/2016/02/03/2016-platform-priorities/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Edgeの開発者ブログ</a>で公開されており、その記事では優先課題とて5つ存在する。（参考までに、日本語の開発者ブログは<a href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/04/18/looking-ahead-microsoft-edge-for-developers-in-2016/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a>です）</p>

<ol>
<li>WebテクノロジとWindowsストアによるモダン拡張機能プラットフォームを提供する</li>
<li>アクセシビリティとインクルーシブ デザインにより、Microsoft Edgeを使うすべての人の力になる</li>
<li>Microsoft Edgeの基本であるセキュリティ、パフォーマンス、効率を引き続き向上させる</li>
<li>Webの未来を見据えて開発する</li>
<li>コミュニティのフィードバックや参加を可能にするチャネルを増やす</li>
</ol>

<p>まずは拡張機能。ネイティブ形式のアドオンとは異なるWebテクノロジを活用した、開発者になじみのある拡張機能プラットフォームを作成する。現在のInsider Previe版のEdgeでは同じくプレビュー版のアドオンを使用できるようになっている。</p>

<p>次にアクセシビリティ。この項目では「HTML Accessibility API Mappings」と「Core Accessibility API Mappings」への対応、「ハイコントラストのサポート」や「視覚障碍のある方にとっての読みやすさ」や、「フォーカスおよび選択の操作性の向上」などが表明されていた。</p>

<p>基本機能では、「JavaScript エンジンのベンチマークの向上」「さらなるセキュリティの強化」たとえばFlashを別のプロセスに分離し、不要なコンテンツ処理を保留したり、GPUレンダリングの強化などが表明されている。</p>

<h1>Insider Preview に搭載された新機能</h1>

<p>ここからは「Insider Preview」に搭載された新機能について紹介していく。現在、Insider Previewに実装されていて、実際に試すことができるものが約20個以上、開発中のものを含めると36個くらいあり、しかも、これは現段階のものなので、これからまだ増える可能性がある。</p>

<ul>
<li>Web Speech API (synthesis)</li>
<li>Fetch API</li>
<li>Beacon</li>
<li>Web Notifications</li>
<li>WebRTC</li>
<li>OPUS open audio</li>
<li>VP9 open video playback</li>
<li>WOFF File Format 2.0</li>
<li>FIDO 2.0 Password</li>
<li>Canvas 2D path2D</li>
<li>Ambient Light Events</li>
<li>Color input type</li>
<li>Element</li>
<li>Default parameter (ES2015)</li>
<li>Destructuring (ES2015)</li>
<li>Generators (ES2015)</li>
<li>SIMD (after ES2016)</li>
<li>Exponentiation Operator (ES2016)</li>
<li>Array.prototype.includes (ES2016)</li>
<li>Async Functions (after ES2016)</li>
</ul>

<p>Insiger Previewに新しく搭載された機能をいくつか、デモを交えながら紹介する（この記事ではデモ資料省略）。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03850.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03850-640x480.jpg" alt="DSC03850" width="640" height="480" class="alignnone size-large wp-image-19174" srcset="/wp-content/uploads/2016/05/DSC03850.jpg 640w, /wp-content/uploads/2016/05/DSC03850-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03850-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h3>Web Speech API</h3>

<p>IETF標準の言語タグである「BCP 47」に対応しており、タグの指定によってさまざな言語の指定ができる。音量、音声、速度はもちろん、SSML (Speech Synthesis Markup Language) を使用して音声合成時の修飾的情報を指定したりもできる。</p>

<h3>Fetch API</h3>

<p>「Fetch API」は、Webサーバと通信するためのAPIで、Promise ベースで非同期処理を行える。従来の「XMLHttpRequest」の仕様のさまざまな不足分をなくし、より細かい処理ができるようになっていて、将来的に「XMLHttpRequest」は「Fetch API」に置き換わると言われている。「Fetch API」は「XMLHttpRequest」とは異なり「Service Worker」からも使用できる。参考までに「Service Worker」とは、「Progressive Web Apps」というモバイルWeb向けの新しいコンセプトだ。</p>

<h3>Web Notifications</h3>

<p>「Web Notifications」はユーザーへのデスクトップ通知の設定や表示のために使われるもので、EdgeではWindows 10のアクションセンターと統合される。この通知には、カスタムアイコンやタイトル、メッセージが設定可能だ。Service WorkerとPush APIを組み合わせると、サーバからのPuch通知を受け取って表示したりということが可能になるが、残念ながらこの2つはまだサポートされていない。しかし、ブラウザ上でアプリケーションが稼働状態であれば、WebSocktsやWebRTCの通知を受け取ってデスクトップ通知を表示するといったことが可能だ。</p>

<h2>WOFF2.0フォント</h2>

<p>WOFF2.0フォントは、従来のフォントファイルのサイズを30%以上多く減らす新しいフォーマットだ。日本語を含むアジアフォントではおよそ50%前後節減できると言われている。現在、Webページの60%以上でカスタムWebフォントが使用されていて、平均的にWebページのサイズの5.3%を占めると言われているので、これをサポートすることでページの表示速度の向上が期待できる。</p>

<h3>WebRTC</h3>

<p>WebRTCについて。RTCとは「Real Time Cominucation」の略で、プラグインなしでWebブラウザ間のボイスチャット、ビデオチャット、ファイル共有ができる技術がWebRTCだ。Firefox、Chromeは、Edgeに先行してWebRTC1.0をサポートしているが、EdgeはWebRTCの使い勝手を改善したORTCのみをサポートしてた。このWebRTCとORTCは互換性があるので、互いに通信を行うことができるが、さらなる相互運用性を高めるためにEdgeHTML 15では、WebRTC1.0もサポートすることになった。</p>

<h4>RTCの相互間運用性</h4>

<table>
<thead>
<tr>
  <th>APIサポート</th>
  <th>ORTC</th>
  <th>WebRTC</th>
</tr>
</thead>
<tbody>
<tr>
  <td>EdgeHTML13</td>
  <td>Yes</td>
  <td>No</td>
</tr>
<tr>
  <td>EdgeHTML15</td>
  <td>Yes</td>
  <td>Yes</td>
</tr>
</tbody>
</table>

<table>
<thead>
<tr>
  <th>Codecサポート</th>
  <th>H.264 UC</th>
  <th>H.264</th>
  <th>VP8</th>
</tr>
</thead>
<tbody>
<tr>
  <td>EdgeHTML13</td>
  <td>Yes</td>
  <td>No</td>
  <td>No</td>
</tr>
<tr>
  <td>EdgeHTML15</td>
  <td>Yes</td>
  <td>Yes</td>
  <td>Yes</td>
</tr>
</tbody>
</table>

<h3>その他</h3>

<p>そのほかにもオーディオ用の高い圧縮フォーマットであるOpusや動画圧縮コーデックのVP9、細かい時間の計測に使用される「High Resolution Time」のLebel2や、フォルダのドラッグ・アンド・ドロップ、Webブラウザで生体認証を行うためのFIDO(ファイド)2.0、それからBeacon、アクセシビリティ関連のエレメントなどなど多くの機能がサポートされる。</p>

<h1>ハイブリッド・アプリケーション</h1>

<p>説明した機能は、ハイブリッド・アプリケーション開発用の様々なフレームワークを使用することで、スマートフォンやデスクトップのアプリケーションとして利用することができる。ここからは、Webプラットフォームを利用したアプリの開発について紹介していきます。</p>

<p>ブラウザで動作するWebアプリケーションを、ハイブリッド・アプリケーション化するメリットは3つほどあります。</p>

<ul>
<li>オフライン</li>
<li>アプリストアのエコシステム</li>
<li>プラットフォーム/ハードウェアの機能</li>
</ul>

<p>もう少し待っているとEdgeでもService WokerがサポートされてWebアプリケーションでもオフラインの利用が可能になるので、実際にアプリケーション化するメリットというのはアプリストアのエコシステムを使用するとか、Webブラウザでは使用できないハードウェアの機能を使用するということぐらいに差が縮まる。</p>

<p>このハイブリッド・アプリケーションの形式には、Packageアプリケーションと、Hotedアプリケーションがある。Packageは、オフラインで利用可能。サーバサイドのリソースががならずしも必要でない。Hostedは常に最新のコンテンツで実行でき、開発の一元化が可能だがオフラインでの使用が前提となる。ざっくり言うとコンテンツの配置場所くらいしか違いはない。</p>

<h1>Universal Windows PlatformとCordovaを利用したHostedアプリケーション</h1>

<p>UWPとCordovaで、どのようにHostedアプリケーションを作るか、というのを紹介する。</p>

<h2>UWP</h2>

<p>これがWindow 10に用意されている、アプリから使用可能なOSリソースだ。プッシュ通知や、タイルへの情報表示、予定表、アドレス帳へのアクセス、Cortana連携とWindowsランタイムを使用し、さまざまなハードウェアにもアクセスできる。作成は</p>

<ol>
<li>package.appmanifestの[アプリケーション]タブで[スタート]を指定</li>
<li>[コンテンツURI]タブでWinRTへのアクセスを設定</li>
<li>使用しないファイルを削除</li>
</ol>

<h2>Cordova</h2>

<p>Tools for Apache Cordovaが提供する機能は</p>

<ul>
<li>ターゲット</li>
<li>ビルド</li>
<li>デバッグ</li>
<li>エミュレータ</li>
<li>コード補完</li>
</ul>

<p>がありiOSアプリケーションに対するビルドにはMacが必要ではあるが、ほとんどの環境(Android系/iOS系/Windows系)で実行可能だ。CordovaにおけるHostedアプリケーションの作成は以下の３つで行っていく。</p>

<ol>
<li>config.xmlの編集</li>
<li>www¥scripts¥index.jsの編集</li>
<li>index.htmlの編集</li>
</ol>

<p>尚、Apache Cordovaを使用したホスト型Webアプリケーションの作成については<a href="https://blogs.msdn.microsoft.com/visualstudio_jpn/2016/05/19/apache-cordova/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">こちら</a>の資料を見るとよい</p>

<h2>Visual Studioで提供されている検証環境</h2>

<ul>
<li>Ripple</li>
<li>Android</li>
<li>Monaca Debugger(iOS/Android)</li>
<li>Windows Phone</li>
</ul>

<p>その他、Mac OS用、リモートエージェント、Mac in Cloud(Mac OSのホスティング)などがある。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03862.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03862-640x480.jpg" alt="DSC03862" width="640" height="480" class="alignnone size-large wp-image-19177" srcset="/wp-content/uploads/2016/05/DSC03862.jpg 640w, /wp-content/uploads/2016/05/DSC03862-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03862-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>最後に、Webプラットフォームについてということと、この夏に向けていろいろなAPIが出てくる。そして、Webではできないことができるようになると物江氏は締めくくり、Microsoft Edgeのすぐそこにある未来について熱く語ってくれた。今最も熱いブラウザは「Microsoft Edge」ではないだろうか。</p>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2016 特集]]></series:name>
	</item>
		<item>
		<title>Microsoft西脇資哲氏が語る、AI、ドローン、ロボティクスの未来 &#8211; de:code 2016セッションレポート</title>
		<link>/yusuke-naka/19062/</link>
		<pubDate>Thu, 26 May 2016 01:22:55 +0000</pubDate>
		<dc:creator><![CDATA[仲 裕介]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[de:code]]></category>

		<guid isPermaLink="false">/?p=19062</guid>
		<description><![CDATA[連載： de:code 2016 特集 (4)こんにちは。編集部の仲です。de:code 2016はいかがでしたか？ この記事では、初日の最後に行われた、Microsoftのエバンジェリストであり「エバンジェリスト養成講...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2016/" class="series-371" title="de:code 2016 特集" data-wpel-link="internal">de:code 2016 特集</a> (4)</div><p>こんにちは。編集部の仲です。de:code 2016はいかがでしたか？</p>

<p>この記事では、初日の最後に行われた、Microsoftのエバンジェリストであり「エバンジェリスト養成講座」などで有名な、西脇資哲さんのセッションをご紹介します！
AI、ドローン、ロボティクス、そしてテスラ Model Sまで会場に登場した、盛りだくさんのセッションでした。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/1.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/1.jpg" alt="1" width="640" height="480" class="aligncenter size-full wp-image-19066" srcset="/wp-content/uploads/2016/05/1.jpg 640w, /wp-content/uploads/2016/05/1-300x225.jpg 300w, /wp-content/uploads/2016/05/1-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h1>Twitterのライブ配信</h1>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/32.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/32.jpg" alt="Twitterのライブ配信" width="300" height="225" class="alignright size-medium wp-image-19069" srcset="/wp-content/uploads/2016/05/32.jpg 640w, /wp-content/uploads/2016/05/32-300x225.jpg 300w, /wp-content/uploads/2016/05/32-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
筆者が前回西脇さんのセッションを聴講した時も同じことをやっていたため、もはや恒例となっていると勝手に思ってますが、セッション中、Twitterにハッシュタグをつけてつぶやくと、前方スクリーンにその様子が表示されるという、イカした趣向が用意されていました。その日一番多くつぶやいた方には最後にプレゼントがあるとのこと。</p>

<p><BR><BR><BR></p>

<h1>ウェアラブルデバイス</h1>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/3.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/3.jpg" alt="Microsoft Band 2" width="300" height="225" class="alignright size-medium wp-image-19078" srcset="/wp-content/uploads/2016/05/3.jpg 640w, /wp-content/uploads/2016/05/3-300x225.jpg 300w, /wp-content/uploads/2016/05/3-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
最初のテーマはウェアラブルデバイスです。会場では、IoT☓医療現場での活用例として、Microsoft Band 2を利用したデモが披露されました。</p>

<p><BR><BR><BR><BR><BR><BR></p>

<p>このデモでは、Microsoft Band 2で西脇さんの皮膚の表面の汗の量や心拍数等を収集。BluetoothでRaspberry Pi（OSはWindows 10 IoT）に転送し、そこからSoracomのSIMでAzureにアップロードされます。アップロードされたセンサーデータは <a href="http://www.wingarc.com/cloud/mbc/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Motion Board Cloud</a> というサードパーティのサービス(Azure上で稼働)を利用して、活動量という形で表示しているそうです。活動量は100を超えるとちょっと落ち着きないな、というぐらいの指標になるんだとか。</p>

<div style="width:300px; float:left;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/6.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/6.jpg" alt="アーキテクチャ" width="300" height="225" class="aligncenter size-medium wp-image-19080" srcset="/wp-content/uploads/2016/05/6.jpg 640w, /wp-content/uploads/2016/05/6-300x225.jpg 300w, /wp-content/uploads/2016/05/6-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
</div>

<div style="width:300px; float:right;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/4.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/4.jpg" alt="活動量を表示" width="300" height="225" class="aligncenter size-medium wp-image-19083" srcset="/wp-content/uploads/2016/05/4.jpg 640w, /wp-content/uploads/2016/05/4-300x225.jpg 300w, /wp-content/uploads/2016/05/4-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
</div>

<div style="clear:both;">
</div>

<p><br></p>

<p>これが実際にどのようなシーンで活用されるのか、１つ例が紹介されました。</p>

<p>我々の国を含め、先進国は医療費の高騰が問題となっています。そのための対策として、患者さんに積極的に在宅医療をすすめるという試みが行われています。在宅医療をすすめるべきかどうかの判断について、今までは医者が個別に診察を行い、膨大な時間をかけて判断（トリアージュ）していました。</p>

<p>この活用例では、IoTデバイスからの生体情報や、過去の病歴、類似治療比較を基にマシンラーニングによって、各患者さんのシビリティレベル（治療が必要か否か）を自動判別しています。画面右側の上位に表示されている患者さんは緊急度が高い（すぐに治療が必要な）患者さんであると判断できます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/5.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/5.jpg" alt="デモ：シビリティレベルの自動判別" width="640" height="480" class="aligncenter size-full wp-image-19090" srcset="/wp-content/uploads/2016/05/5.jpg 640w, /wp-content/uploads/2016/05/5-300x225.jpg 300w, /wp-content/uploads/2016/05/5-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>医療の現場ではIoTを活用して、このような自動化が行われているという事例の紹介でした。IoTデバイスとAzure、ソフトウェア・パッケージなどを開発者の皆さんが自由に組み合わせて、様々なソリューションを実現することができるため、是非チャレンジしてほしいとのこと。</p>

<h1>ロボティクス</h1>

<p>次の題材はロボティクス。今回のセッションでは基調講演でも出てきたPalmi（パルミ）君とPepper君が登場しました。</p>

<h3>Palmi君</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/8.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/8.jpg" alt="Palmi" width="640" height="480" class="aligncenter size-full wp-image-19107" srcset="/wp-content/uploads/2016/05/8.jpg 640w, /wp-content/uploads/2016/05/8-300x225.jpg 300w, /wp-content/uploads/2016/05/8-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>今回のデモは、西脇さんの予定を取り込み受付を行うデモでした。このデモはOfice365と連携しているそうです。その他、ドリンクオーダーのデモとして、パルミくんが音声認識しその結果をExcel Onlineのスプレッドシートに自動入力するデモや、音声認識したデータを、別のサービスで書かれた議事録に添付する等、ロボティクスとクラウドサービスを連携したデモが披露されました。</p>

<h3>Pepper君</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/7.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/7.jpg" alt="Pepper君" width="640" height="480" class="aligncenter size-full wp-image-19110" srcset="/wp-content/uploads/2016/05/7.jpg 640w, /wp-content/uploads/2016/05/7-300x225.jpg 300w, /wp-content/uploads/2016/05/7-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>次はPepper君を利用した見守りを行うデモです。ある空間の見守りをPepper君にお願いすると、音楽に合わせてるんるん踊る感じで見守り。見守り中に目の前で起きたことを画像認識等を活用して把握し、事後報告するというもの。写真では伝わりませんが、とても面白いデモでした。また、認識精度もかなり高いです。</p>

<h1>自動車</h1>

<p>次は自動車です。今回はなんと、会場内にあのテスラの実写が持ち込まれていました。西脇さんいわく、内燃機関を積んでいるクルマをイベント会場に入れるためには消防法の関係などで、いろいろな制約があるそうです。しかし、テスラは電気自動車で内燃機関がないため、大型のコンピュータを導入するのと手続き的には変わらなかったということ。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/9.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/9.jpg" alt="テスラ" width="640" height="480" class="aligncenter size-full wp-image-19112" srcset="/wp-content/uploads/2016/05/9.jpg 640w, /wp-content/uploads/2016/05/9-300x225.jpg 300w, /wp-content/uploads/2016/05/9-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>今回はテスラをMicrosoft Bandから操作するデモが披露されました。仕組みはテスラに持ち込まれているSurfacesがコンパニオンデバイスとして機能しており、そのデバイスに対して、様々なアクションを与えることでテスラを制御、また、テスラから得られた車両情報をデバイスを通して収集し、クラウドにアップしたりすることが可能ということです。</p>

<div style="width:300px; float:left;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/12.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/12.jpg" alt="テスラ車内" width="300" height="225" class="aligncenter size-medium wp-image-19115" srcset="/wp-content/uploads/2016/05/12.jpg 640w, /wp-content/uploads/2016/05/12-300x225.jpg 300w, /wp-content/uploads/2016/05/12-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
</div>

<div style="width:300px; float:right;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/13.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/13.jpg" alt="コンパニオンデバイス" width="300" height="225" class="aligncenter size-medium wp-image-19116" srcset="/wp-content/uploads/2016/05/13.jpg 640w, /wp-content/uploads/2016/05/13-300x225.jpg 300w, /wp-content/uploads/2016/05/13-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
</div>

<div style="clear:both;">
</div>

<p><br></p>

<p>このコンパニオンデバイス上のアプリは、C#やJavaでアプリケーションを書くことができるそうです。現在テスラは、安全性の面等から、サードパーティ制のアプリを認める（導入する）ことはやっていないそうですが、この取組には非常に大きな可能性があると、西脇さんは付け加えました。今まで、車両の制御等を自由にするということは難しかったが、Surfacesで.netやJavaを使いこの車両を自由にコントロールし、クラウド上から操ることが可能になる。非常に大きな可能性を秘めていると言っても過言ではないと付け加えました。</p>

<p>そして、もうひとつ、テスラに関するデモが行われました。テスラを持っている人が一番悩ましいのは、実は充電スポットを探すことだと西脇さんは言います。テスラは走行用バッテリーとしては、一般家庭1週間分の電気容量を蓄えているそうですが、実際に走行するとバッテリーの消費量は激しいのが事実。バッテリーを充電するための充電スポットを検索するアプリとして、EVSmartというものが出ているそうです。このアプリはXamarinで開発されているとのこと。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/14.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/14.jpg" alt="EVSmart" width="640" height="480" class="aligncenter size-full wp-image-19118" srcset="/wp-content/uploads/2016/05/14.jpg 640w, /wp-content/uploads/2016/05/14-300x225.jpg 300w, /wp-content/uploads/2016/05/14-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Xamarinを商用環境で積極的に活用してほしいと締めくくりました。</p>

<h1>鉄道</h1>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/18.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/18.jpg" alt="Nゲージ" width="300" height="225" class="alignright size-medium wp-image-19124" srcset="/wp-content/uploads/2016/05/18.jpg 640w, /wp-content/uploads/2016/05/18-300x225.jpg 300w, /wp-content/uploads/2016/05/18-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
次は、鉄道ということでNゲージが登場。鉄分が高まってきましたー。余談ですが、このジオラマは銚子電鉄をモデルにしているそうです。</p>

<p><BR><BR><BR><BR><BR><BR></p>

<p>このNゲージのデモでは、Windowsタブレット上のXamarinで開発されたアプリから電車を制御します。Nゲージをコンピュータから制御するというのはわりとありふれたことかもしれませんが、このデモで一番重要なのは、センサーを利用して在線検知（鉄分が高い言葉かもしれないがお分かりいただけるだろうか？）を行っているということでした。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/16.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/16.jpg" alt="制御アプリ" width="640" height="480" class="aligncenter size-full wp-image-19121" srcset="/wp-content/uploads/2016/05/16.jpg 640w, /wp-content/uploads/2016/05/16-300x225.jpg 300w, /wp-content/uploads/2016/05/16-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>仕組みは、線路上に電流を計測するセンサーを設置し、電車が通過すると電流が流れるため、その状態を検出して、電車が線路のどの部分に存在するのか判定するという。このデモでは、電流の情報はAzure IoT Suiteで収集し、タブレット上のアプリでそれを表示しているそうだ。（画面上部オレンジ色に変わっている部分が在線している位置）この仕組は、デモのために作ったわけではなく、今後実際の鉄道でも使われようとしている技術だという。</p>

<p>実際この技術を応用するとどんなことができるかといえば、速度・走行位置のリアルタイム表示も可能になるため、現在、人が電車の運行を集中管理しているところを、一部コンピュータに任せることができるかもしれないという。これに車両本体のセンサ情報（人がどれだけ載っているか等）を加えてマシンラーニングと組み合わせれば、実現できる可能性がある。可能性が広がっていると締めくくった。</p>

<h1>船舶</h1>

<p>次は、船舶について。まず最初にある動画が流されました。船舶の位置情報（AIS）は公開情報になっており、この情報を使って、Azure、マシンラーニング、PowerBIを組み合わせて、東京湾のすべての船舶位置の表示とすべての船舶の航行進路予測を行い、その結果から衝突予測を行い、必要な船舶に回避命令を出したり新しい航路を指示するというのを実現したそうです。この画像はその時の動画の一部です。</p>

<div style="width:300px; float:left;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/21.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/21.jpg" alt="21" width="300" height="225" class="aligncenter size-medium wp-image-19130" srcset="/wp-content/uploads/2016/05/21.jpg 640w, /wp-content/uploads/2016/05/21-300x225.jpg 300w, /wp-content/uploads/2016/05/21-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
</div>

<div style="width:300px; float:right;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/22.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/22.jpg" alt="22" width="300" height="225" class="aligncenter size-medium wp-image-19131" srcset="/wp-content/uploads/2016/05/22.jpg 640w, /wp-content/uploads/2016/05/22-300x225.jpg 300w, /wp-content/uploads/2016/05/22-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
</div>

<div style="clear:both;">
</div>

<p><br></p>

<p>（とても良く出来た動画でしたが、おそらく公開されてないと思われます）</p>

<p>東京湾は世界でも有数の過密航路区間となっており、衝突事故が発生しないように、通常は東京湾に入ってくる大型船舶にはタグボートが付くことになっているそうです。しかし、小型の船舶はそんなことが出来ないため、それを解決するために、マイクロソフトと中央省庁で一緒に行った取り組みが、この動画だという。</p>

<p>船舶の安全は古くは灯台の明かりと人間の判断によって守られてきました。それが、無線になり、レーダーになり、ITの技術革新によって、今ではマイクロソフトのクラウドと機械学習技術がお役に立てる時代になった、と締めくくりました。</p>

<h1>無線航空機</h1>

<p>次は、空、ドローンの話です。昨今、Windows 10 IoTで動くドローンが登場し始めたということ。実際会場では実物が披露されました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/33.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/33.png" alt="Drone" width="640" height="429" class="aligncenter size-full wp-image-19136" srcset="/wp-content/uploads/2016/05/33.png 640w, /wp-content/uploads/2016/05/33-300x201.png 300w, /wp-content/uploads/2016/05/33-207x139.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>このドローンを利用して実際に無人航行を行った際のフライト情報（バッテリー残量、電圧、高度等）をクラウドに蓄積し、PowerBIで可視化するというデモが紹介されました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/24.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/24.jpg" alt="フライト情報可視化" width="640" height="480" class="aligncenter size-full wp-image-19137" srcset="/wp-content/uploads/2016/05/24.jpg 640w, /wp-content/uploads/2016/05/24-300x225.jpg 300w, /wp-content/uploads/2016/05/24-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h1>　人／人工知能</h1>

<p>最後は、基調講演にも登場した人工知能「りんな」の話題です。会場では画像認識のデモが行われました。</p>

<p>この画面は西脇さんのiphone上でLINEをつかってりんなと会話をしているところです。文章の代わりに柴犬のイメージをアップロードしています。
<a href="https://html5experts.jp/wp-content/uploads/2016/05/26.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/26.jpg" alt="りんなと柴犬" width="640" height="480" class="aligncenter size-full wp-image-19139" srcset="/wp-content/uploads/2016/05/26.jpg 640w, /wp-content/uploads/2016/05/26-300x225.jpg 300w, /wp-content/uploads/2016/05/26-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>西脇さんいわく、柴犬の画像を送って、「これは柴犬です」と返すのは、人工知能ではなくアシスタントであるということ。りんなは、人と楽しく会話をするにはどうすればいいかを考えて実践する事を目的とした人工知能なので、そうは返さないようです。上記例では、「超かわいい」と、それ以降話を繋げられるような返しができていることがわかると思います。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/27.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/27.jpg" alt="アシスタントと人工知能の違い" width="640" height="480" class="aligncenter size-full wp-image-19141" srcset="/wp-content/uploads/2016/05/27.jpg 640w, /wp-content/uploads/2016/05/27-300x225.jpg 300w, /wp-content/uploads/2016/05/27-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>次に、りんなにテレビの音声を聴かせるというデモが行われました。左の写真のように、テレビの横で音声認識機能を利用して音声を取り込み送信してあげます。時間にして５秒程度。そうすると、写真右のようにどのテレビ局のどういう番組名なのか、その番組に出演しているタレントさんの名前や関連する話題を喋ってくれるんです。</p>

<div style="width:300px; float:left;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/34.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/34.png" alt="テレビの音声を聴かせる" width="273" height="300" class="aligncenter size-medium wp-image-19142" srcset="/wp-content/uploads/2016/05/34.png 583w, /wp-content/uploads/2016/05/34-273x300.png 273w, /wp-content/uploads/2016/05/34-189x207.png 189w" sizes="(max-width: 273px) 100vw, 273px" /></a>
</div>

<div style="width:300px; float:right;">
<a href="https://html5experts.jp/wp-content/uploads/2016/05/35.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/35.jpg" alt="認識結果" width="300" height="225" class="aligncenter size-medium wp-image-19143" srcset="/wp-content/uploads/2016/05/35.jpg 640w, /wp-content/uploads/2016/05/35-300x225.jpg 300w, /wp-content/uploads/2016/05/35-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
</div>

<div style="clear:both;">
</div>

<p><br></p>

<p>このデモは、りんなとクラウド上の深層学習によるデモということです。マイクロソフトのデータセンタは地デジの映像をリアルタイムですべて蓄積しているそうです。今放送されている音声とアップロードした音声をクラウド上でリアルタイムにマッチングして、番組名を推測する。そこから、出演者の情報などを検索し、会話につなげていくということ。これはすごかった。</p>

<p>今日紹介した、りんなを使ったデモは皆さんも自分のスマホで試すことが出来るようなので、是非試してみてください！</p>

<h1>技術革新に付いていこう</h1>

<p>最後に昨今の技術革新について、こんな話がありました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/29.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/29-300x225.jpg" alt="技術革新 1925年マンハッタン" width="300" height="225" class="alignright size-medium wp-image-19146" srcset="/wp-content/uploads/2016/05/29-300x225.jpg 300w, /wp-content/uploads/2016/05/29.jpg 640w, /wp-content/uploads/2016/05/29-207x155.jpg 207w" sizes="(max-width: 300px) 100vw, 300px" /></a>
「技術革新が進むと今までの職業がなくなるのでは？」とよく言われます。最近では人工知能の話題が熱いですし、尚更。そこで登場したのがこの写真。</p>

<p>1905年のマンハッタンの写真と1925年のマンハッタンの写真。（写真は1925年の方）
両方の時代の写真を比較し、1905年は馬車が全盛。当然馬の世話をする職業があったはず。しかし、20年後の1925年の写真では馬車が姿を消し、すべて自動車に置き換わっています。では、1905年当時馬の世話をしていた人達は、1925年には職を失っているのでしょうか？</p>

<p>西脇さんはこう言いました。</p>

<p>「違うんです。1925年になったら、駐車場やガソリンスタンド、板金工場を運営してるんです。カーアクセサリを売ってるんです。技術革新についていった人は職業を変えるんです。技術革新についていった人は職業がなくなることはありません。プログラミングできる人は絶対に職業が無くなることはありません。」</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/36.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/36.png" alt="西脇さん" width="640" height="480" class="aligncenter size-full wp-image-19149" /></a></p>

<p>マイクロソフトのテクノロジーとそれを支えるエンジニアの皆さんのおかげで、将来は大きく変わって魅力あふれる未来になる。そんな未来を一緒に作っていきましょう。</p>

<p>最後にそう締めくくり、西脇さんのセッションは終わりました。</p>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2016 特集]]></series:name>
	</item>
		<item>
		<title>モダンWeb：たった今と、ほんの少し未来のはなし～「de:code 2016」セッションレポート～</title>
		<link>/albatrosary/19092/</link>
		<pubDate>Wed, 25 May 2016 07:48:45 +0000</pubDate>
		<dc:creator><![CDATA[佐川 夫美雄]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Progressive Web Apps]]></category>
		<category><![CDATA[SPA]]></category>
		<category><![CDATA[Web Components]]></category>
		<category><![CDATA[de:code]]></category>

		<guid isPermaLink="false">/?p=19092</guid>
		<description><![CDATA[連載： de:code 2016 特集 (3)この記事は、「de:code2016」のセッションレポート、日本マイクロソフトエバンジェリスト物江修氏による「モダンWeb:たった今と、ほんの少し未来のはなし」です。講演内容...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2016/" class="series-371" title="de:code 2016 特集" data-wpel-link="internal">de:code 2016 特集</a> (3)</div><p>この記事は、「<a href="https://www.microsoft.com/ja-jp/events/decode/2016/default.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">de:code2016</a>」のセッションレポート、日本マイクロソフトエバンジェリスト物江修氏による「モダンWeb:たった今と、ほんの少し未来のはなし」です。講演内容を再現していますが、ニュアンス等伝えきれない場合があるかもしれません。ご了承ください。</p>

<h1>モダンWebとは</h1>

<p>昨今、様々なところで「モダンWeb」という言葉を聞くが、その定義は曖昧で意味するところの範囲が広範囲に及んでいるためではないかと考える。多くの場合、「モダンWeb」という文脈で語られている内容は次の４つの事柄で語られている。</p>

<ul>
<li>モダンなWebシステム</li>
<li>モダンな開発手法</li>
<li>モダンな標準機能</li>
<li>モダンなアプリケーション</li>
</ul>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03848.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03848-640x480.jpg" alt="DSC03848" width="640" height="480" class="alignnone size-large wp-image-19104" srcset="/wp-content/uploads/2016/05/DSC03848.jpg 640w, /wp-content/uploads/2016/05/DSC03848-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03848-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>単にモダンWebアプリケーションと言った場合にはこれらいろいろな意味に捉えることが多いが、このように四つに分けることができる。このセッションでは、アプリケーションを開発するのに必要な「モダンなWeb標準の機能」、「モダンなWebアプリケーション」に関して触れる。</p>

<h1>なぜ「モダンWeb」が話題になっているのか</h1>

<p>第一に挙げられることは「時代の要求」。具体的には以下の3つが挙げられる。</p>

<ul>
<li>Web技術の進化</li>
<li>コンテンツのリッチ化</li>
<li>クライアントの多様化</li>
</ul>

<p>Web技術で作るリッチなUIは昔から存在していたが、以前はFlashなどのプラグインを利用したいわゆるRIA(Rich Internet Applications)のほうが優勢だった。その後、Ajaxでデータを取得し、そのデータを使って部分的なUIの更新が可能になり、jQuery UIなどのUIライブラリによる開発生産性の向上、そしてHTML5の登場によって、プラグインで行っていたことがWebの標準技術だけで作ることが可能になった。これがWeb技術の進化である。</p>

<p>そしてスマートフォンから始まったFlashの衰退が進み、今までFlashで行っていたような要求をWebコンテンツ側にやってくるようになり、コンテンツのリッチ化が始まった。</p>

<p>スマートフォンを始め、PCブラウザー以外の様々なものがインターネットに繋がり、クライアントが多様化した。</p>

<p>この「クライアントの多様化」はサーバーサイドの形態にも影響を与え、その影響が、Webブラウザー上で動くアプリケーションにも影響を与えたという状況になっている。具体的にどういうことなのか。</p>

<p>黎明期のWebアプリケーションは、リクエストされたページを単純にレスポンスするというもの。ちなみに一番最初のWebサーバーはティム・バーナーズ・リーが作った「CERN Httpd」で、1991年にニュースグループで公開されたが、翌年に作られた「NCSA Httpd」ではCGIがサポートされ、動的ページが作れるようになった。ご存知の通り、このサーバーサイドで処理をして、処理結果をページで返すWebアプリケーションは広く使われている。</p>

<p>さらに、新しいクライアントとして携帯電話が現れる。NTT Docomoから始まった携帯電話は、それまでWebのクライアントというと、PCブラウザかゲーム機くらいで、いずれも机に座って使うようなものだった。</p>

<p>しかし、携帯電話は持ち歩き、行動に必要な情報を得るためのツールとして機能するモビリティという考え方が生まれた。</p>

<p>今までとは利用用途が異なる、サーバーではデバイスに応じた専用のコンテンツを作る必要があるなどコンテンツを作っていくには困難な状況だった。</p>

<p>やがて、スマートフォンに代表されるスマートデバイスが現れます。これらは、PCブラウザー用のコンテンツを同じ様に処理することができたので、わざわざ専用のコンテンツを用意しなくても済む。問題は、画面サイズに応じて表示を切り替える必要があり、同時期に出てきたHTML5関連技術であるCSS3を使ったレスポンシブWebデザインで、こうした技術を吸収することができた。</p>

<p>さらにスマートフォンは、サーバーサイドの処理にさらに大きな変化をもたらした。</p>

<p>Webアプリケーションの登場です。サーバにリクエストを投げるが、必要とするのはページではなくデータでした。この影響を受け、Webサーバーに必要な技術は、データを返す「API」が重要になった。</p>

<p>現在では、クライアントデバイスの性能とWebブラウザーの機能も数段上がり、処理性能ではネイティブで作られたアプリケーションと同等なことができるようになった。</p>

<h1>SPA(Single-page Application)</h1>

<p>単一ページによるWebアプリケーションであるSPAの特徴は、以下が挙げられる。</p>

<ul>
<li>画面遷移はDOM操作</li>
<li>ページのリフレッシュは不要</li>
<li>リッチなエクスペリエンス</li>
</ul>

<p>SPAにするメリットもいくつかある。例えば、サーバーサイドを「サービス化」することによって、多様化していくクライアントにも対応できるようになる。つまり、サービスをどこにでも提供できポータビリティを上げることができる。</p>

<p>現在のようにクライアント技術の進化が劇的に早い（言い換えると、陳腐化する速度も早い）状況下でもSPAは有効だ。クライアントとサーバーのロジックを物理的に別けることで保守性を上げることができるから。さらに分業においては、サーバーサイドを開発する人間、クライアントサイドを開発する人間で、やるべきことに集中できるということが挙げられる。</p>

<h1>プログラミングスタイルの変化</h1>

<p>SPAの登場によつてプログラミングのスタイルも少なからず変化している。Ajaxなどの非同期処理を行う場合、処理の単位はサーバーサイドの動作と必ずしも一致せず、処理の順番やタイミングもまちまちになる。それらを適切にハンドリングして画面に描画する必要がある。</p>

<p>さらに、ユーザーアクションの開始が、いわゆるPull型（サーバにリクエストするという意味で）だったが、WebRTCやWebSocketsの登場にによって、突発的に開始されるPush型（サーバからクライアントに通知する）可能性もある。</p>

<p>非同期処理の完了であるが JavaScriptではイベント通知で行われる。また、今まではサーバーロジックで行われていた処理をクライアントで行うケースも出てくるので、1つの完結する処理を行う場合、複数回サーバーとやり取りする必要がある。よく「コールバック地獄」ということに陥る。</p>

<p>不規則に発生するイベントを適切にルーティングしつつ、状態を把握し、かつ処理全体を制御する仕組みが必要で、こういった制御を行うために、JavaScriptのライブラリやフレームワークが様々な機能を実装し提供している。</p>

<p>そして、最新のモダンブラウザーがサポートしつつあるECMA Script2015や2016にも、こうした機能が標準で用意されようとしている。つまりイベントのフロー制御方法は</p>

<ul>
<li>Promise(ES2015)</li>
<li>async/await(ES2016)</li>
<li>Generator/yield(ES2015)</li>
</ul>

<p>Promiseは非同期処理を抽象化したオブジェクトでPromiseパターンで非同期処理を行う。async/awaitは、Promise とGeneratorの糖衣構文で、そのGenerator/yieldは、反復子 (イテレータ )の生成元で、実行環境を維持したま中断・再開が可能となる。</p>

<p>SPAでは画面のレンダリングも従来のサーバーサイドの処理をメインしたものとは異なる。</p>

<p>SPA以前のサーバーサイドでページが生成されるタイプのWebアプリケーションでは、画面データの成形もサーバーサイドで行われていましたが、SPAではその部分をクライアントサイドで行うことになる。</p>

<p>素直に書くなら、エレメント一つひとつのインスタンスを取得して、各々データをセットする所謂「Glue code」を書く（&#8221;グルー&#8221;とは糊のこと）ことになる。だが、これだとエレメント変更に関わるUI仕様があるたびにコードまで修正する必要がありメンテナンスが大変だし、いちいちデータを入れるためだけのコードを書くということ自体が非効率。</p>

<h2>データバインディング</h2>

<p>そこで出てきたのがUIへのデータバインドです。
マークアップにUIとデータの関係を記述しておくと、JavaScriptフレームワークがよしなにデータをセットしてくれるという仕組みです。
こうすることで、データと画面、いわゆる ModelとViewの関係を1:1に紐づけ、構造的には明確に分け部品化することが可能になった。</p>

<p>&#8220;バインド&#8221;とあるように、ModelとViewの関係を保持します。つまり、モデルもしくはビューに変更が発生した場合、その変更が一方向、あるいは双方向に反映されます。Modelの変更のみかViewに反映されるのが1Wayバインドで、双方向に変更が伝わるのが2Wayバインドです。</p>

<p>まとめるとモダンなWebアプリケーションとは</p>

<ul>
<li>SPA</li>
<li>リアクティブな動作</li>
<li>M-V-Whatever</li>
</ul>

<h1>少し先のWebアプリケーションの技術的コンセプト</h1>

<p>ここからは、ここ数年提唱されているWebアプリケーションの技術的コンセプトについて紹介します。</p>

<ul>
<li>Web Components</li>
<li>Progressive Web Apps</li>
<li>WebAssembly</li>
</ul>

<h2>Web Components</h2>

<p>まずは「Web Components」です。これはWebをコンポーネント化する仕組みで、2013年のGoogle I/Oで紹介された。実は、Webをコンポーネント化するという仕組みは、これが最初ではなく、マイクロソフトも1998年にHTMLコンポーネントというものを提案したし、Mozillaも2001年にXBLと2007年にXBL2というのを提案した。</p>

<p>このコンポーネント化のメリット、目的について</p>

<p>Webのアプリケーションは、他のソフトウェア・アプリケーションと同様に複雑になり、今ではリリース製品の開発に大勢が協力して取り組むことは珍しくなくなった。少しでも効率化を図るには、関係者やシステム間の重複が最小限になるように開発作業を分割する正しい方法を見つけることが重要になる。そのための方法としてコンポーネント化がある。複雑なシステムでも、機能を分割していけば、単純化することができる。全体をある程度の機能単位に分割する、つまりはコンポーネント化だ。</p>

<p>Web Componentsの目標は、HTML、CSS、JavaScriptの関連グループを分離し、単一ページのコンテキスト “内” で共通関数を実行することで、複雑さを軽減することだ。</p>

<p>この Web Components は、複数の API を組み合わせるか、それ単独を使用して実現する。
しかし、すべての Web ブラウザーがその API をサポートしているわけではないので、Polyfill 用のライブラリーが用意されています。</p>

<p>そしてこちらがWeb Componentsを構成する要素です。</p>

<ul>
<li>HTML Templates</li>
<li>Shadow DOM</li>
<li>Custom Elements</li>
<li>HTML Imports</li>
</ul>

<p>現在のサポートの状況はこのようになっています。</p>

<table>
<thead>
<tr>
  <th>Web Components</th>
  <th>Edge 13</th>
  <th>Chrome 50</th>
  <th>Firefox 45</th>
  <th>Safari 9.1</th>
</tr>
</thead>
<tbody>
<tr>
  <td>HTML Templates</td>
  <td>○</td>
  <td>○</td>
  <td>○</td>
  <td>×</td>
</tr>
<tr>
  <td>Shadow DOM</td>
  <td>× Medium</td>
  <td>○</td>
  <td>△※</td>
  <td>×</td>
</tr>
<tr>
  <td>Custom Elements</td>
  <td>× High</td>
  <td>○</td>
  <td>△※</td>
  <td>×</td>
</tr>
<tr>
  <td>HTML Imports</td>
  <td>× Low</td>
  <td>○</td>
  <td>△※</td>
  <td>×</td>
</tr>
</tbody>
</table>

<p>※ 既定では動作しない</p>

<h2>Progressive Web Apps</h2>

<p>これはモバイル Web アプリ向けのコンセプトで、具体的には、高性能のモバイルWebブラウザー向けにネイティブアプリケーションのようなUXを提供しようというも。去年の「Chrome Dev Summit」のキーノートで発表され話題になったものだ。今年の４月に行われた「Google Developers Summit Tokyo 2016」でも2日のテーマになっていたくらい力を入れている。</p>

<p>Progressive Web Appsに求められる体験をまとめると次の様なもの</p>

<ul>
<li>ネイティブアプリケーションのようなUX

<ul>
<li>オフラインサポート: Service Worker</li>
<li>プッシュ通知: Web Notifications/Push API</li>
<li>ホームスクリーンにアイコンの追加: Web App Manifest</li>
<li>バックグラウンド: Service Worker</li>
<li>高速でなめらかなインターフェース: CSS3 Animation</li>
</ul></li>
</ul>

<p>Service Workerは、JavaScriptで実装されているローカルのプロキシ、あるいはApplication Cacheの改良版として利用できる。
いままで Web ブラウザーからサーバーにコンテンツをリクエストする場合、サーバーになげてそれを返していたのが、その間にカスタマイズ可能な Service Worker というのが入って
バックグラウンドで動いているので、タブを閉じてもブラウザを終了しても動作しているので、プッシュ通知もうけとれるとこと。httpsでしか動作しない。</p>

<p>Progressive Web Appsを実現する技術のサポート状況は</p>

<table>
<thead>
<tr>
  <th>Edge</th>
  <th>Chrome</th>
  <th>Firefox</th>
  <th>Safari</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Internal build</td>
  <td>Canary 51.0.2677.0</td>
  <td>Nightly</td>
  <td>&#8211;</td>
</tr>
</tbody>
</table>

<h3>WebAssenbly</h3>

<p>WebAssenblyは、コンパイル済みのバイナリをWebブラウザ上で直接動作させる仕組で、Microsoft、Google、Mozilla、Webkitプロジェクトのメンバーで共同開発されていて足並みが揃っている。</p>

<p>JavaScriptよりもポータブルでロード時間や実行に対するパフォーマンスに優れたアプリケーションを作ることが可能だ。asm.jsの次のステップとしている。</p>

<p>2016/3/14〜16の間にMicrosoft、Google、Mozillaの3社が3Dゲーム<a href="http://webassembly.github.io/demo/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Angry bot</a>での検証結果を各ブログで公開している。</p>

<p>WebAssemblyの実装状況は</p>

<table>
<thead>
<tr>
  <th>WebAssembly</th>
  <th>Edge 13</th>
  <th>Chrome 50</th>
  <th>Firefox 45</th>
  <th>Safari 9.1</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Service Workers</td>
  <td>× High</td>
  <td>○</td>
  <td>○</td>
  <td>×</td>
</tr>
<tr>
  <td>Fatch API</td>
  <td>△ Preview</td>
  <td>○</td>
  <td>○</td>
  <td>×</td>
</tr>
<tr>
  <td>Web Notifications</td>
  <td>△ Preview</td>
  <td>○</td>
  <td>○</td>
  <td>×</td>
</tr>
<tr>
  <td>Push API</td>
  <td>× High</td>
  <td>○</td>
  <td>○</td>
  <td>×</td>
</tr>
<tr>
  <td>Web Application Manifest</td>
  <td>検討中</td>
  <td>○</td>
  <td>○</td>
  <td>×</td>
</tr>
</tbody>
</table>

<h2>ハイブリッドアプリケーションとしての利用</h2>

<p>Webアプリケーションが苦手とするところは</p>

<ul>
<li>ストアのエコシステムを利用しない</li>
<li>Webブラウザからはどうしてもアクセスできないハードウェアリソース</li>
</ul>

<p>そしてこれらの Web アプリケーションのは、ハイブリットアプリとしてパッケージすることにより、ターゲットとなるプラットフォームのリソースや、ブラウザーからはアクセスできないハードウェアの機能を使用できるようになる。
また、アプリストアのエコシステムを利用することができる。</p>

<h2>Webフロントエンドの開発リソース</h2>

<p>インタラクティブなコンテンツを作ることができるようになったので、開発は非常に大変なものになった。</p>

<ul>
<li>JavaScript

<ul>
<li>ライブラリ</li>
<li>フレームワーク</li>
<li>エンジンテンプレート</li>
<li>altJS</li>
</ul></li>
<li>CSS

<ul>
<li>フレームワーク</li>
<li>プリプロセッサー</li>
</ul></li>
<li>HTML

<ul>
<li>軽量マークアップ</li>
</ul></li>
<li>パッケージマネージャ</li>
<li>タスクランナー</li>
<li>モジュール管理</li>
</ul>

<p>Richになったことで多くのライブラリが提供された結果「Chaos」になったのか？と思いがち。そして、ライブラリ/フレームワークの選定として考える必要がある。</p>

<ul>
<li>ブラウザサポート</li>
<li>ベンダーサポート</li>
<li>情報

<ul>
<li>ドキュメント</li>
<li>書籍類</li>
</ul></li>
<li>学習コスト</li>
<li>開発生産性</li>
<li>機能範囲</li>
<li>ロックイン</li>
<li>運用コスト</li>
</ul>

<p>特にこの中のロックインですが、ロックインは決して悪いものではなく、優秀なベンダーと一緒になってやっていくこと、コミュニティの力を借りることでむしろ良い状況も作れる。運用コストに関しては、便利なんだけどお金がかかるというものについては考えもの。</p>

<h2>標準技術は不変</h2>

<p>結局、Webブラウザで動作するのは、HTML、CSS、JavaScriptであり、ブラウザがサポートしていない機能は動かない。技術はあくまでも「手段」でり、そうした技術に対する勉強は大事だが、手段であって目的ではない。目的は、ユーザに対して良いプロダクトを提供すること。たとえば、YouTubeはFlashで作られていたが、HTML5に変わったことに気づいた人はいない、そういうものが良い。</p>

<p>そして、WebはApplicationのプラットフォームになる。どんどん低レベルなAPIを実装することになる。結果、デスクトップと同じ様なアプリケーションを作っていける。こうした変貌は「変化」ではなく「拡張」である。</p>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2016 特集]]></series:name>
	</item>
		<item>
		<title>止まらないMicrosoftの変革：デベロッパーと共に 〜 de:code基調講演レポート 〜</title>
		<link>/albatrosary/19014/</link>
		<pubDate>Tue, 24 May 2016 05:10:37 +0000</pubDate>
		<dc:creator><![CDATA[佐川 夫美雄]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[de:code]]></category>

		<guid isPermaLink="false">/?p=19014</guid>
		<description><![CDATA[連載： de:code 2016 特集 (2)編集長の白石さんに続き、エキスパートの佐川がde:codeをレポート。 「すべての人の可能性を拡げるモバイルファースト、クラウドファーストの世界」をテーマに行われたde:co...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2016/" class="series-371" title="de:code 2016 特集" data-wpel-link="internal">de:code 2016 特集</a> (2)</div><p>編集長の白石さんに続き、エキスパートの佐川がde:codeをレポート。</p>

<p>「すべての人の可能性を拡げるモバイルファースト、クラウドファーストの世界」をテーマに行われたde:code基調講演は、静なる改革者 米国本社CEOのサティア ナデラ(Satya Nadella)氏の素晴らしい基調講演の後、スティーブングッゲンハイマー(Steven Guggenheimer)氏が具体的な事例とともに紹介した。
<a href="https://www.microsoft.com/ja-jp/events/decode/2016/default.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">de:code</a>は5/24-25の2日プリンスパークタワー東京で開催された。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/decode2016.png" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/decode2016-640x214.png" alt="decode2016" width="640" height="214" class="alignnone size-large wp-image-19032" srcset="/wp-content/uploads/2016/05/decode2016.png 640w, /wp-content/uploads/2016/05/decode2016-300x100.png 300w, /wp-content/uploads/2016/05/decode2016-207x69.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>de:code2016では、IT技術者の多くが、昨年から始まったMicrosoftの変革を疑わなくなり、更に変貌するMicrosoftのすべてをキャッチアップできる。ただ残念なことにコンテンツが多すぎて全てを見て回ることができない！分身の術が欲しくなるほど興味深いセッションが目白押しです。それをMicrosoftも理解しているのか「<a href="http://aka.ms/decode2016_arukikata" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">de:code 2016の歩き方</a>」もあり、すべてのIT技術者が戸惑うことなく適したコンテンツを見られるよう工夫がされています。</p>

<h1>Microsoftが示すオープンイノベーション</h1>

<p>初めに サティア ナデラ氏 が開発者やインフラ エンジニアの創造力を最大限に活かす方法について、世界に大きな影響力を与える日本国内の事例を交えて、そのソリューションの紹介がありました。米国本社VP(Vice President)スティーブングッゲンハイマー(Steven Guggenheimer)をはじめ、日本マイクロソフトの統括本部長 伊藤かつら氏、最高技術責任者の榊原彰氏が登壇し、オープンソース コミュニティやパートナーエコシステム、そして経済成長の機会を確実にとらえる最新のプラットフォーム イノベーションが紹介され、日本市場でこれらがどのようにビジネスやエンジニアの変革をMicrosoftとして手助けできるのかを、豊富なデモを交えて解説してくれた。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03720.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03720-640x480.jpg" alt="DSC03720" width="640" height="480" class="alignnone size-large wp-image-19034" srcset="/wp-content/uploads/2016/05/DSC03720.jpg 640w, /wp-content/uploads/2016/05/DSC03720-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03720-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>デベロッパーは何ができるのか</h2>

<p>Microsoftがデベロッパーに対して、どういった活動をしているのかを説明してくれた。</p>

<ol>
<li>Microsoftはコミュニティとデベロッパーとどういうことをしているか</li>
<li>Microsoftは何を作って、どういう需要に対応しているのか</li>
<li>テクノロジーを使って個人として何ができるのか</li>
</ol>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03725.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03725-640x480.jpg" alt="DSC03725" width="640" height="480" class="alignnone size-large wp-image-19053" srcset="/wp-content/uploads/2016/05/DSC03725.jpg 640w, /wp-content/uploads/2016/05/DSC03725-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03725-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Microsoftは、何年も前から、モバイルファーストについて取り組んできているという話があった。そして、古い時代からデベロッパーとはビジネスを進めてきたか、今後、Microsoftはどう進めていくのか、その答えがオープンプラットフォームにあるようだ。
何を作って、どういう需要があるのかを常に考え、デベロッパーのために様々な環境を作ってきたというMicrosoftの姿勢がここにある。</p>

<h3>プラットフォームカンパニーとしてのMicrosoft</h3>

<p>今とこれからのMicrosoftは次のようなポジショニングを行っている。つまり、Microsoftはプラットフォームカンパニーとなった。がしかし、パーソナルコンピューティングとしてWindows10というのもまだ推し進めていく。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC03728.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC03728-640x480.jpg" alt="DSC03728" width="640" height="480" class="alignnone size-large wp-image-19052" srcset="/wp-content/uploads/2016/05/DSC03728.jpg 640w, /wp-content/uploads/2016/05/DSC03728-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC03728-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>ここ３年間の進化として、IoT、タブレット、テレビ、ホロレンズなどバラバラで提供してきた技術が今集約され、そしてWindows10では、一気に全てを集約し、その集約できるものがWindows10であるというように考えていて、今では、すべてのデバイスを横展開できるようになったそうだ。しかし当然難しいところもあり、それぞれのデバイスに対するカスタマイズは必要ではあると言う。だがだが！中心部分はひとつのコードで動いていて、これは本当に素晴らしいことで、Windows PCを使って開発すれば、.NetやC#によりどんなプラットフォームでも動くようになるということを意味し、Microsoft上でEcosystemを構築しているように思える。</p>

<h2>Windows10の新しい3つの機能デモ</h2>

<p>ペン、ペンタブレットとして利用したWindows10はインクワークスペースを持っている。このインクワークスペースはペンで使える機能が充実している。例えば、付箋、スケッチパット、新しくインク用に作られた、定規もあり様々な機能が充実している。そして、これら機能は、デベロッパーが作ったアプリケーションにインクの機能を追加することができる。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00175.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00175-640x480.jpg" alt="DSC00175" width="640" height="480" class="alignnone size-large wp-image-19039" srcset="/wp-content/uploads/2016/05/DSC00175.jpg 640w, /wp-content/uploads/2016/05/DSC00175-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00175-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Windows10ではbashコマンドが利用できる。UbuntuのバイナリをインストールしているのでLinux系のコマンドがほとんど利用可能となりvimやemacsを当然利用することができる。XWindwの機能も動くし、apt-getのコマンドなど我々が通常MACで利用しているコマンドが何のわだかまりもなく動くのは素晴らしいことだ。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00180.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00180-640x480.jpg" alt="DSC00180" width="640" height="480" class="alignnone size-large wp-image-19040" srcset="/wp-content/uploads/2016/05/DSC00180.jpg 640w, /wp-content/uploads/2016/05/DSC00180-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00180-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>ディスクトップアプリケーションをパッケージングしウィンドウズストアにアップすることができる。今回デモでは秀丸をパッケージングしローカルPCにインストールをした。これによりセキュアな形でインストール、実行できる。</p>

<h2>UWPのアプリケーションを紹介</h2>

<p>具体的には、ブリジストンが作っているタイヤの検査アプリケーションのデモを行っていた。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00199.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00199-640x480.jpg" alt="DSC00199" width="640" height="480" class="alignnone size-large wp-image-19037" srcset="/wp-content/uploads/2016/05/DSC00199.jpg 640w, /wp-content/uploads/2016/05/DSC00199-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00199-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Xamarinを使って作られたアプリケーションで、日々複雑な仕事を様々なデバイスを使って業務を行っている。特徴は</p>

<ul>
<li>音声により画面を切り替える</li>
<li>音声により測定（検査）をこなう</li>
<li>項目への入力も音声</li>
</ul>

<p>XamarinによりiOA、Androidも作成可能になる。MACでは通常XCodeが必要になるが、Windowsではエミュレーションがあるので実行確認でき、Mac Bookではできないタッチ確認ができるのも特徴のひとつ</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00207.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00207-640x480.jpg" alt="DSC00207" width="640" height="480" class="alignnone size-large wp-image-19038" srcset="/wp-content/uploads/2016/05/DSC00207.jpg 640w, /wp-content/uploads/2016/05/DSC00207-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00207-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Officeというのは仕事の最前線にポジショニングされていたが、様々な接続をOfficeがサポートしています。OfficeがAzureのデータを出力することで、またはそれ以外のもののインターフェースになりOfficeがフロントエンドとしての役割を担う。アプリケーションと一緒に、スカイプを使うことも可能です。言い換えると、Officeはビジネルの共通な言語になった。</p>

<h2>Wordクラウドによるビジュアリゼーション</h2>

<p>文字を値で表現するWordクラウドによるビジュアリゼーションに関するデモンストレーションが行われた。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00233.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00233-640x480.jpg" alt="DSC00233" width="640" height="480" class="alignnone size-large wp-image-19042" srcset="/wp-content/uploads/2016/05/DSC00233.jpg 640w, /wp-content/uploads/2016/05/DSC00233-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00233-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>まず、Webエンジニアには馴染みのあるYEOMANを使ってジェネレートを利用してテンプレートを作成した。テンプレートにあるmanifestファイルを作成しホスティングするURLを定義する。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00230.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00230-640x480.jpg" alt="DSC00230" width="640" height="480" class="alignnone size-large wp-image-19041" srcset="/wp-content/uploads/2016/05/DSC00230.jpg 640w, /wp-content/uploads/2016/05/DSC00230-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00230-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>重要なパッケージは</p>

<ul>
<li>microsoft.office.js</li>
<li>d3.js</li>
</ul>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00247.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00247-640x480.jpg" alt="DSC00247" width="640" height="480" class="alignnone size-large wp-image-19056" srcset="/wp-content/uploads/2016/05/DSC00247.jpg 640w, /wp-content/uploads/2016/05/DSC00247-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00247-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>ローカル上で作成したものがクラウド上のExcelに登録されビジュアリゼーションとして表現することが可能となる。ここで利用されているようなアドインはストアの中で多く展開されグラフや図などもストアに存在する。</p>

<h2>DMM.makeのデモ</h2>

<p>クラウド上にあるメールやデータを集めることができる</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00250.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00250-640x480.jpg" alt="DSC00250" width="640" height="480" class="alignnone size-large wp-image-19043" srcset="/wp-content/uploads/2016/05/DSC00250.jpg 640w, /wp-content/uploads/2016/05/DSC00250-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00250-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>ロボット（ペッパー）のセールス・デモ</h2>

<p>ペッパーを通し年齢、性別などを判断し的確な製品をセールスすることが可能となる。つまり、ロボットを利用し、マシンラーニングをベースにして、誰がどういう人なのかを判断することが可能となる。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00257.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00257-640x480.jpg" alt="DSC00257" width="640" height="480" class="alignnone size-large wp-image-19044" srcset="/wp-content/uploads/2016/05/DSC00257.jpg 640w, /wp-content/uploads/2016/05/DSC00257-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00257-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>クラウド</h2>

<p>事業のライフサイクルはそれぞれ異なるがMicrosoftは&#8217;Platform as a Service&#8217;としてクラウド事業をしている。様々なところでAzureが提供できるが、まだクラウドかしていないものがある。Microsoft Cloudの特徴は</p>

<ol>
<li>ハイパースケール</li>
<li>ハイブリット</li>
<li>エンタープライズカスタマー</li>
</ol>

<p>ハイパースケールとは、世界全体で使え世界中にある。キャパシティもAmazone,Googleを合わせてもより大きい。つまりアウトソースにかかるコストが安いことを意味している。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00259.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00259-640x480.jpg" alt="DSC00259" width="640" height="480" class="alignnone size-large wp-image-19045" srcset="/wp-content/uploads/2016/05/DSC00259.jpg 640w, /wp-content/uploads/2016/05/DSC00259-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00259-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00263.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00263-640x480.jpg" alt="DSC00263" width="640" height="480" class="alignnone size-large wp-image-19046" srcset="/wp-content/uploads/2016/05/DSC00263.jpg 640w, /wp-content/uploads/2016/05/DSC00263-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00263-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>10年以上クラウドサービスを作っているMicrosoftのハイブリットの意味するところは、クラウドに置くもの、ファイアオールに置くものをビジネスの利用局面で考える必要がありAzureスタックを柔軟に利用できることがあげられる。
Microsoftは、サポート、サービス、エバンジェリストを通じて、エンタープライズカスタマーをクラウドの利用をサポートしていく。多くの利用者がAzureに移行して行っている。</p>

<h2>キャプションボットAPIのデモ: 機械学習、人工知能</h2>

<p>機械学習、人口知能を通じて、より人間味のあるアプリケーションを作ることができる。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00272.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00272-640x480.jpg" alt="DSC00272" width="640" height="480" class="alignnone size-large wp-image-19049" srcset="/wp-content/uploads/2016/05/DSC00272.jpg 640w, /wp-content/uploads/2016/05/DSC00272-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00272-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>キャプションボットAPIを使ったデモが３つ行われた。写真は、プロ野球選手でピッチャーのものを利用しキャプションボットでどういう回答があるか。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00273.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00273-640x480.jpg" alt="DSC00273" width="640" height="480" class="alignnone size-large wp-image-19047" srcset="/wp-content/uploads/2016/05/DSC00273.jpg 640w, /wp-content/uploads/2016/05/DSC00273-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00273-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>人間が見れば、野球選手、投球中であることがわかるが、キャプションボットでもこれを正しく判断することができる。もっと複雑な写真のデモ。これも完璧な回答が得られた。写真の構図は、丘の上でバイオリンを弾く女性、牛も二匹いた。</p>

<p>さて、次のデモ。ホテルに行くと鍵をなくしたらどうなるか、マネージャが鍵を盗んだらどうなるかということを想定して欲しい。この時に生体情報を使って管理したらどうなるかというデモンストレーションを行った。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00279.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00279-640x480.jpg" alt="DSC00279" width="640" height="480" class="alignnone size-large wp-image-19048" srcset="/wp-content/uploads/2016/05/DSC00279.jpg 640w, /wp-content/uploads/2016/05/DSC00279-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00279-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>シナリオは次の通りで制度の高い認証が出来ていた。</p>

<ol>
<li>Windows10を利用する</li>
<li>Face APIを使って承認済みのものを使う</li>
<li>ドアの前に立つ</li>
<li>承認されてない人はドアを開けることができない</li>
<li>承認済みであればドアの鍵が開く</li>
</ol>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/DSC00276.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/DSC00276-640x480.jpg" alt="DSC00276" width="640" height="480" class="alignnone size-large wp-image-19050" srcset="/wp-content/uploads/2016/05/DSC00276.jpg 640w, /wp-content/uploads/2016/05/DSC00276-300x225.jpg 300w, /wp-content/uploads/2016/05/DSC00276-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h1>Microsoftのオープンマインド</h1>

<p>この基調講演を通じて感じたのは、Microsoftは今まで我々が知っているMicrosoftでは無くまるで別会社のような存在になったということかも知れない。昨年のde:codeでもこの「変わった」感は半端なかったが、いまはWindows上でbashが動き、VSCodeのようにオープン化し新しいデバイスへのチャレンジがまだまだ確信的に進んでいくのだろう。</p>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2016 特集]]></series:name>
	</item>
		<item>
		<title>MS変革の立役者ナデラCEOが日本に来た！なんかマイクロソフトカッコいいぞ！─de:code 2016基調講演レポート</title>
		<link>/shumpei-shiraishi/19013/</link>
		<pubDate>Tue, 24 May 2016 03:08:49 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mixed Reality]]></category>
		<category><![CDATA[de:code]]></category>

		<guid isPermaLink="false">/?p=19013</guid>
		<description><![CDATA[連載： de:code 2016 特集 (1)おはようございます、編集長の白石です。 今、Microsoftが主催する技術者向けイベント、de:code 2016に来ています。 最近のMicrosoft、なんか変わりまし...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/ms-decode2016/" class="series-371" title="de:code 2016 特集" data-wpel-link="internal">de:code 2016 特集</a> (1)</div><p>おはようございます、編集長の白石です。
今、Microsoftが主催する技術者向けイベント、de:code 2016に来ています。</p>

<p>最近のMicrosoft、なんか変わりましたよね。今回のイベントでは、その変化の立役者であるサティア・ナデラCEO自らが来て話をするというので、とてもワクワクしていました。</p>

<p>で、まだ基調講演を半分聞いただけですが先に感想を言っちゃいますと、ぼくはここ10年くらい記者も細々と続けてまして、Microsoftのイベントもちょこちょこと参加して記事を書いたりしてきましたが、正直、今のMicrosoftが一番カッコいいと、率直に思います。</p>

<p>この記事では、基調講演の前半の模様をお伝えします。現場の熱気をお伝えしたく大急ぎで書いたので、ちょっと乱文＆文章ゆるめですがご容赦あれ。</p>

<h2>Javaと.NETのエバンジェリストが歴史的握手！</h2>

<p>これはイベント開始前の話ですが、ちょっとしたラジオっぽいライブ中継をしていました。
英語中心の中継だったので、正直内容はほとんどわからなかった（英語勉強しろ）のですが、Javaと.NETのエバンジェリストが歴史的な握手！をしたところではちょっと感動してしまいました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_4967.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_4967-640x480.jpg" alt="IMG_4967" width="640" height="480" class="aligncenter size-large wp-image-19015" srcset="/wp-content/uploads/2016/05/IMG_4967.jpg 640w, /wp-content/uploads/2016/05/IMG_4967-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_4967-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>ぼくは昔Javaのエンジニアで、NETが世に出てきた時には正直むっとしたものでした。その前はJavaをめぐって開発元のSun MicrosystemsとMicrosoftは訴訟なんかしてた時代もありましたし…その頃を知る人間にとっては、隔世の感があります。</p>

<h2>オープニング: Mixed Realityのデモに度肝を抜かれた</h2>

<p>伊藤かつら氏、榊原彰氏によるオープニング。ついでに、Microsoft性の対話型AIであるCortanaもアシスタントも務めていました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_4977.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_4977-640x480.jpg" alt="IMG_4977" width="640" height="480" class="aligncenter size-large wp-image-19016" srcset="/wp-content/uploads/2016/05/IMG_4977.jpg 640w, /wp-content/uploads/2016/05/IMG_4977-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_4977-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>内容は、主にMicrosoftの変化と現状について。
OSSへの傾注、WindowsへのUbuntu搭載（これ、米国のBuildカンファレンスで発表された時には、会場は狂喜乱舞だったそうです…榊原さんは<strong>「阿鼻叫喚」と言い間違えて</strong>、伊藤さんが慌てていたのが面白かったですが）、Hololens、Xamarinの無償提供…などいろんな話題を取り上げていましたが…最初の方に紹介されたデモがすごかったです。<small>ぼくが知らなかっただけで、知っている人にとっては「普通でしょ」って感じなのかもしれませんが…</small></p>

<p>紙のカタログにカメラをかざしたら3Dの東京タワーが表示されます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_4981.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_4981-640x480.jpg" alt="IMG_4981" width="640" height="480" class="aligncenter size-large wp-image-19017" srcset="/wp-content/uploads/2016/05/IMG_4981.jpg 640w, /wp-content/uploads/2016/05/IMG_4981-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_4981-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>カメラを通して名刺を見ると、観客と榊原さんご本人が表示されます。なんということだ…テクノロジーすげえ</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_4983.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_4983-640x480.jpg" alt="IMG_4983" width="640" height="480" class="aligncenter size-large wp-image-19018" srcset="/wp-content/uploads/2016/05/IMG_4983.jpg 640w, /wp-content/uploads/2016/05/IMG_4983-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_4983-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>ナデラCEO来た！</h2>

<p>そして来ました、サティア・ナデラCEO。世界有数のテクノロジー企業のCEOを生で見れただけでもテンション上がります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5002.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5002-640x480.jpg" alt="IMG_5002" width="640" height="480" class="aligncenter size-large wp-image-19020" srcset="/wp-content/uploads/2016/05/IMG_5002.jpg 640w, /wp-content/uploads/2016/05/IMG_5002-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_5002-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>そして、以下に上げるのが、CEO自らが語るMicrosoftの重点分野。これが、世界トップレベルのテクノロジー企業が優先的に取り組んでいるものです。</p>

<h3>インテリジェントなクラウド（Build the intelligent cloud platform）</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5009.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5009-640x480.jpg" alt="IMG_5009" width="640" height="480" class="aligncenter size-large wp-image-19021" srcset="/wp-content/uploads/2016/05/IMG_5009.jpg 640w, /wp-content/uploads/2016/05/IMG_5009-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_5009-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>クラウドの大きな利点であるスケーラビリティは同然のこと、[22のコグニティブ・サービス]に代表されるような、先進的で強力な機能をクラウド上のAPIで簡単に利用できるようになります。あらゆる業種がデジタルカンパニーに変わろうとしている今、こうしたサービスを利用することで、ユーザーへの価値をより迅速に高めていくことができます。</p>

<h3>生産性と業務プロセスの再発明（Reinvent productivity &amp; business processes）</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5011.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5011-640x480.jpg" alt="IMG_5011" width="640" height="480" class="aligncenter size-large wp-image-19022" srcset="/wp-content/uploads/2016/05/IMG_5011.jpg 640w, /wp-content/uploads/2016/05/IMG_5011-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_5011-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Microsoft Officeに代表される業務ツールの進化、そして企業活動をより強くサポートしていく。<a href="https://graph.microsoft.io/ja-jp/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Graph</a>というAPI群を用いて、Office365の機能を自由に利用・拡張していくことが可能だとのこと。</p>

<h3>プラットフォームとしての会話（Conversations as a Platform）</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5012.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5012-640x480.jpg" alt="IMG_5012" width="640" height="480" class="aligncenter size-large wp-image-19023" srcset="/wp-content/uploads/2016/05/IMG_5012.jpg 640w, /wp-content/uploads/2016/05/IMG_5012-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_5012-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>人間同士が使用している、最も柔軟で歴史あるインターフェースが自然言語。その自然言語を用いて、究極的には「アプリケーション」という概念をなくしてしまおうというビジョンです。</p>

<p>対話型のAIとしてはCortanaがありますし、対話コマンドとしてのボットは、<a href="https://dev.botframework.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Bot Framework</a>などのツールを用いれば、開発も容易です。</p>

<p>また、女子高生AIの「りんな」も非常に有名ですね。ナデラ氏の基調講演中で、唯一他のスピーカーがデモをしていたのがこのりんな。Microsoftとしての力の入れようもわかるというものです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5014.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5014-640x480.jpg" alt="IMG_5014" width="640" height="480" class="aligncenter size-large wp-image-19024" srcset="/wp-content/uploads/2016/05/IMG_5014.jpg 640w, /wp-content/uploads/2016/05/IMG_5014-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_5014-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5016.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5016-480x640.jpg" alt="IMG_5016" width="480" height="640" class="aligncenter size-large wp-image-19025" srcset="/wp-content/uploads/2016/05/IMG_5016.jpg 480w, /wp-content/uploads/2016/05/IMG_5016-225x300.jpg 225w, /wp-content/uploads/2016/05/IMG_5016-155x207.jpg 155w" sizes="(max-width: 480px) 100vw, 480px" /></a></p>

<p>LINEで「りんな」と話すデモ。自分のパートだけじゃなく、りんなの返信も声に出してのデモはなんかシュールで面白かったです（文章では伝わらない…くそう）</p>

<h3>よりパーソナルなコンピューティング（Create more personal computing）、そしてMixed Reality</h3>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5017.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5017-640x480.jpg" alt="IMG_5017" width="640" height="480" class="aligncenter size-large wp-image-19026" srcset="/wp-content/uploads/2016/05/IMG_5017.jpg 640w, /wp-content/uploads/2016/05/IMG_5017-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_5017-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>「パソコン」というジャンルを世に知らしめたMicrosoftが、「よりパーソナルな」というのはどういうことでしょう。
例えば Surface Proによって2 in 1という製品カテゴリを創ったことなどを挙げていましたが、さらにHololensに代表されるホログラフィックコンピューティング、そしてその先に<strong>Mixed Reality</strong>（複合現実）という概念を紹介していました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_5018.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_5018-640x480.jpg" alt="IMG_5018" width="640" height="480" class="aligncenter size-large wp-image-19027" srcset="/wp-content/uploads/2016/05/IMG_5018.jpg 640w, /wp-content/uploads/2016/05/IMG_5018-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_5018-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>アナログとデジタルが完全に融合した全く新しいメディア、プレゼンスの概念による「どこにでも行ける」世界。リッチメディアにはもはや限界がなく、ゲームやエンターテインメントの世界にかぎらず、あらゆる業種に関わり、コアとなるビジネスプロセスをも変革する可能性のあるもの。基調講演のハイライトとして、一番力強くてワクワクする場面でした。</p>

<h2>Microsoft ♡ Developer</h2>

<p>言わずもがなですが、de:codeは開発者のためのイベントです。ナデラ氏の基調講演を聞き、この文章を書きながら感じているのは、未だに私たちは大きく変化する時代にいて、開発者はその変化に直接携われる立場にいるのだなあ…ということ。伊藤かつらさんのオープニングの終わりに掲げられていたメッセージは「Microsoft ♡ Developer」でした。実際、de:codeの現場に身をおいていると、そのメッセージは強く説得力を持って感じられます。エンジニアの端くれとして、もっと新しいものを作っていきたいと、強く刺激を受けました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2016/05/IMG_4993.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2016/05/IMG_4993-640x480.jpg" alt="IMG_4993" width="640" height="480" class="aligncenter size-large wp-image-19019" srcset="/wp-content/uploads/2016/05/IMG_4993.jpg 640w, /wp-content/uploads/2016/05/IMG_4993-300x225.jpg 300w, /wp-content/uploads/2016/05/IMG_4993-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
]]></content:encoded>
		
		<series:name><![CDATA[de:code 2016 特集]]></series:name>
	</item>
		<item>
		<title>Microsoftの本気をみた！新しいWebブラウザ「Microsoft Edge」にかける思いとは？</title>
		<link>/yusuke-naka/15067/</link>
		<pubDate>Wed, 27 May 2015 10:20:31 +0000</pubDate>
		<dc:creator><![CDATA[仲 裕介]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Spartan]]></category>
		<category><![CDATA[de:code]]></category>

		<guid isPermaLink="false">/?p=15067</guid>
		<description><![CDATA[みなさん、昨日公開の、de:code2015 キーノートレポート（前編／後編）はご覧いただけましたか？ ２日目の今日は、HTML5Experts.jpオススメセッションのレポートを速報でお届けします！ マイクロソフトのW...]]></description>
				<content:encoded><![CDATA[<p>みなさん、昨日公開の、<a href="https://www.microsoft.com/ja-jp/events/decode/2015/default.aspx" target="_blan" data-wpel-link="external" rel="follow external noopener noreferrer">de:code2015</a> キーノートレポート（<a href="https://html5experts.jp/shumpei-shiraishi/15016/" target="_blan" data-wpel-link="internal">前編</a>／<a href="https://html5experts.jp/shumpei-shiraishi/15034/" target="_blan" data-wpel-link="internal">後編</a>）はご覧いただけましたか？
２日目の今日は、HTML5Experts.jpオススメセッションのレポートを速報でお届けします！</p>

<h1>マイクロソフトのWebブラウザのいままでとこれから</h1>

<p>HTML5 Experts.jpのエキスパートであり、日本マイクロソフトのエバンジェリストである春日井さんのセッションです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03654.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03654-640x480.jpg" alt="オープニング" width="640" height="480" class="aligncenter size-large wp-image-15069" srcset="/wp-content/uploads/2015/05/DSC03654.jpg 640w, /wp-content/uploads/2015/05/DSC03654-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03654-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>IE9は大きなターニングポイントだった</h2>

<p>マイクロソフトはブラウザをレガシーブラウザとモダンブラウザに分類しています。Windows8までは、以下のように、IE8以前はレガシーブラウザ、IE9からはモダンブラウザという括りになります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03659.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03659-640x480.jpg" alt="レガシーブラウザからモダンブラウザへ（Win8まで）" width="640" height="480" class="aligncenter size-large wp-image-15132" srcset="/wp-content/uploads/2015/05/DSC03659.jpg 640w, /wp-content/uploads/2015/05/DSC03659-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03659-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>IE9からモダンブラウザと言われる所以は、HTML5やCSS3、SVG等の次世代Web標準技術への対応がなされたからで、IE11でも使われているJavaScriptエンジンである「Chakra」もIE9から実装されています。また、IE同士の互換性、ChromeやFirefox等の他ブラウザとの総合運用性を重要視する方針もこの時に打ち出されました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03666.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03666-640x480.jpg" alt="IE9はターニングポイント" width="640" height="480" class="aligncenter size-large wp-image-15074" srcset="/wp-content/uploads/2015/05/DSC03666.jpg 640w, /wp-content/uploads/2015/05/DSC03666-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03666-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>IE11は最後のIEです</h2>

<p>マイクロソフトはWindows10に向けて、新しいブラウザブランドを「Microsoft Edge」としました。春日井さんいわく、とてもいいネーミングだと思ったそうです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03669.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03669-640x480.jpg" alt="レガシーブラウザからモダンブラウザへ（Win10から）" width="640" height="480" class="aligncenter size-large wp-image-15072" srcset="/wp-content/uploads/2015/05/DSC03669.jpg 640w, /wp-content/uploads/2015/05/DSC03669-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03669-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>IEサポートポリシーの変更は未来への布石</h2>

<p>Edgeの登場より少し前の2014年8月7日、IEのサポートポリシーの変更が行われたことは、ご存じの方も多いですよね。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03672.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03672-640x480.jpg" alt="IEサポートポリシーの変更" width="640" height="480" class="aligncenter size-large wp-image-15078" srcset="/wp-content/uploads/2015/05/DSC03672.jpg 640w, /wp-content/uploads/2015/05/DSC03672-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03672-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>今までは、この図のように、例えば同じIE8でもVistaと7ではサポート期間が異なっていました。しかし、これからはOS毎にサポートするIEのバージョンが決められ、最新のIEのみサポートするというポリシーに変更されました。ライフサイクルはOSのライフサイクルに準拠します。</p>

<p>春日井さんは、このポリシー変更に至った理由を市場の変化によるものだと語ります。</p>

<p>コンシューマーをターゲットにみると、ネットに接続するデバイスがPCからスマートデバイスにシフトしていて、そのデバイスは多様化しています。ビジネスについても、BYODの導入が盛んに行われ、個人が持っているデバイスを会社で利用するというニーズは今後ますます大きくなってきます。そういう背景にマッチさせるために、3つのアクションが取られています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03682.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03682-640x480.jpg" alt="サポートポリシー変更3つの要因" width="640" height="480" class="aligncenter size-large wp-image-15080" srcset="/wp-content/uploads/2015/05/DSC03682.jpg 640w, /wp-content/uploads/2015/05/DSC03682-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03682-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>1つは、セキュリティ対策です。セキュリティ的な脆弱性をいち早く発見し、それに迅速に対処する事が求められています。ポリシー変更に伴い、対策稼働を集中させる事ができ、それを実現することができます。</p>

<p>2つめは、エンジニアの開発・検証作業の軽減です。例えば、Webサイトを開発する場合、スマートデバイスの種類が増えるとそれだけ、動作保証するブラウザや機種が増えますよね。ポリシーを変更することで、それを軽減することができ、効率のよい開発が可能になるはずです。</p>

<p>最後は、最新のWeb標準技術への対応を加速化させたいという思いがあるからです。例として、WebフォントとWebRTCをを取り上げます。</p>

<p>Webフォントはサイトを見るユーザーに、与えたい印象を決める重要な素材です。活用するこで、DTPに近い形でWebコンテンツをお届けできるようになります。</p>

<div id="attachment_15081" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03688.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03688-640x480.jpg" alt="http://typesquare.com/ " width="640" height="480" class="size-large wp-image-15081" srcset="/wp-content/uploads/2015/05/DSC03688.jpg 640w, /wp-content/uploads/2015/05/DSC03688-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03688-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">TypeSquare &#8211; http://typesquare.com/<br /></p></div>

<p>WebRTCでは、今までSkype等の専用アプリケーションが必要だった、ビデオチャットをブラウザだけで実現することができます。IE11はネイティブではWebRTCをサポートしていないため、プラグインが必要になります。</p>

<div id="attachment_15082" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03695.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03695-640x480.jpg" alt="https://tokbox.com/" width="640" height="480" class="size-large wp-image-15082" srcset="/wp-content/uploads/2015/05/DSC03695.jpg 640w, /wp-content/uploads/2015/05/DSC03695-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03695-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">Tokbox &#8211; https://tokbox.com/</p></div>

<p>このように、最新の技術をいち早く試したいというユーザーのニーズに、サポートポリシーの変更で、答えていこうとしています。</p>

<h2>それでも後方互換性って大事ですよね…</h2>

<p>IEに搭載されているTridentというブラウザエンジンには、互換性を担保する仕組みが用意されています。例えば、IE6の時代には、Quirks、Strictというモードが搭載されていました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03702.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03702-640x480.jpg" alt="IE6互換性担保" width="640" height="480" class="aligncenter size-large wp-image-15086" srcset="/wp-content/uploads/2015/05/DSC03702.jpg 640w, /wp-content/uploads/2015/05/DSC03702-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03702-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>これは、ドキュメントモードというもので、IEのレンダリングルールを切り替える仕組みです。開発者ツールやmetaタグからの指示で切り替えることができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03707.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03707-640x480.jpg" alt="ドキュメントモード切り替え" width="640" height="480" class="aligncenter size-large wp-image-15087" srcset="/wp-content/uploads/2015/05/DSC03707.jpg 640w, /wp-content/uploads/2015/05/DSC03707-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03707-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>IE11になると、後方互換性はこんな感じになります。（筆者の感想ですが、正直すごいですね）</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03704.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03704-640x480.jpg" alt="後方互換性" width="640" height="480" class="aligncenter size-large wp-image-15085" srcset="/wp-content/uploads/2015/05/DSC03704.jpg 640w, /wp-content/uploads/2015/05/DSC03704-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03704-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>IE11には後方互換性を担保するエンタープライズモードが搭載されています。エンタープライズモードと標準モードの違いは以下のとおり。エンタープライズモードへは、GroupPolicyやレジストリで切り替えることができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03721.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03721-640x480.jpg" alt="エンタープライズモード" width="640" height="480" class="aligncenter size-large wp-image-15089" srcset="/wp-content/uploads/2015/05/DSC03721.jpg 640w, /wp-content/uploads/2015/05/DSC03721-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03721-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>また、このモードはWebサイトごとに有効無効を切り替えられます。GroupPolicy向けのXML定義ファイルを作るEnterprise Mode Site List Managerというツールも用意しています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03740.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03740-640x480.jpg" alt="Enterprise Mode Site List Manager" width="640" height="480" class="aligncenter size-large wp-image-15091" srcset="/wp-content/uploads/2015/05/DSC03740.jpg 640w, /wp-content/uploads/2015/05/DSC03740-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03740-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>Edgeは後方互換性を捨てて相互運用性を重視する</h2>

<p>Edgeには、「Living on the Edge」というスローガンのようなものがあります。最新の仕様に沿ったフレッシュな状態を常に提供し続ける、つまり、エバーグリーンであることがEdgeの特徴なのです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03746.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03746-640x480.jpg" alt="エヴァーグリーン" width="640" height="480" class="aligncenter size-large wp-image-15092" srcset="/wp-content/uploads/2015/05/DSC03746.jpg 640w, /wp-content/uploads/2015/05/DSC03746-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03746-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>しかし、全てが全て標準仕様に従えるわけではないありません。そのため、マイクロソフトは相互運用性に関する考えも明確に示しています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03751.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03751-640x480.jpg" alt="相互運用性の考え方" width="640" height="480" class="aligncenter size-large wp-image-15094" srcset="/wp-content/uploads/2015/05/DSC03751.jpg 640w, /wp-content/uploads/2015/05/DSC03751-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03751-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>どうしても、Web標準から外れないといけない事態になった場合は、他ブラウザとの相互運用性を考慮して決定すると言っていますね。こういう姿勢からも、過去のIEのように、MS独自機能は徹底して作らないという気合を感じてもらえると思います。</p>

<p>そして、こういう姿勢は既によい方向に進んでいて、マイクロソフトが提案した<a href="http://www.w3.org/TR/pointerevents/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Pointer Event</a>をBlinkが採用することにしたとか、MozillaのAsm.jsがChakraやEdgeに搭載されるとか、様々な発表がなされています。また、JavaScriptの標準仕様という点で言えば、ECMAScript6にもマイクロソフトは積極的です。ECMAScript Internationalに積極的に貢献しています。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03757.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03757-640x480.jpg" alt="ECMAScriptにも貢献" width="640" height="480" class="aligncenter size-large wp-image-15096" srcset="/wp-content/uploads/2015/05/DSC03757.jpg 640w, /wp-content/uploads/2015/05/DSC03757-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03757-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>そして、PCについてはだいぶ相互運用性が担保されてきましたが、スマホについてはまだ対応が進んでいないところもあります。Windows10はマルチデバイス対応なので、Edgeも当然マルチデバイスに対応します。こちらについても今後頑張っていく予定です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03761.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03761-640x480.jpg" alt="相互運用性の課題" width="640" height="480" class="aligncenter size-large wp-image-15097" srcset="/wp-content/uploads/2015/05/DSC03761.jpg 640w, /wp-content/uploads/2015/05/DSC03761-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03761-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>Windows10にはIE11とEdgeを両方搭載</h2>

<p>後方互換性などを省いたEdgeのソースコードは約22万行。そして、最新のWeb標準に対応するために追加されたコードは30万行にも及びます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03766.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03766-640x480.jpg" alt="Edgeのコード量" width="640" height="480" class="aligncenter size-large wp-image-15099" srcset="/wp-content/uploads/2015/05/DSC03766.jpg 640w, /wp-content/uploads/2015/05/DSC03766-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03766-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>つまり、後方互換性はIE11で担保するというのが、マイクロソフトの見解です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03767.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03767-640x480.jpg" alt="後方互換性はIEで。" width="640" height="480" class="aligncenter size-large wp-image-15100" srcset="/wp-content/uploads/2015/05/DSC03767.jpg 640w, /wp-content/uploads/2015/05/DSC03767-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03767-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>Edgeに搭載される最新Web技術とは</h2>

<p>では、Edgeにはどのような最新機能が搭載されるのでしょうか。こんなかんじです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03768.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03768-640x480.jpg" alt="Edgeに搭載される最新機能" width="640" height="480" class="aligncenter size-large wp-image-15101" srcset="/wp-content/uploads/2015/05/DSC03768.jpg 640w, /wp-content/uploads/2015/05/DSC03768-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03768-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>これらの機能は実際に試してみることができます。デモサイトは<a href="https://dev.modern.ie/testdrive/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">こちらです。</a>（SSL証明書のエラーが気になりますが…）</p>

<p>例えば、こちらはブラウザからWebカメラの画像を取り込んで利用するデモです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03774.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03774-640x480.jpg" alt="Webカメラのデモ" width="640" height="480" class="aligncenter size-large wp-image-15102" srcset="/wp-content/uploads/2015/05/DSC03774.jpg 640w, /wp-content/uploads/2015/05/DSC03774-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03774-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>dev.modern.ieでは、その他にも、最新機能の実装状況を確認したり、Web制作に便利な各種ツールを無料で利用することができますので、興味ある方は是非お試しください。</p>

<p>その他、Edgeに搭載される機能で面白いものがあるので、ここで2つご紹介します。</p>

<p>これは、ウェブノートという機能で、Web上に文字やイラストを重ねることが出来ます。Web制作現場でのレビューなどに使えそうですよね。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03784.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03784-640x480.jpg" alt="ウェブノート" width="640" height="480" class="aligncenter size-large wp-image-15105" srcset="/wp-content/uploads/2015/05/DSC03784.jpg 640w, /wp-content/uploads/2015/05/DSC03784-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03784-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>こちらは、リーディングモードと言って、Webサイトを読むことに集中できるにする機能です。これは、スマホブラウザでも有効です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03787.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03787-640x480.jpg" alt="リーディングモード" width="640" height="480" class="aligncenter size-large wp-image-15106" srcset="/wp-content/uploads/2015/05/DSC03787.jpg 640w, /wp-content/uploads/2015/05/DSC03787-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03787-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>また、Edgeではこれらの機能をON/OFFできる「About:flags」という機能も搭載されます。Chromeなどをご利用の上級者の方ならご存知だとは思いますが、あれと同じような機能ですね。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03794.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03794-640x480.jpg" alt="About:flags" width="640" height="480" class="aligncenter size-large wp-image-15108" srcset="/wp-content/uploads/2015/05/DSC03794.jpg 640w, /wp-content/uploads/2015/05/DSC03794-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03794-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h2>Microsoft Edgeのまとめ</h2>

<p>最後にEdgeについてまとめます。マルチデバイス対応でUIは根本的にも直されています。また、新しいExtensionモデルにも対応し、ChromeやFirefoxの拡張機能も利用することができるようになります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03798.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03798-640x480.jpg" alt="Edgeまとめ" width="640" height="480" class="aligncenter size-large wp-image-15114" srcset="/wp-content/uploads/2015/05/DSC03798.jpg 640w, /wp-content/uploads/2015/05/DSC03798-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03798-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>それから、今日発表されたホヤホヤ情報ですが、ドルビーオーディオにも対応します。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03800.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03800-640x480.jpg" alt="ドルビーオーディオにも対応" width="640" height="480" class="aligncenter size-large wp-image-15109" srcset="/wp-content/uploads/2015/05/DSC03800.jpg 640w, /wp-content/uploads/2015/05/DSC03800-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03800-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>逆に削除された機能もあります。ActiveXやVBScriptなどなど。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/DSC03801.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/DSC03801-640x480.jpg" alt="Edgeで削除された機能" width="640" height="480" class="aligncenter size-large wp-image-15112" srcset="/wp-content/uploads/2015/05/DSC03801.jpg 640w, /wp-content/uploads/2015/05/DSC03801-300x225.jpg 300w, /wp-content/uploads/2015/05/DSC03801-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>ここまでで、Edgeを使ってみたいと思った方、<a href="https://insider.windows.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows Insider</a>から、Windows 10 Insider Previewをダウンロードして、是非使ってみてください。</p>

<p>最後に1つ。Edgeを始めとして、マイクロソフトはこれから、クロスプラットフォームを重要視していきます。しかし、クロスプラットフォームはブラウザ側だけでは完成しません。Web制作の現場でも、是非、クロスプラットフォームを意識して下さい。マイクロソフトはそれを全力で支援します。</p>

<p>以上、セッションの内容をまとめた、速報記事でした。</p>

<p>このセッションの後に、Edgeに関する座談会「新ブラウザ Microsoft Edge はどうあるべきかを議論する会」が開催されました。座談会の模様は後日レポートしますので、お楽しみに！かなりコアな内容でしたよー。</p>

<p><small>＊速報記事のため、内容が訂正する可能性があります。ご容赦下さい。</small></p>
]]></content:encoded>
			</item>
		<item>
		<title>スクエニのデモすごかった！HoroLensも、Edgeも！見どころ多すぎで長文失礼！- Microsoft de:code基調講演後半レポート</title>
		<link>/shumpei-shiraishi/15034/</link>
		<pubDate>Tue, 26 May 2015 09:18:27 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[FINAL FANTASY]]></category>
		<category><![CDATA[HoroLens]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Microsoft Band]]></category>
		<category><![CDATA[Rasberry Pi]]></category>
		<category><![CDATA[Square Enix]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[de:code]]></category>
		<category><![CDATA[機械学習]]></category>

		<guid isPermaLink="false">/?p=15034</guid>
		<description><![CDATA[2015年5月26日から、マイクロソフトが主催するエンジニア向けカンファレンス「de:code 2015」が開催中です。 2日間に渡るカンファレンスでは、開発者向けのセッションがてんこ盛り。 この記事は、基調講演レポート...]]></description>
				<content:encoded><![CDATA[<p>2015年5月26日から、マイクロソフトが主催するエンジニア向けカンファレンス「<a href="http://www.microsoft.com/ja-jp/events/decode/2015/default.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">de:code 2015</a>」が開催中です。
2日間に渡るカンファレンスでは、開発者向けのセッションがてんこ盛り。
この記事は、基調講演レポートの後半です。</p>

<p>Microsoft Azureの話題が中心だった前半（<a href="https://html5experts.jp/shumpei-shiraishi/15016/" data-wpel-link="internal">レポート記事</a>）とは対照的に、後半はWindows 10やHoloLensなど、コンシューマ向けプロダクトの紹介が主でした。
よって、内容が<strong>派手</strong>！見栄えのするデモや、ぼくらが大好きなコードの話も出てきて、見どころ満載でした。</p>

<h2>ジョ〜〜！！！</h2>

<p>「前後半の合間に、ちょっとした息抜きをしましょうか。<a href="https://powerbi.microsoft.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Power BI</a>の勉強でもしましょう」って言われた時は「えっ」という気持ちでいっぱいでしたが、フタを開けてみると本当に息抜きのコンテンツでした。</p>

<p>次の登壇者である「Giorgio Sardo」（ジョー）さんの名前を観客が全力で叫び、その音量を視覚化するというもの。
何やらせんだ。</p>

<div id="attachment_15036" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/011.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/011-640x480.jpg" alt="最後はメーター振り切ることができて、マイクロソフトの方々もご満悦" width="640" height="480" class="size-large wp-image-15036" srcset="/wp-content/uploads/2015/05/011.jpg 640w, /wp-content/uploads/2015/05/011-300x225.jpg 300w, /wp-content/uploads/2015/05/011-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">最後はメーター振り切ることができて、マイクロソフトの方々もご満悦</p></div>

<p>で、ジョーが出てきました。</p>

<div id="attachment_15037" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/021.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/021-640x480.jpg" alt="デベロッパーエクスペリエンス &amp; エヴァンジェリストグループ シニアディレクターのGiorgio Sardo氏" width="640" height="480" class="size-large wp-image-15037" srcset="/wp-content/uploads/2015/05/021.jpg 640w, /wp-content/uploads/2015/05/021-300x225.jpg 300w, /wp-content/uploads/2015/05/021-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">デベロッパーエクスペリエンス &amp; エヴァンジェリストグループ シニアディレクターのGiorgio Sardo氏</p></div>

<h2>Windows 10で、目指せ10億台！</h2>

<p>話題はもちろんWindows 10です。
Windows 10は、「巨大なターゲット市場」「スマートエンゲージメント」「One Store &amp; Dev Center」「統合された開発プラットフォーム」という特徴を備え、大きなチャンスを生み出すと言います。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/031.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/031-640x480.jpg" alt="03" width="640" height="480" class="aligncenter size-large wp-image-15038" srcset="/wp-content/uploads/2015/05/031.jpg 640w, /wp-content/uploads/2015/05/031-300x225.jpg 300w, /wp-content/uploads/2015/05/031-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h3>巨大なターゲット市場</h3>

<p>この画像で言いたいことは、「Windows 10はスゲエよ！10億台のデバイスを繋げるんだ！儲かるぜ！」ということ（超意訳）。</p>

<div id="attachment_15039" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/041.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/041-640x480.jpg" alt="「儲かるぜ！」は、さすがに言ってなかったっけな。" width="640" height="480" class="size-large wp-image-15039" srcset="/wp-content/uploads/2015/05/041.jpg 640w, /wp-content/uploads/2015/05/041-300x225.jpg 300w, /wp-content/uploads/2015/05/041-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">「儲かるぜ！」は、さすがに言ってなかったっけな。</p></div>

<h3>スマート エンゲージメント</h3>

<p>あらゆるデバイスを統合した通知機能や、Cortanaによるインテリジェントな検索により、アプリケーションとユーザの接点をより緊密なものにします。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/051.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/051-640x480.jpg" alt="05" width="640" height="480" class="aligncenter size-large wp-image-15040" srcset="/wp-content/uploads/2015/05/051.jpg 640w, /wp-content/uploads/2015/05/051-300x225.jpg 300w, /wp-content/uploads/2015/05/051-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/061.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/061-640x480.jpg" alt="06" width="640" height="480" class="aligncenter size-large wp-image-15041" srcset="/wp-content/uploads/2015/05/061.jpg 640w, /wp-content/uploads/2015/05/061-300x225.jpg 300w, /wp-content/uploads/2015/05/061-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h3>（Windows 10がどこでも動くから）Windows 10アプリは一度書けばどこでも動く！HoloLensでも！</h3>

<p>Windows 10の目指す所は、あらゆるデバイスに対して一つのOSという「One Windows」というビジョンです。
それにより当然ながら、アプリストアも一つに統合されます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/071.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/071-640x480.jpg" alt="07" width="640" height="480" class="aligncenter size-large wp-image-15042" srcset="/wp-content/uploads/2015/05/071.jpg 640w, /wp-content/uploads/2015/05/071-300x225.jpg 300w, /wp-content/uploads/2015/05/071-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>そうなると、「一つのアプリがあらゆるデバイスで動作する」必要も出てきます。つまり、あらゆるスクリーンサイズで動作する…<strong>レスポンシブであることが望まれる</strong> ということです。
レスポンシブなWindows 10アプリの例を、楽天のポータルアプリ「楽天Gateway」で実演。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/081.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/081-640x480.jpg" alt="08" width="640" height="480" class="aligncenter size-large wp-image-15043" srcset="/wp-content/uploads/2015/05/081.jpg 640w, /wp-content/uploads/2015/05/081-300x225.jpg 300w, /wp-content/uploads/2015/05/081-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/091.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/091-640x480.jpg" alt="09" width="640" height="480" class="aligncenter size-large wp-image-15044" srcset="/wp-content/uploads/2015/05/091.jpg 640w, /wp-content/uploads/2015/05/091-300x225.jpg 300w, /wp-content/uploads/2015/05/091-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>あらゆるデバイスを統合するプラットフォームとしての、Windows 10のデモはまだまだ終わりません。
この画像が、マイクロソフトさんの言いたいことをよく表しているように思います。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/101.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/101-640x480.jpg" alt="10" width="640" height="480" class="aligncenter size-large wp-image-15045" srcset="/wp-content/uploads/2015/05/101.jpg 640w, /wp-content/uploads/2015/05/101-300x225.jpg 300w, /wp-content/uploads/2015/05/101-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>こんなすごい3Dマップも…</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/111.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/111-640x480.jpg" alt="11" width="640" height="480" class="aligncenter size-large wp-image-15046" srcset="/wp-content/uploads/2015/05/111.jpg 640w, /wp-content/uploads/2015/05/111-300x225.jpg 300w, /wp-content/uploads/2015/05/111-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>一行書くだけで実現できます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/121.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/121-640x480.jpg" alt="12" width="640" height="480" class="aligncenter size-large wp-image-15047" srcset="/wp-content/uploads/2015/05/121.jpg 640w, /wp-content/uploads/2015/05/121-300x225.jpg 300w, /wp-content/uploads/2015/05/121-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>こういう、3Dモデルを作れるアプリも…</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/131.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/131-640x480.jpg" alt="13" width="640" height="480" class="aligncenter size-large wp-image-15048" srcset="/wp-content/uploads/2015/05/131.jpg 640w, /wp-content/uploads/2015/05/131-300x225.jpg 300w, /wp-content/uploads/2015/05/131-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>HoloLensがあればホログラム化！これはすごい！</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/141.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/141-640x360.jpg" alt="14" width="640" height="360" class="aligncenter size-large wp-image-15049" srcset="/wp-content/uploads/2015/05/141.jpg 640w, /wp-content/uploads/2015/05/141-300x169.jpg 300w, /wp-content/uploads/2015/05/141-207x116.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h3>Edgeの話も忘れずに</h3>

<p>Webエンジニアとしては、最近一番ワクワクする話題だった「Microsoft Edge」の発表。
もちろんこの基調講演でも大きく扱われていました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/15.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/15-640x480.jpg" alt="15" width="640" height="480" class="aligncenter size-large wp-image-15050" srcset="/wp-content/uploads/2015/05/15.jpg 640w, /wp-content/uploads/2015/05/15-300x225.jpg 300w, /wp-content/uploads/2015/05/15-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>EdgeHTMLという新しい描画エンジンにより、4,200以上の相互運用性を改善したそうです。</p>

<p>もちろん、JavaScriptの実行速度を向上させるのも忘れません。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/16.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/16-640x480.jpg" alt="16" width="640" height="480" class="aligncenter size-large wp-image-15051" srcset="/wp-content/uploads/2015/05/16.jpg 640w, /wp-content/uploads/2015/05/16-300x225.jpg 300w, /wp-content/uploads/2015/05/16-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Edgeの大きなウリをMicrosoftさん自身でまとめるとこうなります。
「定期的な更新」っていうのが個人的には一番ツボです（IEは後方互換性の問題があって、これができなかったからなあ…）。
あと、ChromeやFirefoxの拡張機能が（ちょっとした修正で）動くと噂の、「新しいエクステンションモデル」も気になります。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/17.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/17-640x480.jpg" alt="17" width="640" height="480" class="aligncenter size-large wp-image-15052" srcset="/wp-content/uploads/2015/05/17.jpg 640w, /wp-content/uploads/2015/05/17-300x225.jpg 300w, /wp-content/uploads/2015/05/17-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>新機能「Hosted Web Apps」は、WebサイトをそのままWindowsアプリにしてしまえる機能。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/18.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/18-640x480.jpg" alt="18" width="640" height="480" class="aligncenter size-large wp-image-15054" srcset="/wp-content/uploads/2015/05/18.jpg 640w, /wp-content/uploads/2015/05/18-300x225.jpg 300w, /wp-content/uploads/2015/05/18-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>こんな感じのフライトシミュレーターアプリ（Webアプリ）も…</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/19.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/19-640x480.jpg" alt="19" width="640" height="480" class="aligncenter size-large wp-image-15053" srcset="/wp-content/uploads/2015/05/19.jpg 640w, /wp-content/uploads/2015/05/19-300x225.jpg 300w, /wp-content/uploads/2015/05/19-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>っと、デモを本格的にやる前に、プレイヤーとしての心の準備。
（最近のMicrosoftさん、エンジニアが好むゆるい雰囲気をよくよくわかってらっしゃる）</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/20.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/20-640x480.jpg" alt="20" width="640" height="480" class="aligncenter size-large wp-image-15055" srcset="/wp-content/uploads/2015/05/20.jpg 640w, /wp-content/uploads/2015/05/20-300x225.jpg 300w, /wp-content/uploads/2015/05/20-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>Windowsアプリにしてしまえば、よりネイティブな機能を利用できるので、<a href="https://www.microsoft.com/Microsoft-Band/en-us" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Band</a>と連携して飛行機を操縦…なんてこともできちゃう。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/21.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/21-640x480.jpg" alt="21" width="640" height="480" class="aligncenter size-large wp-image-15056" srcset="/wp-content/uploads/2015/05/21.jpg 640w, /wp-content/uploads/2015/05/21-300x225.jpg 300w, /wp-content/uploads/2015/05/21-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h3>IoTも！機械学習も！</h3>

<p>見どころ多すぎて、書くの疲れてきたんですが、まだまだ行きます。</p>

<p>Windows 10をIoTに対応させる動きも活発ですが、Minnowboard MaxとRasberry Pi 2ですでに利用可能です。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/22.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/22-640x480.jpg" alt="22" width="640" height="480" class="aligncenter size-large wp-image-15057" srcset="/wp-content/uploads/2015/05/22.jpg 640w, /wp-content/uploads/2015/05/22-300x225.jpg 300w, /wp-content/uploads/2015/05/22-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>なんか偉い人らしいんですが、コスプレして出てきました。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/23.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/23-640x480.jpg" alt="23" width="640" height="480" class="aligncenter size-large wp-image-15058" srcset="/wp-content/uploads/2015/05/23.jpg 640w, /wp-content/uploads/2015/05/23-300x225.jpg 300w, /wp-content/uploads/2015/05/23-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>これは何のデモかというと、富士通と共同で開発した「牛管理アプリ」だそうで（コスプレしてた偉い人は「Connected Cow」という札を下げてました）、牛にセンサーを付けて集めたデータを、Azure Machine Learningを使って機械学習＆統計出力していました。なんでもありだな、マイクロソフト。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/24.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/24-640x480.jpg" alt="24" width="640" height="480" class="aligncenter size-large wp-image-15059" srcset="/wp-content/uploads/2015/05/24.jpg 640w, /wp-content/uploads/2015/05/24-300x225.jpg 300w, /wp-content/uploads/2015/05/24-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<h3>スクエニ来た！なんかすごいデモや！</h3>

<p>そろそろ最後の山場。</p>

<p>Windows 10のゲームとグラフィックの機能をプレゼンする段になり、スクウェア・エニックスの第2ビジネス・ディビジョンから田畑 端氏がいらっしゃいました。</p>

<div id="attachment_15060" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/25.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/25-640x480.jpg" alt="中央がスクウェア・エニックス 第2ビジネス・ディビジョン ディレクター・プロデューサー 田畑 端氏" width="640" height="480" class="size-large wp-image-15060" srcset="/wp-content/uploads/2015/05/25.jpg 640w, /wp-content/uploads/2015/05/25-300x225.jpg 300w, /wp-content/uploads/2015/05/25-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">中央がスクウェア・エニックス 第2ビジネス・ディビジョン ディレクター・プロデューサー 田畑 端氏</p></div>

<p>発表はふたつありました。</p>

<p>ひとつは「FINAL FANTASY AGITO on Windows 10」。</p>

<div id="attachment_15061" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/26.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/26-640x480.jpg" alt="年内ローンチって言った？言ったよね？え？予定？" width="640" height="480" class="size-large wp-image-15061" srcset="/wp-content/uploads/2015/05/26.jpg 640w, /wp-content/uploads/2015/05/26-300x225.jpg 300w, /wp-content/uploads/2015/05/26-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">年内ローンチって言った？言ったよね？え？予定？</p></div>

<p>もうひとつは、Windows 10に搭載されるDirectX 12、そしてNVIDIAも巻き込んで開発された、アートとテクノロジーを融合させたデモンストレーション。</p>

<p>このクオリティの3D CG（髪の毛の本数も、実際の人間と同じだそうです）を、リアルタイムに視点移動させることができます。思わず会場からはため息が漏れました。
これは、動画見ないと伝わらないかも…。</p>

<div id="attachment_15062" style="width: 650px" class="wp-caption aligncenter"><a href="https://html5experts.jp/wp-content/uploads/2015/05/28.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/28-640x480.jpg" alt="WITCH CHAPTER 0 [cry]" width="640" height="480" class="size-large wp-image-15062" srcset="/wp-content/uploads/2015/05/28.jpg 640w, /wp-content/uploads/2015/05/28-300x225.jpg 300w, /wp-content/uploads/2015/05/28-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a><p class="wp-caption-text">WITCH CHAPTER 0 [cry]</p></div>

<p>ってことで動画貼っておきますね！</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/CGsJXINz0LQ" frameborder="0" allowfullscreen></iframe>

<h3>すべてのエンジニアとアプリのために</h3>

<p>基調講演の最後は、MacやLinuxでも動作することで話題になった「<a href="https://code.visualstudio.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Visual Studio Code</a>」や、Dockerを一例としてオープンソースコミュニティへの貢献を拡大させていることなど、Microsoftの開発者に向けた取り組みが、Windowsに囲い込もうとしていた以前とは全く異なることへの言及でした。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/29.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/29-640x480.jpg" alt="29" width="640" height="480" class="aligncenter size-large wp-image-15063" srcset="/wp-content/uploads/2015/05/29.jpg 640w, /wp-content/uploads/2015/05/29-300x225.jpg 300w, /wp-content/uploads/2015/05/29-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>

<p>「Empower every engineer」（すべてのエンジニアに力を与える）というフレーズは、このキーノートで一貫して取り上げられていましたが、聞いていたぼくとしてはその本気度が十分に伝わる内容でした。この記事を読んでいらっしゃる皆様にも、その雰囲気が少しでも伝われば幸いです。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2015/05/30.jpg" data-wpel-link="internal"><img src="/wp-content/uploads/2015/05/30-640x480.jpg" alt="30" width="640" height="480" class="aligncenter size-large wp-image-15064" srcset="/wp-content/uploads/2015/05/30.jpg 640w, /wp-content/uploads/2015/05/30-300x225.jpg 300w, /wp-content/uploads/2015/05/30-207x155.jpg 207w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
]]></content:encoded>
			</item>
	</channel>
</rss>
