アプリを実行する

アプリを実行する

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

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

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

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30