Build 2014の内容からユニバーサルWindowsアプリ開発に絞って紹介。「Windowsストアアプリの新規開発は、ユニバーサルWindowsアプリにしない理由がない」!?
WindowsストアアプリとWindows Phoneアプリの開発方法に、一大転機が訪れた。
読者の多くは、すでにその名前をお聞き及びだろう。米国時間で4月2〜4日に開催された「Build 2014」初日のキーノートで発表された「ユニバーサルWindowsアプリ」である(次の画像)。従前の例にたがわず今年のBuildでも、目のくらむような新技術の発表が相次いだが、その中から本稿ではユニバーサルWindowsアプリ開発に絞って紹介する。
なお、本稿では紛らわしくない限り、次の略称を用いる。
本稿に掲載したコードを試すには、次の環境が必要である。
*1 SLAT対応ハードウェアは、Windows Phone 8.1エミュレーターの実行に必要だ。ただし未対応でも、ソースコードのビルドは可能だ。SLAT対応のチェック方法はMSDNブログの「Windows Phone SDK 8.0 ダウンロードポイント と Second Level Address Translation (SLAT) 対応PCかどうかを判定する方法」を参照。なお、SLAT対応ハードウェアであっても、VM上ではエミュレーターが動作しないことがあるのでご注意願いたい。
*2 事前には「Windows 8.1 Update 1」と呼ばれていたアップデート。スタート画面の右上に検索ボタンが(環境によっては電源ボタンも)表示されるようになるので、適用済みかどうかは簡単に見分けられる。ちなみに公式呼称は「the Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 update that is dated April, 2014」というようである。
*3 本稿執筆時点ではRCが公開されている。Visual Studio 2013 Update 2 RCは、マイクロソフトのダウンロードページから誰でも入手できる。
*4 本稿に掲載したコードを試すだけなら、無償のExpressエディションで構わない。Visual Studio Express 2013 for Windows(製品版)はマイクロソフトのページから無償で入手できる。Expressエディションはターゲットプラットフォームごとに製品が分かれていて紛らわしいが、Windowsストアアプリの開発には「for Windows」を使う(「for Windows Desktop」はデスクトップで動作するアプリ用)。
Buildのキーノートは全世界が注目する発表であるため、開発者向けというよりは一般ユーザーやIT企業の中枢人物それにマスコミ向けにインパクトが届くような表現になる。ユニバーサルWindowsアプリについてのメッセージは次のようだ。
ユニバーサルWindowsアプリ=WindowsとPhoneに共通の(=universal)アプリ
一般向けの説明としては、その通りだ。「Windows用のストアアプリとPhone用のアプリは同じものですよ、だから片方のデバイス用にアプリを購入したら他方でもダウンロードできますよ」というアピールだ(次の画像)。なお、ユニバーサルWindowsアプリは、XboxやIoT(=Internet of Things、「モノのインターネット」)にまで拡張していくことがキーノートで触れられたが、本稿ではWindowsとPhoneだけを(すなわち、開発者にとってすでに可能になったことだけを)扱う。
しかしながら、例えば公式リリースには「Windows Phone 8.1とWindows 8.1 Updateに共通の体験を提供できます」と書かれている。「共通のアプリ」ではなく「共通の体験」を提供できる、と。この微妙な違いは何だろうか? それを知るためにも、ユニバーサルWindowsアプリの特徴をもう少し細かく見ておこう。
主にエンドユーザーから見たユニバーサルWindowsアプリのメリットは次のようだ(セッション2-512の資料より)(次の画像も参照)。
上記の特徴は、エンドユーザーにはWindowsとPhoneのアプリは同じものに見える、ということである。「共通のアプリ」とは、エンドユーザーに対するメッセージなのだ。
上述したエンドユーザー視点からのメリットの他に、開発者視点では次のようなメリットがある。
ひと言でいうと「WindowsとPhoneのアプリをまとめて開発するのが楽になる」ということである。
ここまで来て、「あれっ!?」と感じた読者も多いだろう。そうなのだ、ユニバーサルWindowsアプリとは、エンドユーザーにとっては1つのアプリに見えるが、開発するわれわれにとっては(楽になったとはいうものの)別々のアプリなのだ。
しかし安心してほしい。従来のPCLなどとは「楽になる」度合いが格段に違うのだ。今までとはまるで別世界なのである。「別々のアプリを作ってエンドユーザーには『共通の体験を提供』しよう、だけど別々だとはいっても楽に作れるよ」というのが、開発者にとってのユニバーサルWindowsアプリである。
その開発の実際を紹介する前に、次で少々寄り道をする。
Copyright© Digital Advantage Corp. All Rights Reserved.