Windows 10の登場を間近に控えたタイミングで開催した本会議では、デスクトップアプリの将来について議論が交わされた。
powered by Insider.NET
2015年7月4日(土曜日)、@IT/業務アプリInsiderコーナー主催のオフラインセミナー「Windows 10でデスクトップアプリはどう変わるか」(スポンサー:グレープシティ、会場提供:日本マイクロソフト)を開催した。
2015年夏にリリースされるWindows 10では新たなアプリ開発プラットフォーム「UWP」(Universal Windows Platform)が登場する。従来のWindowsランタイムの後継となるプラットフォームのようでもあり、その一方で「UWP Bridges」という機構を使うことで、既存のデスクトップアプリやAndroid/iOSアプリ、WebアプリをUWPに移植することも可能だ。Windows 10とUWPの登場で、Windowsのデスクトップアプリはどう変わるのか。今回の会議は、Windows 10の新機能やUWPをテーマに、二つの技術セッションとパネルディスカッションで構成された。
各セッションの様子はYouTube上にまとめられたインデックスページから視聴できる。
セミナーは、日本マイクロソフトの田中達彦氏による技術セッションで始まった。このセッションでは、UWPの概要の説明と、UWP Bridgesの一つであるProject Westminsterのデモなどが行われた。
日本マイクロソフト 田中達彦氏
日本マイクロソフトのエバンジェリスト。もともとは開発ツールなどの開発に携わっていた開発者。マイクロソフトに転職してからは、マーケティングなどの職を経た後、エバンジェリストに任命される。著書も多数(8冊)。
セッションは、最初にマイクロソフトのビジョン、そしてWindows 10の概要についての話で始まった。
「Microsoft will empower people and organization on the planet to achieve more」(地球上の人々やあらゆる組織が、今よりも先に到達できるように手助けする)、「Windows will empower people of action to do great things」(人々が何かをするに当たって、より素晴らしいことをする手助けをする)というビジョンを背景に登場するのが「Windows、最後のメジャーバージョンアップ」といわれているWindows 10だ。
Windows 10がこれまでのWindowsと大きく異なる点に「Windows as a Service」という概念がある。これまでのWindowsでは、「OSをリリースする」→「時代の変化に合わせて、新機能を追加した新バージョンのOSをリリースする」→……という流れだったのだが、Windows 10では「Windows 10はそのまま、新機能がサービスとして追加されていく」のだ。
この概念の下、Windows 10はおよそ4カ月に1回のペースでアップデートが提供されていくとのことだ(企業で使う場合には、アップデートをまとめて適用する、あるいはセキュリティアップデート以外は適用しないといった選択肢もある)。
その後、話は多くの開発者が興味を持っているであろうUWPへと移った。
Windows 10はデスクトップPC、ノートPC、タブレット、Windows Phone、Raspberry Pi 2、HoloLens、Xbox、Surface Hubなど、さまざまなデバイス上で動作する。そして、デバイスごとに動作するWindowsのエディションは微妙に異なる。代表的なものがデスクトップPC/ノートPCなどで動作するWindows 10 Desktopと、Windows Phoneなどで動作するWindows 10 Mobileだろう。
Windows 10の全てのエディションに共通の部分を抜き出したOSのコア部分を「ONE CORE OS」と呼ぶことがある。さらに全てのデバイス/Windows 10のエディションで共通なAPIをくくり出したものがUWPということになる(これを「ONEアプリプラットフォーム」と表現することもある)。
そのため、UWP上で開発したアプリは(エディションごとに異なる機能を使っていなければ)全てのWindowsデバイス上で動作するということになるのだ。
ただし、既存のアプリをWindows 10上で動作させる場合には注意が必要だ。従来のWin32/.NETアプリは「Classic Windowsアプリ」(CWA)にカテゴライズされており、Windows 10 Desktop上でしか動作しないことだ。従来のWindows 8.x用のストアアプリも同様だ。逆に従来のWindows Phone 7.x/8.x用のWindows PhoneストアアプリはWindows 10 Mobile上でしか動作しない。これに対して、UWPを利用して開発されたアプリはWindows 10 DesktopでもMobileでも動作するのが大きな違いとなる。
UWP自体はこれまでのWindowsランタイムを進化させたものであり、C#/VB/C/C++/JavaScriptなどを用いて開発可能だ。もちろん、Windows 10用のアプリをWin32/.NETを使って開発することは可能だが、それはWindows 10 Desktop上でしか動作しないClassic Windowsアプリとなる。そのため、マイクロソフト的には「Windows 10におけるアプリ開発の中核に置かれるのはUWP」となる。
その後、UWPアプリの開発の流れについて説明があった。ここで重要なのは、WindowsストアはWindowsストア/Windows Phoneストアに分かれていたのが一つのストアにまとめられたことだろう(これを「ONEストア」と呼ぶ)。
そして、UWPアプリを開発する上で重要な概念がある。それは「三つのAdaptive」だ。一つは「UI(ユーザーインターフェース)のAdaptive」。そして「デバイスファミリーのAdaptive」。最後に「バージョンのAdaptive」だ。後者の二つを総称して「Adaptiveコーディング」と呼ぶ。
UWPアプリは一つのバイナリがさまざまなデバイス上で動作するが、注意しなければならない点もある。例えば、Windows Phoneには電話を掛ける機能があるが、通常のWindows PCにはないだろう。アプリから電話を掛けるにはWindows Phoneデバイス固有の機能を使わなければならない。逆にWindows Desktopではこうした機能は使えない。このようなデバイス固有の部分に「適応した」(adaptiveな)アプリを開発するには、上の三つの「Adaptive」を考慮しなければならないのだ。
「Adaptive」のデモとして「Adaptive UI」が実際にどんなものになるかが田中氏から披露された。ウィンドウサイズに合わせて、表示する内容が変化するので、セッションのアーカイブをぜひご覧いただきたい。
Windows 10で追加された新機能はUWPを念頭に置いたものがほとんどだ(CWAからは使えないものもある)。その中で特徴的なものとして、田中氏はアクションセンター(Windows 8.xのチャームが廃止され、アクションセンターが画面右端に表示されるようになった)、Cortana(日本語版では2015年7月現在未実装)、インク、ストレージの改善などを挙げ、その動作の仕組みなどについても説明があった。
特にUWPとCortanaを組み合わせることで、自作のアプリからCortana機能を活用できるようになるので、早期の日本語版実装が待たれる。また、Windows 10では指によるタッチとペンによるタッチを区別できることから(この技術を持っている会社は現在ではマイクロソフトだけとのことだ)、OneNoteでもノートを取るかのようにメモを取れるのだ。
Windowsストアについても面白い話があった。現在のストアアプリでは、収益の半分以上がアプリ内販売からのものであり、約3割が広告、残りが有償アプリという構成だそうだ。新しいWindowsストアではサブスクリプションやアフィリエイトという機能も追加される。
ストア関連では「ビジネスストア」という機能もある(Azure AD=Azure Active Directoryが必要)。ビジネスストアには、ある企業に所属しているユーザーがインストール可能なアプリを一覧したり、アプリを一括購入したり、請求書払いができたりするようになっている。
Windows 10/UWP/Windowsストアの話に続き、「既存アプリをWindows 10で動作させる場合の注意点」について話があった。一つはWindows 10のタブレットモードだ。もう一つはシステムフォントが「メイリオ」から「Yu Gothic UI」に変わったことだ。
タブレットモードがオフのときには、Windows 10ではWindows 8.x用のストアアプリもウィンドウ表示の状態で実行できる。つまり、デスクトップアプリとストアアプリの垣根がなくなっているといえる。オンにすると、アプリは全画面表示される。これはCWA(デスクトップアプリ)でも全画面表示されるということだ。画面サイズを固定していたデスクトップアプリをWindows 10で実行するときには、タブレットモードでの動作がどうなるかを確認する必要があるだろう。
システムフォントが「メイリオ」から「Yu Gothic UI」に変化したことも重要だ。画面が崩れたりしていないかの確認を確実にしておこう。
この他にも、Windows 8.x用のストアアプリでのチャームとアプリバーの表示方法の変更、アプリのライフサイクルの変更が行われている。これまでのWindowsストアアプリを開発していた方は、この辺りにも注意が必要だ。
続けて、UWP Bridgesの話があった。これは、既存のWin32/.NETアプリ、Webアプリ、iOSアプリ、AndroidアプリをUWPアプリ化するためのツール群のことだ。それぞれ“Project Centennial”、“Project Westminster”、“Project Astoria”、“Project Islandwood”と呼ばれている(いずれもコード名)。
Project Centennialは従来のWin32/.NETアプリをUWP化するためのブリッジだ。MSI形式のインストーラーを作成したものをAppX形式に変換し、その後、テスト/調整を行うことでUWP化する。もちろん、Windows 10 DesktopではCWAがそのまま実行できるので、これはWindowsストアを経由して従来のアプリを配布したい、アップデートをしたいといった目的で使うものだ。
Project AstoriaはAndroidアプリをUWP化するブリッジで、APKファイルをAppX化するものだ。ただし、Windows 10 Mobileだけを対象としている。Windows 10 Mobile上に「Project Astoria」サブシステムを置くと同時に、Googleの各種サービスをマイクロソフトの対応するサービスに置き換えることで、UWP化を実現している。
Project IslandwoodsはiOSアプリをUWP化するためのブリッジだが、Project Astoriaとは異なりObjective C言語で書かれたソースコードが必要になる。これをVisual Studio 2015に読み込ませることで、UWP化できる。そのため、Visual Studio 2015にはObjective Cコンパイラー、iOS互換APIのライブラリが用意される。
Project WestminsterはWebサイトやWebアプリをUWP化するブリッジだ。これについてはデモが行われているので、セッションアーカイブをご覧いただきたい。Visual Studio 2015のJavaScriptプロジェクトを使えば、いとも簡単にWebアプリ(Webサイト)をUWPアプリ化できるのが分かるはずだ。
最後にWindows 10 IoT、Surface Hub、HoloLensについてのフォローアップを行って、濃密な技術セッションは終了した。
技術セッション1の詳細については、以下の資料と動画を参照されたい。
Copyright© Digital Advantage Corp. All Rights Reserved.