SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Windowsストアアプリケーション

Windowsストアアプリの概要と、開発の第一歩

速習 Windowsストアアプリケーション 第1回

Assets

 Assetsフォルダーには、画像やメディアファイルなどのファイルを配置します。初期状態では以下のファイルが配置されています。

  • Logo.gif
  • SmallLogo.gif
  • SplashScreen.gif
  • StoreLogo.gif
Logo.gif

 スタート画面のタイルに用いる正方形の画像です(150×150ピクセル)。

SmallLogo.gif

 アプリ一覧、アンインストール時などに利用される正方形画像です(30×30ピクセル)。

SplashScreen.gif

 アプリ起動時に表示される、スプラッシュスクリーンに利用される画像です(620×300ピクセル)。

StoreLogo.gif

 アプリの配布先のWindowsストアで利用される画像です(50×50ピクセル)。この画像をデフォルトのまま提出するアプリケーションがたまにあるので注意してください。

Common

 プロジェクトや追加する項目に応じて、必要なクラスやリソースファイルが配置されるフォルダです。「Common」フォルダには以下のファイルがあります。

  • StandardStyles.xaml

 なお、「新しいアプリケーション」プロジェクトでは「Common」フォルダに配置されるファイルはスタイルを定義したファイル1つですが、この後紹介するプロジェクトでは複数のファイルが配置されます。

StandardStyles.xaml

 アプリケーションバーのボタンスタイルなど、標準的なスタイルが定義されたリソースファイルです。

StandardStyles.xamlの一部スタイルのコメントアウト

 Windowsストアアプリケーションの開発環境がRTM(工場出荷版)になったとき、「StandardStyles.xaml」の一部スタイルがデフォルトでコメントアウトになりました。
アプリケーションバーのボタンスタイルなどは必要に応じてコメントアウトを外す必要があります。無駄なコードを含めないためかと考えますが、そんなに効果あるのかなとも思います。

App.xaml

 アプリケーションの起動時に読み込まれるエントリーポイントファイルです。「App.xaml」で共通のリソースなどを読み込んでおくと、すべてのページでリソースが利用できて便利です。初期状態では、前述の「StandardStyles.xaml」がリソースとして読み込まれています。

App.xamlのリソース読み込みコード
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>

            <!-- 
                プラットフォームの外観の共通の要素を定義するスタイル
                Visual Studio プロジェクトおよびアイテム テンプレートで必要です
             -->
            <ResourceDictionary Source="Common/StandardStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>
</Application.Resources>

App.xaml.cs

 「App.xaml.cs」では、アプリケーション起動時の動作(OnLaunchedメソッド)と、アプリケーション終了時の動作(OnSuspending)を定義します。OnLaunchedメソッドの以下のコードで、最初に表示するページを指定しています。

App.xamlのリソース読み込みコード
// ナビゲーション スタックが復元されていない場合、最初のページに移動します。
// このとき、必要な情報をナビゲーション パラメーターとして渡して、新しいページを
// 構成します
if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
{
    throw new Exception("Failed to create initial page");
}

 これは最初に表示するページが次で述べる「MainPage」であるという指定です。

 ページからページの移動は「rootFrame.Navigate(typeof(ページ名))」という形で行います。rootFrameはFrameクラスのインスタンスで、これから紹介する各ページクラスからも「this.Frame」という書式で呼び出してページ遷移を行うことができます。

ページクラスからのページ遷移のサンプル
public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
        // サンプル、通常はこんなところでページ遷移はしない
        this.Frame.Navigate(typeof(ページ名));
    }

 アプリケーションの起動時は通常OnLaunchedイベントハンドラーが呼び出されますが、検索チャームから起動した場合などは別のイベントハンドラーが呼び出されることがあります。

 以下にいくつかのイベントハンドラーを紹介します。

OnFileActivated

 ファイルの関連付け対象としてアプリケーションが起動された場合に呼び出されるイベントハンドラーです。

OnSearchActivated

 検索コントラクトから起動された場合に呼び出されるイベントハンドラーです。

OnShareTargetActivated

 共有コントラクトから起動された場合に呼び出されるイベントハンドラーです。

 主にコントラクトから起動される場合に異なるイベントハンドラーが呼びだされます(コントラクトについては後の回で紹介予定)。

 App.xaml.csのAppクラスはApplicationクラスを継承しています。

 Applicationクラスの定義はソースコードのクラス名を右クリック後に「定義へ移動」で確認できます。

ソースコードのクラス名を右クリックして「定義へ移動」を選択すると、
ソースコードのクラス名を右クリックして「定義へ移動」を選択すると、
クラスの定義を確認できる
クラスの定義を確認できる

MainPage.xaml

 先述の「App.xaml.cs」でスタートページに指定されていたページです。

 ページを表すファイルは、見た目を定義するXAMLで書かれた「ページ名.xaml」と、ロジックをC#で記述する「ページ名.xaml.cs」の2つがセットになっています。後者のC#ファイルを「コードビハインド」と呼ぶこともあります。

 MainPage.xamlには以下のタグが記述されています。

Page

 一つのページを表すページクラスです。

 MainPage.xamlを含めページクラスは最上位にPageクラス(もしくはPageクラスを継承したクラス)を持ちます。

Grid

 レイアウトを表現するためのコントロールです。

 Gridは格子状にレイアウトを組むことが可能ですが、「新しいプロジェクト」では何も定義されていないGridコントロールが配置されているだけです。

 「MainPage.xaml」はGridコントロールというレイアウト用のコントロールが配置されただけのシンプルな構成です。ここからコントロールを用いて見た目を整えていきます。

MainPage.xaml.cs

 「MainPage.xaml」のコードビハインドです。

 Pageクラスを継承しており、AppBar(アプリケーションバー)やFrame(ページ制御の親となるフレーム)をプロパティに持ちます。

 「MainPage.xaml.cs」もコンポーネントの初期化処理以外は何も書かれていません。真っ白な状態から開発を始めることができます。

Package.appxmanifest

 アプリケーションの機能、コントラクトの宣言、アプリケーションの情報などを記述するファイルです。Windowsストアアプリケーションでは一部の機能の利用に「Package.appxmanifest」での宣言が必要なものがあります。

アプリ名_TemporaryKey.pfx

 認証情報ファイルです。このファイルを開いて編集することはありません。

まとめ

 今回はWindowsストアアプリケーションの概要と一番シンプルなプロジェクト「新しいプロジェクト」の説明を行いました。

 ストアアプリケーションの開発を始める第一歩の一助となれば幸いです。

 次回はデフォルトのプロジェクトの残り2つ「分割アプリケーション」「グリッドアプリケーション」を解説します。「データバィンディング」や「VisualStateManager」などの概念は開発に欠かせない概念なのでぜひマスターしておきましょう。

お知らせ

 12月15日に発売予定の著書『基礎から学ぶ Windowsストアアプリ開発』でも、Windowsストアアプリケーション開発に役立つ情報を詰め込んでいます。ぜひ本連載と併せてお買い求めください!

修正履歴

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
速習 Windowsストアアプリケーション連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6878 2012/11/28 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー