Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Windows Phone 8 SDKでの
アプリ開発
第4回まどべんよっかいち 2012/12/15
青木宣明 @kumar0001
Agenda
1. Windows Phone 8の概要
2. Windows Phone SDK 8.0での開発
の流れ
3. Windows Phone SDK 8.0の新機能
Windows Phone 8の概要
• Windows Phone 8の新機能
• Windows Phone 8端末
• 日本での状況
Windows Phone 8の新機能(1)
ハードウェア
• NFC (Near Field Communication)
近距離での通信技術
ICタグや端末同士での通信
• MicroSDカード
OSから保存: 写真、動画
OSか...
WP8の画面解像度
3種類の解像度をサポートしている
• WP7.5までは事実上800x480のみ
320×480ピクセル(HVGA)って解像度もあ
りましたが
解像度 縦横比
スケーリング
された解像度
スケール
WVGA 480 x 8...
Windows Phone 8の新機能(2)
ソフトウェア
• Windows 8とのAPIの共通化
• ウォレット
• ルーム、グループ、マイファミリー
• スタート画面
アイコンのサイズ変更、テーマカラーの追加
• バックアップ
アプ...
Windows Phone 8の新機能(3)
ソフトウェア
• ロック画面
アプリの通知アイコン表示、アプリからの壁紙
変更
• SMSでの位置情報・連絡先の共有
• 音声への対応
多言語対応、音声認識
• Internet Explor...
Windows Phone 8端末
現在発表されているWP8端末は…
• Nokia
Lumia 920
Lumia 820
Lumia 620 (未発売)
• HTC
HTC 8X
HTC 8S
• LG
ATIV-S (未発売)
Windows Phone 8端末
Lumia 920
HTC 8X HTC 8S
Lumia 820 Lumia 620 ATIV-S
Windows Phone 8端末
Lumia920 Lumia820 Lumia620 ATIV-S HTC 8X HTC 8S
画面 1280x768 800x480 800x480 HD? 1280x720 800x480
RAM 1GB...
日本での状況(1)
http://ggsoku.com/2012/10/windows-phone-jp/
日本での状況(2)
日本マイクロソフトによる公式セミ
ナーが開催される
• 『Windows Phone 8 アプリ開発セミナー
~Build 2012 Recap~』
東京開催 12/4(火) 15:30~20:00頃
大阪開催 12/...
日本での状況(3)
日本へのWindows Phoneの投入が不透
明な状況
• キャリア(docomo,au)が検討している旨の発
言をしているが…
• MicrosoftはキャリアにOEMでWindows
Phoneを提供する立場なので、...
Windows Phone 8 SDKでの
開発の流れ
• Windows Phone 7.5との違い
• 開発環境
• プロジェクト作成
• プロジェクト構成
• プロジェクトテンプレートの変更点~国際化対応
• 複数の解像度への対応
Windows Phone 7.5との違い
基本的な流れは同じ
• XAMLでのUI定義
• コードビハインドでのイベント処理
• ページ遷移によるアプリ画面構成
• ライフサイクル管理も同じ
ライフサイクル
WP7=3つの状態
• Running
• Domant
• Tombstoned
イベントは4種類
• Launching
• Activated
• Deactivated
• Closing
MSDN(“Executi...
WP8SDKでのアプリ開発
WP7.5の開発ノウハウを引き継げる
開発の流れ
1. プロジェクト作成
2. OSバージョン選択
3. コード作成
1. XAMLによるUI定義
2. コードビハインドによるイベント処理等
4. アプリケーショ...
WPSDK8.0での変更点
開発環境
• VS2012ベース、エミュレータ環境
プロジェクト種類
プロジェクト構成
プロジェクトテンプレート
• 国際化対応
複数解像度への対応
APマニフェスト設定内容
他多数
開発環境
Windows Phone SDK 8.0で開発
• 無償で利用可能
 http://www.microsoft.com/ja-jp/download/details.aspx?id=35471
• 含まれるツール
Visual...
開発環境
Windows Phone SDKのシステム要件
• オペレーティング システム
Windows 8 64 ビット (x64) クライアント
バージョン
• ハードウェア
6.5 GB のハード ディスク空き容量
4 GB の...
開発環境
Windows Phone 8 Emulatorのシステム
要件
• オペレーティング システム
Windows 8 Pro エディション以上
• ハードウェア
Second Level Address Translation ...
余談:エミュレータについて
Hyper-VとPC環境の相性があるので
注意
• Gigabyte 製マザーボード搭載PC
BIOS で USB 3.0 ホスト コントローラーが有
効になっていると再起動時に応答を停止する可
能性があるので、...
余談:Hyper-VとPC環境の相性
Hyper-VとPC環境の相性(2)
• ASRock製マザーボード搭載PC
型番:890FX Deluxe5
CPU:AMD Phenom II X6 1100T
Asrock Extreme T...
余談:Hyper-VとPC環境の相性
Hyper-VとPC環境の相性(3)
• Hyper-Vが有効になってると正常動作しな
いアプリがある(個人的経験から)
au Wi-Fi接続ツール
Windows Phone内部ネットワークと、Wi...
プロジェクト作成
VS2012でプロジェクトを新規作成
Windows Phone関連プロジェク
ト
種類 特徴
Windows Phoneアプリ 1画面だけの基本構成のSilverlightアプリ
データバインドアプリ リストボックス画面と、要素の詳細画面の2画
面構成。MVVMアーキテクチャで、...
Windows Phone関連プロジェク
ト
種類 特徴
Windows Phone
オーディオ再生エージェント
オーディオファイルをバックグラウン
ドで再生するためのクラスライブラリ
(UIを持つアプリケーションから参
照)
Windows ...
プロジェクト種別
XAMLおよびDirect3Dア
プリ
Direct3DとXAMLを使った3Dアプリ ※WP8.0専用
HTML5アプリ HTMLコンテンツを使ったアプリ ※後述
追加されたプロジェクト
プロジェクト作成
OSバージョンの選択
• Windows Phone OS 7.1 ⇒ WP7.5
• Windows Phone OS 8.0 ⇒ WP8.0
Windows Phone OS 7.0は非対応
プロジェクト構成
• WP7.5と同じ構成
• App.xaml
• MainPage.xaml
• WP8.0で追加
• LocalizedString.cs
• Resourcesフォルダ
• 国際化対応
• Assetsフォルダ
• 画像...
プロジェクトテンプレートの変更点
WP8SDKで国際化対応のファイルが追加
されている
• LocalizedString.cs
• Resourcesフォルダ
• MainPage.xamlに注意書き有り
国際化対応について
LocalizedStrings.cs
国際化対応について
AppResources.resx
• デフォルト言語の文字列リソースを定義
国際化対応について
国際化対応前
国際化対応後
国際化対応について
• WP8エミュレータでの
実行結果
• 言語設定が日本語の場合
国際化対応について
言語を増やすときは、プロジェクトの
プロパティで新言語をチェックする
国際化対応について
英語をチェックした例:
国際化対応について
• Resourcesフォルダ
に英語用のリソー
スが追加される。
(AppResources.en.resx)
国際化対応について
追加されたAppResources.en.resxは、
AppResources.resxの値がコピーされ
ているので、文字列の値を翻訳する
国際化対応について
• WP8エミュレータでの
実行結果
• 言語設定が英語の場合
複数の解像度への対応 (1)
3種類の解像度をサポートしている
• WP7.5までは事実上800x480のみ
解像度 縦横比
スケーリング
された解像度
スケール
WVGA 480 x 800 15:9 480 x 800 ×1.0
WXGA...
複数の解像度への対応(2)
複数の解像度への対応方法
• UIコントロールのサイズを固定値で指定
しないこと
Gridを使って、相対的にサイズを指定する
<Grid Margin="12,0,12,0">
<Grid.RowDefiniti...
複数の解像度への対応(3)
複数の解像度への対応方法
• 過度に縮小・拡大されないように幅・高さ
の最小値・最大値を指定することも検討す
る
MinWidth, MaxWidth
MinHeight, MaxHeight
複数の解像度への対応(4)
複数解像度でのビットマップ画像の扱
い
• 複数解像度のビットマップ画像ファイルを
準備するとXAPのファイルサイズに影響
画像ファイルのサイズが3倍に
WXGA サイズ向けの画像を用意すると、適切
に縮小され...
複数の解像度への対応(5)
答えは・・・No
解像度に応じたビットマップ画像ファ
イルの選択は自前で実装する
• 解像度の検出
App.Current.Host.Content.ScaleFactorを調
べる
解像度 App.Curre...
public enum Resolutions { WVGA, WXGA, HD720p };
public static class ResolutionHelper
{
private static bool IsWvga
{
get { ...
複数の解像度への対応(7)
解像度に対応したビットマップ画像の
Uriを作成するヘルパークラス
public class MultiResImageChooserUri
{
public Uri BestResolutionImage
{
g...
複数の解像度への対応(8)
ImageコントロールのSourceにヘル
パークラスを
<Application.Resources>
<h:MultiResImageChooser x:Key="MultiResImageChooser"/>...
複数の解像度への対応(9)
スプラッシュスクリーンの解像度は?
• SplashScreenImage.jpgを768×1280で
用意すると自動的にスケールする
• 解像度にマッチした画像を出すには、以下
のファイル名で用意する
Spla...
複数の解像度への対応(10)
タイル・アプリアイコンの解像度は?
• WXGAに合わせてイメージを用意する。
WVGAと720pの解像度に自動的にスケールす
る
768x1280
480x800
720x1280
マニフェストの設定
アプリの情報、アプリが必要とする機能を定
義する。
WMAppManifest.xmlを開くと、設定画面が
表示される
アプリケーションUIタブ
機能タブ
必要条件タブ
WP8アプリ開発まとめ
WP7.5と開発の基本は変わっていない
• 従来の方法で開発すればよい
アプリ開発で留意すべき点
• 複数解像度への対応
• Capabilityの設定を忘れずに
• 国際化対応済みのプロジェクトテンプレー
トの活用...
WP8アプリ開発まとめ
WP7.5と比べて、何ができるように
なったのか?
⇒Windows Phone 8 SDKの代表的な
新機能を見ていく
Windows Phone SDK 8.0の
新機能
• 新しいAPIの追加
• ネイティブアプリの対応、HTML5アプリ
• Mapコントロールの変更
• ポータブルクラスライブラリ
Windows Phone SDK 7.xの機能
※MSDNから引用
WPSDK 8.0の新機能(1)
APIの追加
• Windows Phone Runtime (ネイティブ+マネージド)
• Win32 & COM (ネイティブ)
従来の.NETベースのAPI
WindowsPhoneSDKの新機能
Windows PhoneランタイムとWindows ランタイムとの関係
① Windows Phoneでサポートされて
ないWindowsランタイム
② Windows Phoneでサポートされて
いる...
Windows Phone SDK 8.0の機能
(1)
Win32 & COM API
• WinSockなどWin32 APIの一部が利用可
能
http://msdn.microsoft.com/ja-
jp/library/wind...
WPSDK 8.0の新機能(2)
開発言語の追加
• C/C++によるWPアプリの開発が可能に
• HTML+CSS/JavaScriptはサポート外
IE10を埋め込んだC#/XAMLアプリで、ローカ
ルのHTML+CSS/JSアプリを動...
HTML5アプリの内容
HTML5アプリのプロジェクト構
成
WPSDK 8.0の新機能(3)
Map
• 地図がNokia Mapになったことに伴い名前空
間が変更
旧 Microsoft.Phone.Controls.Maps
新 Microsoft.Phone.Maps.Controls
• ...
新Mapの驚きの白さ
Microsoft.Phone.Controls.Maps Microsoft.Phone.Maps.Controls
(N 35, E 135)
Zoomlevel=13
回避方法の1つ
Google mapの画像をBing Mapコン
トロールのレイヤーに表示する
• Mangoが出始めたばかりの頃にも使われ
ていた手段
参考) Windows Phone 7でGoogle Map on
Bing Map ...
MapコントロールとGoogle Map
■MainPage.xaml
<phone:PhoneApplicationPage
xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;as...
MapコントロールとGoogle Map
■MainPage.xaml.cs
public MainPage()
{
InitializeComponent();
this.map.TileSources.Clear();
this.map.T...
MapコントロールとGoogle Map
namespace GoogleMapsSample
{
public enum GoogleTileSourceType
{
Street,
Hybrid,
Satellite,
Physical,
...
MapコントロールとGoogle Map
WPSDK 8.0の新機能(4)
ポータブルクラスライブラリに対応
ライブラリのアセンブリを複数のプラット
フォームで利用可能にする
• Windows, Silverlight, Windows Phone, Xbox
360
通常はプ...
その他の新機能
音声への対応
センサー関連のAPIの追加
• NFC
• Bluetooth
ウォレット
カメラ機能の拡張(レンズ)
VoIPサポート
ファイルと URI の関連付け
IPv6 のサポート
SDカードアクセス
次...
まとめ
WP7.5と開発の基本は変わっていない
• 従来の方法で開発すればよい
• 複数解像度を考慮したUI定義
WP8アプリとしての留意点
• 新しいAPI(Windows Phone Runtime、
Win32&COM)の活用
ネイ...
ツール – エミュレータ
回転ボタン
リサイズボタン
ズームボタン
キー 機能
F1 Backボタン
F2 ホームボタン
F3 検索ボタン
F7 カメラボタン
F9 ボリュームアップ
F10 ボリュームダウン
Pause PC⇔ソフトウェアキー...
エミュレータのツール
その他のツールを押す
と、ツール画面が開か
れる
• 加速度計のエミュ
レーション
• 位置情報のエミュ
レーション
• スクリーンショット
の撮影
これ以外のセンサー情
報は非対応
加速度センサータブ
・向きの変更
・記録済みデータの再生
位置情報タブ
・一定間隔ごとに入力位置に移
動
・ライブモード(クリックされ
た地点に位置情報を更新)
・記録されたデータの再生
シミュレーションダッシュボード
• VS2012にある機能
• エミュレータの状
況を設定
• ネットワーク状況
• ロック画面解除
• アラーム起動
ロック画面
「更新しない」 「ロック解除」
アラーム
• 「アラームのトリ
ガー」ボタンでア
ラームを起動
マーケットプレース登録申請前の
セルフテスト
審査項目を自己テストできるツール
プロジェクトメニューの「ストアテス
トキットを開く」から起動する
ストアテストキットの内容
タブ 確認内容
アプリケーションの
詳細
申請に必要なアイコン・スクリーンショットが
揃っているか確認する
自動テスト ・XAPファイルのサイズ・内容
アプリケーションの機能(Capability)
アイコン・スクリー...
アプリケーションの詳細タブ
3種類必要
WVGA・WXGA・720p
自動テストタブ
手動テストタブ
Windows Phone SDK 8.0の機能(6)
音声への対応
• XXX
機能をまとめる
サンプルも
Windows Phone SDK 8.0の機能(7)
センサー関連のAPIの追加
• NFC
• Bluetooth
できる機能を
まとめる
Windows Phone SDK 8.0の機能(5)
UIコントロール
• LongListSelectorが追加された
元はSilverlight Toolkit for Windows Phone
にあったもの
Windows Phone SDK 8.0の機能
(9)
位置検出API
• バックグラウンドで処理
機能をまとめる
Windows Phone SDK 8.0の機能
(10)
ウォレット
• XXX
機能をまとめる
Windows Phone 8
2012/6のWindows Phone Summit
で発表
• http://channel9.msdn.com/Events/Wi
ndows-Phone/Summit
2012/10/29のBuild...
日本での状況(2)
http://ggsoku.com/2012/11/wp8-web-jp/
日本での状況(3)
http://ggsoku.com/2012/12/windows-phone-8-jp-lineup/
日本での状況(4)
http://ggsoku.com/2012/12/matane-windows-phone-8/
Windows Phone SDK 8.0の機能
(3)
ゲーム開発フレームワーク
• WP8からはDirect3Dで開発
• WP7.5までのXNAもサポートされている
ただし、WP7.5対象のアプリとして開発する
ことになる。
Dire...
Windows Phone SDK 8.0の機能(5)
ランチャーの追加
• SaveAppointmentTask
• MapDownloaderTask
• MapsTask
• MapsDirectionsTask
• ShareMed...
Windows phone SDK 8.0でのアプリ開発
Upcoming SlideShare
Loading in …5
×

Windows phone SDK 8.0でのアプリ開発

5,262 views

Published on

第4回まどべんよっかいちの発表資料です。

Published in: Technology

Windows phone SDK 8.0でのアプリ開発

  1. 1. Windows Phone 8 SDKでの アプリ開発 第4回まどべんよっかいち 2012/12/15 青木宣明 @kumar0001
  2. 2. Agenda 1. Windows Phone 8の概要 2. Windows Phone SDK 8.0での開発 の流れ 3. Windows Phone SDK 8.0の新機能
  3. 3. Windows Phone 8の概要 • Windows Phone 8の新機能 • Windows Phone 8端末 • 日本での状況
  4. 4. Windows Phone 8の新機能(1) ハードウェア • NFC (Near Field Communication) 近距離での通信技術 ICタグや端末同士での通信 • MicroSDカード OSから保存: 写真、動画 OSから読み込み: 写真、動画、音楽 署名済みアプリのインストール • 3種類の画面解像度
  5. 5. WP8の画面解像度 3種類の解像度をサポートしている • WP7.5までは事実上800x480のみ 320×480ピクセル(HVGA)って解像度もあ りましたが 解像度 縦横比 スケーリング された解像度 スケール WVGA 480 x 800 15:9 480 x 800 ×1.0 WXGA 768 x 1280 15:9 480 x 800 ×1.6 720p 720 x 1280 16:9 480 x 853 ×1.5 + 高さ80pixel
  6. 6. Windows Phone 8の新機能(2) ソフトウェア • Windows 8とのAPIの共通化 • ウォレット • ルーム、グループ、マイファミリー • スタート画面 アイコンのサイズ変更、テーマカラーの追加 • バックアップ アプリ一覧、アカウント設定、SMSメッセージ、 通話履歴、IEのお気に入り、各種設定 • カメラ レンズアプリ
  7. 7. Windows Phone 8の新機能(3) ソフトウェア • ロック画面 アプリの通知アイコン表示、アプリからの壁紙 変更 • SMSでの位置情報・連絡先の共有 • 音声への対応 多言語対応、音声認識 • Internet Explorer 10 • Bluetoothによる共有 連絡先、写真、ドキュメント、音楽
  8. 8. Windows Phone 8端末 現在発表されているWP8端末は… • Nokia Lumia 920 Lumia 820 Lumia 620 (未発売) • HTC HTC 8X HTC 8S • LG ATIV-S (未発売)
  9. 9. Windows Phone 8端末 Lumia 920 HTC 8X HTC 8S Lumia 820 Lumia 620 ATIV-S
  10. 10. Windows Phone 8端末 Lumia920 Lumia820 Lumia620 ATIV-S HTC 8X HTC 8S 画面 1280x768 800x480 800x480 HD? 1280x720 800x480 RAM 1GB 1GB 512MB 1GB 1GB 512MB 内蔵スト レージ 32GB 8GB 8GB 16GB 32GB 16GB 4GB microSD - ○ ○ ○ - ○ カメラ 8.7MP 8MP 5MP 8MP 8MP 5MP フロントカ メラ 1.2MP VGA VGA 19MP 2.1MP VGA 3G / LTE ○ / ○ ○ / ○ ○ / × ○ / × ○ / × ○ / × NFC ○ ○ ○ ○ ○ - その他 Qi Qi 質量 185g 160g 127g 135g 130g 113g
  11. 11. 日本での状況(1) http://ggsoku.com/2012/10/windows-phone-jp/
  12. 12. 日本での状況(2) 日本マイクロソフトによる公式セミ ナーが開催される • 『Windows Phone 8 アプリ開発セミナー ~Build 2012 Recap~』 東京開催 12/4(火) 15:30~20:00頃 大阪開催 12/18(火) 15:00~19:00頃 • 12/18開催分に参加しますが…12/4のセミナー後もTwitter などに情報が流れてこないところから…大きな期待はしな いほうがよいのかも
  13. 13. 日本での状況(3) 日本へのWindows Phoneの投入が不透 明な状況 • キャリア(docomo,au)が検討している旨の発 言をしているが… • MicrosoftはキャリアにOEMでWindows Phoneを提供する立場なので、Microsoftから は投入時期に関して情報が出ることはない
  14. 14. Windows Phone 8 SDKでの 開発の流れ • Windows Phone 7.5との違い • 開発環境 • プロジェクト作成 • プロジェクト構成 • プロジェクトテンプレートの変更点~国際化対応 • 複数の解像度への対応
  15. 15. Windows Phone 7.5との違い 基本的な流れは同じ • XAMLでのUI定義 • コードビハインドでのイベント処理 • ページ遷移によるアプリ画面構成 • ライフサイクル管理も同じ
  16. 16. ライフサイクル WP7=3つの状態 • Running • Domant • Tombstoned イベントは4種類 • Launching • Activated • Deactivated • Closing MSDN(“Execution Model Overview for Windows Phone“)から引用 http://msdn.microsoft.com/en-us/library/ff817008(v=VS.92).aspx
  17. 17. WP8SDKでのアプリ開発 WP7.5の開発ノウハウを引き継げる 開発の流れ 1. プロジェクト作成 2. OSバージョン選択 3. コード作成 1. XAMLによるUI定義 2. コードビハインドによるイベント処理等 4. アプリケーションマニフェストの設定 5. エミュレータでのテスト 6. ストアテストキットでのテスト 7. ストアへの登録申請
  18. 18. WPSDK8.0での変更点 開発環境 • VS2012ベース、エミュレータ環境 プロジェクト種類 プロジェクト構成 プロジェクトテンプレート • 国際化対応 複数解像度への対応 APマニフェスト設定内容 他多数
  19. 19. 開発環境 Windows Phone SDK 8.0で開発 • 無償で利用可能  http://www.microsoft.com/ja-jp/download/details.aspx?id=35471 • 含まれるツール Visual Studio 2012 Express for Windows Phone Blend for Visual Studio Windows Phone Emulator • Visual Studio 2012が導入されていれば そちらに統合される • 以前のバージョンのWPSDKはインストー ルしたままでよい
  20. 20. 開発環境 Windows Phone SDKのシステム要件 • オペレーティング システム Windows 8 64 ビット (x64) クライアント バージョン • ハードウェア 6.5 GB のハード ディスク空き容量 4 GB の RAM 64 ビット (x64) CPU
  21. 21. 開発環境 Windows Phone 8 Emulatorのシステム 要件 • オペレーティング システム Windows 8 Pro エディション以上 • ハードウェア Second Level Address Translation (SLAT) をサ ポートするプロセッサが必要  Hyper-Vを使うため • Windows Phone 8 Emulator の要件を満た していない場合 Windows Phone SDK 8.0 のインストールと開発 は可能 Windows Phone 8 Emulatorは動作不可→実機で 確認することに
  22. 22. 余談:エミュレータについて Hyper-VとPC環境の相性があるので 注意 • Gigabyte 製マザーボード搭載PC BIOS で USB 3.0 ホスト コントローラーが有 効になっていると再起動時に応答を停止する可 能性があるので、BIOSで無効に設定する MS公式情報より
  23. 23. 余談:Hyper-VとPC環境の相性 Hyper-VとPC環境の相性(2) • ASRock製マザーボード搭載PC 型番:890FX Deluxe5 CPU:AMD Phenom II X6 1100T Asrock Extreme Tunerを起動すると Windows 8 ProがBSODで落ちる スタートアップで起動するようにしてると、無限再起 動… 個人的経験より
  24. 24. 余談:Hyper-VとPC環境の相性 Hyper-VとPC環境の相性(3) • Hyper-Vが有効になってると正常動作しな いアプリがある(個人的経験から) au Wi-Fi接続ツール Windows Phone内部ネットワークと、Wi-Fiアダプ タのブリッジが作成されると、Wi-Fiアダプタを検出 できずに起動しない PowerDVD 12 モニタのHDCP対応を認識できなくて、Blu-rayディ スクを再生できなくなる • どちらもサポートに連絡済み
  25. 25. プロジェクト作成 VS2012でプロジェクトを新規作成
  26. 26. Windows Phone関連プロジェク ト 種類 特徴 Windows Phoneアプリ 1画面だけの基本構成のSilverlightアプリ データバインドアプリ リストボックス画面と、要素の詳細画面の2画 面構成。MVVMアーキテクチャで、XAMLにバイ ンドするViewModelが定義されている パノラマアプリ パノラマコントロールを使ったアプリ ピボットアプリ ピボットコントロールを使ったアプリ XAMLおよびXNAアプリ ※WP7.1専用 SilverlightとXNAを組み合わせたアプリ クラスライブラリ DLL形式のライブラリ UIを持つプロジェクト、ライブラリ
  27. 27. Windows Phone関連プロジェク ト 種類 特徴 Windows Phone オーディオ再生エージェント オーディオファイルをバックグラウン ドで再生するためのクラスライブラリ (UIを持つアプリケーションから参 照) Windows Phone オーディオストリーミングエー ジェント オーディオストリーミングをバックグ ラウンドで再生するためのクラスライ ブラリ (UIを持つアプリケーションから参 照) Windows Phone スケジュールされたタスクエー ジェント バックグラウンドでタスクを処理する (UIを持つアプリケーションから参 照) バックグラウンド実行型のエージェント
  28. 28. プロジェクト種別 XAMLおよびDirect3Dア プリ Direct3DとXAMLを使った3Dアプリ ※WP8.0専用 HTML5アプリ HTMLコンテンツを使ったアプリ ※後述 追加されたプロジェクト
  29. 29. プロジェクト作成 OSバージョンの選択 • Windows Phone OS 7.1 ⇒ WP7.5 • Windows Phone OS 8.0 ⇒ WP8.0 Windows Phone OS 7.0は非対応
  30. 30. プロジェクト構成 • WP7.5と同じ構成 • App.xaml • MainPage.xaml • WP8.0で追加 • LocalizedString.cs • Resourcesフォルダ • 国際化対応 • Assetsフォルダ • 画像などリソースを 格納
  31. 31. プロジェクトテンプレートの変更点 WP8SDKで国際化対応のファイルが追加 されている • LocalizedString.cs • Resourcesフォルダ • MainPage.xamlに注意書き有り
  32. 32. 国際化対応について LocalizedStrings.cs
  33. 33. 国際化対応について AppResources.resx • デフォルト言語の文字列リソースを定義
  34. 34. 国際化対応について 国際化対応前 国際化対応後
  35. 35. 国際化対応について • WP8エミュレータでの 実行結果 • 言語設定が日本語の場合
  36. 36. 国際化対応について 言語を増やすときは、プロジェクトの プロパティで新言語をチェックする
  37. 37. 国際化対応について 英語をチェックした例:
  38. 38. 国際化対応について • Resourcesフォルダ に英語用のリソー スが追加される。 (AppResources.en.resx)
  39. 39. 国際化対応について 追加されたAppResources.en.resxは、 AppResources.resxの値がコピーされ ているので、文字列の値を翻訳する
  40. 40. 国際化対応について • WP8エミュレータでの 実行結果 • 言語設定が英語の場合
  41. 41. 複数の解像度への対応 (1) 3種類の解像度をサポートしている • WP7.5までは事実上800x480のみ 解像度 縦横比 スケーリング された解像度 スケール WVGA 480 x 800 15:9 480 x 800 ×1.0 WXGA 768 x 1280 15:9 480 x 800 ×1.6 720p 720 x 1280 16:9 480 x 853 ×1.5 + 高さ80pixel
  42. 42. 複数の解像度への対応(2) 複数の解像度への対応方法 • UIコントロールのサイズを固定値で指定 しないこと Gridを使って、相対的にサイズを指定する <Grid Margin="12,0,12,0"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height=“2*" /> <RowDefinition Height=“3*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> *もしくはAutoで相対的 に指定する ・* :比率を指定 ・Auto:自動設定
  43. 43. 複数の解像度への対応(3) 複数の解像度への対応方法 • 過度に縮小・拡大されないように幅・高さ の最小値・最大値を指定することも検討す る MinWidth, MaxWidth MinHeight, MaxHeight
  44. 44. 複数の解像度への対応(4) 複数解像度でのビットマップ画像の扱 い • 複数解像度のビットマップ画像ファイルを 準備するとXAPのファイルサイズに影響 画像ファイルのサイズが3倍に WXGA サイズ向けの画像を用意すると、適切 に縮小される • では、各解像度用の画像ファイルを準備し た場合、フレームワークが解像度に応じた ファイルを選択してくれるのか? 答えは・・・
  45. 45. 複数の解像度への対応(5) 答えは・・・No 解像度に応じたビットマップ画像ファ イルの選択は自前で実装する • 解像度の検出 App.Current.Host.Content.ScaleFactorを調 べる 解像度 App.Current.Host.Content.ScaleFactor WVGA 100 WXGA 160 720p 150
  46. 46. public enum Resolutions { WVGA, WXGA, HD720p }; public static class ResolutionHelper { private static bool IsWvga { get { return App.Current.Host.Content.ScaleFactor == 100; } } private static bool IsWxga { get { return App.Current.Host.Content.ScaleFactor == 160; } } private static bool Is720p { get { return App.Current.Host.Content.ScaleFactor == 150; } } public static Resolutions CurrentResolution { get { if (IsWvga) return Resolutions.WVGA; else if (IsWxga) return Resolutions.WXGA; else if (Is720p) return Resolutions.HD720p; else throw new InvalidOperationException("Unknown resolution"); } } } 複数の解像度への対応(6)
  47. 47. 複数の解像度への対応(7) 解像度に対応したビットマップ画像の Uriを作成するヘルパークラス public class MultiResImageChooserUri { public Uri BestResolutionImage { get { switch (ResolutionHelper.CurrentResolution) { case Resolutions.HD720p: return new Uri("Assets/MyImage.screen-720p.jpg", UriKind.Relative); case Resolutions.WXGA: return new Uri("Assets/MyImage.screen-wxga.jpg", UriKind.Relative); case Resolutions.WVGA: return new Uri("Assets/MyImage.screen-wvga.jpg", UriKind.Relative); default: throw new InvalidOperationException("Unknown resolution type"); } } }
  48. 48. 複数の解像度への対応(8) ImageコントロールのSourceにヘル パークラスを <Application.Resources> <h:MultiResImageChooser x:Key="MultiResImageChooser"/> </Application.Resources> … <Image Source="{Binding BestResolutionImage, Source={StaticResource MultiResImageChooser}}"/>
  49. 49. 複数の解像度への対応(9) スプラッシュスクリーンの解像度は? • SplashScreenImage.jpgを768×1280で 用意すると自動的にスケールする • 解像度にマッチした画像を出すには、以下 のファイル名で用意する SplashScreenImage.Screen-WVGA.jpg SplashScreenImage.Screen-WXGA.jpg SplashScreenImage.Screen-720p.jpg
  50. 50. 複数の解像度への対応(10) タイル・アプリアイコンの解像度は? • WXGAに合わせてイメージを用意する。 WVGAと720pの解像度に自動的にスケールす る 768x1280 480x800 720x1280
  51. 51. マニフェストの設定 アプリの情報、アプリが必要とする機能を定 義する。 WMAppManifest.xmlを開くと、設定画面が 表示される
  52. 52. アプリケーションUIタブ
  53. 53. 機能タブ
  54. 54. 必要条件タブ
  55. 55. WP8アプリ開発まとめ WP7.5と開発の基本は変わっていない • 従来の方法で開発すればよい アプリ開発で留意すべき点 • 複数解像度への対応 • Capabilityの設定を忘れずに • 国際化対応済みのプロジェクトテンプレー トの活用 文字列はリソース化しておく
  56. 56. WP8アプリ開発まとめ WP7.5と比べて、何ができるように なったのか? ⇒Windows Phone 8 SDKの代表的な 新機能を見ていく
  57. 57. Windows Phone SDK 8.0の 新機能 • 新しいAPIの追加 • ネイティブアプリの対応、HTML5アプリ • Mapコントロールの変更 • ポータブルクラスライブラリ
  58. 58. Windows Phone SDK 7.xの機能 ※MSDNから引用
  59. 59. WPSDK 8.0の新機能(1) APIの追加 • Windows Phone Runtime (ネイティブ+マネージド) • Win32 & COM (ネイティブ) 従来の.NETベースのAPI
  60. 60. WindowsPhoneSDKの新機能 Windows PhoneランタイムとWindows ランタイムとの関係 ① Windows Phoneでサポートされて ないWindowsランタイム ② Windows Phoneでサポートされて いるWindowsランタイム ③ Windows Phoneで追加されたAPI WP8で使えるAPI
  61. 61. Windows Phone SDK 8.0の機能 (1) Win32 & COM API • WinSockなどWin32 APIの一部が利用可 能 http://msdn.microsoft.com/ja- jp/library/windowsphone/develop/jj662956(v=vs.1 05).aspx • COMにもアクセス可能 Media Foundation API Direct3D API • WP用にカメラAPI、オーディオキャプ チャ・レンダリングAPIを追加
  62. 62. WPSDK 8.0の新機能(2) 開発言語の追加 • C/C++によるWPアプリの開発が可能に • HTML+CSS/JavaScriptはサポート外 IE10を埋め込んだC#/XAMLアプリで、ローカ ルのHTML+CSS/JSアプリを動かすプロジェク トテンプレートは提供されている C#/XAML VB/XAML C++/XAML ローカルHTML
  63. 63. HTML5アプリの内容
  64. 64. HTML5アプリのプロジェクト構 成
  65. 65. WPSDK 8.0の新機能(3) Map • 地図がNokia Mapになったことに伴い名前空 間が変更 旧 Microsoft.Phone.Controls.Maps 新 Microsoft.Phone.Maps.Controls • Mapコントロールのパラメータも変更有り
  66. 66. 新Mapの驚きの白さ Microsoft.Phone.Controls.Maps Microsoft.Phone.Maps.Controls (N 35, E 135) Zoomlevel=13
  67. 67. 回避方法の1つ Google mapの画像をBing Mapコン トロールのレイヤーに表示する • Mangoが出始めたばかりの頃にも使われ ていた手段 参考) Windows Phone 7でGoogle Map on Bing Map Controlを実現する http://d.hatena.ne.jp/ch3cooh393/201011 29/1291036733/
  68. 68. MapコントロールとGoogle Map ■MainPage.xaml <phone:PhoneApplicationPage xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps“ xmlns:gMapEx="clr-namespace:GoogleMapsSample;assembly=WP8GoogleMapOnBingMap“ …> <maps:Map x:Name="map" ZoomLevel="13"> <maps:Map.Center> <Location:GeoCoordinate Altitude=“NaN” Course=“NaN” HorizontalAccuracy="NaN" Longitude="135" Latitude="35" Speed="NaN" VerticalAccuracy="NaN"/> </maps:Map.Center> </maps:Map> 通常通り
  69. 69. MapコントロールとGoogle Map ■MainPage.xaml.cs public MainPage() { InitializeComponent(); this.map.TileSources.Clear(); this.map.TileSources.Add( new GoogleMapsSample.GoogleTileSource() { TileSourceType = GoogleMapsSample.GoogleTileSourceType.Street }); TileSourcesに新しく定義する TileSourceクラスを設定する
  70. 70. MapコントロールとGoogle Map namespace GoogleMapsSample { public enum GoogleTileSourceType { Street, Hybrid, Satellite, Physical, PhysicalHybrid, StreetOverlay, WaterOverlay } public class GoogleTileSource : Microsoft.Phone.Maps.Controls.TileSource { public GoogleTileSource() { UriFormat = @"http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}"; TileSourceType = GoogleTileSourceType.Street; } private int _servernr; private char _mapMode; …(省略)… } TileSourceクラスを定義する
  71. 71. MapコントロールとGoogle Map
  72. 72. WPSDK 8.0の新機能(4) ポータブルクラスライブラリに対応 ライブラリのアセンブリを複数のプラット フォームで利用可能にする • Windows, Silverlight, Windows Phone, Xbox 360 通常はプラットフォームごとにライブラリの アセンブリは異なる Visual Studio 2012から標準で対応
  73. 73. その他の新機能 音声への対応 センサー関連のAPIの追加 • NFC • Bluetooth ウォレット カメラ機能の拡張(レンズ) VoIPサポート ファイルと URI の関連付け IPv6 のサポート SDカードアクセス 次回以降、もしくは ブログで順次取り上 げていきます
  74. 74. まとめ WP7.5と開発の基本は変わっていない • 従来の方法で開発すればよい • 複数解像度を考慮したUI定義 WP8アプリとしての留意点 • 新しいAPI(Windows Phone Runtime、 Win32&COM)の活用 ネイティブコードも利用可能に • 新機能の活用 Mapは白いので注意
  75. 75. ツール – エミュレータ 回転ボタン リサイズボタン ズームボタン キー 機能 F1 Backボタン F2 ホームボタン F3 検索ボタン F7 カメラボタン F9 ボリュームアップ F10 ボリュームダウン Pause PC⇔ソフトウェアキーの入力切り替 え その他ツールボタン
  76. 76. エミュレータのツール その他のツールを押す と、ツール画面が開か れる • 加速度計のエミュ レーション • 位置情報のエミュ レーション • スクリーンショット の撮影 これ以外のセンサー情 報は非対応
  77. 77. 加速度センサータブ ・向きの変更 ・記録済みデータの再生
  78. 78. 位置情報タブ ・一定間隔ごとに入力位置に移 動 ・ライブモード(クリックされ た地点に位置情報を更新) ・記録されたデータの再生
  79. 79. シミュレーションダッシュボード • VS2012にある機能 • エミュレータの状 況を設定 • ネットワーク状況 • ロック画面解除 • アラーム起動
  80. 80. ロック画面 「更新しない」 「ロック解除」
  81. 81. アラーム • 「アラームのトリ ガー」ボタンでア ラームを起動
  82. 82. マーケットプレース登録申請前の セルフテスト 審査項目を自己テストできるツール プロジェクトメニューの「ストアテス トキットを開く」から起動する
  83. 83. ストアテストキットの内容 タブ 確認内容 アプリケーションの 詳細 申請に必要なアイコン・スクリーンショットが 揃っているか確認する 自動テスト ・XAPファイルのサイズ・内容 アプリケーションの機能(Capability) アイコン・スクリーンショットの検証 ・起動時間、メモリ消費量などのプロファイル 手動テスト 審査要件の各項目を満たしているか ・手動でテスト実施と結果確認を行う
  84. 84. アプリケーションの詳細タブ 3種類必要 WVGA・WXGA・720p
  85. 85. 自動テストタブ
  86. 86. 手動テストタブ
  87. 87. Windows Phone SDK 8.0の機能(6) 音声への対応 • XXX 機能をまとめる サンプルも
  88. 88. Windows Phone SDK 8.0の機能(7) センサー関連のAPIの追加 • NFC • Bluetooth できる機能を まとめる
  89. 89. Windows Phone SDK 8.0の機能(5) UIコントロール • LongListSelectorが追加された 元はSilverlight Toolkit for Windows Phone にあったもの
  90. 90. Windows Phone SDK 8.0の機能 (9) 位置検出API • バックグラウンドで処理 機能をまとめる
  91. 91. Windows Phone SDK 8.0の機能 (10) ウォレット • XXX 機能をまとめる
  92. 92. Windows Phone 8 2012/6のWindows Phone Summit で発表 • http://channel9.msdn.com/Events/Wi ndows-Phone/Summit 2012/10/29のBuildでリリースを発 表 • 翌日にSDKを一般公開
  93. 93. 日本での状況(2) http://ggsoku.com/2012/11/wp8-web-jp/
  94. 94. 日本での状況(3) http://ggsoku.com/2012/12/windows-phone-8-jp-lineup/
  95. 95. 日本での状況(4) http://ggsoku.com/2012/12/matane-windows-phone-8/
  96. 96. Windows Phone SDK 8.0の機能 (3) ゲーム開発フレームワーク • WP8からはDirect3Dで開発 • WP7.5までのXNAもサポートされている ただし、WP7.5対象のアプリとして開発する ことになる。 Direct3D
  97. 97. Windows Phone SDK 8.0の機能(5) ランチャーの追加 • SaveAppointmentTask • MapDownloaderTask • MapsTask • MapsDirectionsTask • ShareMediaTask

×