ケータイ用語の基礎知識
第722回:UWP とは
(2015/9/1 13:29)
「UWP」とは、「普遍的なWindowsプラットフォーム」を意味するUniversal Windows Platformの略です。Windows 10で提供される、新しいアプリケーション実行環境です。この環境向けに作られたアプリを「Universal Windowsアプリ」あるいは「UWPアプリ」などと呼びます。
UWPアプリでは、スマートフォンならスマートフォン用というように限定することも可能なのですが、アプリを作成する際に「デバイス限定なし」という設定にすることで、同じプロジェクトで作られた1つのプログラムを、デスクトップパソコンのWindows 10や、組込用のWindows 10 IoT Core、今後登場する見込みのWindows 10 Mobile、電子黒板タイプの「Surface Hub」と、さまざまなデバイスでも実行するができるようになります。
デスクトップ向けWindowsでは、互換性のため、Windowsの基本的なAPIである「Win32」など、従来の仕組みを使ったアプリケーションももちろん利用できるのですが、これらはWindows 10 MobileやWindows 10 IoT Coreで動かすことはできません。
一方、UWPであれば、1つのバージョンのアプリをストア上に登録すれば、どのデバイスのWindows 10でも、ストアからアプリをインストールして利用できるわけです。これがWindows 10世代の大きな特徴である、「One Windows」というコンセプトなのです。
同じアプリで、使用状況に適応したUI
このUWP環境は、Windows 8から搭載されたモダンアプリ実行環境をさらに進化させたものです。UWPの大きな特徴としては「AdaptiveUX」という概念の導入が挙げられます。これにより、同じアプリケーションの表示を、利用する環境にあわせて変更できるようになりました。
Adaptiveとは「適応性の(ある)」といった意味の英単語ですが、この言葉の通り、AdaptiveUXとは、画面に表示できる情報量などをデバイスなどにあわせて変更する仕組みです。簡単に言うと、Windows 10世代のOSでは、表示できる画面の大きさに応じて表示が切り替わります。たとえばスマートフォンのような小さな画面では、画面上に示す情報は少なく、デスクトップパソコンのように大きな画面では内容を多く表示させるようになりました。
これまでのWindowsアプリの実行環境とは違い、UWPではユーザーインターフェイスに使われる基本的な要素が用意されており、XAMLというマークアップ言語で配置などを記載するようになっています。Windowsは、スケーリングアルゴリズムを使って、ユーザーとデバイスの間の視聴距離と画面の密度(ピクセル/インチ)を考慮して、コントロール、フォントといったUI 要素を体感的に同じように使えるサイズでこれらを表示します。
たとえば、「画面上に24pxで文字を表示する」、というようなアプリを作った場合、3m離れて見る電子黒板と、手元にある5インチディスプレイのスマートフォンと、全く見る環境が異なっても、それぞれの環境にあわせた読みやすい形で表示するのです。
適応性のあるユーザーインターフェイスは、内部的には、Continuumというシステムが取り仕切っており、画面における部品の表示間隔や、入力もその状況に応じたものをその都度、検知できるようになっていて、画面上で指をフリックしても、マウスでカーソルを動かしても、はたまたXboxのコントローラのボタンを押したとしても同じような感覚で画面上の要素を左右に動かすことが可能になります。
これによって、Windows 10 Mobile搭載スマートフォンを、大きなディスプレイに接続すると、アプリは大画面向けの表示となります。さらにキーボードとマウスを接続すればパソコンと同じような間隔で入力や操作が可能になるとされています。
AndroidやiOSアプリ、UWPへの移行も
UWPでは、Windows 7/8で提供されてきたWPF(Windows Presentation Foundation)環境やモダンアプリ環境を踏襲しており、アプリの作成方法や配布方法も、これらの仕組みを使ったアプリケーションを作成していた場合は、それに近い方法を利用することができるようになっています。
たとえば、UWPアプリを作成するにはアプリのユーザーインターフェイス定義をXAMLというマークアップ言語で記述する必要がありますが、これは、以前から使われていたマイクロソフトの標準の開発環境である「Visual Studio」を使って作成することができますし、あるいはアプリを配布する方法として利用されているストアも、Winedows8以降のモダンアプリの提供方法と同じです。
また、アプリの配布形式も、Windows 8.1/Windows Phone 8.1 以降で採用されたappxという形式がそのまま踏襲されています。ただし、UWPアプリでは、これまで.exeファイルや.msiファイルで行っていたいように、インストールパッケージを、自社/開発者自身のWebサイトから直接ダウンロード……というようなことはできなくなります。
一方、モバイル向けアプリについては、UWPの仕組みを利用して、他のプラットフォーム向けに作ったアプリケーションをUWPに簡単に移植できるような仕組みも用意されました。それが、Android、iOSからの「UWPブリッジ」という開発ツールです。このツールを使うことで、ほとんどコードの変更なしにAndroidアプリ、iPhoneアプリがWindowsスマートフォンでも実行可能となるでしょう。
Androidアプリ向けの仕組みは、今秋後半にリリースされる予定です。一方、iPhoneアプリ向けの仕組みが提供される時期はまだ未定です。