ユニバーサルWindowsアプリケーションの初期プロジェクトを作成して、その中身を覗いてみましょう。
(毎度ですが、本記事はプレビュー版ベースです。正式版では変更される可能性があります)
Visual Studio 2015 RCで新しいプロジェクトを作成します。
「新しいプロジェクト」ポップアップウィンドウの左ナビから「Visual C#」→「Windows」→「Windows Universal」を選択します。
Blank Appを選択します。Hubアプリのようなある程度画面ができたタイプのテンプレートは今のところ無いようですね。
Download Windows Universal ToolsからはVisual Studioインストール時にユニバーサルWindowsアプリの開発ツールをインストールしなかった場合に追加できます。
ソリューションエクスプローラーの中身はこんな感じ。
8.1のユニバーサルアプリと似たような構成ですね(App.xamlとかMainPage.xamlなど)。大きな違いは、一つのプロジェクトでWindows Phone、ストアアプリ両方(さらにIoTやXBoxも)に対応している点です。
8.1の頃のプロジェクトを参考に見てみると・・・。
こんな感じで、ストアアプリ用、Phone用、そして共有のSharedの3つのプロジェクトが作られていました。
App.xamlは再利用したいXAML定義などのリソースを記述できるファイルです。コードは8.1とほぼ同様です。
<Application x:Class="App1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App1" RequestedTheme="Light"> </Application>
RequestedThemeにLightが指定されているので、初期背景が白に近い色になっています。
8.1の頃のように黒地にしたい場合はDark指定で。
App.xaml.csは起動時や終了時の処理を記述するファイルですが、この辺の流れもWinRTとほとんど同じな気がします(もしかしたら共有できるレベルかも)。
ちょっと脇に道ですが、Visual Studio 2015 RCだとこんな感じで、利用してないUsingがグレー表示されて、一気に削除することができます。
画面を表すファイルです。初期プロジェクトだと、最初にここに定義された画面を表示します。
「.xaml」には、XAMLというXMLを用いて、画面の表示を定義します。「.xaml.cs」にはページのロジックを記述します。
8.1からの比較でいうと、これまたほとんど変わりないですね。
ここにはアプリケーションの設定や規約を記述します。
8.1の頃のようなGUIで設定できるデザイナーは今のところ無いようです。
TargetDeviceFamilyで対応するアプリケーションなどを指定できるようです。デフォルトはWindows.Universalで、これを変更することでストアアプリのみや、ストアアプリとPhoneのみでXBoxには展開しないなどが指定できるとか。
<Dependencies> <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10069.0" MaxVersionTested="10.0.10069.0" /> </Dependencies>
Assetsは画像などの素材を配置するフォルダーです。
この辺の構成も8.1同様。
ユニバーサルWindowsアプリは一つのバイナリでIoTにもストアプリにも、電話にも対応します。これまでのメトロUI(と呼ばれていた)アプリケーションの歴史から見ると「ようやくここまで来たかぁ」という感慨がわいてきますね。
というわけで、そのパッケージを作ってみようと思います。
さすがに、Windowsストアにアップロードするパッケージは作成できない(選択できなくなっていました)。
パッケージはアーキテクチャ毎に作成されます(x64、x86、ARM)。
初期プロジェクトを眺めた感じだと、やはりこれまでのWindows Phone、ストアアプリなどの流れを組むのでその辺の知識は役に立ちそうだという感触です。
WinRTを用いた開発経験がある場合は、一つのプロジェクトの中でどのようにデバイス毎の挙動の違い(画面、使えるセンサーなど)を表現するのかや、新しく変更、追加になったAPIなどを押えて行けば良さそうです。
Please give us your valuable comment