連載
» 2015年05月13日 19時00分 UPDATE

鈴木淳也の「Windowsフロントライン」:Windows 10でAndroidとiOSアプリがそのまま動く!?――「Project Astoria/Islandwood」に迫る (1/3)

「私たちの夢、それは“Write once, run anywhere”」――まさかMicrosoftからこの言葉を聞ける日が来るとは。

[鈴木淳也(Junya Suzuki),ITmedia]

Windows10はあらゆるアプリを取り込む?

 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まわりの開発事情についてまとめていこう。

tm_1405_win10J_2_01.jpg Windows 10においては、「Windows独自環境」「Webアプリ」「クロスプラットフォーム開発環境(ミドルウェア)」「他のモバイルプラットフォームのポーティング(移植)」の4種類のアプリ開発(実行)環境が用意されている。今回この中でも最も注目が高いのが「Other Mobile Platforms」で示される「Project Astoria(for Android)」と「Project Islandwood(for iOS)」だ

「Project Astoria」は日本でWindows Phoneを盛り上げるか?

 まずは比較的開発者やユーザーの関心が高い「Project Astoria」と呼ばれるAndroid apkの実行環境について触れていこう。これは、「Androidアプリを最小限の変更によって、Windowsで動作可能なアプリパッケージにする」というものだ。

 Astoriaの特徴は、Androidのアプリ配布パッケージである「apk」を、Windowsプラットフォーム上でほぼそのまま動作可能な点にある。この仕組みの利用にあたっては、Windowsカーネル上にProject Astoria専用のサブシステムが用意され、apkが「必要最小限の変更」のみで動作する。

tm_1405_win10J_2_02.jpg 一見すると似ているProject Astoria(for Android)とProject Islandwood(for iOS)だが、実際には使用するツールも仕組みもまったく異なる

 だが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ユーザーの評判を考えるならば、将来的なコード最適化が望ましい」といった感じだ。

tm_1405_win10J_2_03.jpg 記事後半のProject Islandwoodと比較してほしいが、Project Astoriaの実行環境は至れり尽くせりだ。まだ開発中とみられるものの、Androidで提供される各種APIのほか、通知などを含むクラウドサービスまでをもラッピングしてWindowsでのapk実行環境を用意する
tm_1405_win10J_2_04.jpg Project Astoriaで配布されるアプリは「apk」ではなく、UWPの配布形式である「AppX」である点に注意したい。つまりストアの仕組みはWindowsストアのそれに則っている
tm_1405_win10J_2_05.jpg ただし、完全にすべてのサービスがラッピングされているわけではなく、ストアの固有機能やライブタイルのようなWindows特有の機能については、コードの追加が必要になる
tm_1405_win10J_2_06.jpg Project AstoriaはWindowsカーネル直上に専用のサブシステムが用意され、この上でapkを包含したAppXのUWPアプリが動作する形態を採る

 このように、Androidアプリの実行形式であるapkに少々の改変を加えたものが、AppXというUWPアプリの実行形式に変換され、Windowsストアに登録される形となるが、こうした作業はAndroidの開発環境にProject Astoriaのプラグインを挟む形で行える。

 Androidアプリ開発にEclipseなどのツールを用いるデベロッパーは多いと思うが、リソース管理を含めて既存環境にプラグインを追加するだけで、Windows 10向けのアプリ開発もできるのだ。

 DalvikやART上で動作するJavaコードだけでなく、NDKを使うようなC++ベースのネイティブアプリ開発にも対応しており、比較的パフォーマンスを重視する人気の高いメジャーアプリでのポーティングも容易となるだろう。

 まだProject Astoria自体は開発途上にあるという話も聞くが、今年後半に日本でもWindows Phoneベースのデバイスが市場投入されることを考えれば、スマートフォン向けアプリストアがほぼ壊滅的な日本市場において大きなセールスポイントになるだろう。Project Astoriaについては専用ページが用意されているので、興味のある方は確認してみてほしい。

tm_1405_win10J_2_07.jpg 冒頭でも紹介したが、基本的なリソースファイルやIDEはEclipseなど、Androidアプリの開発で使っているものをそのまま流用し、Project Astoriaのプラグインを当てることでUWPストアアプリを出力する。そのため、本来であれば「Visual Studio」の用意されていないMacなどでもアプリ開発が行える
       1|2|3 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.