かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Windows 8 ストア アプリ開発入門という本を書きました

id:ch3cooh393こと酢酸先生との共著で本を書きました。たぶん10月30日くらいに本屋にならぶといいな?って感じです。
Windows 8 ストア アプリ開発入門
400ページを超える内容になってます。予定より50ページ以上増えてしまって各方面にご迷惑をおかけしました。

私が書いたのはRSSリーダーまでの前半部分で、後半部分が酢酸先生になります。補足資料は、二人で書いてます。さて、この本ですが個人的におさえておかないと大変だろうなと思う点を頑張って説明してます。ちょっと章単位で説明します。

3章 ハローワールドアプリケーション

最初のプログラムがハローワールドです。こいつは全然Windows ストア アプリらしさのかけらもないアプリケーションなので、ストアに出してもさくっとリジェクトされると思いますし、出す意味もないようなアプリケーションですが、要素技術としてWindows ストア アプリを作るときに必須となることを凝縮しています。

  • スナップなどへの対応
  • 中断などのWindows ストア アプリのライフサイクルへの対応
  • アプリバー

正直、この上の2つをきっちりおさえることがWindows ストア アプリ開発の基礎を固めるうえで必須の要素だと思います。ここで書いてる方法に従えば中断からの復帰後も画面遷移の履歴とかもばっちり復元されるのでお勧めです!

4章 RSSリーダー

こいつは、ちょっと本格的なデータ構造をもったアプリでスナップ表示や画面遷移や中断への対応やらを行ってます。さらに、セカンダリタイルを作ったりライブタイルを作ったりと色気を出したり、検索にも対応する方法を書いています。
そして、Windows ストア アプリの目玉でもあるセマンティックズームへの対応の仕方も書いてあります。

5章 画像処理アプリケーション

これWinows ストア アプリ関係ないんじゃ…と思うくらいしっかり画像処理してます。そして画像処理ライブラリできてます。Windows ストア アプリは、今までの.NETのクラスとちょっと使い勝手が異なります。割と自分で調べて頑張るのは大変だったりするので、この章を見ましょう。ノウハウつまってます。

6章 まりもとBing Map

これは、Windows デベロッパー カンファレンスで酢酸先生が披露したまりものアプリケーションの作り方が解説されています。センサーを使ったアプリケーションは、これから重要な位置づけ(コンシューマ向けでも業務向けでも)になると思います。ここでしっかり基礎をおさえておくのが大事です。

Bing Map SDKの使い方も懇切丁寧に書いてあります。地図を使ったアプリケーションって個人的に素敵だなと思うんでこれで勉強しようと思います。

補足資料

本当に補足なんですが、async, awaitの説明からタブレット用のアプリを開発する人には必須になるであろうリモートデバッグまで広く思いついたことを書いてます。因みにasync awaitの説明部分は私のBlogの記事そのままです…!

目次から見るボリューム感…!!

## 目次
1 はじめてのWindows ストア アプリ
1 1 Windows ストア アプリとは
1.1.1 新しいWindowsエクスペリエンスデザイン
1.1.2 ユーザーにストレスを与えない軽快で滑らかな動作
1.1.3 さまざまな画面サイズや表示方法への対応
1.1.4 コントラクトでアプリケーションの可能性をひろげる
1.1.5 ユーザーとのさまざまな接点となるタイル
1.1.6 常に最新の情報をユーザーに提供する
1.1.7 ユーザーに複数のデバイスで継続した体験を提供する
1.1.8 Windows ストア アプリの理念
1 2 Windows ストア アプリの特徴「タッチファーストのUI」
1 3 タブレットでの操作について
1 4 アプリケーションプラットフォーム
1.4.1 言語プロジェクション
1 5 開発言語
1.5.1 HTMLとCSS
1.5.2 C#,VBとXAMLもしくはC++とXAML
1 6 Windows App Certification Kit
1.6.1 Windows App Certification Kitによるテスト
 
2 Windows ストア アプリ開発環境の導入
2 1 Visual Studio Express 2012 for Windows 8
2.1.1 開発環境導入の前提条件
2.1.2 Visual Studio Express 2012 for Windows 8のダウンロードとインストール
2.1.3 初回起動設定
2 2 Windows ストア アプリの開発の流れ
2.2.1 2つの開発ツール
2.2.2 VS Express 2012 for Win8による開発
2.2.3 VS Express 2012 for Win8による全体像
2.2.4 VS Express 2012 for Win8の主な画面
2.2.5 VS Express 2012 for Win8のコードエディター
2.2.6 Blendによるデザイン
2.2.7 マニフェストの編集
2 3 実行環境(ローカルコンピュータ、シミュレータ)
2.3.1 Windows ストア アプリの実行環境
 
3 Windowsストア アプリを作る
3 1 ハローワールド アプリケーションの作成
3.1.1 ハローワールドの作成
3.1.2 プロジェクトの構成
3.1.3 XAMLファイルについて
3.1.4 ページタイトルの変更
3.1.5 画面のデザイン
3 2 Blendでさらに手を入れてみる
3.2.1 Blendとは
3.2.2 アプリバーの作成
3.2.3 テキストの大きさを調整
3.2.4 さまざまな表示への対応
3 3 停止状態への対応(サスペンドイベント、起動時のイベント)
3.3.1 Windows ストア アプリのライフサイクル
3.3.2 データの保存や中断処理で使用するAPI
3.3.3 プロジェクトテンプレートに含まれる永続化関連のクラス
3.3.4 ハローワールド アプリケーションにデータの保存・読み込み処理を実装する
3.3.5 ハローワールド アプリケーションに中断時の一時的なデータの保存を追加する
 
4 RSSリーダー アプリを作る
4 1 ネットワーク通信でRSSを取得する
4.1.1 RSSリーダー
4.1.2 RSSリーダーのモデルの作成
4.1.3 取得したフィードの表示
4.1.4 フィードの追加・削除
4.1.5 フィードの再読み込み
4.1.6 状態の保存と復元への対応
4 2 取得したデータをタイルに表示
4.2.1 タイル関連のAPI
4.2.2 フィード単位のタイルの作成
4.2.3 ライブタイルの作成
4 3 チャーム(アプリ間連携)を使ってデータの検索
4.3.1 検索コントラクト
4.3.2 RSSリーダーの検索対応
4.3.3 検索コントラクトからのアプリケーションの起動への対応
4.3.4 空文字による検索への対応
4.3.5 検索結果表示ページでの再検索への対応
4.3.6 リアルタイムに検索結果を表示する
4.3.7 中断状態への対応
4.3.8 検索結果を選択したときの画面遷移
4.3.9 画面の見た目の作成
4 4 チャーム(アプリ間連携)を使ってメール送信
4 5 セマンティックズームへの対応
4.5.1 SemanticZoomコントロール
4.5.2 RSSリーダーをセマンティックズームへ対応させる

5 タブレット対応の画像処理アプリを作る
5 1 画像処理アプリケーションのUIを作る
5.1.1 新しいプロジェクトの作成
5.1.2 Blend for Visual Studioを使ってUIを実装する
5 2 撮影ダイアログを表示して静止画撮影をする
5.2.1 カメラを使用できるように機能の設定をおこなう
5.2.2 撮影ダイアログを使った静止画撮影をおこなう
5.2.3 画像処理アプリケーションに静止画撮影の機能を追加する
5 3 ファイル選択ピッカーを使ってローカルストレージに保存された写真を選択する
5.3.1 FileOpenPickerクラスを使って画像ファイルを読み込む
5.3.2 画像処理アプリケーションにファイル選択機能を追加する
5 4 写真をエフェクト処理する
5.4.1 エフェクト処理のベース処理(グレースケール処理)
5.4.2 エフェクト処理
5.4.3 アプリケーションへエフェクト処理を組み込む
5 5 エフェクト処理後の写真を保存する
5.5.1 保存ボタンを追加する
5.5.2 エフェクト処理後の写真を保存する

6 センサーデバイスと位置情報を活用したアプリを作る
6 1 加速度センサーを使ってマリモを動かすアプリを作る
6.1.1 加速度センサーのテストアプリとGPS地図アプリを作る
6.1.2 アプリケーションの仕様を考えてみよう
6.1.3 マリモ落下のアプリケーションのUIを作成する
6.1.4 マリモを時間の経過と共に落下させる
6.1.5 マリモをドラッグ&ドロップで任意の位置へ移動させる
6.1.6 加速度センサーの値を取得する
6.1.7 加速度センサーの値に応じてマリモの落下方向を変える
6 2 地図上にロケーションサービスで取得した位置情報を表示する
6.2.1 Bing Maps SDKを導入する
6.2.2 Mapコントロールの主な使い方
6.2.3 位置情報を活用する
6.2.4 地図上にロケーションサービスで取得した位置情報を表示する

補足資料
A 1 非同期プログラミング
A 2 ユニットテスト
A 3 ファイル操作について
A 4 NuGetを使ってライブラリを導入する
A 5 セカンダリタイルを標準サイズとワイドサイズ両対応にする
A 6 Windows ストア アプリをリモートデバッグする