このページの本文へ

Linux/MacやiOS/Android対応の「Visual Studio Code」「Universal Windows Platform」など

プラットフォームの壁を越える!「Build 2015」新発表のポイント

2015年05月07日 06時00分更新

文● 塩田紳二 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

既存のAndroid/iOSアプリを簡単にWindows移植可能に

 昨年のVisual Studioの発表では、Windows Store向けに開発したコードをAndroid/iOSに移植する方法が提示されたが、今回の発表はその逆だ。一部ニュースでは誤って報じられているが、Windows 10にAndroid/iOSアプリを動作させる機能が加わるのではなく、Android/iOSアプリのソースコードを簡単にUWP向けに移植できるというわけだ。

 なお、Androidアプリ、iOSアプリをUWP対応にする手法は、それぞれ異なる。

 AndroidアプリのUWP対応は「Project Astoria」と呼ばれており、現在、限定プレビューが始まっている(応募には開発済みのAndroidアプリAPKが必要)。グーグルが提供する「Android Studio」(Androidアプリ開発用のIDE)に追加できるWindows Phoneエミュレータなどを用意することで、既存のAndroidアプリ開発環境を使ってテストやデバッグが行える。また、ライセンスの関係でUWPアプリでは利用できないサービスは、マイクロソフトのサービスに変更することも可能だ(たとえば「Googleマップ」から「Bingマップ」へ、など)。

 Project Astoriaでは、Android用のIDEも利用できるように、UWPアプリの.appxパッケージにAndroidアプリの.apkパッケージを入れる。また実行は、Windows 10側に作られた「Astoriaサブシステム」でAndroid互換の環境を作り、UWPのAPIに変換する仕組みとのこと。ただし基本的には、開発者が自身のパッケージをUWP向けにするためのもので、エンドユーザーが任意のAndroidアプリ(APK)を動かす目的のものではないようだ。

訂正とお詫び:Androidアプリ(Project Astoria)について、一部正確ではない記述がありましたので、以上の2段落を上記のとおり訂正いたします。(2015年5月7日)

UWP Bridgesを使うことで、Android用のJavaやC++コードからWindows Store配布用の.appxパッケージを作成できる

披露されたデモ。Android向けのホテル検索アプリ「Choice」が、Windows Phone上でも動作している(アイコンが同一)

 これに対して、iOSアプリのUWP対応は「Project Islandwood」と呼ばれる。これはVisual Studioで、iOS用のObjective-C(およびC++)コードのコンパイルや開発を可能にするもの。Xcode(iOSの開発環境)のプロジェクトをVisual Studioに直接読み込み、ビルドやデバッグが可能になる。こちらもUWP向けのライブラリ、ランタイムを併用するようだが、Visual Studio内で直接ソースコードを扱えるため、Visual StudioユーザーがiOSアプリをUWPに移植するような作業では(前述のAndroidよりも)有利と言える。

使いなれたVisual Studioで、iOS用のObjective-CやC++コード(ネイティブコード生成用)も.appx化できる

 残る2つのUWPアプリ対応手法についても説明しておこう。

 Windowsデスクトップ用アプリ(.NET/Win32アプリ)のUWP対応は「Project Centennial」と呼ばれている。これは、デスクトップアプリを“ラップ”して、UWPで動作させる仕組みだ。これも一部誤った報道がなされているが、Windows Storeでデスクトップアプリを直接配布できるようになるわけではない。

 UWPの対象には、デスクトップ環境のない旧Windows Phoneなども含まれており、単純に.NET/Win32アプリを配布することはできない。また、UWPとデスクトップでは、実行ファイル形式やAPI環境などがまったく異なっている(双方に固有のAPIがある)。既存のデスクトップ向け.NET/Win32ソースコードを再利用し、おそらくはデスクトップ互換のAPI環境をライブラリとして用意して、外側をストアアプリの形式としてパッケージを作成するものと思われる。あくまでも、.NET/Win32アプリの開発者が既存のソースコードを生かしつつ、アプリをUWP対応にするものだ。

 最後は、Webサイトを直接UWPアプリ化するもので「Project Westminster」と呼ばれている。具体的にはホストされているWebサイトを、オープンソースプロジェクトの「manifold.js」(Node.jsで動作するWebサイトをアプリに変換するツール)を使って、「Apache Cordova」(あるいは「PhoneGap」)でビルド可能なコードに変換する。つまり、Web/クラウドサービスを、そのままUWPや他のモバイルプラットフォーム向けアプリのコードベースとすることができる。

Webサイトを構成するHTMLやCSS、JavaScriptをそのまま.appxに変換できる。変換にはmanifold.jsを使い、Apache Cordova/PhoneGap用のコードが生成される

 なお、このmanifold.jsのようなHTMLベースのアプリ開発で利用できるデバッガシステムとして、2日目の基調講演では「Vorlon.js」が発表された。これは、Node.jsなどをベースに動作するもので、オープンソースになっている。

(→次ページ、GitHubとの提携により、Azure上に自社専用GitHubを展開可能に

カテゴリートップへ

  • 角川アスキー総合研究所
  • アスキーカード