Windows 10のアプリ実行基盤「Universal Windows Platform(UWP)」は、1つの実行ファイル(AppX)でPCからスマートフォン、果ては「IoT」などと呼ばれる組み込み型デバイスまでカバーし、すべて共通のアプリが動くようになっている。その概要は、Build 2015(米Microsoftの開発者会議)のリポートで触れた通りだ。
またWindowsプラットフォームの特徴として、「さまざまな開発言語に対応」という点がある。従来から対応してきたC++やC#、Javaといった言語に加えて、「Hosted Web Apps」と呼ばれるHTML+CSS+JavaScriptで記述されたWebページをそのままUWPのアプリとして利用可能な仕組み、そして特に今回のBuild 2015で新たに発表された「Androidアプリ(apk)の実行」や「(iOSやMac OS Xアプリ開発に用いられる)Objective-Cのサポート」は、開発者だけでなく一般ユーザーも驚かせるニュースとなった。
つまり、Windows 10ではAndroidアプリやiOSアプリが最小限の手間で動作することになり、人気のモバイルデバイス向けアプリがWindows 10搭載デバイス上で幅広く利用できるようになることが期待できるわけだ。さらに、これまでAndroidやiOSに比べて遅れていたWindowsアプリおよびアプリストアが、Windowsの膨大な動作デバイス数を追い風に、巻き返す可能性も秘めている。
今回は、Androidアプリのポーティング(移植)を促す「Project Astoria」、iOSアプリのポーティングを促す「Project Islandwood」を中心として、こうしたUWPまわりの開発事情についてまとめていこう。
まずは比較的開発者やユーザーの関心が高い「Project Astoria」と呼ばれるAndroid apkの実行環境について触れていこう。これは、「Androidアプリを最小限の変更によって、Windowsで動作可能なアプリパッケージにする」というものだ。
Astoriaの特徴は、Androidのアプリ配布パッケージである「apk」を、Windowsプラットフォーム上でほぼそのまま動作可能な点にある。この仕組みの利用にあたっては、Windowsカーネル上にProject Astoria専用のサブシステムが用意され、apkが「必要最小限の変更」のみで動作する。
だがProject Astoriaにおける本当のポイントは、「UWPアプリ開発にあたってAndroidでの開発環境をそのまま流用できる」という点にある。本稿後半で解説するiOS向けのProject Islandwoodと後ほど比較してほしいが、「Google PlayにAndroidアプリを登録すると同時に、WindowsストアにもそのままUWPアプリを登録してください」というProject Astoriaの思想がよく現れていると言える。
Project Astoriaの実現にあたり、MicrosoftはWindowsでのAndroidアプリ動作に必要な各種APIだけでなく、通知サービスをはじめとするクラウド側のサービスやセンサー関連、グラフィックスのサブシステムまで、すべてサブシステムとして用意し、apkの「ほぼそのままでの実行」を補助している。筆者が初めてこの仕組みの説明を聞いたときは「力業」とか「至れり尽くせり」といった感想を抱いたが、これがProject Astoriaだ。
ただし注意点がいくつかあり、Androidアプリのルック&フィールをそのまま提供する一方で、Windows 10向けのUWPアプリとして配布するうえでWindowsストアの仕組みを利用しており、実際にProject Astoriaで配布されるパッケージはapkではなくAppXだ。
またWindowsストアやWindows 10の仕組みを用いる以上、apkそのままではなく“ある程度”のコード変更が必要になる。具体的には「In-App Purchase」のようなアプリ内課金の仕組みや、Windows 10特有のライブタイルといった仕組みなどがそれだ。
また本当の意味でWindows 10デバイス全般での動作を考えるならば、異なるスクリーンサイズやプラットフォーム環境でも最適な形で動作するようなコード改変が必要となる。つまり「最低限の労力でAndroidアプリをWindowsストアにも登録できるが、もしWindowsユーザーの評判を考えるならば、将来的なコード最適化が望ましい」といった感じだ。
このように、Androidアプリの実行形式であるapkに少々の改変を加えたものが、AppXというUWPアプリの実行形式に変換され、Windowsストアに登録される形となるが、こうした作業はAndroidの開発環境にProject Astoriaのプラグインを挟む形で行える。
Androidアプリ開発にEclipseなどのツールを用いるデベロッパーは多いと思うが、リソース管理を含めて既存環境にプラグインを追加するだけで、Windows 10向けのアプリ開発もできるのだ。
DalvikやART上で動作するJavaコードだけでなく、NDKを使うようなC++ベースのネイティブアプリ開発にも対応しており、比較的パフォーマンスを重視する人気の高いメジャーアプリでのポーティングも容易となるだろう。
まだProject Astoria自体は開発途上にあるという話も聞くが、今年後半に日本でもWindows Phoneベースのデバイスが市場投入されることを考えれば、スマートフォン向けアプリストアがほぼ壊滅的な日本市場において大きなセールスポイントになるだろう。Project Astoriaについては専用ページが用意されているので、興味のある方は確認してみてほしい。
Copyright © ITmedia, Inc. All Rights Reserved.