マイクロソフト、Progressive Web Apps(PWA)をWindows 10のデスクトップで実行可能に。Windows 10はWindows、Linux、PWA対応のプラットフォームへ

2018年2月9日

マイクロソフトはWeb技術を用いてネイティブアプリケーションのように動作するProgressive Web Apps(PWA)を、WebブラウザのEdgeにとどまらず、Windows10のデスクトップ環境でも実行可能にすることを明らかにした。


Windows 10は当然のことながらWindowsアプリケーションを実行可能なOSですが、Windows Subsystem for Linuxが新たに搭載されてLinuxアプリケーションのサポートも進められています。

そしてマイクロソフトはさらにWindows 10の守備範囲を広げようとしています。次はWeb技術を用いたアプリケーション、「Progressive Web Apps」(以下PWA)のWindows 10でのサポートです。

Microsoft Edgeの開発ブログに2月6日付でポストされた記事「Welcoming Progressive Web Apps to Microsoft Edge and Windows 10 - Microsoft Edge Dev Blog」でマイクロソフトは、PWAをWebブラウザのMicrosoft Edgeでサポートするだけでなく、Windows 10のデスクトップ上で通常のアプリケーションのように実行可能にすることを明確にしました。

On other platforms, PWAs primarily originate from inside the browser, and can escape the browser in response to various prompts or menu options. We’re taking things one step further on Windows! Because a PWA can be a first-class citizen in the Windows Store, a user will be able to engage fully with an installed PWA—from discovery, to installation, to execution—without ever opening the browser.

他のプラットフォームにおいては、PWAはブラウザ内で起動し、何らかの操作やメニューを選択することでブラウザから独立して実行されるようになる。しかし私たちはWindowsにおいてこれをさらに前進させていくつもりだ! というのもPWAはWindows Storeの一級市民になれることで、そこで発見されインストールされ、ブラウザを一度も立ち上げることなく実行することができるようになるのだ。

下記のツイートでは、この記事の筆者の一人がプレビュー版のWindows 10のデスクトップ上で、まるで通常のアプリケーションのようにPWAを実行する様子を紹介しています。


なぜWindows 10で積極的にPWAをサポートするのか

PWAは、HTML、CSS、JavaScriptなどのWeb技術によって開発されるWebアプリケーションの一種です。Webサーバから配信されて実行されるだけでなく、アプリケーションの実行に必要なリソースをローカルに保存することでオフラインでの実行にも対応します。

Service Workerによるバックグラウンド処理やプッシュ通知なども可能で、ネイティブアプリケーションのように振る舞うことができるようになっています。

そしてPWAはWeb技術で開発されているため、マルチプラットフォーム対応でもあります。

現在のところ、PWAはモバイルを中心に新しいアプリケーションの姿として注目される傾向にありますが、モバイルに限定された技術ではないので、デスクトップアプリケーションの分野での注目度も高まってくるでしょう。

例えば、Web技術でデスクトップアプリケーションを開発するためのフレームワークのElectronやCordovaなどと基本的な技術は重なっているため、いずれこれらのフレームワークを用いているアプリケーションの一部がPWAに切り替わるかもしれませんし、もしかしたら、将来的には多くのアプリケーションが、PWAになっていくかもしれません。

こうしてマルチプラットフォーム対応であるPWAが普及、発展していくすると、そのプラットフォームは「PWAさえ動けばどれを選んでも似たようなもの」となっていく可能性があります。

こういう状況はWindowsの存在意義をおびやかすことになります。PWAさえ動けば別にプラットフォームはWindowsでなくともAndroidでもいいし、PCでなくてもタブレットでもよい、となってしまうかもしれないのです。

マイクロソフトはこうした状況を想定して先手を打ち、Windows 10をPWAにとってもっとも魅力的なプラットフォームへと進化させ、PWAが普及したとしても「やっぱりPWAを動かすのもWindows 10がいいよね」とするために、積極的な施策を打ち始めていると考えられます。

Windows 10、次の大型アップデートでPWAをサポート開始

マイクロソフトはWindows 10におけるPWAサポートに関して、大きく2つの施策を実行しています。

1つ目は、PWAを構成する最新のWeb技術に対する積極的な取り組みです。

マイクロソフトは半年ごとにWindows 10の大型アップデートを行っており、次は今年の3月か4月に行われる予定です。そして、その大型アップデートのプレビュー版Windows 10にはPWAを構成する重要な最新技術、Service Workerとプッシュ通知が組み込まれ、デフォルトで利用可能になっていることが明らかにされました。

ほぼ間違いなく、Windows 10の次の大型アップデートでPWAのサポートが実現するでしょう。

ただし、PWAを構成する技術はまだ初期段階にあり、今後さらに発展していくはずです。PWAのサポートもそれに沿って充実していくはずです。

そして2つ目は、Windows StoreでのPWAサポートです。先に引用したとおり、マイクロソフトはWindows Storaに優れたPWAをどんどん登録しようとしています。

これもWindows 10の次の大型アップデートのタイミングで開始される予定です。

つまり、来月か再来月に迫ったWindows 10の次の大型アップデートでは、Windows StoreからPWAをインストールし、Windowsデスクトップで実行するという、通常のアプリでできることがおそらくPWAでも実現されるのです。

かつてマイクロソフトは、WindowsデスクトップでWebアプリケーションをサポートする「Active Desktop」と呼ばれる技術をWindowsに組み込んだことがありました。1990年代後期のことです。

Netscapeとの激しいブラウザ戦争を戦うために鳴り物入りで発表されたActive Desktopですが、当時はまだHTMLもJavaScriptも貧弱な機能しか備えていなかったためにそれほどたいしたこともできずフェードアウトしていきます。

Windows 10によるデスクトップでのPWAサポートは、20年ぶりにActive Desktopのコンセプトが帰ってきたのかと思わせるものがあります。そうか、あれから20年もたったのですね。

※ 参考:JavaScriptのコードとService Workerをユーザーに近いCDNのエッジで実行可能。Cloudflareが「Cloudflare Workers」を提供開始
※ 参考:Angular 6が正式リリース。コンポーネントのDOMエレメント化、PWA対応など新機能。ng-conf 2018

関連記事

AppleもiOS/macOSでPWAのサポートを行おうとしています。

あわせて読みたい

プログラミング言語 PWA




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本


<!- script for simple analytics events -->