ユニバーサルWindowsアプリ開発の第一歩、デバイス共有のファイル作成

2014年7月11日(金)
薬師寺 国安

アプリを実行する

アプリの実行は、「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)。

図6:スタートアッププロジェクトに「App1.Windows(Windows 8.1)」を選択する(クリックで拡大)

では、VS2013メニューの[デバッグ]ー[デバッグ開始]と選択して実行します。図7のように表示されます。

図7:「App1.Windows(Windows 8.1)」が実行された(クリックで拡大)

では、次に「スタートアッププロジェクト」から「App1.WindowsPhone(Windows Phone 8.1)」を選択します(図8)。

図8:「スタートアッププロジェクト」から「App1.WindowsPhone(Windows Phone 8.1)」を選択(クリックで拡大)

すると「ローカルコンピューター」と表示されていた選択ボックスに各種エミュレーターが表示されます。自動的に選択される「Emulator 8.1 WVGA 4 inch 512MB(JA)」のまま実行すると、Windows 8.1のエミュレーターが起動します。OSの読み込みの後、最初に図9の画面が表示されます。Windows Phone 8.1では見慣れた画面ですね。

※最初の起動には多少時間がかかる場合があります。

図9:Windows Phone 8.1の画面が表示される(クリックで拡大)

エミュレーターの起動後、しばらくして「薬師寺国安」と表示されます(図10)。

図10:Windows Phone 8.1エミュレーター内に「薬師寺国安」と表示された(クリックで拡大)

もちろん右についているコントロールパネルでエミュレーターを横に表示させることも可能です(図11)。

図11:Windows Phone 8.1エミュレーターを横にして表示した(クリックで拡大)

実機を接続して試す場合は、先ほどエミュレーターが表示されていた一覧の中に、「Device」という項目がありますから、Windows Phone 8.1の実機をPCと接続してから、こちらを選択します(図12)。

図12:実機を接続する場合は「Device」を選択する

ここまで、ユニバーサルアプリとは何か、ユニバーサルアプリで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における[戻る]操作は、物理的なボタン操作で行うようになっています。この時点で既にコードの共有化は不可能になります。
対策としては[戻る]ボタンを必要としない、単一画面で完結するアプリケーションを作成することが一番の早道です。

また、どうしても、複数の画面に遷移し、[戻る]ボタンを使用するアプリケーションの場合は、共有プロジェクトを使用せずに、それぞれ別個なプロジェクトとして画面を作成するのも良いかもしれません。

次回は、ユニバーサルアプリを開発するための環境構築をメインに解説していきます。

薬師寺国安事務所

薬師寺国安事務所代表。Visual Basic プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。1997年に薬師寺聖とコラボレーション・ユニット PROJECT KySS を結成。2003年よりフリーになり、PROJECT KySS の活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Windows Phoneアプリ開発を経て、現在はWindows ストア アプリを多数公開中

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています