2013年2月18日

Windows Phone 8開発セミナーに行ってきた


今日はお休みを頂いて、品川の日本マイクロソフトさんで行われた「Windows Phone 8 アプリ開発セミナー ~Build 2012 Recap~」にお邪魔してきました。

内容は、二名のエヴァンジェリストの方によるWindows Phone 8の新機能についての講演で、国内ではまだ発売されていないWindows Phone 8の実機デモを交えながら行われました。以下はその内容のメモ書きです。

Windows Phone 8新機能
=======================
* 機能概要
- 新UI/Liveタイル
  - 人間行動に基づいたUI
  - Liveタイル
    - アプリを立ち上げずに最新情報にアクセス
  - Hub
    - その人にまつわる情報を集約(電話番号、Twitterアカウントなど)
  - 現在ストアアプリの数は約13万
    - そのうち日本からアクセスできるアプリは約8万
- 最新のハードウェアに対応
  - マルチコア対応
    - 物理的には64コアまで
  - 解像度
    - WVGA/WXGA/720に対応
    - 今までのアプリはOS側で自動的に調整表示される
  - microSD対応
    - Zuneを介さずエクスプローラから直接アクセスできるように
    - 保存スペースをユーザが設定可能

* Liveタイル
- ほしい情報に素早くアクセス
  - 対応しているアプリの方がDL数が多い
- タイルの種類
  - フリップタイル(7.5から)
    - WP8からは小タイルに対応
  - アイコンタイル(8から)
    - アプリアイコンとカウントを表示
  - サイクルタイル
    - 決められた画像を周期的に表示(カウントも)
    - どの画像で押されたかなどの情報は取得できない

* ロック通知と背景
- ロック画面にアプリからの情報を表示する事ができる
  - 最大5アプリまで
- ロック画面の背景画像をアプリ側から変更できる

* レンズアプリ
- カメラ起動中に対応アプリを起動する事ができる

* Rooms & Kids Corner
- Roomsにメンバーを招待して共同作業
  - メンバーに一斉にメール送信など
  - オーナーがWP8であればメンバーはiPhone/Android端末でもOK
  - 履歴をSkyDriveに保存など
- Kids Corner
  - 子供用ランチャー
  - 親が許諾したアプリのみ起動できる
  - アプリは通常ランチャーから選択
  - Kids Corner内でカスタマイズも可能

* スピーチ機能
- WP8から日本語に対応
- 音声コマンドによるアプリ起動
- 音声認識(Speech To Text)は日本語未対応

* NFC & Bluetooth
- WP8から標準で対応
- タップ&送信でアプリを相手の端末で送る(URL/画像/ファイルも)

* その他
- ストアを経由せずにアプリを公開(企業向け)
- iPhoneのPassbookみたいな機能を提供するウォレット
- アクセシビリティ
  - ハイコントラスト表示
  - 二本の指でダブルタップすると拡大表示
- フォントがYuGothicに統一
- アプリデザインについて公開中
  - http://aka.ms/wpuxprinciples

Windows Phone 8アプリケーション開発
========================================
* アプリケーション開発基盤
- Windows Phone 8 SDKはWindows 8 Proのみ対応
  - エミュレータがHyper-Vを使っているため
    - 仮想環境でWindows Phone 8 OSが動いている
  - 64bitのみ
  - SLATをサポートするCPU
- 7.0/7.1/8.0のアプリは全てWP8で動作可能
  - 7.5と7.8はほぼ同じ7.1カーネル
  - xapを暗号化するようになった
    - それを復号化するには7.5が必要
    - Windowsストア立ち上げの一環
  - 一部非対応アプリもある
    - 怒首領蜂が動作せず、など
- デバイスの解像度
  - アメリカではWP8の方が多い(世界全体ではまだ7.1が多い)
  - 400論理ピクセルを各端末の物理ピクセルに変換
    - 720の場合は80ピクセル分上部に黒枠が表示
  - WP8からWXGAと720に対応
  - WVGA/WXGAは15:9なのに対し720は16:9
  - この比率調整はOS側で自動調整される
  - 但しアプリ側でAuto Scaleにしていないと余白ができる可能性が
  - VSのデバイスタブから各解像度の表示が確認できる
  - 合わせてテーマの切り替えでフォントが同化して見えなくなっていないかチェック
    - 見えなくなっていると審査で落ちる
    - システムカラーを設定して対応する
- VSの7.8アップデートは遅くとも19日までには来る?
  - エミュレータの追加のみ
- 7と8ではエミュレータの動作自体が違う
  - ネットに繋がらない場合はHyper-Vの仮想スイッチマネージャを確認
- アプリケーションバーのコードはC#側に移動
  - Blendで追加もできる
- グリッド画像を使ってデザインを調整する
- WP8から標準で国際化対応できる
  - StaticResourceとデータバインドを使う
  - 最初の開発はXAML直書きで進めた方が効率的
- エミュレータのショートカット
  - F2はWindowsボタン
  - F12は電源ボタン
  - これらを利用してスクリーンショットを撮ることが可能
- Windows Phoneデベロッパーセンター
  - アプリDLはアメリカが4割、ヨーロッパが3割
  - ユーザコメントがTranslateされて一括表示できる
    - アプリを公開するなら多言語対応した方がいい

* Windows Phone 8ランタイム環境
- 今までの.NETに加えてWindows Phone RuntimeとNative環境(Direct 3D/Win32&COM)が追加
- Windows Phone RuntimeはWindows 8 Runtimeと一部互換性あり
  - 今後の拡張は.NETよりこちら側に行われていく?
- Native(C++)ではUIを書く事ができない
  - DLLのみ作ることができる
  - iPhone(Objective-C)のライブラリ移植など
  - そこまでスピード差も無い
- HTML5アプリ
  - WP8のIE10はWindows 8のエンジンを踏襲
  - アプリ画面はIEコンポーネントと戻る/進むリンク(ハードコード済み)があるのみ
  - 表示するコンテンツはアプリパッケージ内に持つ(HTML/CSS/画像など)
  - コンテンツをネットワークから取得するようなアプリは審査に落ちる
    - いわゆる「ガワネイティブ」はWindows Phoneではストア登録できない?

* 新機能詳細
- プッシュ配信
  - WP8から制限がほぼ無しに
  - 配信からVoIPアプリを起動できるように(最大4アプリまで)
    - ただし配信からの通常アプリ起動は不可(セキュリティ上の理由)
- タイル
  - Iconic Tileテンプレート
    - カウント表示は1から99まで
  - タイルの後方互換性の持たせ方
    - Reflectionで判定する
- ロックスクリーン
  - 現在設定されている壁紙はAPIでアプリ側から取得可能
  - 通知情報はタイルの内容を流用
- Extensionタグは末尾に記述する
  - 前の方だとエラーになる
- アプリケーション間連携
  - カスタムスキーマを使った連携
    - Androidのインテントみたいな
    - "skype:call?01234567"でskypeアプリを起動して通話開始
    - SupportFileTypesを入れておくとストアアプリでレコメンドされる
    - ブラウザリンクからアプリ起動も可能
  - リッチメディアアプリ
    - アプリ側で宣言しておくとshare/editより上のメニューに表示されるように
  - Windows Phone 8 Imaging Platform
    - カメラの細かい制御を行いたい場合
  - Auto-Upload Background Agents
    - 写真を自動アップロード(Eye-Fi的な機能?)

* その他の新機能
- レジューム起動
  - 戻るキーでの操作は基本的にアプリ終了で最初から
  - レジューム起動だと終了直前から起動し直す事ができる
    - その際はバックスタックをクリアしてあげた方が良い
- バックグラウンド実行
  - 基本的にアプリは裏に回ると停止する
  - GPSログ取得など継続的に起動し続けたい場合に使う
    - 但し制約がある(4時間操作なければ終了、セキュリティ上カメラ/マイクは操作不可など)
- 近距離通信
  - WP8ではNFC/BluetoothはProximity APIとして抽象化されている
- 音声認識
  - テキストの読み上げは日本語対応
  - 音声からテキストを起こすのは英語のみ
  - 再生された選択肢のうちどれかを話して入力する事ができる
    - 選択肢はコーディングできる
  - アプリ起動音声はVCDファイルを登録
    - キーワード+引数の認識も可能("メモ 2ページ目を開く"など)
- SDカードアクセス
  - ファイル一覧はアプリ側で実装する必要あり
  - 本体側へのアクセスは不可

もろもろ
============
- セミナー後の懇親会で発売済みのWindowsPhone8実機(ほぼ私物!?)を触ることができました
- WindowsPhoneのネクタイを頂きました
- でも会場に傘忘れた。。