Windows 10で登場するユニバーサルアプリとはどんなものか。その特徴とプログラミングの実際を徹底的に紹介する。
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について紹介していく。最後に、既存のアプリをどうすべきか、いくつか指針を示そうと思う。
5月26日(火)〜5月27日(水)に日本マイクロソフトが主催するカンファレンス「de:code 2015」で、開発者向けの最新技術情報だけでなく、ITプロ向けの情報も提供される予定だ。このため日本マイクロソフト自らが、このカンファレンスを「TechEdの再来」と呼んでいる。
現在のセッション一覧には「Windows 10のユニバーサルアプリ開発」は含まれていないが、Visual Studio 2015&Windows 10開発ではユニバーサルアプリは重要になると想像されるので、恐らくBuild 2015以降でセッションの中に追加されていくと考えられる。
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や開発方法などがまだ変更される可能性を意味している。恐らく本稿の内容と正式リリース時の開発環境とは異なる部分があるだろうことを、ご承知おき願いたい。
*1 「Windows 10 The Latest:Windows 10のリリース時期が決定! ビルド10041で新機能も追加」参照。
*2 「Windows 10 The Latest:Windows 10 Technical Previewのインストール方法と注意点」参照。
*3 Mobile World Congress(MWC)2015(スペイン・バルセロナ、現地時刻2015年3月2〜5日)におけるマイクロソフトのセッション「Get a First Look at the Windows 10 Universal App Platform」、「Game Developers Conference(GDC)2015」、「WinHEC 2015」(中国・深セン、現地時刻2015年3月18〜19日)。
なお、全てではないがセッションの録画が公開されている。
*4 2015年3月下旬に公開された「A Developer's Guide to Windows 10 Preview」という動画コンテンツ。次の2箇所で公開されている。
*5 本稿では、次の開発環境を使っている。Visual Studio 2015 CTP 6は英語版のみのため、記事中で紹介する画面などが英語表記になっているが、ご容赦願いたい。なお、本稿執筆時点の「Windows 10 開発者ツールのプレビュー版」は、XAMLエディターのプレビュー表示が頻繁にエラーとなったり、マニフェストエディターも搭載されていなかったりするなど、まだかなり不完全である。
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フォームやWPFなどのアプリは何と呼ぶか? 「Windowsデスクトップアプリ」である(上の画像に出ている)。「Windowsアプリ」と「Windowsデスクトップアプリ」、とても紛らわしいので筆者としてはあまり使いたくない(なにしろ、Windows 10での「Windowsアプリ」はデスクトップ上のウィンドウとしても動作するのだ)。マイクロソフトの文書に「Windowsアプリ」と出てきたら、それはWindowsストアアプリのことかもしれないし、そうでないかもしれない*6。注意深く文脈を読んでほしい。
*6 例えば「Windowsアプリ認定キット」の「Windowsアプリ」は、Windows向けのアプリ全般を指している。そのドキュメントの一節に「Windows アプリ認定キットを使うと、Windows ストア(中略)に加え、(中略)デスクトップ アプリ認定プログラムについてアプリをテストできます」とある。Windowsストアアプリの部分を新しい呼称で置き換えると、「Windowsアプリ認定キットを使うと、Windowsアプリに加え、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。
*7 MSDN Blogs「信頼できる Metro スタイル アプリを提供する」参照。また、Windowsデスクトップアプリとの違いについては、「特集:Windows 8開発に向けて準備しよう〜Metroスタイル・アプリの開発者が知るべき3つのこと ―― アイデアを考え始める前に、これだけは理解しておこう! ――」も読んでほしい。
Copyright© Digital Advantage Corp. All Rights Reserved.