Windows Phone "Mango" 開発支援セミナー~実践編

2011/7/21に品川でWindows Phone "Mango" 開発支援セミナー~実践編がありましたので、参加しました。
そこでウチが聞いた内容についてフィードバックしたいと思います。

Ustream "7/21 #1 Mango Design"
http://www.ustream.tv/recorded/16141516



13:30-14:40 『WP アプリケーション開発実践 〜画面開発編〜』
講師:日本マイクロソフト エバンジェリスト 高橋 忍

Agenda

  1. Windows Phone UI デザインの基礎
    基本的なUIの構成要素と、その標準プロパティを使ったデザイン。さらにデザインだけでなく、変形、アニメーション、ビヘイビアといったデザインの拡張について確認
  2. Windows Phone UI デザインの管理
    テンプレート・ビジュアルステートマネージャーを使ってデザインを管理する方法
  3. Windows Phone データとUIの連携
    データバインドを使ってデータソースとコントロールを紐づける概念とその実装方法
  4. Windows Phone PivotとPanorama
    Pivot と Panorama の比較、使い分け、それぞれを使うときの使い分け推奨パターンについて紹介

> OS7.1 mangoからバックグラウンド処理が追加
バックグランド・エージェント用テンプレート

  1. Windows Phone Audio Playback Agent
  2. Windows Phone Audio Streaming Agent
  3. Windows Phone Task Scheduler Agent

テンプレートの内容については、前に記述(http://d.hatena.ne.jp/samril/20110527/1306564036)したのでかつあい

> MVVM(Model-View-ViewModel)
アプリケーションのUI分離パターンの一つ
詳しくは↓
眠るシーラカンスと水底のプログラマー:Windows Phone 7:MVVM Light Toolkitを使ってみた
 ⇒ http://blog.livedoor.jp/coelacanth_blog/archives/55414320.html

> 画像(image files)ではなく、アセットにある基本図形を用いる
画像とは違い、XAML形式での図形なので、ファイルサイズが軽い
また、プログラムで簡単にグラデーションなどを設定できる
よって、ボタンなどの単純な部品は、アセットの基本図形を用いたほうが良い

> グループ化
レイアウトは階層で定義され、子要素はもてない
そのため、パネルコントロールで、UIをまとめて処理する場合、グループ化をする

> ビヘイビア
オブジェクトにアクションを追加
SDKを用いてカスタムビヘイビア(通称:おれおれびへいびあ)の開発が可能
 ⇒ Microsoft Expression Community Gallery -Behaviors

> ビジュアルステートマネージャー
複数の状態のデザインをまとめて定義することができる

> Silverlight Toolkit for Windows Phone
SDKに含まれていないコントロール(バレットコントロールなど)を提供
 ⇒ http://silverlight.codeplex.com/

> データバインディングモデル
データの表示と管理を分離する
ソースとプログラムの連携(紐付け)を定義 = UIとオブジェクト間をデータが移動

> Pivotコントロール
表示するページ数に制限はないが、7貢以下が推奨
1つのデータをページごとに、見せ方を変える使い方
 同一種のデータを表示(メール等)
 表示形式を変えて表示(カレンダー)
 機能を区切って表示(設定など)

> Panoramaコントロール
2ページにまたがるデータを表示できる(※ 3ページはできない)
複数のPanoramaコントロールは使わない(推奨)⇒ トップページとしての使用が推奨
Application Barは置いてはいけない

> PivotとPanoramaの違い
UIから見た違い

Pivito Panorama
背景 固定 ページの移動に合わせてスライド
タイトル 固定(小) ページの移動に合わせてスライド
ページタイトル 複数表示 現ページのみ
ページ移動時の表示 現ページのみ 移動先ページも表示

Pivot:複数ページがあることを強調
Panorama:つながったページであることを強調

PivotとPanoramaでは、発生するイベントの数にも違いがある

  • Pivot
    • UnloadingPivitItem
    • SelectionChaned
    • LoadingPivitItem
    • UnloadedPivitItem
    • LoadedPivitItem
  • Panorama
    • SelectionChaned

なので、画面遷移時の細かい処理は、Pivotがやり易い
※ Panoramaでもできなくはないが、難しい



14:50-16:00 『WP アプリケーション開発実践 〜通信編〜』
講師:日本マイクロソフト エバンジェリスト 大西 彰

Ajenda

  1. Windows Phone "Mango" データと通信系の機能概要
    データや通信の機能概要について
    ローカルデータベースや分離ストレージエクスプローラーについて
  2. HTTP 通信とソケット通信
    HTTP通信については、WebClient を利用して、ファイルのダウンロード、RSS/ATOMフィード読み込みの処理について
    ソケット通信については、サンプルを使ってのデモ
  3. WCF サービスの呼出と Windows Azure を利用したサービス展開
    WCFのサービスを作り、Windows Phoneから実行する方法について
    実機を使ったデバッグ方法、Windows Azureへサービスをホストする方法について
  4. プッシュによる新しい UX
    プッシュ配信サービスを利用して、サービス側からWindows Phone アプリケーションへデータを送信する方法、トースト通知やタイル通知について

> Windows Phone 7でデータを記憶しておく場合
分離ストレージ
ローカルデータベース(LINQ to SQL

> Isolated Storage Explorer(Beta2〜)
分離ストレージと開発用コンピュータ間でのファイル確認・ファイル転送用ツール
\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool\ISETool.exe
⇒ http://msdn.microsoft.com/en-us/hh220612

> HTTP通信
WebClientクラスを用いて、URIでWebリソースとの通信

> ソケット通信
Sockets for Windows Phone
⇒ http://msdn.microsoft.com/en-us/library/hh202870%28v=vs.92%29.aspx

> WCF
サービスとクライアント間でメッセージを送信するシステムを作成するためのランタイムおよび一連のAPI

> Windows Azureを用いたクラウド配置

> プル(ポーリング)
リアルタイムにデータを取得
アプリケーションが定期的にサービスと通信
携帯デバイスのバッテリー消費が激しい

> プッシュ通知
通知の種類
 トースト
 タイル
 Rowデータ
⇒ http://msdn.microsoft.com/en-us/library/ff402537%28v=vs.92%29.aspx



16:10-17:20 『WP アプリケーション開発実践 〜XNA 編〜』
講師:日本マイクロソフト エバンジェリスト 川西 裕幸

Ajenda

  1. Mango == XNA + Silverlight
  2. グラフィックス
  3. タッチとジェスチャ
  4. 加速度センサーとモーション
  5. カメラ

> XNAとSiliverlight
XNA:直接モードのAPI
 Microsoft.Xna.Framework.Gameを継承

Siliverlight:保持モードのAPI
 PhoneApplicationPageを継承

> SharedGraphicsDeviceManager
GPUサーフェイス(メモリ領域)の共有

Current.GraphicsDevice.SetSharingMode(true);


http://www.st-hatena.com/users/sa/samril/user_p.gifななふぉさん http://nanapho.jp/ とお会いする機会がありました!
とてもオーラが出てましたwww
今度はゆっくりとお話しがしたいです