« 【ユニバーサル Windows アプリ開発】 アプリバー用 「共有」 アイコンの在り処 #win8dev_jp #wpdev_jp | トップページ | 【Windows 10】全部で 7 エディション!? で、どのアプリがどれで動くのよ? #win10jp »

2015年3月 3日 (火)

【速報】 MWC2015 で発表された "the Windows 10 universal app platform" ~ 1バイナリのユニバーサル Windows アプリが作成可能に❢

2015年 3月 2日、Mobile World Congress 2015 における Microsoft のセッション で、Windows 10 の Windows ランタイム アプリ 開発について概略が公表されました。

その内容は、Windows blogs で紹介されています。 ⇒ A first look at the Windows 10 universal app platform (2015/3/2)、日本語訳 (2015/3/3)

Galloblog1v21

Mary Jo Foley 氏の記事も出ています。 ⇒ ZDNet: Microsoft's new Windows 10 Universal App Platform: A 'superset of WinRT' (2015/3/2)、日本語訳 (2015/3/4)

[2015/3/7追記] MS UKから、かなり詳しい記事が出ました ⇒ Windows 10 developer announcements from Mobile World Congress (from someone who was there) (2015/3/5) ←この記事を書いたのは、後でツィートを引用させてもらってる Matt Lacey (@mrlacey) 氏

※ 用語は、例によって落ち着くまでにしばらく掛かると思われます。 例えば、上の blog 記事には "Windows universal apps" ("platform" 抜き、アプリ形式を指していると思われる。翻訳記事では括弧付きで「Windows ユニバーサル アプリ」) という言葉が出てきます。 これは従来の "universal Windows apps" と同じ意味なのか異なる概念なのか、 今のところ不明です (翻訳では 『「Windows ユニバーサル アプリ」という、進化を遂げた新しい Windows アプリ』 となっていて、Win10 用の新しいものだと解釈しています。しかしその原文は 『a new class of Windows universal apps』(Windows ユニバーサルアプリの新しいクラス) であり、既存の概念であるとも読めます)。

 

the Windows 10 universal app platform
= 1 アプリ、1 プロジェクト、1 バイナリ、そして 1 ストア

ざっくり言えば、「共有プロジェクト抜きで、ユニバーサル Windows アプリが作れる❢」

「ついに、ようやく、1バイナリで PC / phone / Xbox etc. で動くようになった!!」
…のですが、どうやって実現しているのでしょう? 詳細は、どうやら 4月末に開催される //Build 2015 までおあずけのようです。
※ あ、もちろんですが、CPU タイプごとにバイナリを作れば、複数バイナリになります。

先の 2つの記事と MWC セッション会場からのツィートから推測してみます。

■ ランタイムとデプロイ方法の統一

1バイナリが複数プラットフォームで動くということは、少なくともアプリを起動するランタイムと、アプリを配布 (ダウンロード&インストール) する仕組みが統一されたはずです。

これは API が同じものになったという意味ではありません。
API には相違点が残っているでしょう。 デスクトップ PC と Raspberry Pi の両者にまったく同じ API セットが載ると考えるのは無理があります。

20150302_mwc2015_03a
[撮影: Tom Warren @tomwarren ]

API の共通に使える部分を「One API surface」と呼んでいるようです。

■ Extension SDKs

では、デバイス固有の API (例えば、phone には無くてデスクトップ PC には存在する API) を使いたいときは、
どうするのでしょう?

「Extension SDKs」によって、使い分けができるとのこと。
具体的には、Windows.Foundation.Metadata.ApiInformation クラス (Win10TP9926で追加されました) を使って、実行時に API が叩けるかどうかチェックしろ、 ということらしいです。


[2015/3/7追記] また、 MS UK の記事によれば、  ビルドするときのターゲット指定が、 これまでの OS バージョンから、 Windows のユニバーサルアプリプラットフォームのバージョンに変わるとのこと。

■ Adaptive UX

XAML を調整する新しい方法も提供されます。

The ability to create a different XAML file for specific platforms

[2015/3/7追記]
XAML views for devices: MS UK の記事によれば、 プラットフォームごとの XAML を特別な名前のフォルダーに置いておけば、 「魔動的に」 (auto-magically) 適切な XAML を選択してくれるそうです。 解像度違いの画像や、 言語別の文字列リソースファイルと同じような仕組みなんでしょうね。

また、 Visual State の記述に、新しく「Adaptive トリガー」が追加されます。 これでスクリーンサイズによって実行時にレイアウトを切り替えられるようです。

レイアウト調整には、新しい RelativePanel コントロールも便利らしいです。

また、コントロールそのものがデバイスによって動きを変えるようにもなります (先の blog 記事では、例えばフライアウト コントロールはタッチ デバイスでは大きなタッチ ターゲットを表示するそうです)。

■ Natural user inputs 対応

今までも、マウスとタッチを気にせずアプリが書けました (例えば、ボタンのクリックイベントは、マウスでクリックしても指でタップしても同じように発生する)。

Windows 10 では、さらに以下のような入力にも対応するようです。
natural speech, inking, gestures, and user gaze

ジェスチャと gaze (注視) は、HoloLens 対応かな (カメラでもジェスチャが使えるようになってほしいな)。

■ その他

  • アプリから利用できるクラウドサービスの強化: Cortana AI、OneDrive、Application Insights など
  • Cortana integration: コルタナの検索結果に、インストールされているアプリが出るようになるらしい
  • hosted web apps ("Web apps."): XAML ではない。Web サイトからストア アプリを作る。 その JavaScript から、universal APIs (例えば notifications、camera、contact list、calendar など) を呼び出せるとのこと。

そうそう、phone の ○○AndContinue APIは obsolete になるっぽいです♪



それと。 Windows 10 になっても従来通りデバイスごとに作ったっていいんだからねっ❢

 

|

« 【ユニバーサル Windows アプリ開発】 アプリバー用 「共有」 アイコンの在り処 #win8dev_jp #wpdev_jp | トップページ | 【Windows 10】全部で 7 エディション!? で、どのアプリがどれで動くのよ? #win10jp »

プログラミング」カテゴリの記事

* プログラミング ( Metro スタイル )」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 【速報】 MWC2015 で発表された "the Windows 10 universal app platform" ~ 1バイナリのユニバーサル Windows アプリが作成可能に❢:

« 【ユニバーサル Windows アプリ開発】 アプリバー用 「共有」 アイコンの在り処 #win8dev_jp #wpdev_jp | トップページ | 【Windows 10】全部で 7 エディション!? で、どのアプリがどれで動くのよ? #win10jp »