イベントレポート

えっ、Android APKがそのまま動く? Build 2015で分かったWindows 10あれこれ

Build 2015が開催されたMoscone Center West

 Build 2015は、本当に盛りだくさんの内容で、そこで発表されたり、解説された全ての要素をきちんと咀嚼し、理解するのには、相当の時間がかかりそうだ。ここでは、主なトピックスをかいつまんで紹介し、もうすぐ登場するWindows 10の姿を俯瞰してみよう。

UWPはAndroidアプリもiOSアプリも全て吸収

 Microsoftでは2〜3年後に、Windows 10デバイスが10億台近くになるとしている。仮に世界市場の10%が日本の市場であるとすれば、日本国内で約1億台のWindows 10デバイスが普及することになりそうだ。Microsoftはそのくらいの本気度で挑むと、日本の開発者を率いてこのカンファレンスのために現地入りした伊藤かつら氏(日本マイクロソフト執行役 デベロッパー エバンジェリズム統括本部長)は言う。「ほかのプラットフォームとの競合などといったことを言っている場合ではない」と伊藤氏。Microsoftはなりふりかまわず突き進む。全ては開発者のためだ。ちなみに、Build 2015は約2,000ドルの参加費用がかかる有料のカンファレンスだが、45分で売り切れ、参加の切符を手に入れることができたラッキーな参加者は約5,000人だ。

例年通り、会場の外には //build/ のオブジェが
日本人開発者を集めたミーティングで挨拶をする伊藤かつら氏

 そもそも、今後のWindowsは、1つのコアと1つのストアでアプリを提供する。その礎となるのがユニバーサルWindowsプラットフォーム(UWP)だ。このプラットフォーム用に開発されたアプリは、デスクトップアプリであっても、Webアプリであっても何もかも全てを単一のストアで全世界に配布できるようになる。さらには、音楽も、TVや映画といったコンテンツもあらゆるものが単一のストアで配布される。あらゆるものがワンストップで済む。

 具体的な方法としては、これまでMSI形式だったアプリをappx形式にしてストアに置くことになる。また、Windows Phoneのプラットフォームでは、小さなサブシステムを用意して、既にあるAndroidアプリをAPKのまま動かす仕組みまで紹介されている。そこではアプリから使われるGoogleマップサービスをMicrosoftの地図サービスに置き換えてしまうような変換も行なわれるらしい。

 つまり、開発者が望むなら、自分の開発したAPKバイナリをappx形式に変換して普通に配信できるようにするということだ。それがProject ASTORIAサブシステムだ。具体的にはAPKファイルをappx形式でくるむ形で提供し、それをWindowsにリダイレクトして直接実行してしまう。

 また、Visual Stadioで、Objective Cのコードをコンパイルしたり、互換性のあるAPIと置き換えることもできるようになる。XcodeのプロジェクトをVSのプロジェクトに変換するという。これでiOS用アプリも容易にポーティングすることができる。

 こうしてWindows用アプリの開発に際して、これまでほかのモバイルプラットフォームで費やしてきた作業の多くを、最小限の追加作業でポーティングできるようになる。なにしろ、リーチできるデバイス数の桁が違うわけで、いわゆるアプリ不足は解消される方向が見えてくる。こうした方法の提供によって、Android用アプリの多くがポーティングされることになれば、アプリ不足にあえいでいるWindos Phoneのシェアにも少なからず影響が出てくるだろう。また、Win32デスクトップアプリをわざわざ作る意味合いも薄れてくる。自分で自分の製品の活路を狭めるようなことに意味はないからだ。

Project ASTORIAでAndroidアプリとの互換性を保つ

Cortana日本語版はWindows 10リリース時に間に合わない

 Windows 10アプリはWindowsユニバーサルアプリであり、それは「アダプティブ」であるという言い方があらゆるところでアピールされていた。バージョンアダプティブ、デバイスファミリアダプティブ、フォームファクタアダプティブというのがその代表だ。

 さらに、レイアウトにもアダプティブだ。この仕組みをうまく使ったものがContinuumだ。基調講演のデモでは、スマートフォンをディスプレイに繋いで、キーボードやマウスで操作し、まるでPCのように活用する様子が紹介されていたが、最初からアプリをUWPで作っておけば、開発者は描画の細部について何も意識しなくていいという。若年層のユーザーなどは、最初はWindows PhoneをTVに接続するようなことから始めて、その後にパワフルなPCを追加して併用、使いこなしていくといったシナリオも想定されているのだろう。

 UWPはバージョンアダプティブであり、そのソースの中でAPIの在不在を判断して使う使わないを決めることができる。そのため、1つのバイナリで全てに対応できるのだ。例えば、Xbox Oneには印刷機能がない。アプリ自身が今動いているプラットフォームで印刷ができるかどうかを判断し、印刷ボタンなどを表示するかどうかを決められるといった具合だ。

 アプリケーションモデルとして、UWPアプリはappxを作ることとなる。その実体はこれまでのストアアプリとは異なるし、ストアアプリとUWPアプリは似ているが違うということをしっかりと認識しないといけないという。1つのアプリを複数起動することができたり、アクションセンターとトースト通知なども、アダプティブトーストとして内容によってサイズを変えられるなどの利便性と可用性、そして、アプリ間通信が行なえるという点などがアピールされているが、アプリの素性としては、これまでとまったく違うという認識を持たなければならない。

 さらに、Windows 10では、新ブラウザとしてMicrosoft Edgeが提供される。その実体は、EdgeHTML.dllだ。基調講演ではCortanaとの緻密な連携が紹介されていたが、残念ながらCortanaはわが日本では、Windows 10のリリース時点で間に合わないことが確定しているそうだ。

 ただ、その将来として、ボイスコマンドデフィニション(vcd)とCortana、デジタルインク関連でも、InkCanvas, InkPresentorとの連携によって、さらにその拡張が予定されているそうだ。

 Windowsユニバーサルアプリは、アプリ間でのドラッグアンドロップやWindows Helloを使った認証などがサポートされるなど、振る舞い方やユーザーからの見え方もまったく新しいものになりそうで、将来的には、現行のWin32デスクトップアプリも、全てが、こちらのプラットフォーム依存のものに置き換わっていくことになりそうだ。

 そこで懸念されるのは、ハードウェアの処理能力の違いだ。きわめて処理能力の高いデバイスと、そうでもないデバイス、あきれるほどプアなリソースしかもたないデバイスで、同じアプリが動くことが当たり前になるのだが、それがアプリの在り方にどのような影響を与えていくことになるのかが気になるところだ。

 ちなみに、Build カンファレンスに併せたのか無関係なのか、このタイミングで、Windows 10は、Build 10074が公開された。基調講演の中でセンセーショナルなアナウンスがあったわけでもない。地味にビルドが進んだだけとも言える。

 このビルドから、Technical Preview という名前は廃止され、Insider Previewと改められた。Technical Previewに関する数多くのInsiderのフィードバックに敬意の気持ちをこめてということのようだ。そして、引き続き、製品版に向けて着々とビルドが進んでいくと見られる。

 Microsoftは、今、Windows 10というゴールを決めて、その完成に向かっているように見えるかもしれない。でも、もはや、そこでは10だの11だのといったバージョンは意味をなさなくなっているようにも感じられる。実際に彼らが向かっている開発ゴールはあらゆるものを飲み込み、業界全体の既存エコシステムを再構築する「Windowsユニバーサルプラットフォーム」であるということだ。もはやそれこそがバージョンを冠さない「Windows」であるとも言える。

 ソフトウェアに関わるあらゆる開発者のための新しい居場所だ。「ユニバーサル」がパーソナルコンピューティングに関わるアプリ開発の在り方をゼロリセットしたカンファレンス。後年、build 2015はそう振り返られることになるかもしれない。

(山田 祥平)