既存のアプリをWindows 10 アプリに変換する Windows Bridge


 

図1

Microsoft は現在、様々な既存のアプリを Windwos10 のアプリ ユニバーサル Windows アプリケーション に変換できる仕組み、Windows Bridge を開発しています。

 

Windows 10 への4つの架け橋

今回、Windows 10に向けてマイクロソフトは4つのアプリの架け橋「Windows Bridge」を用意しました。その4つとは

  • Web アプリ
  • Win32/.NET アプリ
  • Android アプリ
  • iOS アプリ

Android アプリも驚きですが、Web アプリを Windows 10 のアプリに、というのも驚きです。

image

 

Web アプリをネイティブアプリに

Web アプリを作られている人だと、いわゆるネイティブアプリは敷居が高いところです。やはり開発言語などの問題が大きいですからね。もちろん WebView などを使ってネイティブアプリ化するケースも多く見られます。ネイティブアプリ化してストアに挙げれば、露出も多くなりますし、例えば課金も出るなども利用できるようになります。

こういった仕組みを提供するのが Windows Bridge for Web です。当初は変換ツールのようなイメージがありましたが、現在は HTML5/JavaScript で作る Windows 10 アプリ のひな型を応用する形で実現できるようになっています。 具体的な作成方法はこちらに記載しています。必要な環境は Windows 10 と Visual Studio 2015 です。無料の Community エディションでOKです。

  1. 新しいプロジェクトからJavaScript→ Windows →ユニバーサル→空のアプリ
  2. css フォルダ、jsフォルダ、WinJSフォルダ、default.html をすべて削除します。
    (やらなくても大丈夫だけど、特に必要はないので一応)
  3. package.appmanifest をえらんで F7 を押して開く
  4. 以下のように、アプリ化したいURLに書き換え、黒文字の部分も追加します。

    StartPage="default.html">

    StartPage="http://codepen.io/seksenov/pen/wBbVyb/?editors=101">

    <uap:ApplicationContentUriRules>
    <uap:Rule Match="http://codepen.io/seksenov/pen/wBbVyb/?editors=101" Type="include" WindowsRuntimeAccess="all"/>
    <uap:Rule Match="http://*.codepen.io/" Type="include" WindowsRuntimeAccess="all"/>
    </uap:ApplicationContentUriRules>

    注)<uap:Rule Match="http://*.codepen.io/"  の行は必要に応じて

  5. F5をキーを押せば動作確認ができます。

 

Web で使えるツールなどがあればぜひ試してみてください。なお、Flash Player を使用することはできません。

 

今までのデスクトップアプリを ストアで公開

今まで使ってきた、Windows アプリは Windows 8 から登場したストアに登録するタイプのアプリケーションとは全く異なったバイナリー形式をしています。ですから、Windows にストアが登場しても今までのアプリを登録することはできないのです(一部登録だけはできます購入サイトへのリンクのみ)

この Windows Bridge for Classic Application はこれまでの Windwos アプリを、ストアに登録できるようにパッケージしなおして、ストアに登録できるように変換してくれるシステムです。用意するのはアプリのインストーラーである msi ファイルのみ。あとは変換すればストアに登録できるパッケージ(AppX)を作ってくれます。

image

もちろんアプリが特殊なことをしている場合、動かないケースがあるかもしれませんが、通常のアプリであれば特に変更せずに動作するのでは?といわれています。 ただし、アプリケーション自体は改変をしていないため、ここで作ったアプリケーションが動作するのはいわゆる従来の PC 用の OS である Windows 10 Desktop のみとなります。

 

Android の APK を変換して動かす

このプロジェクトが目指すところはシンプル。Android のアプリをいかに簡単に Windows で動くようにするのか?

image

Windows Bridge for Android は Android のサブシステムを用意して、Android のアプリを Windows 10 の ARM CPU上で動作させるというイメージです。そのためアプリケーションのベースは Android のパッケージである APK を使います。ソースコードもソースプロジェクトも必要ありません。ただこのような形で動かすために、ソースも動作環境も ARM CPU対応という制約があります。

  • ターゲットは ARM ベースの APK
  • 動作環境は ARMベースの Windows 10 Mobile

image

最終的には、この Android のアプリのソースを、ストアに公開しWindows 10 にインストールできるように、APK をもとに Windows 10 アプリのパッケージを作成することになるでしょう。

そしてこの Bridge のポイントは アプリで使っている Google Play サービスへの対応です。アプリから Google Play で提供されているサービスを使っている場合があるので、同等のサービスを Windows 10側でも用意してそちらに切り替えるようにする予定です。例えば、Google Map を使っていれば、Bing Mapに変換したり、Google Play の課金モデルを使っているなら、Windows Store の課金サービスに変換するといった感じです。勿論、OSの機能の違いによって、その部分を使っているアプリはそのままでは動作できず修正が必要なものもあるかもしれません。しかし、いずれにせよ登場が楽しみなサービスの一つです。

現在は、Webサイトからご登録していただいた方に対して、一部の方からクローズドβテストを進めています。興味がある方はぜひご自身の開発されたアプリの Apkファイルを用意して、ご登録下さい。

 

Visual Studio でXCode Project をコンパイル!

iOS のアプリも Windows 10 アプリに変換してしまいます。ただ、こちらは Android のアプリ変換とはちょっと違います。この Windows Bridge for iOS で行うのは、iOS アプリの XCode プロジェクトを Visual Studio でインポートしてしまうのです。 なお、ここで対応しているのは、Objective-C に限っており、Swift のプロジェクトには対応していません。

Project Islandwood 用のSDKを Visual Studio に組み込むことで、Objective-C を扱えるようになり、さらに XCode プロジェクトをそのまま Visual Studio に読み込みます。そしてコンパイル実行すれば Windows 10 アプリが完成します。もちろん、Windows 10 のPCでも、タブレットでも、スマートフォン上でも動きます。

現在、開発者向けのプレビュー版が公開されました。こちらには Windows Bridge for iOSを使うための Visual Studio 拡張ツール (Binフォルダ内)や既に返還済みのサンプルアプリ(Samplesフォルダ)が含まれています。サンプルアプリのプロジェクトを実行すると、iOSのアプリのコントロールが再現されていることがわかります。OpenGL ES のグラフィックなどもきちんと変換されていることがわかります。MacOS上で開発環境がある方であれば、同じプロジェクトを XCode 上で読み込み iPhone で確認してみると分かりやすいでしょう。

4087_image_6 0211_image_8

 

登場してフィードバックを

現在開発中のプロジェクトも、開発が進むにつれて順次開発者向けにプレビュープログラムという形で展開してきます。もし興味があれば、早期チャレンジのプログラムに登録してみてください。

https://dev.windows.com/ja-JP/uwp-bridges/

shintak2 1

高橋 忍
プラットフォーム エバンジェリスト
日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部

http://blogs.msdn.com/b/shintak/

Comments (0)

Skip to main content