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

<channel>
	<title>物江 修 &#8211; HTML5Experts.jp</title>
	<atom:link href="/osamum_ms/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>Windows 10 Fall Creators Updateに搭載されるMicrosoft Edgeの新機能</title>
		<link>/osamum_ms/24472/</link>
		<comments>/osamum_ms/24472/#respond</comments>
		<pubDate>Fri, 20 Oct 2017 05:22:22 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Windows 10]]></category>

		<guid isPermaLink="false">/?p=24472</guid>
		<description><![CDATA[10月17日 (日本では18日)より、Windows 10 Fall Creators Updateが公開されました。今回のアップデートではWindows Mixed Realityに準拠する MRデバイスのサポートやゲ...]]></description>
				<content:encoded><![CDATA[<p><font size="3">10月17日 (日本では18日)より、<a title="Windows 10 Fall Creators Update" href="https://www.microsoft.com/ja-jp/windows/features" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows 10 Fall Creators Update</a>が公開されました。今回のアップデートでは<a title="Windows Mixed Reality" href="https://developer.microsoft.com/ja-jp/windows/mixed-reality" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows Mixed Reality</a>に準拠する <a title="Windows Mixed Reality Headsets" href="https://www.microsoft.com/en-us/store/collections/vrandmixedrealityheadsets?SilentAuth=1&amp;wa=wsignin1.0" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">MRデバイス</a>のサポートやゲーム配信など、さまざまな機能が追加されています。</font></p>

<h2>Windows Fall Creator Updateとは?</h2>

<p><font size="3">Windows 10に対して行われる年2回の機能アップデートのうちのひとつです。</font></p>

<p><font size="3">今回の <font size="3">Windows Fall Creator Updateで提供される新機能は以下のページで紹介されておりますのでぜひご覧ください。</font></font></p>

<ul>
<li><font size="4"><a title="新しいWindows 10 Creators Updateと機能 | 新機能を見る | Microsoft" href="https://www.microsoft.com/ja-jp/windows/upcoming-features" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">新しいWindows 10 Creators Updateと機能</a></font></li>
</ul>

<p><font size="3">この記事ではWindows 10 Fall Creators Updateに搭載されるMicrosoft Edgeの新機能について紹介します。</font></p>

<h1>Microsoft Edge (EdgeHTML16)の新機能</h1>

<p><font size="3">Windows 10 Fall Creators Updateに搭載されるEdgeは、一目でその存在がわかるような派手な機能の追加はありませんが、着実にブラッシュアップアップされています。</font></p>

<p><font size="3">とはいえ、実際にユーザーの目に触れるUIとデザイン箇所の新機能から順に紹介していきたいと思います。</font></p>

<h2>UI デザインと機能</h2>

<h3><font style="font-weight: bold">ボタンアニメーションの改善</font></h3>

<p><font size="3"><a title="Fluent Design System" href="https://fluent.microsoft.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Fluent Design System</a>にインスパイアされ、Microsoft Edgeのブラウザーフレームをよりモダンにリフレッシュしました。アクリルマテリアルの使用は、タブバーや他のコントロールに奥行きと透明性を提供し、より応答性と楽しさを感じるようにボタンのアニメーションを改善しました。</font></p>

<p><img width="938" height="223" class="alignnone size-full wp-image-5375" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/taskbar1-e1508304571818.png"></p>

<h3><font style="font-weight: bold">単語と行の強調表示による読み上げ</font></h3>

<p><font size="3">WebサイトやPDFからのテキストを選択して右クリックし、コンテキストメニューから「読み上げ」を選択すると、テキストが音声で読み上げられます。選択内容が読み込まれ、その際に単語や行が強調表示されます。</font></p>

<div style="width: 100%">
<div style="margin: 0px auto;width: 400px">
<p><img width="401" height="220" class="size-full wp-image-5327" alt="コンテンツの読み上げ" src="https://msdnshared.blob.core.windows.net/media/2017/10/textSpeech.png"></p>
</div>
</div>

<h3><font style="font-weight: bold">Microsoft Edgeのフルスクリーンモード（F11）</font></h3>

<p><font size="3">フルスクリーン機能が正式に導入されています。Edge では、これまでもキーボードの [Shift] + [Win] + [Enter] キーを押下して全画面表示が可能でしたが、この方法は正式にはアナウンスされおらず、ある意味隠しコマンド的なものでした。</font></p>

<p><font size="3">今回のアップデートからは、[F11]キーを押下するか、設定メニューの新しいフルスクリーンアイコンを選択するだけで、Webサイトをフルスクリーンで表示できます。[F11]キーをもう一度押すか、右上隅にある復元アイコンをクリックして、全画面表示を終了することができます。</font></p>

<div style="width: 100%">
<div style="margin: 0px auto;width: 300px">
<p><img width="300" class="alignnone size-full wp-image-5345" alt="フルスクリーンモードのメニュー" src="https://msdnshared.blob.core.windows.net/media/2017/10/fullScreen1.png"></p>
</div>
</div>

<h3><font style="font-weight: bold">JavaScriptダイアログボックスが表示されていても終了可能に</font></h3>

<p><font size="3">これまでのEdgeまたは他のWebブラウザーでも、JavaScript の alert コマンドでなどで表示されるダイアログボックスが表示された状態では、終了することができませんでた。</font></p>

<p><font size="3">一部の悪質なWebサイトでは、この仕様を悪用して任意の操作を行うまでダイアログを表示し続けるということが現在も行われています。</font></p>

<p><font size="3">しかし、今回のアップデートでは、JavaScriptダイアログボックスが表示されている場合でも閉じるボタンを使用して正常にEdgeを終了することができるようになりました。</font></p>

<h3><font style="font-weight: bold">Webサイトのアクセス許可設定</font></h3>

<p><font size="3">Web サイトには、閲覧者の位置情報やWebカメラへのアクセス、またはデスクトップ通知の送信などの許可を求めるものがあります。</font></p>

<p><font size="3">今回のアップデートでは、これまでWebサイトごとに行ったアクセス許可設定が確認できるようになっています。</font></p>

<p><font size="3">これまでWebサイトに付与したアクセス許可を確認するには、アドレスバーに表示される鍵マークのアイコン、丸中にエクスクラメーションマーク (!) が描かれたアイコンのいずれかをクリックします。</font></p>

<p><font size="3">いずれのアイコンも表示されていない場合は、メニューバーの […](設定) – [詳細設定を表示] の画面で「Webサイトのアクセス許可」の[管理]ボタンをクリックします。</font></p>

<div style="width: 100%">
<div style="margin: 0px auto;width: 680px">

<div style="width: 300px;float: left">

<p><img width="300" class="alignnone size-full wp-image-5435" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/Acc_web.png"></p>

</div>

<div style="padding: 5px;width: 50px;text-align: center;color: red;font-size: 50px;float: left">

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

</div>

<div style="width: 300px;float: left">
<p>
<img width="300" class="alignnone size-full wp-image-5437" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/Acc_web2.png"></p>
</div>

<div style="clear: both"><br></div>
</div>
<h2>
アドレスバーとタブ</h2>
<h3><font style="font-weight: bold">アドレスバーのデザインを調整</font></h3>
<p><font size="3">ユーザーからのフィードバックに基づいてアドレスバーのデザインを調整しました。これで、アドレスバーにフォーカスがない場合でも、テキストをクリックしてドラッグしたときに開始されても、カーソルの下に残ります。以前は、「http：//」の表示に合わせてテキストがシフトしました。この変更により、URLの一部を簡単に編集することが容易になりました。</font></p>
<p><font size="3">また、URLバーにフォーカスが当たったときに URLバーのテキストが移動し、URLの特定の部分を編集しにくくなる問題が修正されました。このビルドから、URLをクリックしてもカーソルの下のテキストは同じままになります。</font></p>
<h3><font style="font-weight: bold">タブの閉じ方をより詳細に制御</font></h3>
<p><font size="3">前述の「<font style="font-weight: bold">JavaScriptダイアログボックスが表示されていても終了可能に</font>」のところでも紹介しましたが、Microsoft EdgeでJavaScript（警告、プロンプトなど）のダイアログが表示されている場合でも、タブを閉じるためにタブバンドの X を常に使用できるようになりました。</font></p>
<p><font size="3">ダイアログが表示されている間も、多くのブラウザ機能（お気に入りバー、設定など）にアクセスすることもできます。</font></p>
<h3><strong>開閉時のアニメーション表示</strong></h3>
<p><font size="3">新しいタブは、開閉時にタブバー上にスムーズにアニメーション表示されるようになりました。</font></p>
<p><font size="3">セッションの復元の動作が改善され、（たとえば電子メールからの）リンクをクリックしてマルチウィンドウのEdgeのセッションを復元すると、復元の最後にフォーカスが当てられたウィンドウが新しいリンクを含むウィンドウになります。</font></p>
<h3><font style="font-weight: bold">スプラッシュページの色の遷移がスムーズに</font></h3>
<p><font size="3">Microsoft Edgeのスプラッシュページ（新しく起動したときに表示される）の色がよりスムーズにスタートと新しいタブ ページに遷移できるように。</font></p>
<h2>改善されたお気に入りのエクスペリエンス</h2>
<h3><font style="font-weight: bold">新しいお気に入りを保存するときの新しいエクスペリエンス</font></h3>
<p><font size="3">新しいお気に入りを保存するときに、お気に入りをディレクトリツリーとして表示できるようになり、[お気に入りに追加]ダイアログボックスからフォルダを折りたたんだり展開したりすることができます。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 300px">
<p><img width="300" class="alignnone size-full wp-image-5386" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/Favarit1.png"></p>
</div>
</div>
<h3><font style="font-weight: bold">お気に入りのURLを編集</font></h3>
<p><font size="3">お気に入りメニューまたはお気に入りバーで任意のお気に入りのURLを編集できるようになりました。これを使用して、移動したサイトの場所を更新したり、ブックマークレットをお気に入りバーに作成したりすることができます。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 700px">
<div style="width: 280px;float: left">
<p><img width="280" class="alignnone size-full wp-image-5376" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/Edit_Faverit_url1.png"></p>
</div>
<div style="padding: 5px;width: 100px;text-align: center;color: red;font-size: 50px;float: left">
<p>⇒</p>
</div>
<div style="width: 280px;float: left">
<p><img width="280" class="alignnone size-full wp-image-5385" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/Edit_Faverit2_url1.png"></p>
</div>
<div style="clear: both"><br></div>
</div>
<h3><font style="font-weight: bold">エンタープライズのお気に入り管理機能</font></h3>
<p><font size="3">IT管理者は、グループ ポリシーを定義し、ユーザーのお気に入りに加えて事前構成済みのお気に入りをロックする機能など、モバイル デバイスの管理を介してお気に入りを構成できます。</font></p>
<h3><font style="font-weight: bold">お気に入りのウェブサイトをタスクバーにピン留め</font></h3>
<p><font size="3">ユーザーのフィードバックにより、タスクバーとスタートページへのWebサイトのピン留め機能が復活しました。サイトのアイコンを使用して、タスクバーからすぐにお気に入りのサイトにすばやくアクセスできるようにします。使い方は Edgeの設定メニューから「このページをタスクバーに固定する」を選択するだけです。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 700px">
<p><img width="700" class="alignnone size-full wp-image-5417" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/pined_all.png"></p>
</div>
</div>

<br>&nbsp; <h2>PDF関連の機能</h2>
<h3><font style="font-weight: bold">Microsoft Edge PDFの改善</font></h3>
<p><font size="3">PDF で [Cortana に質問] にハイライトカラーとオプションを追加しました。</font></p>
<h3><font style="font-weight: bold">PDFフォームの入力</font></h3>
<p><font size="3">PDFベースのフォームを記入し、保存して印刷する機能が追加されました。</font></p>
<h3><font style="font-weight: bold">PDFのアノテーション(注釈)</font></h3>
<p><font size="3">Webノートアノテーション機能は、Webページだけでなく、PDFでも動作するようになりました。ブラウザフレームの右上にある「Webノートを作成」ボタンを使用して、アノテーションバーを呼び出すことができます。</font></p>
<p><font size="3">アノテーションバーで異なるモードを使用すると、PDFにインクを印刷したり、テキストをハイライト表示したり、アノテーションを消去したりできます。後で使用するために、作業状況をPDFファイルに保存することができます。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 500px">
<p><img width="500" class="alignnone size-full wp-image-5405" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/pdf_note.png"></p>
</div>
</div>
<h3><font style="font-weight: bold">目次</font></h3>
<p><font size="3">目次を含むPDF文書の場合、PDFツールバーの左側に目次用の新しいボタンが表示されます。サイドペインの見出しをクリックすると、ドキュメントのその部分に移動します。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 500px">
<p><img style="width: 500px" alt="Screen capture showing the ToC in Edge" src="https://winblogs.azureedge.net/win/2017/05/edge-toc.png"></p>
</div>
</div>
<h3><font style="font-weight: bold">より優れた表示とナビゲーション</font></h3>
<p><font size="3">より読みやすくするためにPDFドキュメントを回転させるコントロールを追加し、1ページから2ページのレイアウトに切り替えたり、長いドキュメントのナビゲーションエクスペリエンスを改善するために、連続したページごとのスクロールの間隔を変更したりします。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 400px">
<p><img width="400" class="alignnone size-full wp-image-5415" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/pdf_layout.png"></p>
</div>
</div>
<h2>EPUBの読書の改善</h2>
<h3><font style="font-weight: bold">コピーとCortanaへの質問</font></h3>
<p><font size="3">テキストを選択すると、コピーやCortanaに質問できるだけでなく、ノートを追加したり、強調表示したり下線を引いたりすることができます。EPUBの本を読んでいる間、Cortanaはユーザーの研究を手助けします。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 500px">
<p><img style="width: 500px" alt="Screen capture showing Ask Cortana in an EPUB document" src="https://winblogs.azureedge.net/win/2017/06/e07555881fab505e99b6b25f749d8bb3-1024x849.png"></p>
</div>
</div>
<h3><font style="font-weight: bold">インクノート</font></h3>
<p><font size="3">これまで、ノートを追加し、ペンで書き込んだり、描画したりする機能は Webページのみで可能でしたが、EPUBでも可能になりました。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 500px">
<p><img style="width: 500px" alt="Screen capture showing Ink Notes in an EPUB document" src="https://winblogs.azureedge.net/win/2017/06/14b697bb015deb910a6e24a7e0fc740a-1024x849.png"></p>
</div>
</div>
<h3><font style="font-weight: bold">ブックに注釈を付ける</font></h3>
<p><font size="3">4色でハイライト、下線、およびコメントの追加によってEPUB書籍を注釈を付ける機能を追加しました。開始するには、テキストを選択し、メニューからオプションを選択します。</font></p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 400px">
<p><img style="width: 400px" alt="Screen capture showing an annotated EPUB book in Microsoft Edge" src="https://winblogs.azureedge.net/win/2017/06/1300b7c8438536aad5e3b55ed2ecd1e0-e1496958074264.png"></p>
</div>
</div>
<h3><font style="font-weight: bold">本をデバイス間でローミング</font></h3>
<p><font size="3">Windowsストアからの書籍は Windows 10デバイスで間で読み取りの進行状況、ブックマーク、およびメモが同期され保持されます。</font></p>
<p><font size="3">ただし、WindowsストアででのEPUB書籍の販売は現在米国のWindowsストアでのみ行われています。</font></p>
<h2><font style="font-weight: bold">開発者向けの機能</font></h2>
<h3><font style="font-weight: bold">Webプラットフォーム</font></h3>
<ul>
<li><font size="3">Form属性のサポート</font></li>
<li><font size="3"><a title="WebAssembly | MDN" href="https://developer.mozilla.org/ja/docs/WebAssembly" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">WebAssembly</a>が既定で有効</font></li>
<li><font size="3"><a title="CSS グリッドレイアウト - CSS | MDN" href="https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Grid_Layout" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSS Gridレイアウト</a>のサポート </font></li>
<li><font size="3"><a title="High Resolution Time Level 3" href="http://www.w3.org/TR/hr-time-3/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">High Resolution Time Level 3</a> のサポート</font></li>
<li><font size="3">高度なイベントリスナー（ &#8220;once&#8221;と &#8220;passive&#8221;）のサポートが追加</font></li>
<li><font size="3"><a title="object-fit - CSS | MDN" href="https://developer.mozilla.org/ja/docs/Web/CSS/object-fit" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSS object-fit/object-position</a> のサポートが追加</font></li>
<li><font size="3"><a title="position - CSS | MDN" href="https://developer.mozilla.org/ja/docs/Web/CSS/position#Sticky_positioning" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSS position: sticky</a>のサポートが追加</font></li>
<li><font size="3"><a title="CSSの変数を使う" href="https://developer.mozilla.org/ja/docs/Web/CSS/Using_CSS_variables" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSS カスタムプロパティ</a>(aka CSS Variables)のサポート</font></li>
<li><font size="3">ES2017<a title="ECMAScript Shared Memory and Atomics" href="https://tc39.github.io/ecmascript_sharedmem/shmem.html" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Shared MemoryとAtomics</a>が既定で有効</font></li>
</ul>
<div style="width: 100%">
<div style="margin: 15px;border: 5px dashed gainsboro;width: 600px">
<div style="font-size: 15px;font-weight: bold">Progressive Web Apps(PWA)のサポートは?</div>
<div style="font-size: 15px">Microsoft Edge Dev Blog の<a title="Microsoft Edge at Build 2017" href="https://blogs.windows.com/msedgedev/2017/05/19/microsoft-edge-at-build-2017/#j05PLwCl6w7GMkPR.97" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">この記事</a>によれば、<em>will be coming to preview builds of Microsoft Edge for developer testing this summer.</em>とのことでしたが、PWAを構成する Service Worker や Web Application Manifest、Push API、Background Sync APIなどのステータスのステータスを確認すると [<a title="Microsoft Edge web platform features status and roadmap - Microsoft Edge Development" href="https://developer.microsoft.com/en-us/microsoft-edge/platform/status/?q=edge%3A&#039;In%20Development&#039;" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">IN DEVELOPMENT</a>]のままなので、実装までにはもう少々かかるようです。</div>
</div>
</div>
<h2><font style="font-weight: bold">管理者向けの機能</font></h2>
<h3>グループポリシーオブジェクト</h3>
<p><font size="3">Microsoft EdgeにはWindowsドメイン環境下で管理者が設定を一括管理するためのグループポリシーが用意されています。</font></p>
<p><font size="3">Windows 10 Fall Creators Updateにより、Microsoft Edgeには、3個の新しいグループポリシーが追加されました。</font></p>
<table width="600" border="1" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td width="300" valign="top" style="text-align: center;color: white;background-color: navy">説明</td>
<td width="300" valign="top" style="text-align: center;color: white;background-color: navy">設定</td>
</tr>
<tr>
<td>Microsoft Edgeに書籍ライブラリを常に表示する</td>
<td>Windows設定の[国または地域] 領域で構成したデバイスの国または地域設定に関係なく、[書籍]タブを表示するかどうかを決定</td>
</tr>
<tr>
<td>お気に入りのプロビジョニング</td>
<td>ユーザーに表示されるお気に入りの既定のセットを構成できる</td>
</tr>
<tr>
<td>Microsoft Edge上のお気に入りを変更できないようにする</td>
<td>この設定を有効にした場合、ユーザーはお気に入りリストの内容を追加、インポート、または変更できません</td>
</tr>
</tbody>
</table>
<p><font size="3"></font></p>
<p><font size="3"></font></p>
<p><font size="3"></font></p>
<p><font size="3"></font></p>
<p><font size="3"></font></p><font size="3">
<p>その他、Microsoft Edgeに指定可能な既存のグループポリシー設定については、以下のドキュメントをご参照くださいませ。</p>
<ul>
<li><a href="https://technet.microsoft.com/ja-jp/itpro/microsoft-edge/available-policies" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Microsoft Edgeで利用可能なポリシー</a></li>
</ul>
<h2><font style="font-weight: bold">その他の進歩</font></h2>
<h3><font style="font-weight: bold">描画性能の向上 &#8211; </font><font style="font-weight: bold">独立したレンダリング</font></h3>
<p>EdgeHTML 16ではグラフィックス処理を追加のCPUスレッドに選択的にオフロードすることができるため、<a href="https://blogs.windows.com/msedgedev/2017/03/08/scrolling-on-the-web" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">シルク &#8211; スムーズスクロール</a>、応答性の高い対話、fluid アニメーションなど、ユーザーインターフェイス スレッドと全体的な可視パフォーマンス特性ページへの影響を最小限に抑えてレンダリングできます。EdgeHTML 16では、以下の要素を完全にサポートすることで、より多くのサイトで独立したレンダリングが可能になりました。</p>
<ul>
<li>&lt;select&gt;コントロール</li>
<li>&lt;canvas&gt;要素</li>
<li>特定の&lt;svg&gt;要素</li>
</ul>
<p>この改善点の詳細については以下の記事をご覧ください。</p>
</font><p><font size="3"></font></p>
<p><font size="3"></font></p>
<p><font size="3"></font></p>
<p><font size="3"></font></p>
<p><font size="3"></font></p>
<ul>
<li><a href="https://blogs.windows.com/msedgedev/2017/08/17/making-web-smoother-independent-rendering/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><font size="4"><strong>Making the web smoother with independent rendering</strong></font></a></li>
</ul>
<h3><font style="font-weight: bold">Windows Defender Application Guard</font></h3>
<p>昨年9月にMicrosoft Edge Blogで発表されました <a title="Microsoft Edge向けのWindows Defender Application Guardの紹介" href="https://blogs.windows.com/japan/2016/10/13/application-guard-microsoft-edge/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows Defender Application Guard for Microsoft Edge</a> がエンタープライズユーザー向けに利用できるようになりました。</p>
<p>Application Guard上で実行されるMicrosoft Edgeは、Windowsに対するゼロデイ攻撃とマルウェアからの最大レベルの保護を企業に提供します。</p>
<p>また、Application Guardの使用中にMicrosoft Edgeデータの永続性がサポートされました。有効にすると、お気に入り、Cookie、保存されたパスワードなどのデータは、Application Guardセッション全体で保持されます。永続化されたデータはホスト上で共有されたり表示されたりすることはありませんが、将来のMicrosoft Edgeでは Application Guardセッションで使用できるようになります。</p>
<div style="width: 100%">
<div style="margin: 0px auto;width: 500px">
<p><img style="width: 500px" alt="Screen capture showing a WDAG tab in Edge" src="https://winblogs.azureedge.net/win/2017/05/WDAG-3.png"></p>
</div>
</div>
<h1>まとめ</h1>
<p><font size="3">今回の記事では、Windows 10 Fall Creators Updateに搭載される Microsoft Edge (EdgeHTML16)の新機能について紹介しました。</font></p><p><font size="3">これら新機能については、Edgeの開発者チームのブログMicrosoft Edge Devでも紹介されていますので、こちらも合わせてご覧ください。</font></p><ul><li><font size="4"><a title="What&rsquo;s New in Microsoft Edge in the Windows 10 Fall Creators Update" href="https://blogs.windows.com/msedgedev/2017/10/17/edgehtml-16-fall-creators-update/#0U8LIYBpyVrf3Z8m.97" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>What’s New in Microsoft Edge in the Windows 10 Fall Creators Update</strong></a></font></li></ul><p><font size="3">Microsoft Edgeは、ユーザーからのフィードバックを参考に着実に進化しています。</font></p>
<p><font size="3">Microsoft Edgeへのフィードバックと評価は、メニュー[…](設定) – [フィードバックの送信]から送ることができます。</font></p>
<p><font size="3">また、開発チームからの反応や、その後の進捗の状況が気になる方は <a href="https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><strong>Microsoft Edge Platform Suggestion Box</strong></a>に投稿を行うのをお勧めします。</font></p>
<p><font size="3">また私も引き続きEdge、Web関連の情報を発信していきますので、<a title="@samum_MS" href="https://twitter.com/osamum_MS" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">@osamum_MS</a>のフォローもよろしくお願いします。</font></p>
<p><font size="3"></font><font size="3"></font></p></div></div>
]]></content:encoded>
			<wfw:commentRss>/osamum_ms/24472/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新しくなったMicrosoft Edgeを試してみよう！ーWindows 10 Creators Updateで入ったEdgeの新機能一挙解説</title>
		<link>/osamum_ms/22779/</link>
		<pubDate>Thu, 13 Apr 2017 01:00:31 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Creators Update]]></category>
		<category><![CDATA[Edge]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[browser]]></category>

		<guid isPermaLink="false">/?p=22779</guid>
		<description><![CDATA[今週 (2017/4/11 米国時間) からいよいよ Windows 10 Creators Updateの配信が開始されました。 この配信は、さまざまな業況を見ながら順次行われていきますが、もし、自分の番まで待ちきれな...]]></description>
				<content:encoded><![CDATA[<p>今週 (2017/4/11 米国時間) からいよいよ <a title="The Creators Update | 2017年に追加される新しいWindows機能" href="https://www.microsoft.com/ja-jp/windows/upcoming-features" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows 10 Creators Update</a>の配信が開始されました。</p>

<p>この配信は、さまざまな業況を見ながら順次行われていきますが、もし、自分の番まで待ちきれない、という人は、4月6日（日本）からすでに利用可能になっている&nbsp;<a href="http://bit.ly/win10updateacc" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Windows 10更新アシスタント</a>を使用してマニュアルインストールをしてもよいでしょう。</p>

<p>このアップデートではWindows 10そのものに<a title="Windows&nbsp;10に間もなく追加される機能" href="https://www.microsoft.com/ja-jp/windows/upcoming-features" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">さまざまな機能追加</a>が行われることはもちろん、そこに搭載されるWebブラウザーMicrosoft Edgeにも新機能が追加されます。</p>

<p>今回の記事では、Windows 10 Creators Updateに搭載される Microsoft Edgeの新機能について紹介します。</p>

<h1>Windows 10 Creators UpdateでのMicrosoft Edgeの新機能</h1>

<p>Microsoft Edgeは安全性と相互有用性、パフォーマンスの向上を中心に継続的に機能改善が行われています。具体的には、DOMパーサーやJavaScriptエンジンの性能向上であったり、低電力性能の向上、サンドボックスの機能向上といったものです。そういったものは、内側の強化であるため、なかなかユーザーの目に触れることはありませんが、着実に進化しています。こういった部分はEdge開発チームのブログで詳しく紹介されていますので、ご興味のある方はぜひこちらをご覧ください。</p>

<ul> <li><font size="3"><a title="Microsoft Edge Dev Blog" href="https://blogs.windows.com/msedgedev/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Microsoft Edge Dev Blog</a></font></li></ul>

<p>今回のこの記事では、「誰からも使用可能なUIを持った部分」を中心にWindows 10 Creators UpdateでMicrosoft Edgeに追加された新機能を紹介します。</p>

<h2>タブ機能の強化</h2>

<p>Webブラウザーにおけるタブは、いまや ユーザーがWebを閲覧するうえでの重要なUIとなっています。Webブラウザーに読み込んだWeb サイトの画面を効率的に整理できれば、コンテンツにより没頭できますし、必要な情報の入手は把握もはかどることでしょう</p>

<p>前回の<a title="Windows 10 Anniversary Updateを取得する" href="https://support.microsoft.com/ja-jp/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-anniversary-update" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows 10 Anniversary Update</a>で、Edgeのタブには「お気に入り」や「プレビュー」機能が追加されましたが、Windows 10 Creators Updateではさらに使い勝手を向上させるための機能が追加されています。</p>

<h3>表示中のタブの終了と保存、そして復元</h3>

<p>現在開いているタブをすべて閉じたあと、任意のタイミングで元通りに戻すことができます。これを行うにはMicrosoft Edgeウィンドウの左上の端から2番目の[表示中のタブを保存して閉じる]&nbsp; アイコンをクリックします。</p>

<div style="width: 200px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/Save_and_CloseTab31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="Save_and_CloseTab3" style="border-left-width: 0px;border-right-width: 0px;width: 200px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Save_and_CloseTab3" src="https://msdnshared.blob.core.windows.net/media/2017/04/Save_and_CloseTab3_thumb1.png" width="240" height="109"></a> </div>

<p>&nbsp;</p>

<p>表示されているタブはすべて閉じられますが、タブが表示していたWebサイトのURLは保存されており、ウィンドウ左上隅にある[保存して閉じたタブ]アイコンをクリックするとその一覧にアクセスできます。</p>

<div style="width: 200px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/Saved_and_ClosedTab.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="Saved_and_ClosedTab" style="width: 200px" border="0" alt="Saved_and_ClosedTab" src="https://msdnshared.blob.core.windows.net/media/2017/04/Saved_and_ClosedTab.png"></a></div>

<p>&nbsp;</p>

<p>同アイコンをクリックすると、画面の左側に保存されたWebサイトのサムネイル画像を含んだブレードが表示されます。</p>

<div style="width: 500px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/RepairTab_Blade241.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="RepairTab_Blade24" style="border-left-width: 0px;border-right-width: 0px;width: 500px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="RepairTab_Blade24" src="https://msdnshared.blob.core.windows.net/media/2017/04/RepairTab_Blade241.png" width="240" height="161"></a> </div>

<p>&nbsp;</p>

<p>タブは、保存されたタイミング単位で複数のものがまとまって保存されています。</p>

<p>保存されたタブを再度表示するには、ブレート内のサムネイル画像をクリックします。もしくは、同じタイミングで保存されたタブを一度に戻すには 、同ブレードの右端にある[タブの復元]リンクをクリックします。</p>

<div style="width: 500px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/RepairTab_Blade_Menu231.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="RepairTab_Blade_Menu23" style="border-left-width: 0px;border-right-width: 0px;width: 500px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="RepairTab_Blade_Menu23" src="https://msdnshared.blob.core.windows.net/media/2017/04/RepairTab_Blade_Menu231.png"></a> </div>

<p>&nbsp;</p>

<p>また[タブの復元]メニューの横にある […](その他) メニューをクリックするとタブのURLを [お気に入り] に追加したり、タブを他のアプリで共有したりできます。</p>

<h3>タブのプレビューの一覧</h3>

<p>前回のWindows 10 Anniversary Updateでは、タブがロードしているWebコンテンツのプレビューを表示する機能が追加されましたが、Windows 10 Creators Updateでは、これを一覧表示できるようになりました。</p>

<p>この機能を使用するには、Edgeウィンドウ内にあるタブの右端にある[タブ プレビューを表示]アイコンをクリックします。</p>

<div style="width: 150px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/TabPreviewButton.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="TabPreviewButton" style="width: 150px" border="0" alt="TabPreviewButton" src="https://msdnshared.blob.core.windows.net/media/2017/04/TabPreviewButton.png"></a> </div>

<p>各タブの下にプレビュー画面がサムネイル表示されます。</p>

<div style="width: 540px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/TabPreviewBar31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="TabPreviewBar3" style="width: 540px" border="0" alt="TabPreviewBar3" src="https://winblogs.azureedge.net/win/2017/01/edge1v2.gif"></a> </div>

<p>&nbsp;</p>

<p>元に戻すには再度[タブ プレビューを表示]アイコンをクリックします。</p>

<h2>Web-to-App のサポート</h2>

<p>Webからアプリへのリンク(Web-to-App)をサポートするWebサイトへのリンクをクリックすると、設定アプリのWeb<em>サイトのアプリ</em>セクションで設定されているように、それぞれのアプリでそのページを開くようになりました。</p>

<p>Web-to-Appがどういうものであるか知りたい方は以下のドキュメントをご覧くださいませ。</p>

<ul> <li><a title="Web-to-App Linking with AppUriHandlers" href="https://blogs.windows.com/buildingapps/2016/10/14/web-to-app-linking-with-appurihandlers/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><font size="2">Web-to-App Linking with AppUriHandlers</font></a>  <li><a title="アプリのURIハンドラーを使用してWebとアプリのリンクをサポートする" href="https://docs.microsoft.com/ja-jp/windows/uwp/launch-resume/web-to-app-linking" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><font size="2">アプリのURIハンドラーを使用してWebとアプリのリンクをサポートする</font></a> </li></ul>

<h2>ジャンプリストから直接InPrivateウィンドウへ</h2>

<p>Internet Explorerのように、タスクバーのアイコンを右クリックした際に表示されるジャンプリストから、直接InPrivateウィンドウを開くことができるようになりました。</p>

<div style="width: 271px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/jumpList.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="jumpList" style="width: 271px" border="0" alt="jumpList" src="https://msdnshared.blob.core.windows.net/media/2017/04/jumpList.png"></a> </div>

<p>&nbsp;</p>

<p>InPrivateウィンドウを使用すると、履歴などプライバシーに関わる情報を保護することができます。他人知られたくないWebサイトを閲覧をするときはもちろんですが、Webサイトのサービスへ、別アカウントでログインする際や、自動で認証されているアカウントの影響により操作がうまくいかないといった場合にも役に立ちます。</p>

<h2>Webノートの機能強化</h2>

<p>Microsoft Edgeのもっとも特徴的な機能であるWebノートに、そのアイコンの変更が示すとおり(?)ささやかですが新機能と変更が加えられています。</p>

<div style="width: 130px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2017/04/image.png" data-wpel-link="internal"><img title="image" style="width: 130px" border="0" alt="image" src="/wp-content/uploads/2017/04/image_thumb.png"></a> </div>

<p><br></p>

<p>Webノートのメニューの位置はそれまで、画面左上に表示されていましたが、今回のアップデートでは画面右上に移動されています。</p>

<h3>タッチによる手書きのサポート</h3>

<p>[タッチによる手書き]メニューが追加されました。これまでも、メニューがないだけで、タッチによるWebノートの書き込みを行うことができましたが、これをオフにすることができませんでした。今回のアップデートでは、[タッチによる手書き]メニューをクリックすることで、機能のオン/オフを切り替えることができます。</p>

<div style="width: 190px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/Touch_Write.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="Touch_Write" style="width: 190px" border="0" alt="Touch_Write" src="https://msdnshared.blob.core.windows.net/media/2017/04/Touch_Write.png"></a> </div>

<h3>ペンの色とサイズの強化</h3>

<p>[ボールペン]や[蛍光ペン]メニューをクリックした際に選択可能な色が増え、ペン先の太さもスライダーで変更できるように強化されました。</p>

<div style="width: 326px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/ball_Pen31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="ball_Pen3" style="border-left-width: 0px;border-right-width: 0px;width: 326px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="ball_Pen3" src="https://msdnshared.blob.core.windows.net/media/2017/04/ball_Pen31.png"></a> </div>

<p><br></p>

<p>ここで選択された内容は、前出の[タッチによる手書き]にも反映されます。</p>

<h3>共有機能の変更</h3>

<p>アイコンのデザインに合わせたのかどうかは定かではありませんが、Webノートの共有機能のデザインが変更になっています。</p>

<div style="width: 150px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/WebNote_Share.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="WebNote_Share" style="width: 150px" border="0" alt="WebNote_Share" src="https://msdnshared.blob.core.windows.net/media/2017/04/WebNote_Share.png"></a></div>

<p><br></p>

<p>以前はWindows 8.xの“チャーム”のようなブレードがウィンドウの右側からせり出してきていましたが、今回のアップデートではダイアログボックスが表示されるようになっています。</p>

<div style="width: 350px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/WebNote_Share_dialog31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="WebNote_Share_dialog3" style="border-left-width: 0px;border-right-width: 0px;width: 350px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="WebNote_Share_dialog3" src="https://msdnshared.blob.core.windows.net/media/2017/04/WebNote_Share_dialog31.png"></a></div>

<p><br></p>

<h2>EPUBのサポート</h2>

<p>EdgeでEPUB形式の電子書籍ファイルがサポートされました。</p>

<p>EPUB用に特別にアプリケーションをインストールしなくても、直接ファイルの内容を閲覧することができます。</p>

<p>著作権の関係で、文面の表示された画面ショットをお見せできませんが、日本語の表示はもろろん、縦書きも問題なく表示されます。</p>

<div style="width: 600px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/image39.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image3" style="border-left-width: 0px;border-right-width: 0px;width: 600px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image3" src="https://msdnshared.blob.core.windows.net/media/2017/04/image39.png"></a> </div>

<p>&nbsp;</p>

<p>目次、ブックマーク、検索しもちろんのこと、文章の読み上げや、</p>

<div style="width: 260px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/e-pub_reading31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="e-pub_reading3" style="border-left-width: 0px;border-right-width: 0px;width: 260px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="e-pub_reading3" src="https://msdnshared.blob.core.windows.net/media/2017/04/e-pub_reading31.png"></a> </div>

<p>&nbsp;</p>

<p>テキストのサイズや文字間隔、フォントスタイルやテーマなども柔軟に変更することができます。</p>

<div style="width: 259px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/e-pub_text31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="e-pub_text3" style="border-left-width: 0px;border-right-width: 0px;width: 259px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="e-pub_text3" src="https://msdnshared.blob.core.windows.net/media/2017/04/e-pub_text31.png"></a> </div>

<p>&nbsp;</p>

<p>EdgeのEPUB機能については、<strong>Jun Tajima</strong>さんが詳しい<a title="電書魂　─グーテンベルクの遙か彼方へ─Microsoft EdgeのEPUB表示チェック" href="http://densyodamasii.com/?p=3179" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>レビュー</strong></a>を書かれておりますので、ご興味のある方はぜひご覧くださいませ。</p>

<h2>Flashコンテンツの挙動の変更</h2>

<p>Windows 10 Creators Updateから、信頼できないFlashコンテンツは既定でブロックされており、ユーザーが明示的にプレイするまで実行されないようになりました。これにより、セキュリティ、安定性、パフォーマンスが向上し、選択した時点でFlashを実行するというオプションが選択できます。</p>

<p>Flashコンテンツがブロックされたときに明確にするためにURLバーはダイアログボックスが表示されます。一度、または同じサイトに戻るたびにFlashを許可するパズル アイコンをクリックします。</p>

<div style="width: 297px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/flashBlock31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="flashBlock3" style="border-left-width: 0px;border-right-width: 0px;width: 297px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="flashBlock3" src="https://msdnshared.blob.core.windows.net/media/2017/04/flashBlock31.png"></a> <br><br><a href="https://html5experts.jp/wp-content/uploads/2017/04/image3.png" data-wpel-link="internal"><img title="image[3]" style="border-left-width: 0px;border-right-width: 0px;width: 297px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image[3]" src="/wp-content/uploads/2017/04/image3_thumb.png"></a> </div>

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

<p>Microsoft EdgeにおけるFlashコンテンツの動作はWindows 10 Creators Updateで変更されています。この変更についての詳細はMicrosoft Edge Dev Blog: <a href="https://blogs.windows.com/msedgedev/2016/12/14/edge-flash-click-run/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Extending User Control of Adobe Flash with Click-to-Run</a>. をご覧ください。</p>

<h2>フルカラーemojiのサポート</h2>

<p>Microsoft Edgeでは、絵文字 (emoji)を使用しているWebサイトにフルカラーの新しくなった絵文字が既定で表示されるようになりました。</p>

<p>この絵文字は、Windows 10のソフトウェアキーボードなどからも入力することができます。</p>

<div style="width: 313px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/fb-Post31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="fb-Post3" style="border-left-width: 0px;border-right-width: 0px;width: 313px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="fb-Post3" src="https://msdnshared.blob.core.windows.net/media/2017/04/fb-Post31.png"></a> </div>

<div style="width: 789px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/Touch-Keybord31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="Touch-Keybord3" style="border-left-width: 0px;border-right-width: 0px;width: 789px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Touch-Keybord3" src="https://msdnshared.blob.core.windows.net/media/2017/04/Touch-Keybord31.png"></a> </div>

<p>&nbsp;</p>

<p>これら絵文字は、一般的なSNSなどでは画像で変換されて、スマートフォンなどからでもきちんと見ることができます。</p>

<h2>API のサポート</h2>

<p>Windows 10 Creators UpdateでEdgeがサポートしたAPIは、細かくはさまざまなものがありますが、ざっくりとは以下のとおりです。</p>

<ul> <li><a title="Ambient Light Sensor" href="http://www.w3.org/TR/ambient-light/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Ambient Light Sensor API</a>  <li><a title="Async Functions" href="https://tc39.github.io/ecmascript-asyncawait/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Async Functions</a>  <li><a title="RFC 7932 - Brotli Compressed Data Format" href="https://tools.ietf.org/html/rfc7932" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Brotli Compressed Data Format</a>  <li><a title="Content Security Policy Level 3" href="http://www.w3.org/TR/CSP/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Content Security Policy Level 2</a>  <li><a title="Offsetting the Outline: the outline-offset property" href="https://drafts.csswg.org/css-ui-3/#outline-offset" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSS outline-offset</a>  <li><a title="ECMAScript 2015 Language Specification &ndash; ECMA-262 6th Edition" href="http://www.ecma-international.org/ecma-262/6.0/#sec-destructuring-assignment" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Destructuring</a> (ES6)  <li>H.264/AVC for RTC  <li><a title="Intersection Observer 1" href="https://wicg.github.io/IntersectionObserver/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Intersection Observer</a>  <li>Modules (ES6)  <li><a title="Payment Request API" href="http://www.w3.org/TR/payment-request/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Payment Request API</a>  <li>RegExp Built-ins (ES6)  <li><a href="http://tc39.github.io/ecmascript_simd/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">SIMD</a>  <li>VP8 for RTC  <li><a title="WebRTC 1.0: Real-time Communication Between Browsers" href="http://www.w3.org/TR/webrtc/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">WebRTC – WebRTC v1.0 API</a>  <li><a title="WebVR" data-wpel-link="internal">WebVR</a> </li></ul>

<p>これらのいくつかについては、Microsoft Edge Dev Blogに記事が投稿されているので、私が抄訳したものと合わせて紹介させていただきます。</p>

<ul> <li><a title="Microsoft Edge での WebRTC 1.0 および相互運用可能なリアルタイム通信の紹介" href="https://blogs.msdn.microsoft.com/msedgedev_japan/2017/02/01/introducing-webrtc-1-0-and-interoperable-real-time-communications-in-microsoft-edge/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Microsoft EdgeでのWebRTC 1.0および相互運用可能なリアルタイム通信の紹介</a>  <li><a title="Content Security Policy Level 2 サポートの概要" href="https://blogs.msdn.microsoft.com/msedgedev_japan/2017/01/11/introducing-support-for-content-security-policy-level-2/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Content Security Policy Level 2 サポートの概要</a>  <li><a title="よりシンプルなWebの決済方法 : Payment Request APIの紹介" href="https://blogs.msdn.microsoft.com/msedgedev_japan/2016/12/20/simpler-web-payments-introducing-the-payment-request-api/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">よりシンプルなWebの決済方法 : Payment Request API の紹介</a>  <li><a title="CSS Custom Properties in Microsoft Edge" href="https://blogs.windows.com/msedgedev/2017/03/24/css-custom-properties/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">CSS Custom Properties in Microsoft Edge</a> </li></ul>

<h3>Progressive Web Apps 対応は?</h3>

<p>Progressive Web Appsへの対応は、多くの開発者が気になるところでしょう。Microsoft Edge Developmentの<a title="Platform Status" href="https://developer.microsoft.com/en-us/microsoft-edge/platform/status/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Platform Status</a>で確認すると、Progressive Web Appsを構成する所要機能のいくつかのステータスが IN DEVELOPMENT (開発中)のままになっています。</p>

<div style="width: 375px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/image132.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image13" style="border-left-width: 0px;border-right-width: 0px;width: 375px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image13" src="https://msdnshared.blob.core.windows.net/media/2017/04/image132.png"></a> </div>

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

<p>しかし、これらの機能は、試験的にWindows 10 Creators UpdateのEdgeに搭載されており、検証に使用することができます。</p>

<p>これらの機能を試すには、アドレスバーにabout:flagsと入力して [開発者向け設定画面]を表示し、以下の該当する機能のチェックボックスにチェックをつけ、Edgeを再起動します。</p>

<div style="width: 350px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/pwa31.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="pwa3" style="border-left-width: 0px;border-right-width: 0px;width: 350px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="pwa3" src="https://msdnshared.blob.core.windows.net/media/2017/04/pwa31.png"></a> </div>

<p>&nbsp;</p>

<h2>拡張について</h2>

<p>Windows 10 Creators Updateにより、Edge拡張はネイティブメッセージングを使用して、ユニバーサルWindowsプラットフォーム（UWP）アプリケーションと通信することができるようになりました。Edge拡張はChromeやFirefoxの拡張と同じネイティブメッセージングAPIを使用します。

ただし、Edgeのネイティブメッセージングホストは、Universal Windows Platformを使用して実装する必要があります。</p>

<p>この機能を使用すると、Webアプリケーションでは実現できないプラットフォーム固有やハードウェアリソースを利用したソリューションをUWPアプリと連携して実現することができます。</p>

<p>詳しくは以下のドキュメントをご参照ください。</p>

<ul> <li><a title="Native messaging in Microsoft Edge" href="https://docs.microsoft.com/ja-jp/microsoft-edge/extensions/guides/native-messaging" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><font size="3">Native messaging in Microsoft Edge</font></a> </li></ul>

<p>&nbsp;</p>

<h2>管理者向け機能</h2>

<p>Microsoft EdgeにはWindowsドメイン環境下で管理者が設定を一括管理するためのグループポリシーが用意されています。</p>

<p>Windows 10 Creators Updateにより、Microsoft Edgeには、10個の新しいグループポリシーが追加されました。</p>

<div style="width: 470px;margin: 0px auto"><a href="https://msdnshared.blob.core.windows.net/media/2017/04/Edge-gp.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="Edge-gp" style="width: 470px" border="0" alt="Edge-gp" src="https://msdnshared.blob.core.windows.net/media/2017/04/Edge-gp1.png"></a> </div>

<p>具体的には以下のものになります。</p>

<div style="width: 600px;margin: 0px auto"> <table cellspacing="0" cellpadding="2" width="600" border="1"> <tbody> <tr> <td style="color: white;text-align: center;background-color: navy" valign="top" width="300">説明</td> <td style="color: white;text-align: center;background-color: navy" valign="top" width="300">設定</td></tr> <tr> <td>終了時の閲覧データ クリアを許可する</td> <td>有効にするとEdge終了時に自動で閲覧データをクリアする</td></tr> <tr> <td>アドレスバーのドロップダウンリスト候補を許可する</td> <td>有効にするとアドレスバーにドロップダウン候補が表示される。ネットワークトラフィックを下げたい場合はオフにする</td></tr> <tr> <td>Adobe Flash の Click-toRun を構成する</td> <td>有効な場合は自動再生はされない</td></tr> <tr> <td>検索エンジンのカスタマイズを許可する</td> <td>ユーザーが検索エンジンを変更できるかどうかを指定</td></tr> <tr> <td>追加の検索エンジンを構成する</td> <td>検索エンジンを5つまで追加可能。従業員はこれを削除できないが、いずれかを既定の検索エンジンに指定可能</td></tr> <tr> <td>スタートページのロックを無効にする</td> <td>ユーザーにスタートページのカスタマイズを許可するか否か</td></tr> <tr> <td>Microsoft Edgeで最初の実行時のWebページを開かない</td> <td>初めて Edgeを開くときに、最初の実行時のMicrosoft Webページを従業員に対して表示するかどうかを指定できます。</td></tr> <tr> <td>サイトをスタートにピン留めする際にライブタイル情報の収集を Microsoft Edgeに許可しない</td> <td>ユーザーがライブ タイルをスタート メニューにピン留めする際に提供するエクスペリエンスを改善するために、Microsoft Edgeがieonline.microsoft.comサービスからライブ タイルのメタデータを収集できるかどうかを指定できます。</td></tr> <tr> <td>既定の検索エンジンを設定する</td> <td>従業員の既定の検索エンジンを構成する</td></tr> <tr> <td>Internet ExplorerとMicrosoft Edgeの間でお気に入りの同期状態を維持する</td> <td>従業員がInternet ExplorerとMicrosoft Edgeの間でお気に入りを同期できるかどうかを指定できます。</td></tr></tbody></table></div>

<p>その他、Microsoft Edgeに指定可能な既存のグループポリシー設定については、以下のドキュメントをご参照くださいませ。</p>

<ul> <li><a title="Microsoft Edgeで利用可能なポリシー" href="https://technet.microsoft.com/ja-jp/itpro/microsoft-edge/available-policies" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><font size="3">Microsoft Edgeで利用可能なポリシー</font></a></li></ul>

<h2>その他</h2>

<p>Windows 10 Creators Updateについての細かな機能追加や修正、変更については、Microsoft Edge DevelopmentのChangelogで確認することができますので、Edgeの変化についてより詳しく知りたい方はぜひアクセスしてみてください。</p>

<ul> <li><a title="Microsoft Edge build 15063 changelog" href="https://developer.microsoft.com/en-us/microsoft-edge/platform/changelog/desktop/15063/?compareWith=14393" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><font size="3">Microsoft Edge build 15063 changelog</font></a></li></ul>

<p>また、Windows マシンをお持ちでない方は、<a title="Download virtual machines" href="https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">ぜひ無償の検証用仮想マシン</a>や<a title="Announcing free Microsoft Edge testing in partnership with BrowserStack" href="https://blogs.windows.com/msedgedev/2017/03/30/free-edge-testing-browserstack/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">リモート環境</a>をお試しください。</p>
]]></content:encoded>
			</item>
		<item>
		<title>PCからIoTまで! Web技術を使ったユニバーサルWindowsプラットフォーム (UWP) アプリの開発</title>
		<link>/osamum_ms/20545/</link>
		<pubDate>Thu, 08 Sep 2016 01:00:45 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[Windows Store]]></category>
		<category><![CDATA[uwp]]></category>
		<category><![CDATA[ハイブリッド]]></category>

		<guid isPermaLink="false">/?p=20545</guid>
		<description><![CDATA[連載： Web技術でアプリ開発2016 (3)「Web技術でアプリ開発2016」ということで、この記事ではPCからIoT機器まで、Windows 10プラットフォームであればデバイスを問わず動作する ユニバーサルWind...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/web-based-apps-2016/" class="series-391" title="Web技術でアプリ開発2016" data-wpel-link="internal">Web技術でアプリ開発2016</a> (3)</div><p>「Web技術でアプリ開発2016」ということで、この記事ではPCからIoT機器まで、Windows 10プラットフォームであればデバイスを問わず動作する ユニバーサルWindowsプラットフォーム (以下、UWPと記述) 上で動作するアプリについて紹介します。</p>

<p>このアプリはもちろんHTML、CSS + JavaScriptといったWeb開発者が慣れ親しんだ技術で開発することができます。また、インターネットでホストされているWebページをラップしてアプリ化することができます。</p>

<p>UWPをターゲットとしたアプリ開発では、新規開発はもちろん、既存のWeb資産を利用してアプリを開発し、さまざまな Windows 10デバイスに横断的に機能を提供することができます。</p>

<p>この記事では、UWPがどのようものであるか、UWP上で動作するアプリの開発方法と公開方法について紹介します。</p>

<h1>ユニバーサルWindowsプラットフォーム (UWP)アプリ とは</h1>

<p>Windows 10では、<a title="最新のWindows PC、ノートPC、タブレットのご紹介 | Microsoft Windows 10" href="https://www.microsoft.com/ja-jp/windows/view-all" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>PC</strong></a>、<a title="Windows 10 Mobileにアップグレードする方法 - マイクロソフト" href="https://www.microsoft.com/ja-jp/windows/windows-10-mobile-upgrade" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>モバイル</strong></a>、<a title="Xbox | Official Site" href="http://www.xbox.com/ja-JP/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>XBOX</strong></a>、<a title="Microsoft Surface Hub | コラボレーション デバイス" href="https://www.microsoft.com/microsoft-surface-hub/ja-jp" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Surface Hub</strong></a>、<a title="Microsoft HoloLens | Official Site" href="https://www.microsoft.com/microsoft-surface-hub/ja-jp" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>HoloLens</strong></a>、<a title="Raspberry Pi 3とArduinoでのWindows 10 IoTアプリの開発 - Windows IoT" href="https://developer.microsoft.com/ja-jp/windows/iot" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>IoT</strong></a> 機器といったデバイスファミリーで共通のカーネルを採用しており、これによりアプリケーションのプラットフォームが統合されました。</p>

<div style="width: 400px;margin: 0px auto">
  <a href="https://html5experts.jp/wp-content/uploads/2016/08/image7.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb7.png"
      width="450" height="174"></a>
</div>

<p><br /></p>

<p>このWindows 10デバイスファミリーで統合されたプラットフォームをユニバーサルWindowsプラットフォーム (Universal Windows Platform : UWP)と呼びます。</p>

<div style="width: 500px;margin: 0px auto">
  <br>
  <a href="https://html5experts.jp/wp-content/uploads/2016/08/image8.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb8.png"
      width="500" height="273">
    <br>
  </a>
  <br>
</div>

<p>UWP用のアプリは、OSのバージョンではなくデバイスファミリーを対象としますが、UWPのコアAPIはすべてのWindowsデバイス ファミリーに共通であり、アプリにコアAPIのみを使う場合は、そのアプリはいずれのWindows 10デバイスでも動作します。</p>

<p>つまり、固有のデバイスに縛られることなく、目的のデバイスファミリーをターゲットして再コンパイルすることでPCから IOT基板まで、さまざまな機器に配置し、動作させることができるのです。</p>

<p>Webの開発者からみればハードルが高そうなIoT機器用のアプリもHTML、CSS + JavaScriptで開発することができます。</p>

<p>たとえば、以下の記事では、Raspberry Piとディスプレイをマジックミラーの裏に配置し、洗面台の鏡の中に情報を表示するアプリを紹介していますが、この上表を表示するアプリはHTML、CSS + JavaScriptを使用したUWPアプリです。</p>

<ul>
  <li><a href="https://blogs.windows.com/msedgedev/2016/05/31/magic-mirror-hosted-web-app/#ZA4Bz3egXpR7RBJS.99" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Building an IoT Magic Mirror with Hosted Web Apps and Windows 10</strong></a> </li>
</ul>

<p>また逆に、拡張機能SDKにより特殊なデバイス用のアプリも開発することもできます。</p>

<h1>UWPアプリのメリット</h1>

<p>UWPアプリのメリットは、前述したようにデバイスファミリーを横断したアプリの開発が容易であるということもありますが、それ以外でも、複数の言語で開発することができることや、UWPが公開する豊富なAPIを直接使用できるということがあるでしょう。</p>

<p>UWPアプリのロジック部分はC#、Visual Basic、C、C++、JavaScriptといった開発言語で記述することができ、UI部分は XAML (C#、VB、C、C++)、DirectX (C、C++)と、HTML/CSS (JavaScript)で記述することができます。</p>

<div style="width: 600px;margin: 0px auto">
  <a href="https://html5experts.jp/wp-content/uploads/2016/09/image1.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/09/image_thumb1.png"
      width="600" height="338"></a>
</div>

<p><br /></p>

<p>UWPのリソースにアクセスするためのWindowsランタイム(WinRT) APIには、各言語ともWindows名前空間を空間を介して接続することができます。</p>

<p>WinRT APIは Windows 10の予定表や連絡先、タイルといったOSが持つソフト的なリソースからBluetoothやWi-Fi、USBといったハード的リソースへのアクセスなど、幅広く機能を提供します。そしてこれらのAPIはUWPでサポートされている言語であれば、言語を問わず利用することができます。</p>

<p>Windowsランタイムがアプリ向けに公開しているAPIのついての詳細は以下のドキュメントをご参照ください。</p>

<ul>
  <li><a title="WindowsランタイムアプリのWindows APIリファレンス - Windows app development" href="https://msdn.microsoft.com/ja-jp/library/windows/apps/br211377.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Windows ランタイム アプリのWindows APIリファレンス</strong></a> </li>
</ul>

<h1>開発環境</h1>

<p>UWPアプリの開発はWindows 10と<a title="Visual Studio - Microsoft Developer Tools" href="https://www.visualstudio.com/ja-jp/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Visual Studio 2015</a>もしくは、<a title="Apache Cordova" href="https://cordova.apache.org/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Apache Cordova</a>を使用して行うことができます。</p>

<h2>Visual Studio 2015とApache Cordovaの使い分け</h2>

<p>Visual Studio 2015では、それ単体によるUWPアプリの開発はもちろん、<a title="Visual Studio Tools for Apache Cordova" href="https://www.visualstudio.com/ja-jp/features/cordova-vs.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio Tools for Apache Cordova</strong></a> を使用してiOS、Android、UWPアプリの開発が行えます。</p>

<p>つまり、Visual Studio 2015ではそれ単体とApache Cordovaのどちらかを使用してUWPアプリを開発することができますが、これは単に機能が重複しているということではなく、以下のように状況や目的に合わせて使い分けるためにあります。</p>

<div style="width: 600px;margin: 0px auto">
  <table cellspacing="0" cellpadding="2" width="600" border="1">
    <tbody>
      <tr>
        <td style="text-align: center;background-color: lightskyblue" valign="middle" width="200">開発環境</td>
        <td style="text-align: center;background-color: lightskyblue" valign="middle">用途</td>
      </tr>
      <tr>
        <td valign="middle" width="200">Visual Studio 単体</td>
        <td valign="middle">特殊デバイス向けの開発など、UWP固有の機能を使用した実装を行う場合</td>
      </tr>
      <tr>
        <td valign="middle" width="200">Apache Cordova</td>
        <td valign="middle">共通のソースで、UWP以外のiOSやAndroidにもアプリを提供する場合</td>
      </tr>
    </tbody>
  </table>
</div>

<p>なお、Visual Studio 2015は有償製品ですが、非営利目的やオープンソースソフトウェアの開発であれば、無償の<strong> </strong><a title="Visual Studio Community - Visual Studio" href="https://www.microsoft.com/ja-jp/dev/products/community.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio Community</strong></a><strong>　</strong>を使用することができます。</p>

<p>Visual Studio Communityは、機能的にはVisual Studio Professionalと同等であり、クロスプラットフォーム開発をサポートしています。</p>

<h1>開発できるアプリの形式</h1>

<p>HTML、CSS + JavaScriptで開発できるUWPアプリの形式は、大まかにUI部分をクライアントサイドにインストールするパッケージ型と、ネットワークにホストされているコンテンツをラップしたホスト型の2つのタイプに大別されます。</p>

<div style="width: 500px;margin: 0px auto">
  <table cellspacing="0" cellpadding="2" width="500" border="1">
    <tbody>
      <tr>
        <td style="text-align: center;background-color: lightskyblue" valign="middle" width="150">アプリの型式</td>
        <td style="text-align: center;background-color: lightskyblue" valign="middle">状態</td>
      </tr>
      <tr>
        <td valign="middle" width="150">パッケージ型</td>
        <td valign="middle">UI部分をクライアントサイドにインストールするもの
          <br>一部 WebViewコントロールで覆ったものもプロジェクトテンプレート上はこれにあたる</td>
      </tr>
      <tr>
        <td valign="middle" width="150">ホスト型</td>
        <td valign="middle">ネットワークにホストされている
          <br>Webコンテンツをラップしたもの</td>
      </tr>
    </tbody>
  </table>
</div>

<p>一部をWebViewコントロールで覆ったものもVisual Studioのプロジェクトテンプレート上はパッケージ型に含まれます。</p>

<div style="width: 500px;margin: 0px auto">
  <a href="https://html5experts.jp/wp-content/uploads/2016/08/image9.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb9.png"
      width="500" height="331"></a>
</div>

<p>パッケージ型、ホスト型アプリにはそれぞれ特徴とメリットがあります。</p>

<p>パッケージ型アプリは、動作に必要なリソースをクライアントサイドにインストールできるので、アプリの作りによっては、動作にサーバーサイドのリソースを必要としない完全にオフラインのアプリを作ることも可能です。</p>

<p>ホスト型のアプリの場合は、ネットワーク上に公開されているコンテンツを表示しているので、画面や機能を変更する際でも再インストールの必要はなく、常に最新の情報を提供することができます。また、Webサイト向けのコンテンツの開発と作業が一元化できます。
  <br>ホスト型のアプリはその性質上オンラインでの使用が大前提となりますが <a href="https://developers.google.com/web/progressive-web-apps/" target="_brank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Progressive Web Apps</strong> </a>の実装が可能になればこういった制限も大幅に緩和され、パッケージ型よりもホスト型が選択されるケースが増えることでしょう。</p>

<div style="width: 300px;margin: 0px auto">
  <a href="https://html5experts.jp/wp-content/uploads/2016/08/image10.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb10.png"
      width="400" height="302"></a>
</div>

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

<p>パッケージ型のアプリはもちろん、ホスト型のアプリも、適切なセキュリティ設定を行うことにより、Windowsランタイム API にアクセスできます。</p>

<p>たとえば、以下の記事では、Webサイトに公開されているページに記述されているJavaScirptからNFCデバイスにアクセスする方法について紹介しています。</p>

<ul>
  <li><a title="UWPのHosted WebアプリからのNFCデバイスへのアクセス" href="https://blogs.msdn.microsoft.com/osamum/2016/06/02/uwp-%e3%81%ae-hosted-web-%e3%82%a2%e3%83%97%e3%83%aa%e3%81%8b%e3%82%89%e3%81%ae-nfc-デバイス%e3%81%b8%e3%81%ae%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>UWPのHosted WebアプリからのNFCデバイスへのアクセス</strong></a></li>
</ul>

<h1>開発方法</h1>

<p>Visual Studio 2015に用意されたプロジェクトテンプレートを使用してプロジェクトを作成し、コーディングしていきます。</p>

<p>HTML、CSS + JavaScriptで開発するUWPアプリに用意されているプロジェクトテンプレートの種類は以下のとおりです。(2016年9月現在)</p>

<div style="width: 600px;margin: 0px auto">
  <table cellspacing="0" cellpadding="2" width="600" border="1">
    <tbody>
      <tr>
        <td style="text-align: center;background-color: lightskyblue" valign="middle" width="230">プロジェクトテンプレートの種類</td>
        <td style="text-align: center;background-color: lightskyblue" valign="middle">説明</td>
      </tr>
      <tr>
        <td valign="middle" width="230">空白のアプリ</td>
        <td valign="middle">事前定義されたコントロールやレイアウトのないユニバーサルWindowsアプリのためのプロジェクト。コンテンツセキュリティポリシー(CSP)を適用します。すべてのユニバーサルWindows APIに直接アクセスします。</td>
      </tr>
      <tr>
        <td valign="middle" width="230">WinJSアプリ</td>
        <td valign="middle">WinJS を使用しているユニバーサルWindowsアプリのプロジェクトです。すべてのユニバーサルWindows APIに直接アクセスできます。</td>
      </tr>
      <tr>
        <td valign="middle" width="230">ホストされるWebアプリ</td>
        <td valign="middle">リモートの開始ページを含むユニバーサルWindowsアプリのプロジェクトです。すべてのユニバーサル Windows APIにアクセスするには、URLをアプリケーション コンテンツURI規則に追加する必要があります。</td>
      </tr>
      <tr>
        <td valign="middle" width="230">空のアプリ-Webコンテキスト</td>
        <td valign="middle">ローカルコンテンツをWebからのものとして処理します。既定のアプリケーションコンテンツポリシー(CSP)はありません。ユニバーサルWindows APIにアクセスするには、URIがアプリケーション コンテンツURI規則で宣言されている必要があります。</td>
      </tr>
    </tbody>
  </table>
</div>

<p>開発を開始するための具体的な手順について、以下のチュートリアルを参照してください。</p>

<ul>
  <li><a title="Hello, worldアプリを作成する (JS)" href="https://msdn.microsoft.com/windows/uwp/get-started/create-a-hello-world-app-js-universal" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>JavaScript とHTMLのチュートリアル</strong></a>
    <li><a title="Hello, worldアプリを作成する (XAML)" href="https://msdn.microsoft.com/windows/uwp/get-started/create-a-hello-world-app-xaml-universal" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>C#とXAMLのチュートリアル</strong></a>
      <li><a title="C++ を使った&quot;hello world&quot;アプリの作成(Windows 10)" href="https://msdn.microsoft.com//windows/uwp/get-started/create-a-basic-windows-10-app-in-cpp" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>C++とXAMLのチュートリアル</strong></a></li>
</ul>

<h1>配布方法</h1>

<p>UWPアプリの公開は、一般的にはWindowsストアを介して行われます。</p>

<div style="width: 200px;margin: 0px auto">
  <a href="https://html5experts.jp/wp-content/uploads/2016/09/image2.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/09/image_thumb2.png"
      width="200"></a>
</div>

<p><br /></p>

<p>Windowsストアにアプリを公開するには、Windowsデベロッパーセンターのダッシュボードから、<a title="UWPアプリのパッケージ化" href="https://msdn.microsoft.com/ja-jp/windows/uwp/packaging/packaging-uwp-apps" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">appx形式にパッケージングした</a>アプリを提出します。Windowsストア側で安全性を含め様々な審査が実施され、合格すると公開されます。</p>

<p>UWPアプリをWindowsストアに公開するまでの、開発者アカウントの作成からパッケージの提出、支払いの受け取り (販売した場合) までの具体的な方法については以下のドキュメントを参照してください。</p>

<ul>
  <li><a title="Windowsアプリの公開 | MSDN" href="https://msdn.microsoft.com/ja-jp/windows/uwp/publish/index" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Windowsアプリの公開</strong></a></li>
</ul>

<p>会社組織のみの利用を想定した場合など、Windowsストアで公開を希望しない場合にはサイドローディングという方法を使用して、管理化にあるデバイスにUWPアプリを直接インストールすることができます。</p>

<p>サイドローディングの具体的な方法については以下のドキュメントを参照してください。</p>

<ul>
  <li><a title="DISMを使ったアプリのサイドローディング" href="https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn938326(v=vs.85).aspx#UnderstandingConcepts" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>DISM を使ったアプリのサイドローディング</strong></a></li>
</ul>

<h1>収益モデル</h1>

<p>Windowsストアでは提出したアプリを販売することができます。また、アプリ内の課金も可能です。開発者Windowsストアが用意するさまざまな仕組を利用して収益を上げることができます。</p>

<p>現在Windowsストアで収益を上げるには、以下の3つの方法があります。</p>

<ol>
  <li><strong>アプリそのものの販売</strong>
    <li><strong>アプリ内課金(In-App purchase : IAP)</strong>
      <li><strong>アプリ内広告</strong></li>
</ol>

<p>これら収益に関する詳しい内容は、以下のドキュメントを参照してください。</p>

<ul>
  <li><a title="アプリの価格と使用可能状況の設定" href="https://msdn.microsoft.com/ja-jp/windows/uwp/publish/set-app-pricing-and-availability" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>アプリの価格と使用可能状況の設定</strong></a>
    <li><a title="IAPの申請" href="https://msdn.microsoft.com/ja-jp/windows/uwp/publish/iap-submissions" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>IAPの申請</strong></a>
      <li><a title="広告による収益獲得" href="https://msdn.microsoft.com/ja-jp/windows/uwp/publish/monetize-with-ads" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>広告による収益獲得</strong></a></li>
</ul>

<h1>まとめ</h1>

<p>この記事ではWindows 10から採用されたユニバーサルWindowsプラットフォーム用のアプリ(UWPアプリ) について紹介しました。</p>

<p>UWPアプリは Window 10デバイスファミリーに対し横断的にアプリを開発できます。そのためPC、スマートフォンはもちろん、Web開発者からは技術的に遠いIoTデバイス向けのアプリも使い慣れた HTML,CSS + JavaScriptで開発することができます。</p>

<p>Continuumにも対応しているため、対応スマートフォンをテレビやディスプレイに接続した際にユーザーにデスクトップエクスペリエンスを提供することもできます。</p>

<div style="width: 500px;margin: 0px auto">
  <a href="https://html5experts.jp/wp-content/uploads/2016/09/image3.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2016/09/image_thumb3.png"
      width="500" height="250"></a>
</div>

<p>Webブラウザー上で動作するアプリはもちろん、他のハイブリット アプリ用フレームワーク向けのコンテンツでも、HTML、CSS + JavaScriptを使用して作られているのであれば、特別なことをしていない限りはUWPアプリへの移植はそれほど難しくはありません。</p>

<p>新規での開発はもちろん、既存のアプリの新たな市場獲得のための移植先としても検討してもいいかもしれません。</p>

<p>UWP開発についてのより詳しい情報は以下をぜひご覧ください。</p>

<ul>
  <li><a title="ユニバーサルWindowsプラットフォーム (UWP) 向けアプリの開発" href="https://msdn.microsoft.com/ja-jp/library/dn975273.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>ユニバーサル Windowsプラットフォーム(UWP)向けアプリの開発</strong></a></li>
  <li><a title="ユニバーサルWindowsアプリの開発 - Windowsアプリの開発" href="https://developer.microsoft.com/ja-jp/windows/develop" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>ユニバーサル Windowsアプリの開発 &#8211; Windowsアプリの開発</strong></a></li>
  <li><a title="ユニバーサルWindowsプラットフォーム アプリ(UWP)のデザイン - Windowsアプリ開発" href="https://developer.microsoft.com/ja-jp/windows/design" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>ユニバーサルWindows プラットフォームアプリ(UWP)のデザイン &#8211; Windowsアプリ開発</strong></a></li>
</ul>
]]></content:encoded>
		
		<series:name><![CDATA[Web技術でアプリ開発2016]]></series:name>
	</item>
		<item>
		<title>Microsoft EdgeのUI機能が強化！ーWindows 10 Anniversary Updateにおける新機能一挙解説</title>
		<link>/osamum_ms/20244/</link>
		<comments>/osamum_ms/20244/#respond</comments>
		<pubDate>Wed, 03 Aug 2016 01:09:34 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Microsoft Edge]]></category>
		<category><![CDATA[Windows 10]]></category>
		<category><![CDATA[extension]]></category>

		<guid isPermaLink="false">/?p=20244</guid>
		<description><![CDATA[Windows 10 が公開されてちょうど一年、Windows 10 の無償アップグレード期間が終了したのと入れ替わるように本日 (2016/8/3 日本時間) Windows 10 Anniversary Update...]]></description>
				<content:encoded><![CDATA[<p>Windows 10 が公開されてちょうど一年、Windows 10 の無償アップグレード期間が終了したのと入れ替わるように本日 (2016/8/3 日本時間) Windows 10 Anniversary Update が公開されました。</p>

<p>この Windows 10 Anniversary Update では、Windows 10 が発表された際の様々なビジョンのいくつかが実装され、さらにその当時は想像だにできなかった&nbsp; <a title="Windows Subsystem for Linux Overview" href="https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows Subsystem for Linux</a> (WSL) といったようなまったく新しい機能も搭載されています。</p>

<p>Windows 10 から搭載された新しい Web ブラウザーである Edge にも、当初の計画にあった新しい拡張 (エクステンション)モデルの実装や、Windows フィードバック、<a title="Microsoft Edge Developer　&ndash; Welcome to the Windows developer feedback site!" href="https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Developer FeedBack</a> (旧 Edge Suggestion Box) に寄せられたフィードバックや提案をもとにした新しい機能が実装されています。</p>

<p>今回の記事では Windows 10 Anniversary Update の新機能、とくにユーザーが直接対話するデスクトップ UI の新機能と、新しく追加された Edge 関連のグループポリシーの設定について紹介します。</p>

<h1>Microsoft Edge のデスクトップ UI 機能の強化</h1>

<p>Windows 10 がリリースされてからこれまで、Edge にもたゆまず機能強化が行われてきましたが、その内容はパフォーマンスの向上であったり、サポートする API の数を増やすであるとか、どちらかというと開発者向けのものが多かった印象があります。</p>

<p>これら機能は UI を持たないため、開発者以外の多くのユーザーは Edge の機能向上の進捗を肌感として感じれなかったかもしれません。</p>

<p>しかし、Windows 10 Anniversary Update での Edge では、誰しもがアクセス可能なデスクトップ UI に複数の新機能を搭載しています。</p>

<p>この機能は、おおまかに分類すると以下の 4 つに別けられます。</p>

<ol> <li><a style="font-weight: bold" href="#h_nav" data-wpel-link="internal">ナビゲーション</a>  <li><a style="font-weight: bold" href="#h_fov" data-wpel-link="internal">お気に入り</a>  <li><a style="font-weight: bold" href="#h_dl" data-wpel-link="internal">ダウンロード</a>  <li><a style="font-weight: bold" href="#h_context" data-wpel-link="internal">コンテキストメニュー</a></li></ol>

<p>以降は、上記 4 つの項目について、具体的にどのどのような機能が追加されたのかを紹介していきます。</p>

<h1 id="h_nav">ナビゲーション</h1>

<p>Web ブラウジングにおける “ナビゲーション” はページを遷移させるための操作や、その動作そのものを指します。</p>

<p>このナビゲーション関連では以下の機能が追加されています。</p>

<h3>右クリックでのナビゲーション履歴表示</h3>

<p>Edge のナビゲーションバーの左側にある 戻るボタン/進むボタン上で、マウスの右ボタンをクリックすることで、それまでの履歴と現在の位置(履歴内のどこをブラウズしているか)が表示され、クリックすることでそのページに遷移できるようになりました。</p>

<p>従来の 戻る/進む ボタンでは、ブラウザーを起動してからの履歴に対し、ひとつずつしか前後に遷移できませんでしたが、この機能を使用すると履歴の任意の位置に直接移動できます。</p>

<div style="width: 500px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/context_history.png" data-wpel-link="internal"><img title="context_history" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="context_history" src="/wp-content/uploads/2016/08/context_history_thumb.png" width="500"></a></div>

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

<h3>貼り付けて移動/検索</h3>

<p>クリップボードにコピーした URL のページを Edge で表示させる場合、ナビゲーションバーに一度 URL を貼り付けてからキーボードの [ Enter] キーを押下する必要がありました。</p>

<p>また同様に、クリップボードにコピーしたキーワードで検索を行う場合には、 ナビゲーションバーに一度 キーワードを貼り付けてからキーボードの [ Enter] キーを押下する必要がありました。</p>

<p>Windows 10 Anniversary Update からの Edge では、ナビゲーションバー上でマウスの右ボタンをクリックした際に表示されるコンテキストメニューに [貼り付けて移動] もしくは [貼り付けて検索] というメニューが追加されており、このメニューを選択することで [Enter] キーを押下しなくてもクリップボードにある URL への移動、あるいはクリップボードにあるキーワードで検索を行うことができます。なお、「移動」か「検索」かは、クリップボードの内容により自動的に判断されます。</p>

<div style="width: 350px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/paste_and_go.png" data-wpel-link="internal"><img title="paste_and_go" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="paste_and_go" src="/wp-content/uploads/2016/08/paste_and_go_thumb.png" width="350"></a>  <div style="text-align: center">(クリップボードの中身が URL の場合)</div></div>

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

<div style="width: 350px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/paste_and_find.png" data-wpel-link="internal"><img title="paste_and_find" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="paste_and_find" src="/wp-content/uploads/2016/08/paste_and_find_thumb.png" width="350"></a>  <div style="text-align: center">(クリップボードの中身が URL ではない場合)</div></div>

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

<h3>スワイプによるナビゲーション</h3>

<p>スワイプによるナビゲーションに対応しました。</p>

<p>Windows Phone や タッチ対応のモニタの PC で Edge を使用する場合、画面を左/右にスワイプすることで一度遷移した URL について遷移することができます。</p>

<p>左にスワイプするとひとつ前に戻り、右にスワイプするとひとつ進みます。</p>

<h1 id="h_fov">お気に入り</h1>

<p>Edge において「お気に入り」 (favorite) はユーザーが任意の URL を Web ブラウザーに登録しておく機能です。</p>

<p>お気に入り関連では以下の機能が追加されています。</p>

<h3>ピン留め</h3>

<p>ピン留めは Internet Explorer 8 からサポートされた機能で、当時はピン留め対応した Web サイトのショートカット アイコンとナビゲーションメニューを Windows のタスクバーに登録することができました。</p>

<p>Windows 10 Anniversary Update で提供される Edge には、ショートカットアイコンの登録場所や提供される機能は異なりますが、ピン留め機能が復活しています。</p>

<p>また、Web サイト側での特別な設定は不要となっています。</p>

<p>Edge のピン留め機能を使用するには、任意のページを表示したページのタブの上で右クリックし、表示されたコンテキストメニューから [ピン留めする] メニューを選択します。</p>

<div style="width: 200px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/Pinned-tab.png" data-wpel-link="internal"><img title="Pinned tab" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="Pinned tab" src="/wp-content/uploads/2016/08/Pinned-tab_thumb.png" width="200"></a> </div>

<p>これによりタブの左端にページがピン留めされ、Edge が起動されると同時にページがロードされるようになります。</p>

<div style="width: 200px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/image.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb.png" width="200"></a> </div>

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

<h3>[お気に入り] メニューのツリー表示と並べ替え機能</h3>

<p>これまで Edge の [お気に入り] メニューでは、同一階層にあるリンクのみが一覧で表示されていましたが、Windows 10 Anniversary Update で提供される Edge ではツリー表示されるようになりました。</p>

<div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/favorit_tree.png" data-wpel-link="internal"><img title="favorit_tree" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="favorit_tree" src="/wp-content/uploads/2016/08/favorit_tree_thumb.png" width="250" height="387"></a> </div>

<p>また、名前で並べ替えも出来るようになっています。</p>

<div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/name_sort.png" data-wpel-link="internal"><img title="name_sort" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="name_sort" src="/wp-content/uploads/2016/08/name_sort_thumb.png" width="300" height="264"></a> </div>

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

<h3>[お気に入り] のインポート元の表示</h3>

<p>Edge では他の Web ブラウザーから [お気に入り] をインポートできますが、インポート元の Web ブラウザーの名前がついたフォルダが作成され、どの Web ブラウザーからインポートされたのかわかるようになりました。</p>

<div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/Inport.png" data-wpel-link="internal"><img title="Inport" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="Inport" src="/wp-content/uploads/2016/08/Inport_thumb.png" width="250" height="84"></a> </div>

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

<h3>お気に入りバーのメニュー追加</h3>

<p>お気に入りバー上にショートカットの表示で、アイコンだけを表示できる設定が追加されました。</p>

<div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/favorite_setting.png" data-wpel-link="internal"><img title="favorite_setting" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="favorite_setting" src="/wp-content/uploads/2016/08/favorite_setting_thumb.png" width="250"></a></div>

<p><br></p>

<p>また、これまでお気に入りバーにはコンテキストメニューは設定されていませんでしたが、今回のアップデートで [新しいフォルダの作成] と [アイコンのみ表示する] メニューが追加されました。</p>

<div style="width: 600px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/FavoritesBar.png" data-wpel-link="internal"><img title="FavoritesBar" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="FavoritesBar" src="/wp-content/uploads/2016/08/FavoritesBar_thumb.png" width="600" height="98"></a> </div>

<h1 id="h_dl">ダウンロード</h1>

<p>Edge のダウンロード機能については、保存場所や保存のさいのアクションについて、以下のような機能が追加されています。</p>

<h3>保存先フォルダの指定</h3>

<p>これまでの Edge では、既定のダウンロード先のフォルダは %user%\ダウンロード となっており、これを変更することは出来ませんでしたが、今回のアップデートでは [詳細設定] メニューからこれを変更できるようになりました。</p>

<div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/image1.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb1.png" width="300" height="526"></a> </div>

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

<h3>ダウンロード先の指定</h3>

<p>これまで、Edge ではファイルをダウンロードする際に保存先の指定を任意で行うことはできませんでしたが、今回のアップデートでは、ダウンロード時に表示されるダイアログボックスに [名前を付けて保存] ボタンが追加され、保存先の指定や、保存する際のファイル名の指定ができるようになりました。</p>

<div style="width: 600px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/dl_dialog.png" data-wpel-link="internal"><img title="dl_dialog" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="dl_dialog" src="/wp-content/uploads/2016/08/dl_dialog_thumb.png" width="600"></a> </div>

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

<h3>ダウンロード中に Edge 終了の際の警告</h3>

<p>ファイルをダウンロード中に Edge をクローズ場合、警告メッセージが表示されるようになりました。</p>

<h1>コンテキストメニューへの機能追加と変更</h1>

<p>Web ページを表示する部分で、右クリックした際に表示されるコンテキストメニューにも機能が追加されています。</p>

<h3>Cortana との連携</h3>

<p>Edge に Cortana との連携機能が実装されました。</p>

<p>文字列、もしくは画像を選択し、マウスの右クリックメニューから [Cortana に質問] を選択すると、選択された内容に関連する情報を判断して検索を行い結果を列挙します。</p>

<div style="width: 150px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/Cortana.png" data-wpel-link="internal"><img title="Cortana" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="Cortana" src="/wp-content/uploads/2016/08/Cortana_thumb.png" width="150"></a></div>

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

<p>たとえば、以下のように画像を問い合わせた場合、Cortana は関連する情報と類似する画像を調査して列挙します。</p>

<div style="width: 500px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/image2.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb2.png" width="500"></a></div>

<p>&nbsp;</p>

<h3>開発者用メニューの表示タイミング</h3>

<p>これまでの Edge では、表示されている Web ページ上での右クリックメニューに [要素の検査] と [ソースの表示] という開発者向けのメニューが、初期状態から表示されるようになっていました。</p>

<p>今回のアップデートでは、初期状態ではこれら開発者向けのメニューは表示されず、F12 開発者ツールが起動されてからはじめて表示されるようになっています。</p>

<p>&nbsp;</p>

<p>ここまで Windows 10 Anniversary Update で追加される Edge の新機能について紹介してきました。</p>

<p>Edge の新機能については、かねてからのロードマップと、ユーザーから寄せられたフィードバックにもとづき実装しています。</p>

<p>しかしながら、期待していた機能が実装されていなかった、ということもあるでしょう。そういった場合には Edge に拡張インストールし、昨日を追加することでご要望を満たすことができるかもしれません。</p>

<h1>拡張 (エクステンション) による Edge の機能強化</h1>

<p>Windows 10 Anniversary Update の Edge では、拡張がサポートされました。</p>

<p>拡張とは、外部で作られたプログラムで、Edge にプラグインすることで Edge の機能を文字どおり拡張します。</p>

<p>Edge の拡張は Windows ストアから入手することができ、すでに Ad ブロックやマウスジェスチャー、翻訳等、さまざまな機能を提供する拡張が用意されています。</p>

<h3>拡張の入手と Edge へのインストール</h3>

<p>拡張の具体的な入手とインストール方法は以下のとおりです。</p>

<ol> <li>Edge のツールバー上の&nbsp; […] アイコンをクリックして [拡張機能] メニューをクリックします。  <div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/image3.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb3.png" width="250"></a> </div><br>&nbsp; <li>[拡張]パネルが表示されるので [ストアから拡張機能を取得する] リンクをクリックします。  <div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/image4.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb4.png" width="250"></a> </div><br>&nbsp; <li>Windows ストアの 「Microsoft Edge の拡張機能」 画面が開くので任意の拡張のアイコンをクリックします。  <div style="width: 500px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/ExtensionList.png" data-wpel-link="internal"><img title="ExtensionList" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="ExtensionList" src="/wp-content/uploads/2016/08/ExtensionList_thumb.png" width="500" height="383"></a> </div><br>&nbsp; <li>選択した拡張の説明画面に遷移するので [無料] 、もしくは金額の書かれた(※有料の拡張の場合) ボタンをクリックします。  <div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/image5.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb5.png" width="250"></a></div></li></ol>

<p>以上の手順で拡張のダウンロードとインストールが行われます。</p>

<h3>拡張の設定とアンインストール</h3>

<p>Edge にインストールした拡張のアンインストールやオプション設定は、Edge の [拡張機能] メニューで行います。</p>

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

<ol> <li>Edge のツールバー上の&nbsp; […] アイコンをクリックして [拡張機能] メニューをクリックします。  <li>[拡張]パネルが表示され、インストール済の拡張のリストが表示されるので、任意の拡張をクリックします。  <li>拡張の詳細設定画面が表示されるので以下から目的の操作を行います。  <ul> <li>拡張を有効、もしくは無効に &#8211;&nbsp; トグルボタンを操作  <li>拡張のオプション設定を行う – [オプション] ボタンをクリック  <li>拡張をアンインストールする – [アンインストール] ボタンをクリック </li></ul> <div style="width: 250px;margin: 0px auto"><a href="https://html5experts.jp/wp-content/uploads/2016/08/image6.png" data-wpel-link="internal"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-top-width: 0px" border="0" alt="image" src="/wp-content/uploads/2016/08/image_thumb6.png" width="250"></a></div></li></ol>

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

<p>Edge への拡張のインストール/アンインストール方法は以上です。</p>

<p>Edge 用の拡張を自分で作成する方法については<a title="ゼロからはじめる Microsoft Edge 用の拡張の作り方" href="https://blogs.msdn.microsoft.com/osamum/2016/07/05/how-to-make-extension-for-msedge/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">以下の記事</a>で紹介していますので、興味のある方はぜひご覧ください。</p>

<ul> <li><a title="ゼロからはじめる Microsoft Edge 用の拡張の作り方" href="https://blogs.msdn.microsoft.com/osamum/2016/07/05/how-to-make-extension-for-msedge/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>ゼロからはじめる Microsoft Edge 用の拡張の作り方</strong></a></li></ul>

<p>&nbsp;</p>

<h1>Windows 10 Anniversary Update で追加される Edge のグループポリシー設定</h1>

<p>Windows 10 Anniversary Update では Edge のグループポリシーで設定できる内容も追加が行われています。</p>

<p>グループポリシーとは、IT 管理者が管理対象の使用者に対してさまざまな設定を一括で行うための機能です。</p>

<p>従来から Edge では、以下の内容について IT 管理者がグループポリシーを用いて Windows ドメイン ユーザーの使用する Edge を管理することができます。</p>

<table cellspacing="0" cellpadding="2" border="1"> <tbody> <tr> <td style="color: white;text-align: center;background-color: navy" valign="top" width="50%">設定</td> <td style="color: white;text-align: center;background-color: navy" valign="top" width="50%">説明</td></tr> <tr> <td valign="top" width="50%">オートフィルを無効にする</td> <td valign="top" width="50%">Edge の使用中にフォームのフィールドにオートフィルで自動入力できるかどうか</td></tr> <tr> <td valign="top" width="50%">開発者ツールを無効にする</td> <td valign="top" width="50%">F12開発者ツールの使用を許可するかどうか</td></tr> <tr> <td valign="top" width="50%">トラッキング拒否ヘッダーの送信を従業員に許可する</td> <td valign="top" width="50%">トラッキング情報が要求される Web サイトに従業員がトラッキング拒否ヘッダーを送信を許可するかどうか</td></tr> <tr> <td valign="top" width="50%">InPrivate ブラウズを無効にする</td> <td valign="top" width="50%">InPrivate ブラウズの使用の有無</td></tr> <tr> <td valign="top" width="50%">パスワードマネージャーを無効にする</td> <td valign="top" width="50%">パスワードマネージャーを使用してパスワードのローカル保存を許可するかどうか</td></tr> <tr> <td valign="top" width="50%">ポップアップブロックを無効にする</td> <td valign="top" width="50%">ポップアップブロック機能を使用可とするかどうか</td></tr> <tr> <td valign="top" width="50%">アドレスバーの検索候補を無効にする</td> <td valign="top" width="50%">アドレスバーに検索候補を表示するかどうか</td></tr> <tr> <td valign="top" width="50%">SmartScreen フィルターを無効にする</td> <td valign="top" width="50%">SmartScreen フィルターを有効にするかどうか</td></tr> <tr> <td valign="top" width="50%">Open a new tab with an empty tab ([新しいタブ]ページでのWebコンテンツの許可)</td> <td valign="top" width="50%">新しいタブを開いたときに表示するページの種類を構成</td></tr> <tr> <td valign="top" width="50%">Cookie を構成する</td> <td valign="top" width="50%">Cookie の扱いを構成</td></tr> <tr> <td valign="top" width="50%">エンタープライズモードサイト一覧を構成する</td> <td valign="top" width="50%">エンタープライズ モードとエンタープライズ モード サイト一覧を使用するかどうかを構成</td></tr> <tr> <td valign="top" width="50%">お気に入りを構成する</td> <td valign="top" width="50%">ユーザーに表示される既定のお気に入りを構成できます</td></tr> <tr> <td valign="top" width="50%">WebRTC による LocalHost IP アドレスの共有をしない</td> <td valign="top" width="50%">WebRTC プロトコルを使用した通話中にユーザーの LocalHost IP アドレスが表示されるかどうかを指定</td></tr> <tr> <td valign="top" width="50%">企業のホームページを構成する</td> <td valign="top" width="50%">ドメインに参加しているデバイス用に企業のホーム ページを構成</td></tr> <tr> <td valign="top" width="50%">SmartScreen フィルター機能の警告の上書きを許可しない</td> <td valign="top" width="50%">有害である可能性のある Web サイトに関する SmartScreen フィルター機能の警告を従業員が上書きできるかどうかを指定</td></tr> <tr> <td valign="top" width="50%">確認されていないファイルに関するSmartScreen フィルター機能の警告の上書きを許可しない</td> <td valign="top" width="50%">確認されていないファイルのダウンロードに関する SmartScreen フィルター機能の警告をユーザーが上書きできるかどうかを指定</td></tr> <tr> <td valign="top" width="50%">すべてのイントラネットサイトを Internet Explorer 11 に送る</td> <td valign="top" width="50%">イントラネット サイトを Internet Explorer 11 で表示するかどうかを指定</td></tr></tbody></table>

<p>&nbsp;</p>

<p>今回のアップデートでは、新たに以下の内容が制御可能となりました。</p>

<table cellspacing="0" cellpadding="2" border="1"> <tbody> <tr> <td style="color: white;text-align: center;background-color: navy" valign="top" width="50%">設定</td> <td style="color: white;text-align: center;background-color: navy" valign="top" width="50%">説明</td></tr> <tr> <td valign="top" width="50%">Microsoft Edge で about:flags ページへのアクセスを禁止する</td> <td valign="top" width="50%">ユーザーが about:flags ページにアクセスできるかどうかを指定</td></tr> <tr> <td valign="top" width="50%">拡張機能の許可</td> <td valign="top" width="50%">ユーザーが拡張機能を読み込めるかどうかを許可</td></tr> <tr> <td valign="top" width="50%">Interner Explorer でサイトを開くときのメッセージ表示</td> <td valign="top" width="50%">Internet Explorer 11 でサイトが開かれたことを示す追加ページを Microsoft Edge で従業員に表示するのかどうかを指定</td></tr></tbody></table>

<ol><!--EndFragment--></ol>

<p>これらグループポリシーの新しい設定を使用することで、IT 管理者は今回のアップデートで追加された Edge の新機能の使用の有無を管理することかできます。</p>

<h1>Microsoft Edge の更新履歴について</h1>

<p>Windows 10 のビルド単位での、より詳しい更新履歴については、以下のページで確認することができます。</p>

<ul> <li><a title="Microsoft Edge changelog" href="https://developer.microsoft.com/en-us/microsoft-edge/platform/changelog/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Microsoft Edge changelog</strong></a></li></ul>

<p>Microsoft Edge がサポートする API については以下をご参照ください。</p>

<ul> <li><a title="Platform status" href="https://developer.microsoft.com/en-us/microsoft-edge/platform/status/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Platform status</strong></a></li></ul>

<h1>まとめ</h1>

<p>これまでの Edge では、Web コンテンツの閲覧中 Internet Explorer 11 と比較して機能が少ないと感じる場面が多々あったかもしれません。しかし、そういった不満は Windows 10 Anniversary Update によってずいぶんと解決されていると思います。</p>

<p>また、それでも足らないと感じる機能については、<a title="Extension for Microsoft Edge" href="https://developer.microsoft.com/en-us/microsoft-edge/extensions/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">拡張を追加</a>することである程度解消できることでしょう。</p>

<p>Edge を使ってみて他の Web ブラウザーを使うようになってしまった人も、Edge をまだ使用したことがない人もぜひこの機会に Edge をお試しくださいませ。</p>
]]></content:encoded>
			<wfw:commentRss>/osamum_ms/20244/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2013 を使った楽ちんCordovaプログラミング</title>
		<link>/osamum_ms/7941/</link>
		<pubDate>Wed, 09 Jul 2014 01:00:14 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Cordova]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[ハイブリッド]]></category>

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

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

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

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

<p><br></p>

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

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

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

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

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

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

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

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

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

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

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

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

<h3>ビルド</h3>

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

  <li>iOS : × </li>

  <li>Windows 8 : 〇</li>

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

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

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



</dt></dl>

<h3>デバッグ</h3>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    </p> </li>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

</a>

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

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

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

<h1>まとめ</h1>

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

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

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

<dl> <dt>&lt;備考&gt;</dt> <dd>今回の記事は以下をHTML5 Experts用に再編集したものです。</dd> <br /> <dd><a title="Visual Studio 2013でAndroid、iOSのアプリを開発するためのアドイン" href="http://blogs.msdn.com/b/osamum/archive/2014/06/16/visual-studio-2013-android-ios.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio 2013でAndroid、iOSのアプリを開発するためのアドイン</strong></a></dd><br />  <dd><a title="Visual Studio 2013 へのMulti-Device Hybrid Appsアドインのインストール" href="http://blogs.msdn.com/b/osamum/archive/2014/06/26/visual-studio-2013-multi-device-hybrid-apps.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio 2013 へのMulti-Device Hybrid Appsアドインのインストール</strong></dd><br />  <dd>
<a title="Muiti-Device Hybrid Appsを使った Android、iOSアプリの開発" href="http://blogs.msdn.com/b/osamum/archive/2014/07/02/muiti-device-hybrid-apps-android-ios.aspx" target="_blank"><strong>Muiti-Device Hybrid Apps を使ったAndroid、iOSアプリの開発</strong></a></dd> <br /> <dd>現在最新のVisual Studio 2013のHTML5関連の開発機能全般に興味をお持ちの方は以下の記事をご参照ください。</dd><br /> <dd><a href="http://blogs.msdn.com/b/osamum/archive/2014/06/12/visual-studio-2013-update-2-html5.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"><strong>Visual Studio 2013 Update 2でのHTML5関連の強化点</strong></a></dd> </dl>
]]></content:encoded>
		
		<series:name><![CDATA[ハイブリッドアプリ開発最前線]]></series:name>
	</item>
		<item>
		<title>HTML5でネイティブアプリを作ろう！「Windowsストアアプリ」開発入門</title>
		<link>/osamum_ms/5940/</link>
		<pubDate>Mon, 07 Apr 2014 02:30:32 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Windows Store Apps]]></category>
		<category><![CDATA[Windows ストア アプリ]]></category>
		<category><![CDATA[Winodws8]]></category>

		<guid isPermaLink="false">/?p=5940</guid>
		<description><![CDATA[これまでのHTMLはオンライン上のドキュメントを記述する目的に設計され、発展してきましたが、HTML5ではそれに加え、アプリケーションのプラットフォームとしての仕様も盛り込まれています。 HTML5のマークアップや AP...]]></description>
				<content:encoded><![CDATA[<p>これまでのHTMLはオンライン上のドキュメントを記述する目的に設計され、発展してきましたが、HTML5ではそれに加え、アプリケーションのプラットフォームとしての仕様も盛り込まれています。</p>

<p>HTML5のマークアップや API、CSS3、SVGなどの関連技術を使用すれば、Webブラウザの独自の拡張機能に頼らずとも、Web標準から外れることなく、高機能なWebアプリケーションを開発することができるようになりました。また、HTML5とその関連技術が提供するさまざまな標準化された仕様は、Webブラウザ内で動作するコンテンツにとどまらず、クロスプラットフォーム開発が必要とされるネイティブアプリの開発でも使用されるようになっています。</p>

<p>こういったクロスプラットフォームのネイティブアプリの開発は、HTML5で記述されたWebページを、ターゲットとなるプラットフォームのネイティブアプリがホストするといった手法で実現されていますが、最近では、アプリのプラットフォーム自身が、HTML5 + JavaScriptによる開発をネイティブでサポートしているというものが増えてきています。</p>

<p>この流れはWindowsも例外ではなく、Windows 8で採用されたタッチデバイスに最適化された新しいUI環境で動作するネイティブアプリは、HTML5+JavaScriptを使用して開発することができます。</p>

<p>この記事ではHTML5で作成できるネイティブアプリとして、Windowsストアアプリについて紹介します。</p>

<h2>Windowsストアアプリ</h2>

<p>Windowsストアアプリは、Windows 8から採用され、かつてMetroと呼ばれていた、タッチデバイスに最適化された新しいUI環境(※)上で動作するアプリです。<br><span style="font-size:10px">(※) Windows 8の新しいUI画面のことを「モダン UI」とする表記をよく見ますが、Microsoftとしては特に正式な名前は付けてはいません。</span></p>

<p>この新しいUI環境はタッチデバイスでの操作に最適化されており、キーボードやマウスがないタブレット型デバイスでも、タッチによる操作ですべての機能が使えるよう設計されています。また、同様にタッチデバイスをサポートしていない従来のPCであっても、マウスとキーボードですべての操作が行えるように作られています。</p>

<p>Windows 8の新しいUI環境は、Windows OSを起動した直後に表示されるスタート画面に採用され、大きな特徴となっています。</p>

<p align="center">
<a href="https://html5experts.jp/wp-content/uploads/2014/04/image.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="385" height="212" title="image" style="margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb.png" border="0"></a><br>(Windows 8の新しいUI画面)&nbsp;&nbsp;&nbsp; <br></p>

<p>また、もうひとつの特徴として、Windows 8は、Intelアーキテクチャで作られた従来のPCのほかに、低電力、低クロックで低電力、低クロックで動作するARMデバイス向けのOSとしても提供されています。Windowsストアアプリの多くは、アーキテクチャの異なるARMデバイス上でもそのまま動作します。</p>

<h2>Windowsストアアプリの特徴</h2>

<p>Windowsストアアプリは、そのプラットフォームであるWindows 8の新しいUI環境の仕様に準じ、タッチデバイス、特にモバイルタブレットからの利用を想定して設計されています。従来のWindowsデスクトップアプリケーションとは異なり、自由にサイズ変更可能なウィンドウや、単一アプリケーションによる複数ウィンドウの使用、モーダル/モーダレスいずれのダイアログボックスもサポートしません。</p>

<p>また、リソースの消費を抑えるためにウィンドウがフォアグラウンド(画面が表示されている)状態でしか動作しないという特徴を持っています。この仕様はスマートフォンやタブレット用のアプリを思い浮かべていただければわかりやすいでしょう。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="330" height="208" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb1.png" border="0"></a>

  <br>(タッチ前提のデザイン)</p>

<h2>アプリの動作環境</h2>

<p>Windows 8には、プログラムの動作する環境 (プラットフォーム)として、従来のデスクトップ環境に加え、Windowsストア アプリを動作させるための環境が用意されています。これら2つの環境は、プラットフォームとして完全に独立しており、OSの根底であるWindowsコア OSサービスの上で並列に動作します。</p>

<p>2つのプラットフォームで動作するプログラムは、お互いにアーキテクチャが異なるため、バイナリ的な互換はありません。デスクトップ用アプリケーション用に作られたdllなどはWindowsストアアプリでは動作せず、同様にWindowsストアアプリ用のコンポーネントもデスクトップアプリケーションから使用することはできません。</p>

<p>この状況は、1つのOSの上に、まったく異なる2つのプラットフォームが存在している、例えば、ひとつのコンピューター上に、MacOSとiOSが共存している感じといえばわかりやすいでしょう。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="390" height="237" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb2.png" border="0"></a><br>(Windowsアプリとデスクトップアプリケーションのプラットフォーム)</p>

<h2>開発言語</h2>

<p>WindowsストアアプリはJavaScriptのほか、C、C++、C#、VBと言った複数の言語で開発することができます。各言語には相互運用性があり、例えば、C++やC#で作成したWindowsストアアプリ用のライブラリを、アプリ内のJavaScriptやその他の異なる開発言語から使用することができます。</p>

<p>また、Windowsストアアプリには.NET FrameworkやWin32 APIは存在しませんが、Windowsストアアプリ用に提供されているWindows ランタイム(WinRT API)には、一般的によく使用される.NET FrameworkやWin32 APIと同名の名前空間、クラス名、同じ名前と引数を持った関数などが用意されています。そのことにより、ソースコードを記述する際には、ランタイムの違いを特に意識することなく、それまでのスキルセットを活かして開発を行うことができます。</p>

<h2>開発環境とツール</h2>

<h3>オペレーティングシステム</h3>

<p>Windowsストアアプリを開発する環境として、最新のWindows 8 OSが必要です。現在の最新のWindows 8 OSは <a title="Windows 8.1" href="http://windows.microsoft.com/ja-JP/windows-8/meet" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Windows 8.1</a>です。ハードウェアは、Windows 8のインテル版が動作するものであればなんでもかまいません。<a title="iOS 開発者向けリソース" href="http://msdn.microsoft.com/library/windows/apps/jj680134.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Macでもかまいません</a>。</p>

<h3>Visual Studio </h3>

<p>Windows 8用のストアアプリを開発するには<a href="http://www.microsoft.com/ja-jp/dev/default.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer"> Microsoft Visual Studio 2013</a>を使用します。<br />Microsoft Visual Studioは、複数の開発製品をまとめた “開発製品スイート”であり、ハードウェアと密接に関係するデバイスドライバーからWebアプリケーションまでWindows OS上で動作するあらゆるアプリケーションを開発することができます。プラットフォームもPC用にとどまらず、組み込み(<a href="http://www.microsoft.com/windowsembedded/ja-jp/evaluate/what-is-windows-embedded.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Windows Embedded</a>)、電話(<a href="https://dev.windowsphone.com/en-us/downloadsdk" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Windows Phone</a>)用のOS上で動作するアプリケーションを開発することができます。</p>

<p>Visual Studio 2013は用途に合わせ複数のエディションが用意されていますが、いずれのエディションでもWindowsストアアプリの開発が可能です。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image3.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="380" height="255" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb3.png" border="0"></a><br>(Visual Studio 2013 の画面)</p>

<p>&lt;参考&gt;<strong>エディションとの比較</strong> 

  <br><a href="http://www.microsoft.com/visualstudio/jpn/products/compare" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://www.microsoft.com/visualstudio/jpn/products/compare</a></p>

<p>また、Visual Studio 2013からWindowsストアアプリの開発に必要な機能のみ抽出した無償の<a title="Visual Studio Express 2013 for Windows" href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_EAC=300135396" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Visual Studio Express 2013 for Windows</a>を使用することもできます。<br />Visual Studio 2013の基本的な使い方については、以下のドキュメントをご参照ください</p>

<p><strong>Visual Studioでのアプリケーション開発 
    <br></strong><a href="http://msdn.microsoft.com/ja-jp/library/vstudio/h8w79z10.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://msdn.microsoft.com/ja-jp/library/vstudio/h8w79z10.aspx</a><br></p>

<h3>Blend for Visual Studio</h3>

<p>WindowsストアアプリのUIをグラフィカルに開発するためのツールです。<br />特にWindowsストアアプリのJavaScriptテンプレートは、Visual Studio 2013ではUIのデザイン画面を表示する機能を搭載していないので、GUIでUIのデザインを行いたい場合はBlend for Visual Studioを使用します。</p>

<p>Blend for Visual Studioは単体でインストールする必要はなく、Visual Studio 2013をインストールすると一緒にインストールされます。これは無償のExpressエディションでも同様です。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image4.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="380" height="238" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb4.png" border="0"></a><br>(Blend for Visual Studio)</p>

<p>Blend for Visual Studioについての使い方などの関する詳しい情報については、以下のドキュメントをご参照ください。</p>

<p><strong>Blend for Visual Studio 
    <br></strong><a href="http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/jj129478.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/jj129478.aspx</a></p>

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

<p>Windows 8タブレットマシンの動作をシミュレートするシミュレーターです。タッチ、ズームイン/ズームアウト、画面の回転、解像度の変更、GPSなどの機能をシミュレートできるので、タッチデバイスやタブレットマシンや、解像度の異なる複数のデバイスを持っていなくてもある程度のテストや動作検証を行えるようになっています。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image5.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="380" height="242" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb5.png" border="0"></a><br>(シミュレーター)</p>

<p>シミュレーターは、それ自体を単体でインストールする必要はなく、Visual Studio 2013をインストールすると一緒にインストールされます。</p>

<p>起動は、Visual Studio 2013のツールバーから行います。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image6.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="212" height="129" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb6.png" border="0"></a><br>(Visual Studio 2013 のシミュレーターの起動メニュー)</p>

<p>尚、シミュレーターの使い方についてのより詳しい情報は、以下のドキュメントをご参照ください。</p>

<p><strong>シミュレーターでのアプリの実行</strong> 

  <br><a href="http://msdn.microsoft.com/library/windows/apps/hh441475.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://msdn.microsoft.com/library/windows/apps/hh441475.aspx</a></p>

<h2>HTML+JavaScriptで動作するWindowsストアアプリの仕組み</h2>

<p>Windowsストアアプリは、HTML+JavaScriptを使用して開発できるネイティブアプリです。ネイティブアプリなのでWebブラウザ内で動作するWebコンテンツよりも強い権限で動作し、OSやハードウェアのさまざまな機能を利用し高機能なアプリを開発することができますが、開発方法はWebコンテンツを制作するのとそれほど大きく変わりません。JavaScritpを使用してWindowsストアアプリを作成する際に使用されるテクノロジーは以下の3つです。</p>

<ol>
  <li><strong>HTML5</strong></li>

  <li><strong>CSS3</strong></li>

  <li><strong>JavaScript</strong></li>
</ol>

<p>実際に使用されるライブラリは、以下の3つです。</p>

<ol>
  <li><strong>Trident</strong><br>Internet Explorerと共通の描画エンジンです。 

    <br>CSSやHTMLのマークアップの解析を行い、画面を描画し、JavaScriptにDOM(Document Object Model)を提供します。 

    <br>HTML5とCSS3の描画とAPIをサポートしています。 

    <br>&nbsp;&nbsp;&nbsp;</li>

  <li><strong>WinRT(Windows Runtime)</strong>&nbsp;&nbsp; <br>JavaScriptからWindows OSの機能を使用するためのライブラリです。 

    <br> 通称、WinRTと呼ばれ、このライブラリの提供するクラスはWindowsというネームスペースから始まります。 

    <br>このライブラリを使用することにより、Windows OSが管理している、ファイル、フォルダ、リムーバブルディスク、Webカムのようなハードウェア、様々なセンサーデバイスを使用することができます。 

    <br>&nbsp; </li>

  <li><strong>WinJS (Windows Library for JavaScript)</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>通称、WinJSと呼ばれ、WinRTがJavaScriptに Windows OSのリソースを提供するのに対し、WinJSは、Windowsストアアプリのリソース、例えば、リッチなコントロール、データバインドの仕組み、Promiseモデルの非同期の仕組みなど、 Windowsストアアプリが既定でもっている機能を利用するためのライブラリです。 

    <br>このライブラリの提供するクラスは WinJSから始まります。&nbsp;<br></li>
</ol>

<p>上記のように、Windowsストアアプリでは Web標準技術 (Trident)、Windows OSの機能 (WinRT)、Windowsストアアプリケーションの基本的な機能 (WinJS)を組み合わせて開発を行っていきます。<br />そして、これらを WWWAHost.exeプロセスがホストします。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image7.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="420" height="242" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb7.png" border="0"></a><br>(HTML + JvaScript&nbsp; Windowsストアアプリの構成)</p>

<p>WWWAHostは、Internet Explorerのスーパーセットであり、Internet Explorerより多くの機能を持ち、より強い権限で動作します。そのため Internet Explorer 11で動作するWebコンテンツであれば、一部セキュリティ的な制限はあるものの、ほぼそのまま Windowsストア アプリに移植することができます。<br></p>

<h2>HTML+JavaScriptで作る！<br>初めてのWindowsストアアプリ</h2>

<p>Windowsストアアプリの開発は、Windows 8.xとVisual Studioがインストールされたコンピュータがあれば誰でも簡単に始めることができます。</p>

<p>ここでは画面に「Hello World.」と表示する簡単なWindowsストアアプリの作成手順を紹介します。 
  <br>尚、環境は現在最新のWindows 8.1 + Visual Studio 2013を使用します。</p>

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

<ol>
  <li>Visual Studio 2013を起動し、メニュー [ファイル] – [新規作成] – [プロジェクト]を選択します。<br></li>

  <li>[新しい プロジェクト]ダイアログボックスが表示されるので、ダイアログボックス内・左の[テンプレート]ツリービューで [JavaScript]–[Wndows ストア]を選択し、中央のテンプレートリストで [空のアプリケーション]テンプレートを選択して[OK]ボタンをクリックします。 
    <p align="center">
<a href="https://html5experts.jp/wp-content/uploads/2014/04/image8.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="350" height="242" title="image" style="margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb8.png" border="0"></a>

</p>
<p align="center">Visual StudioのIDE内にアプリのひな形が展開されます。 

<br><a href="https://html5experts.jp/wp-content/uploads/2014/04/image9.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="330" height="223" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb9.png" border="0"></a>

</p></li>

  <li>画面左の[ソリューションエクスプローラー]のツリービューに表示されている、default.htmlをダブルクリックして開きます。 

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image10.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="225" height="240" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb10.png" border="0"></a>

<br>Visual Studio IDE内のテキストエディタには、default.htmlのソースが表示されます。

 </p></li>

  
<li>default.htmlのソースのbodyタグ内の以下の部分を
    <p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image11.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="291" height="57" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb11.png" border="0"></a>

</p>以下のように書き換えます

    
<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image12.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="255" height="68" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb12.png" border="0"></a>

</p></li>


<li>Visual Studioのメニュー[デバッグ]–[デバッグ開始]をクリックするか、キーボードの[F5]キーを押下します。
アプリが全画面で実行され、「Hello World.」の文字が表示されます。


<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/04/image13.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="302" height="170" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/04/image_thumb13.png" border="0"></a></p></li>
</ol>

<p>これで最も簡単なWindowsストアアプリの完成です。デバッグを停止するには、キーボードの[Alt]+[Tab]キーで画面をVisual Studio に切り替え、メニュー[デバッグ]–[デバッグの停止]を選択します。</p>

<p>尚、より本格的なWidowsストアアプリの開発方法につきましては、以下にまとめた記事を書いていますので、ぜひご覧ください。</p>

<p>『HTML5で作るWindows 8アプリ』まとめリンク
  <br><a href="http://blogs.msdn.com/b/osamum/archive/2013/09/27/html5-windows-8-2.aspx" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://blogs.msdn.com/b/osamum/archive/2013/09/27/html5-windows-8-2.aspx</a>

  <br></p>

<h2>まとめ</h2>

<p>今回はHTML5で作れるネイティブアプリとして、Windowsストアアプリを紹介しました。<br />今回は触れませんでしたが、Windowsストアアプリはネイティブアプリとして、Webアプリケーションからは使用することのできない、ファイルシステムや各種センサーといったハードウェアリソースも利用することができます。</p>

<p>また、Windows 8.1 からは、任意のユーザーアカウントに対し、特定のWindowsストアアプリの使用しか許可しないといった設定も可能であるため、業務に特化した専用機のようなものを作ることも可能です。</p>

<p>専用機の開発というと、これまで専用のハードを作成し、組込み用の特殊な技術を覚えて、といったことが必要でしたがWindowsストアアプリであれば今まで培ったWeb制作のスキルの延長線上で制作することが可能です。</p>

<p>この機会にぜひデバイスを含めた新しい価値の創造に挑戦してみてください。</p>
]]></content:encoded>
			</item>
		<item>
		<title>OSの種別を問わず、無償でできる！modern.IE「4つ+1つ」のWebページ検証方法</title>
		<link>/osamum_ms/4401/</link>
		<pubDate>Tue, 14 Jan 2014 01:00:49 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[デザイン]]></category>
		<category><![CDATA[IE11]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[modern.IE]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=4401</guid>
		<description><![CDATA[2013年11月、Windows 8.1と同時にInternet Explorer 11がリリースされました。 新しくメジャーなWebブラウザーがリリースされると、それまでのWebサイトや、あるいはこれからリリースするW...]]></description>
				<content:encoded><![CDATA[<p>2013年11月、Windows 8.1と同時に<a title="http://windows.microsoft.com/ja-jp/internet-explorer/download-ie" href="http://windows.microsoft.com/ja-jp/internet-explorer/download-ie" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Internet Explorer 11</a>がリリースされました。</p>

<p>新しくメジャーなWebブラウザーがリリースされると、それまでのWebサイトや、あるいはこれからリリースするWebサイトについても検証を行う必要が出てきます。しかしながら、Internet Explorerはその性質上、異なるバージョンを単一のWindows上にインストールすることはできません。</p>

<p><a title="modern.IE" href="http://loc.modern.ie/" target="_blank" rel="modern.IEへのリンク follow external noopener noreferrer" data-wpel-link="external">modern.IE</a>では、この問題に対処するためWindowsとMac、Linuxで動作する検証用の仮想マシン、イメージの提供、Webサイトの解析と各メジャー Webブラウザーでの画面ショットの取得、リモートデスクトップサービスなど、Webページを検証する上での様々な機能を提供します。</p>

<p>今回の記事では、この<a title="modern.IE" href="http://modern.ie/" target="_blank" rel="modern.IEへのリンク follow external noopener noreferrer" data-wpel-link="external">modern.IE</a>について紹介します。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2014/01/image.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="398" height="350" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb.png" border="0"></a><br /> (modern.IE のトップ画面)</p>

<h2>modern.IEとは?</h2>

<p>マイクロソフトが提供する Webページを検証するためのWebサイトで、そこで提供される機能は、一部のサードパーティー製のサービスを除き、無償で使用することができます。<br /> modern.IEは、OS&nbsp;の種別を問わず、最新のモダンWebブラウザーから使用することができます。</p>

<h2>modern.IEでできる「4つ+1つ」の検証方法</h2>

<p>modern.IEが提供するWebページを検証するめの機能は以下の4つです。</p>

<ol> <li><a title="Web ページのスキャン" href="#scan" data-wpel-link="internal">Webページのスキャン</a></li> <li><a title="クロスブラウザーの表示テスト" href="#closs" data-wpel-link="internal">クロスブラウザーの表示テスト</a></li> <li><a title="最新のInternet Explorerとの互換性テスト" href="#vtest" data-wpel-link="internal">最新のInternet Explorerとの互換性テスト</a></li> <li><a title="仮想マシンの提供" href="#vmachine" data-wpel-link="internal">仮想マシンの提供</a></li> </ol>

<p>さらには、もう1つ、検証用の仮想環境をリモートデスクトップで提供する<a href="#remote" data-wpel-link="internal">BrowserStack</a>というサードパーティー製のサービスを試用することができます。</p>

<p>ここからは、前述の各機能について、具体的な使用方法を解説していきます。</p>

<h2 id="scan">Webページのスキャン</h2>

<p>指定されたURLのWebページをWeb標準、およびInternet Explorerのバージョン互換の観点からマークアップ、スクリプトをチェックし、問題点を明らかにし修正案を提示します。<br />具体的な使用方法は以下の通りです。</p>

<ol> <li>Web ブラウザーで modern.IE にアクセスします。</li> <li>「一般的なコーディングの問題をスキャンします。こちらにWebページのURLを入力してください。」というキャプションの下に「URL を入力してください」というウォーターマークのあるテキストボックスがあるので、検証の対象となるWebページのURLを入力し、[スキャン]ボタンをクリックします。 <p>

<a href="https://html5experts.jp/wp-content/uploads/2014/01/image1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="310" height="75" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb1.png" border="0"></a></p> </li> <li>指定されたWebページの検証が行われ、完了するとスキャン結果がレポートされます。 

<p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image11.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="439" height="497" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image11_thumb.png" border="0"></a></p> </li> <li>各レポートを示す行の右端にある [詳細を表示]ボタンをクリックすると、検出された問題についての詳しい解説、修正案の概要、より詳しい情報へのリンクが表示されます。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image2.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="455" height="262" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb2.png" border="0"></a></p> </li> </ol>

<p>レポートの内容には「検出内容」、[なぜ重要なのか]、[実装方法]について、詳細なドキュメントへのリンクが表示されるので、これらの内容を参考にWebページを修正していきます。</p>

<p>取得されたレポートは、ダウンロード(pdf 形式)はもちろん、電子メール、Facebook、Twitterで共有することができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image3.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="407" height="131" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb3.png" border="0"></a></p>

<h2 id="closs">クロスブラウザーの表示テスト</h2>

<p>modern.IEでは、検証の対象となるWebページを、異なる複数のOS、異なる複数のWebブラウザーの組み合わせで表示した場合の画面ショットを取得することができます。</p>

<p>なお、これら画面ショットはサーバーサイドで取得されるため、テストを行うクライアント側になにか特別な準備を行う必要はありません。具体的な画面ショットの取得手順は以下のとおりです。</p>

<ol> <li>前述の[<a title="Web ページのスキャン" href="#scan" data-wpel-link="internal">Web ページのスキャン</a>]の手順に従い、検証対象となるWebページをスキャンします。</li> <li>Webページのスキャンが完了し、レポートが表示されたあと、[サイトのブラウザー別、デバイス別のスクリーンショットが撮れます。]タブをクリックし、同タブ内の[Begin scan]をクリックします。 

<p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image4.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="439" height="214" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb4.png" border="0"></a></p> </li> <li>サーバーサイドでの画面ショット生成プロセスが完了すると、タブ内にスクリーンショットが表示されます。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image5.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="423" height="187" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb5.png" border="0"></a></p> </li> </ol>

<p>取得されたスクリーンショットは、ダウンロードはもちろん、電子メール、Facebook、Twitterで共有することができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image6.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="177" height="116" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb6.png" border="0"></a></p>

<p>スクリーンショットは、既定では、プリセットされたOSとWebブラウザーの9つの組み合わせの画面ショットのみ取得できます。</p>

<p>さらに多くのスクリーンショットを取得する場合は、後述するサードパーティー製のサービス<a title="BrowserStack" href="#remote" target="_blank" data-wpel-link="internal">BrowserStack</a>を使用します。</p>

<h2>最新のInternet Explorerとの互換性テスト</h2>

<p>以前のバージョンのInternet Explorerでは、Web標準に準拠しない独自の仕様や機能が多数存在していましたが、そういった独自機能の使用は、Web標準に準拠したInternet Explorer 10以降のIEでは、サポートされないか非推奨となっています。</p>

<p>そのため、古いInternet Explorer用に作成されたWebページを最新のInternet Explorerで表示すると正常に描画されなかったり、スクリプトが正常に動作しない可能性があります。</p>

<p>こういった最新のInternet Explorerと、旧いInternet Explorerの機能の差分を抽出するために以前から<a title="Compat Inspector" href="http://ie.microsoft.com/testdrive/HTML5/CompatInspector/" target="_blank" rel="Compat Inspectorへのリンク follow external noopener noreferrer" data-wpel-link="external">Compat Inspector</a>というツールが用意されていました。<br /> しかしながら、Compat Inspectorを使用するには検証対象となるWebページにjsファイルへの参照を追加する必要があったり、それを避けるためには無償のHTTPデバッガ<a title="Get Fiddler" href="http://fiddler2.com/" target="_blank" rel="fiddler2 へのリンク follow external noopener noreferrer" data-wpel-link="external">Fiddler</a> を使ったハックが必要でした。 (※)</p>

<p><figure></p>

<p>(※)Compat Inspectorについては、HTML5jえんぷら部の川田さんのブログに<a title="Compat Inspector - ソースコードからIE独自機能を機械的に検出しWeb標準へ置き換えさせる方法" href="http://furoshiki.hatenadiary.jp/entry/2014/01/06/030742" target="_blank" rel="ふろしき.js へのリンク follow external noopener noreferrer" data-wpel-link="external">詳細な記事</a>が投稿されていますのでぜひご覧ください。&nbsp;&nbsp; <br />『<a title="ソースコードからIE独自機能を機械的に検出しWeb標準へ置き換えさせる方法" href="http://furoshiki.hatenadiary.jp/entry/2014/01/06/030742" target="_blank" rel="ふろしき.js へのリンク follow external noopener noreferrer" data-wpel-link="external">ソースコードからIE独自機能を機械的に検出しWeb標準へ置き換えさせる方法</a>』- ふろしき.js &#8211; 実用的なWeb技術を発信</p>

<p></figure></p>

<p>modern.IE では、そういった面倒な設定をすることなく Compat Inspectorの機能を使用することができます。</p>

<p>この機能を使用するための具体的な手順は以下の通りです。</p>

<ol> <li>前述の[<a title="Webページのスキャン" href="#scan" target="_blank" rel="項目:Webページのスキャンへのリンク" data-wpel-link="internal">Webページのスキャン</a>]の手順に従い、検証対象となるWebページをスキャンします。</li> <li>Webページのスキャンが完了し、レポートが表示されたあと、[modern IE で現在サポートされないコードを検出します]タブをクリックし、同タブ内の [Begin scan]をクリックします。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image7.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="429" height="184" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb7.png" border="0"></a></p> </li> <li>指定されたWebページの検証が行われ、完了するとスキャン結果がレポートされます。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image8.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="424" height="544" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb8.png" border="0"></a></p> </li> <li>各レポートを示す行の右端にある[詳細を表示]ボタンをクリックすると、検出された問題についての説明と、問題のマークアップ、あるいはコードが使用されているファイル名と位置、より詳しい情報へのリンク(※)が表示されます。 

<p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image9.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="410" height="189" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb9.png" border="0"></a></p> </li> </ol>

<p><figure></p>

<p>(※)[詳細な情報]の中のfeature detectionリンクをクリックすると、検出された問題に関するmsdnライブラリ中のドキュメントが表示されます。このドキュメントは英語ですが、URLのドメイン名の後ろのen-usをja-jpに変えると日本語のドキュメントを表示させることができます。</p>

<p></figure></p>

<p>取得されたレポートは電子メール、Facebook、Twitterで共有することができます。</p>

<p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image10.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="175" height="116" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb10.png" border="0"></a></p>

<h2 id="vmachine">仮想マシンの提供</h2>

<p>modern.IEから仮想マシンのイメージをダウンロードし、Webページの検証に使用することができます。仮想マシンは、Windowsはもちろん、Mac OS、Linux用も用意されており、仮想環境も複数の環境から任意のものを選択できます。(※Linuxは VirtualBoxのみです)<br /> 仮想マシンのイメージの入手方法は以下の通りです。</p>

<ol> <li>modern.IEにアクセスします。</li> <li>ページ内の黒いバーの中の[複数のブラウザーにわたってテストする]をクリックします。</li> <li> 遷移したページの「Mac、Linux、Windows用の仮想マシンをダウンロードします。」の囲みの中の[無料のVMを入手する]をクリックします。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image12.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="453" height="136" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb11.png" border="0"></a></p> </li> <li>OS と仮想環境を選択するドロップダウンリストボックスが表示されるので、指定します。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image13.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="449" height="133" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb12.png" border="0"></a></p> <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image14.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="449" height="180" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb13.png" border="0"></a></p> </li> <li>Windows、Internet Explorer の各バージョンの組み合わせの一覧が表示されるので、検証対象となる組み合わせの仮想マシンのイメージをダウンロードします。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image15.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="480" height="258" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb14.png" border="0"></a></p> 

<p>なお、仮想マシンのイメージは分割されているので、 Part1.exeから始まるrarファイルをすべて同一フォルダにダウンロードし、Part1.exeを実行して仮想イメージを生成してください。</p> 

<p>生成された仮想マシンのイメージの使用方法については、使用する仮想環境のマニュアルを参照してください。</p></li> </ol>

<h3>仮想マシンのイメージの有効期間について</h3>

<p>modern.IEで提供される仮想マシンのイメージは、90日間でライセンスが切れるようになっています。これは仮想マシンのイメージをWebページの検証目的以外で使用できないようにするためのものです。</p>

<p>90日経過してライセンスが切れた場合は、仮想マシンのイメージを再度ダウンロードすれば再度使用することができます。</p>

<p>以前の環境を引き継がせる際には、スナップショットを取得するなど、使用している仮想環境がサポートしている仕組みを使用してください。</p>

<h3>仮想マシンの日本語表示について</h3>

<p>提供されている仮想マシンのイメージは英語環境のものです。日本語環境にするには Language Pack を適用する必要があります。</p>

<p>コントロールパネルの Region and Launguages でダウンロードインストールしてください。</p>

<h2 id="remote">リモートデスクトップでの仮想環境の提供</h2>

<p>サードパーティーBrowserStackの提供するリモートデスクトップサービスを試用した検証環境を3か月間無償で試用することができます。<br /> クラウド上にある仮想デスクトップにWebブラウザーを介してアクセスするので検証環境をローカルに用意する必要がありません。</p>

<p>BrowserStackのサービスには以下の手順でアクセスします。</p>

<ol> <li>Webブラウザーでmodern.IEにアクセスします。</li> <li>ページ下部にある「キャンペーン」バナーの[BrowserStackを試す]をクリックします。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image16.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="480" height="64" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb15.png" border="0"></a></p> </li> <li>「クロス ブラウザー テストが簡単に」と書かれたページに遷移するので、 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image17.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="480" height="196" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb16.png" border="0"></a></p> <p>Internet Explorer以外のWebブラウザーを使用している場合は、使用しているWebブラウザー用のアドオンを入手してセットアップします。</p> <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image18.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="482" height="217" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb17.png" border="0"></a></p> </li> <li>Internet Explorerを使用している場合、または各Webブラウザー用のアドオンのセットアップが完了したら 「http://yoursite.com」とウォーターマークが表示されているテキストボックスに検証の対象となるWebページのURLを入力し、[Test/ on BrowserStack]ボタンをクリックします。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image19.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="388" height="115" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb18.png" border="0"></a></p> </li> <li>BrowserStackのフリートライアル用アカウントの登録ページに遷移するので、必要項目を入力してアカウントを作成しします。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image20.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="488" height="307" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb19.png" border="0"></a></p> </li> <li>作成したアカウントでBrowserStackにサインインし任意のOSとWebブラウザーを選択し、[Start Testing]ボタンをクリックして仮想マシンを起動します。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image21.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="488" height="492" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb20.png" border="0"></a></p> </li> <li>仮想マシンの起動が完了すると、Web ブラウザー内にクラウド上の仮想マシンのデスクトップに、Webブラウザーが起動した状態で表示されるので、Webページのテストを行います。 <p><a href="https://html5experts.jp/wp-content/uploads/2014/01/image22.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img width="482" height="271" title="image" style="border: 0px currentcolor;margin-right: auto;margin-left: auto;float: none" alt="image" src="/wp-content/uploads/2014/01/image_thumb21.png" border="0"></a></p> </li> </ol>

<p>BrowserStackでは、Windows OS以外のOSや、さまざまなWebブラウザーを、ローカルに検証環境を構築することなく検証作業を行うことができます。無償で使用できるのは90日間なので、試用してみて便利であれば、有償契約をご検討ください。</p>

<h2>まとめ</h2>

<p>今回はマイクロソフトが提供しているWebページの検証サイトmodern.IEを紹介しました。</p>

<p>機能が豊富で最初は戸惑うかもしれませんが、まずはWebページのスキャンからぜひお試しください。</p>
]]></content:encoded>
			</item>
		<item>
		<title>マイクロソフト中の人が徹底解説！InternetExplorer 11 F12 開発者ツールの新機能</title>
		<link>/osamum_ms/1928/</link>
		<pubDate>Tue, 03 Sep 2013 22:00:28 +0000</pubDate>
		<dc:creator><![CDATA[物江 修]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ブラウザ]]></category>

		<guid isPermaLink="false">/?p=1928</guid>
		<description><![CDATA[Windows8.1に搭載されるInternet Explorer 11には、より機能強化されたF12開発者ツールが搭載されています。今回の記事ではF12開発者ツールの主要な新機能について紹介します。 Windows 8...]]></description>
				<content:encoded><![CDATA[<p>Windows8.1に搭載されるInternet Explorer 11には、より機能強化されたF12開発者ツールが搭載されています。今回の記事ではF12開発者ツールの主要な新機能について紹介します。
<span id="more-1928"></span></p>

<p>Windows 8のアップデート版である新しいOS Windows 8.1の配布が10月18日から開始されます。</p>

<p>この配布はWindows 8用のアプリ ストアであるWindowsストアを介してダウンロード提供され、Windows 8ユーザーであれば、誰しもが無償でアップグレードすることができます。</p>

<p>Windows 8.1には InternetExplorer(以降、IE) の最新バージョンであるInternetExplorer 11(以降、IE11)が搭載されています。(※1)(※2)</p>

<p>IE11は、よりWeb標準に準拠するとともに、SPDY、MPEG-DASH、WebGLなどの最新の機能もサポートしてします。また開発者ツールも大幅な機能追加がされており、より細かな調査とデバッグができるようになっています。</p>

<p>今回の記事では、このIE11に搭載されているF12開発者ツールの新機能について紹介します。</p>

<p><span style="font-size: 11px">(※1) 正式リリースまで、IE11を使用するには、<a title="Windows 8.1 Preview ダウンロード" href="http://windows.microsoft.com/ja-jp/windows-8/preview-download?ref=msdn" rel="Windows 8.1 Preview ダウンロードへのリンク follow external noopener noreferrer" target="_blank" data-wpel-link="external">Windows 8.1 Preview</a> をインストールする必要があります。<br>　
(※2)Windows 7用にもIE11が提供されます。現在は開発者の検証用として<a title="Internet Explorer 11 Developer Previewのダウンロード" href="http://windows.microsoft.com/ja-jp/internet-explorer/ie-11-worldwide-languages" rel="Internet Explorer 11 Developer Preview のダウンロードページへのリンク follow external noopener noreferrer" target="_blank" data-wpel-link="external">Developer Preview版</a>が公開されています。</span></p>

<h2>F12開発者ツールとは?</h2>

<p>IE11のF12開発者ツールの新機能について紹介する前に、F12開発者ツールについて簡単に紹介しておきましょう。</p>

<p>F12開発者ツールはInternetExplorerに付属の開発者ツールです。FirefoxのFirebugやChromeデベロッパーツールのようなもの、と言えばわかりやすいでしょう。</p>

<p>IE8からのすべてのIEに搭載されており、名前にあるとおりキーボードの[F12]キーを押下することで使用することができます。</p>

<p>以下に参考として IE9(※)のF12開発者ツールの使い方について書いた記事のリンクを掲載しますので、IE11以前のIEをお使いの方、これまでのF12開発者ツールの機能を確認したい方はぜひご覧ください。</p>

<ul>使ってみよう! [F12]IE9開発者ツール  <li><a title="HTMLとJavaScriptのデバッグ編" href="http://blogs.msdn.com/b/osamum/archive/2011/08/04/f12-ie9-html-javascript.aspx" rel="monoe&#039;s blog「HTMLとJavaScript のデバッグ編」へのリンク follow external noopener noreferrer" target="_blank" data-wpel-link="external">HTMLとJavaScript のデバッグ編</a>  <li><a title="さまざまな情報の表示" href="http://blogs.msdn.com/b/osamum/archive/2011/08/09/f12-ie9.aspx" rel="monoe&#039;s blog「さまざまな情報の表示」へのりんく follow external noopener noreferrer" target="_blank" data-wpel-link="external">さまざまな情報の表示</a>  <li><a title="HTTP キャプチャ機能" href="http://blogs.msdn.com/b/osamum/archive/2011/08/15/f12-ie9-networkinformation.aspx" rel="monoe&#039;s blog「HTTP キャプチャ機能」へのリンク follow external noopener noreferrer" target="_blank" data-wpel-link="external">HTTP キャプチャ機能</a>  <li><a title="使ってみよう! [F12] IE9 開発者ツール - 検証機能" href="http://blogs.msdn.com/b/osamum/archive/2011/10/05/hehehe.aspx" rel="monoe&#039;s blog「使ってみよう! [F12] IE9 開発者ツール - 検証機能」へのリンク follow external noopener noreferrer" target="_blank" data-wpel-link="external">検証機能</a></li></ul>

<h2>IE11 F12 開発者ツールの新機能 </h2>

<p>IE11のF12開発者ツールでは、新たな機能が追加されるとともにUIのデザインも大きく変更されています。</p>

<p>メニューとタブがなくなり、左側のツールバーのアイコンをクリックして機能を選択するようになっています。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image14.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb14.png" width="506" height="194"></a><br>(IE11 の F12 開発者ツールの画面)</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/09/image.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;padding-top: 0px;padding-left: 0px;margin-left: auto;padding-right: 0px;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/09/image_thumb.png" width="44" height="320"></a> <br>(新しいF12開発者ツールのメニューアイコン) </p>

<p>ツールバーの各メニューアイコンに割り当てられた機能の内訳は以下のとおりです。 </p>

<ol> <li><a title="DOM エクスプローラー" href="#dom" data-wpel-link="internal">DOM エクスプローラー</a>  <li><a title="コンソール" href="#console" data-wpel-link="internal">コンソール</a>  <li><a title="JavaScript のデバッグ" href="#debug" data-wpel-link="internal">JavaScript のデバッグ</a>  <li><a title="ネットワーク" href="#net" data-wpel-link="internal">ネットワーク</a>  <li><a title="UI の応答" href="#ui" data-wpel-link="internal">UI の応答</a>  <li><a title="プロファイラー" href="#profiler" data-wpel-link="internal">プロファイラー</a>  <li><a title="メモリ" href="#memory" data-wpel-link="internal">メモリ</a>  <li><a title="エミュレーション" href="#emulate" data-wpel-link="internal">エミュレーション</a></li></ol>

<p>ここからはツールバーの各アイコンの内容ごとに、新しく追加された特徴的な機能について紹介していきます。</p>

<h3 id="dom">DOM 要素の検査</h3>

<p>調査したいDOM要素の選択が、ページの表示画面から直接行えるようになりました。</p>

<p>この機能を使用するには、Webページが表示されている状態で、調査対象となる箇所でマウスの右ボタンをクリックし、表示されるコンテキストメニューから[要素の検査]を選択します。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image1.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb1.png" width="163" height="211"></a><br>(コンテキストメニューに表示される [要素の検査])</p>

<p>F12 開発者ツールが起動し、ツール内のDOMエクスプローラーで目的の要素が選択されて表示されるとともに、ページの表示画面でも、該当する要素(エレメント)の箇所が、選択をあらわすマスクがかかった状態で表示されます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image61.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image6_thumb.png" width="480" height="274"></a><br>(要素が選択されたところ)</p>

<p>もちろん、従来どおりDOMエクスプローラーの[要素の選択]ボタンをクリックし、表示されているページをクリックするという方法でも指定可能です。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image3.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb3.png" width="165" height="72"></a><br>( [要素の選択] ボタン)</p>

<p>DOMエクスプローラーでは、読み込まれているドキュメントの要素やスタイルの操作が行えますが、IE11のF12開発者ツールでは、要素を操作するための機能がさらに追加されたのに加え、ドラッグ&amp;ドロップによる要素の入れ替えや、属性入力の際の入力補助機能がサポートされています。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image4.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb4.png" width="388" height="199"></a><br>(要素を操作するためのメニュー)</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image24.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image24_thumb.png" width="260" height="141"></a><br>(入力補助機能)</p>

<p>また現在選択されている要素のDOM階層は、パン屑メニューで表示され、クリックで選択を切り替えられるようになっています。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image6.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb6.png" width="351" height="66"></a><br>(選択するDOM階層を切り替えるためのパン屑メニュー)</p>

<h3 id="console">コンソールの表示</h3>

<p>JavaScriptを記述してテストするためのコンソールは、画面左のツールバーアイコンからだけでなく、各画面右上部にあるコンソールの表示アイコンからも呼び出すことができるようになりました。</p>

<p align="center">&nbsp;<a href="https://html5experts.jp/wp-content/uploads/2013/08/image8.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb8.png" width="42" height="38"></a>(コンソールの表示アイコン)</p>

<p>これにより、例えば、DOMエクスプローラーでページの要素を確認しながらJavaScriptを記述して試すということができるようになりました。</p>

<p>また、JavaScriptの入力支援機能がサポートされ、コードを効率よく記述することができるようになりました。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image9.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb9.png" width="395" height="115"></a><br>(JavaScript の入力支援機能)</p>

<h3 id="debug">JavaScriptのデバッグ</h3>

<p>デバッガーでは、ブレークポイントのほかに、トレースポイントが設定できるようになりました。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image10.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb10.png" width="378" height="178"></a><br>(エディタ画面でのコンテキストメニュー)</p>

<h4>トレースポイントとは</h4>

<p>トレースポイントは、ブレークポイントとは違い、コードの実行が設定箇所に達しても実行が中断されることはなく(または中断された後に)、デバッガで指定したトレースポイント メッセージを取得することができます。この機能を使用することで、変数やオブジェクトの状態を追いかける(トレース)することができます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image11.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb11.png" width="309" height="134"></a><br>(トレースメッセージの設定画面)</p>

<p>トレースメッセージを設定するには、トレースポイント設定時に表示されるダイアログボックスを使用するか、トレースポイント上でマウスの右ボタンをクリックして表示されるコンテキスメニューの [トレースメッセージ]メニューを選択して行います。</p>

<h4>条件つきブレークポイント</h4>

<p>ブレークポイントでは、条件付きブレークポイントが指定できるようになりました。この機能を使用すると、デバッグ中のプログラムの中断条件を指定することができます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image12.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb12.png" width="310" height="160"></a><br>(ブレークポイントの条件設定画面)</p>

<p>ブレークポイントの条件を指定するには、ブレークポイントの上でマウスの右ボタンをクリックし、表示されたコンテキストメニューより [条件]メニューを選択して行います。</p>

<p>その他、デバッガーでは例外動作の変更や、Webワーカー使用の際のデバッガの振舞などを指定できるようになっています。</p>

<h3 id="net">ネットワーク</h3>

<p>ネットワークの機能を使用するとHTTPのキャプチャ、リクエストのアクション開始からレスポンスが返りコンテンツがロードされるまでの各タイミングの時間など、ネットワーク関連の情報を細かく分析することができます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image13.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb13.png" width="458" height="233"></a><br>([ネットワーク]画面)</p>

<p>これらの機能は、<a href="http://blogs.msdn.com/b/osamum/archive/2011/08/15/f12-ie9-networkinformation.aspx" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">従来のバージョンのものと大きく変わるところはありません</a>が、ブラウザーキャッシュの消去や、Cookie のクリア 機能が追加されています。</p>

<h3 id="ui">UI の応答</h3>

<p>UI の応答 機能を使用すると、ページのロード、あるいは操作時の CPU 使用率とその内訳、視覚スループットや、イベントに関する細かな情報がグラフィカルに表示されます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image15.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb15.png" width="458" height="258"></a><br>([UIの応答]画面)</p>

<p>UI応答の機能を使用してUI応答のプロファイリングを行うには、画面上部にある[プロファイリング セッションの開始]ボタンをクリックし、キーボードの [F5]キーを押下するなどしてページを再読み込みするか、分析対象のUI操作を行います。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image16.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb16.png" width="334" height="53"></a><br>([UIの応答]ツールバー)</p>

<p>ページの読み込み、あるいは操作が完了したら、[プロファイリング セッションの開始]ボタンの右隣りの[プロファイリング セッションの終了]ボタンをクリックし、プロファイリングを終了します。この機能はインタラクティブに動作するブラウザ アプリケーションのパフォーマンス分析などに効果を発揮します。</p>

<h3 id="profiler">プロファイラー</h3>

<p>プロファイラー機能を使用すると、コンテンツが読み込まれて描画されるまでに使用された各機能の呼び出し回数や経過時間、JSファイルの場合はそのURL、メソッドの行番号などが記録されます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image17.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb17.png" width="469" height="292"></a><br>([プロファイル]画面)</p>

<p>処理に要した時間や呼び出し回数を見ることで、描画処理(正確には読み込みが完了されるまでの処理)のボトルネックを調査することができます。</p>

<p>ただし、ここで測られるのは Web ブラウザ内の処理時間のみなので、実際にページ読み込みのチューニングを行う際には、ネットワーク機能を使用して通信上のボトルネックがないかも合わせて調査を行う必要があります。</p>

<p>プロファイラー の機能を使用してプロファイリングを行うには、画面上部にある プロファイリングの開始ボタンをクリックし、キーボードの [F5] キーを押下するなどしてページを再読み込みし、読み込みが完了したらプロファイリングの終了ボタンをクリックします。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image18.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb18.png" width="134" height="69"></a><br>([プロファイラー]ツールボタン)</p>

<p>プロファイリングは複数回の結果を保持できる上、プロファイリングされたデータをファイルにエクスポートすることができます。</p>

<p>また、表示を 呼び出しツリーに切り替えることができます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image20.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb20.png" width="290" height="203"></a><br>([プロファイラー]呼び出しツリー表示)</p>

<h3 id="memory">メモリのプロファイリング</h3>

<p>メモリ 機能を使用すると、任意の時間でメモリ使用状況のスナップショットを取り、使用状況を観察し調査することができます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image21.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb21.png" width="496" height="308"></a><br>([メモリ]画面)</p>

<p>各スナップショットには、ページを構成する各オブジェクトのメモリの使用状況が記録されます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image22.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb22.png" width="503" height="308"></a><br>(スナップショットの内容表示画面)</p>

<p>メモリ機能を使用して使用メモリのプロファイリングを行うには、画面上部にあるプロファイリングセッションの開始ボタンをクリックし、メモリの使用状況について分析を行いたい操作、処理を行い、完了したら[ヒープ スナップショットを作成します]ボタンをクリックします。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image25.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb24.png" width="325" height="76"></a><br>([メモリ]ツールバー)</p>

<p>[ヒープ スナップショットを作成します[ボタンを満足のいく回数クリックし、満足のいく個数のスナップショットが取得できたら [プロファイリング セッションの終了]ボタンをクリックしプロファイリングを終了します。</p>

<p>この機能を使用すると、オブジェクトのメモリ使用量はもちろんのこと、複数のスナップショットを比較することでオブジェクトが正しく削除されたか、あるいは、オブジェクトが正しくメモリを解放したなどを調査することができます。</p>

<h3 id="emulate">エミュレーション</h3>

<p>エミュレーションを使用すると、ユーザーエージェントを他のWebブラウザ用のものに変えたり、ディスプレイの解像度や向きを変えたテストを行えます。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image26.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb25.png" width="327" height="269"></a><br>([エミュレーション]画面)</p>

<p>たとえば以下の図は、解像度 1280&#215;720 の解像度でディスプレイの向きを縦に指定したものです。</p>

<p align="center"><a href="https://html5experts.jp/wp-content/uploads/2013/08/image27.png" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;float: none;margin-left: auto;border-top-width: 0px;margin-right: auto" border="0" alt="image" src="/wp-content/uploads/2013/08/image_thumb26.png" width="390" height="328"></a><br>(エミュレーション機能を実行したところ)</p>

<h2>まとめ</h2>

<p>今回の記事ではInternet Explorer 11に搭載されるF12開発者ツールに追加された特徴的な新機能について簡単に紹介しました。</p>

<p>F12に開発者ツールには、今回紹介した機能以外にも、Web コンテンツのデバッグに役立つ非常に多くの機能が搭載されていますので、IE をお使いの方はぜひキーボードの[F12]キーを押してみてください。</p>

<p>なお、<a title="Microsoft Surface" href="http://www.microsoft.com/surface/ja-JP" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Surface RT</a>に代表されるARM ベースのWindows RT機の IEにもF12開発者ツールは搭載されていますので、こちらをお持ちの方も手軽なWebコンテンツのデバッグツールしてぜひご活用ください。</p>

<p>Windows 8.1に搭載されるIE11 F12開発者ツールについてのより詳しい情報につきましては、現状はまだ英語ですが、以下のドキュメントが公開されておりますので、ご覧ください。</p>

<p>Using the F12 developer tools<br><a href="http://msdn.microsoft.com/library/ie/bg182326(v=vs.85" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">http://msdn.microsoft.com/library/ie/bg182326(v=vs.85</a>)</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
