



連載目次

Windows 10の正式リリースが、いよいよ近づいてきた。2015年の夏だと予告されている。開発者向けの詳細情報は、4月末からの「Build 2015」（米国）や5月下旬の「de:code 2015」（東京、下記のコラム参照）などで明らかにされるだろう。

Windowsストアアプリの開発は、Windows 10でどのように変わるのだろうか？ ひと言でいえば、「ものすごく変わる！」。その膨大な情報が「de:code 2015」などで出てきたときに慌てることのないように、そろそろ予習を始めておこう。すでに、プレビュー版のVisual Studio 2015で開発を試せるようになっているのだ。

本稿では、最近のイベントにおけるマイクロソフトの発表内容やVisual Studio 2015のプレビュー版などから、Windows 10での新しいユニバーサルアプリ開発の概要について解説する。最初に、Windows 10用のユニバーサルアプリとはどのようなものかを説明し、それから開発の概要や新しいAPIについて紹介していく。最後に、既存のアプリをどうすべきか、いくつか指針を示そうと思う。

Windows 10用のユニバーサルアプリとは？

1. 公式情報はBuildとde:codeで！

Windows 10の正式リリースは2015年の夏だと予告された*1。Windowsランタイムアプリ開発者の皆さんは、Windows 10で開発がどのように変わるのか興味津々だろう。あるいは、すでにWindows 10 Technical Preview（以下、Windows 10 TP）を試してみて*2、「このUIはどうやって実装するのだろう？」といった疑問を持たれている開発者もいることだろう。

だが残念なことに、開発者向けのWindows 10情報はまだ部分的にしか公表されていない。マイクロソフトが詳細を明らかにするのは4月末から開催される「Build 2015」だといわれており、日本では2015年5月26日〜27日に開催される「de:code 2015」で詳細が語られるだろう。

本稿では、2015年3月に開催された複数のイベントにおけるマイクロソフトの発表と*3、同じく3月に公開されたMicrosoft Virtual Academyのコンテンツ*4、それと開発環境のプレビュー版に基づいて*5、Windows 10用のユニバーサルアプリ開発の概略を解説する。本稿の内容を予備知識として今後の「Build 2015」／「de:code 2015」などで出てくる情報に備えていただければ幸いである。

なお、本稿執筆時点での開発環境のプレビュー版はまだ「Go-live」ライセンスになっていない。それは、正式リリースまでに、APIや開発方法などがまだ変更される可能性を意味している。恐らく本稿の内容と正式リリース時の開発環境とは異なる部分があるだろうことを、ご承知おき願いたい。

2. またも改名「Windowsアプリ」に

Windows 10でWindowsストアアプリに初めて興味を持ったという読者もいるだろう。ここで「Windowsストアアプリ」という呼称の変化について記しておくのも、新しい読者が混乱するのを防ぐ役に立つと思う。

Windows 8が発表されたころには「Metro UIスタイルのアプリ」、略して「Metroスタイルアプリ」／「Metroアプリ」などと呼ばれていた。ところがこの名称は、Windows 8がRTMになったころ（2012年8月）からマイクロソフトは使用しなくなった。これに替えて、UIの呼称としては「Modernスタイル」、アプリの分類としての名称は「Windowsストアアプリ」／「Windows Phoneストアアプリ」となった。さらにその後、「Windowsストアアプリ」／「Windows Phoneストアアプリ」の両方を合わせて「Windowsランタイムアプリ」と呼ぶようになった。なお、Windowsランタイムアプリの中で、Windows 8.xとWindows Phone 8.1の両方に提供されるアプリは「ユニバーサルWindowsアプリ」と呼ばれる。

そしてこのたびのWinHEC 2015*3では、「Windowsランタイムアプリ」を改名して「Windowsアプリ」にするという発表があった（次の画像）。

「Windowsアプリ」の発表スライド（PowerPoint Online）

WinHEC 2015のセッション「Developing for the Windows 10 Device Platform」のスライド資料9枚目より。

「Apps built on the Windows universal app platform are called Windows apps」（仮訳「Windowsのユニバーサルアプリプラットフォーム上に構築されたアプリをWindowsアプリと呼ぶ」）とある。それに続いて「Windows desktop application that run on PCs only」（PCだけで走るWindowsデスクトップアプリ）という記述も見える。

なお、「universal app platform」と小文字で書かれていることに注意。「ユニバーサルアプリプラットフォーム」だけでは固有の名前ではないのだ（「デスクトップアプリ」も同様に固有の名前ではない）。前に「Windows」を付けたり、後ろに「for Windows」を付けたりすることで固有の名前になるのである。



では、従来のWindowsフォームやWPFなどのアプリは何と呼ぶか？ 「Windowsデスクトップアプリ」である（上の画像に出ている）。「Windowsアプリ」と「Windowsデスクトップアプリ」、とても紛らわしいので筆者としてはあまり使いたくない（なにしろ、Windows 10での「Windowsアプリ」はデスクトップ上のウィンドウとしても動作するのだ）。マイクロソフトの文書に「Windowsアプリ」と出てきたら、それはWindowsストアアプリのことかもしれないし、そうでないかもしれない*6。注意深く文脈を読んでほしい。

3. 「Windowsアプリ」と「Windowsデスクトップアプリ」

前項に引き続き、新しい読者のために、「Windowsアプリ」（＝Windowsストアアプリ）と「Windowsデスクトップアプリ」の違いを簡単にまとめておこう（次の表）。

アプリの分類 セキュリティ 利用できるAPI 動作するデバイス 配布 Windowsアプリ サンドボックス内で動作

プロセス間通信やファイルアクセスなど、かなり厳しく制限されている 主：Windowsランタイム

副：.NET Framework／Win32 API／DirectXなどの一部（セキュリティ面から制限されている） Windows PC、タブレット、スマートフォン、Xbox、IoTデバイスなど マイクロソフトのストア経由 Windowsデスクトップアプリ 通常のプロセスとして動作

Windowsの機能を自由に使える（一部に権限による制限あり） 主：.NET Framework／Win32 API（全て）

副：DirectXなど（Windowsランタイムの一部も利用可） Windows PC（一部のタブレットを含む） 自由 「Windowsアプリ」と「Windowsデスクトップアプリ」の違い



「Windowsアプリ」は、セキュリティにこだわったアプリケーションプラットフォームなのだ。極端な言い方をすれば、エンドユーザーに安心と安全を届けるなら「Windowsアプリ」、自由と自己責任を与えるなら「Windowsデスクトップアプリ」を選べばよいということだ。マイクロソフトが「Windowsアプリ」を推進しているのは、（もちろんビジネスモデルの変革という目論見もあるが）信頼して使えるアプリをエンドユーザーに提供したいからなのである*7。

1|2|3|4|5|6 次のページへ