ユニバーサルWindowsアプリ開発の第一歩、デバイス共有のファイル作成
アプリを実行する
アプリの実行は、「App1.Windows(Windows 8.1)」と「App1.WindowsPhone(Windows Phone 8.1)」を別個に行う必要があります。
では、まず「App1.Windows(Windows 8.1)」を実行してみましょう。
VS2013のメニューバーにある「ローカルコンピューター」と表示されている選択リストボックスの横にある[▼]アイコンをクリックし、「スタートアッププロジェクト」を選択します。すると「App1.Windows(Windows 8.1)」と「App1.WindowsPhone(Windows Phone 8.1)」の2つが表示されますので、最初は「App1.Windows(Windows 8.1)」を選択します(図6)。
では、VS2013メニューの[デバッグ]ー[デバッグ開始]と選択して実行します。図7のように表示されます。
では、次に「スタートアッププロジェクト」から「App1.WindowsPhone(Windows Phone 8.1)」を選択します(図8)。
すると「ローカルコンピューター」と表示されていた選択ボックスに各種エミュレーターが表示されます。自動的に選択される「Emulator 8.1 WVGA 4 inch 512MB(JA)」のまま実行すると、Windows 8.1のエミュレーターが起動します※。OSの読み込みの後、最初に図9の画面が表示されます。Windows Phone 8.1では見慣れた画面ですね。
※最初の起動には多少時間がかかる場合があります。
エミュレーターの起動後、しばらくして「薬師寺国安」と表示されます(図10)。
もちろん右についているコントロールパネルでエミュレーターを横に表示させることも可能です(図11)。
実機を接続して試す場合は、先ほどエミュレーターが表示されていた一覧の中に、「Device」という項目がありますから、Windows Phone 8.1の実機をPCと接続してから、こちらを選択します(図12)。
ここまで、ユニバーサルアプリとは何か、ユニバーサルアプリでWindows とWindows Phoneのファイルを共有するにはどうしたらいいかを駆け足で解説しました。
ファイルの共有は単にファイルをドラッグ&ドロップするだけですから簡単です。ただし、今回は「空のアプリケーション(ユニバーサル)」だったので思いのほか簡単だったのですが、これを「ハブアプリケーション(ユニバーサルアプリ)」を選択してファイル共有した場合は、意外と簡単には行きませんでした。
筆者が試した限りでは、XAMLコード内でNavigationBackButtonNormalStyleを読み込んでいる個所でエラーが発生しました。
これらのスタイルファイルの定義はそれぞれ、
- Windows用:
C:\Program Files (x86)\Windows Kits\8.1\Include\Winrt\Xaml\Design\ - Phone用:
C:\Program Files (x86)\Windows Phone Kits\8.1\Include\abi\Xaml\Design\
内にある「generic.xaml」ファイルの中で定義されていますが、「NavigationBackButtonNormalStyle」は、Windows用の「generic.xaml」ファイルだけに定義されており、Phone用の中には存在しないためエラーが発生したようです。
このことからわかるように、[戻る]ボタンなどを使用している画面の場合等は、完全にファイルの共有が可能という訳ではないので注意が必要です。
Windows では[戻る]ボタンはアイコン等で設定し、プログラム上から操作しますが、Windows Phoneにおける[戻る]操作は、物理的なボタン操作で行うようになっています。この時点で既にコードの共有化は不可能になります。
対策としては[戻る]ボタンを必要としない、単一画面で完結するアプリケーションを作成することが一番の早道です。
また、どうしても、複数の画面に遷移し、[戻る]ボタンを使用するアプリケーションの場合は、共有プロジェクトを使用せずに、それぞれ別個なプロジェクトとして画面を作成するのも良いかもしれません。
次回は、ユニバーサルアプリを開発するための環境構築をメインに解説していきます。