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 アプリ開発 01.概要

  • Be the first to comment

Windows Phone 8 アプリ開発 01.概要

  1. 1. Windows Phone 8アプリ開発01.概要2013.03.05初音玲
  2. 2. 本資料はMicrosoft Virtual Academy- Building Windows Phone 8 Apps Development Jump Start- Mod 01: Introducing Windows Phone 8 Developmentを日本語訳し再構成したものです。
  3. 3. AgendaWindows Phone 8についてアプリケーションモデルWP7.1アプリとの互換性注目の新機能開発環境について
  4. 4. Windows Phone 8について
  5. 5. WP8対応機種Nokia:LumiaシリーズHTC:8X、8SSmsung:ATIV S
  6. 6. 3つの画面解像度WVGA 800 x 480 15:9WXGA 1280 x 768 15:9720p 1280 x 720 16:9
  7. 7. Windows 8とコア共有(非完全)共通部分• カーネル、ネットワーク、グラフィック、ファイルシステム、マルチメディア• ドライバモデル• Windowsと同等のマルチコア対応非共通部分• 同じAPIで開発できるו 今後の新機能は基本的に共通化を考慮
  8. 8. Windows Phone 8 API.NET API forWindowsPhone(managed)WindowsPhoneRuntime(managed/native)Win32 &COM(native)WP 7.1XAML & VB/C#WP 7.1XNA & VB/C#WP 8.0XAML & VB/C#WP 8.0XAML & C++WP 8.0XAML & VB/C# & Direct 3DWP 8.0XAML & C++WP 8.0 GamesDirect X/Direct 3D & C++WP7.1= Windows Phone OS 7.1 = Windows Phone 7.1/7.8
  9. 9. .NET API for Windows Phone• WP7.1にあるすべてのtypeとAPIを含む• System名前空間とMicrosoft.Phone名前空間WP8.0追加API• Microsoft.Phone.Wallet• Microsoft.Phone.Tasks.ShareMediaTask• Microsoft.Phone.Tasks.MapsTask• Microsoft.Phone.Storage.ExternalStorage• Microsoft.Phone.Networking.Voipなど.NET API forWindowsPhoneWindowsPhoneRuntimeWin32 &COM
  10. 10. Windows Phone Runtime (WinPRT)• WinRTのサブセット + Phone関連の追加.NET API forWindowsPhoneWindowsPhoneRuntimeWin32 &COM• Phone関連の追加• 音声合成と音声認識• カスタム連絡先ストア• ロックスクリーンなどWin RT(約11,000メンバ)サブセット(約2,800)追加(約600)
  11. 11. .NET APIとWinPRTで同等APIが存在WP7.1とWP8.0をターゲットにするなら.NET APIWP8とW8でコード共有するならWinPRT.NET API Windows Phone Runtime APISystem.IO.IsolatedStorage Windows.StorateSystem.Net.Sockets Windows.Networking.SocketsSystem.Threading.ThreadPool Windows.System.Threading.ThreadPoolMicrosoft.Devices.Sensors Windows.Devices.Sensors
  12. 12. .NETとWinPRTからWin32APIにアクセス• Winsock• Camera API• COM APIhttp://msdn.microsoft.com/ja-jp/library/windowsphone/develop/jj662956(v=vs.105).aspx呼べることは呼べますが使うシチュエーションは少ない.NET API forWindowsPhoneWindowsPhoneRuntimeWin32 &COM
  13. 13. アプリケーションモデル
  14. 14. XAML UI & Managed CodeWindows Phoneアプリ開発の基本UIはXAMLロジックはVBまたはC#.NET APIまたはWinPRT APIを使用.NET API forWindowsPhoneWindowsPhoneRuntimeXAML & VB/C#
  15. 15. Demo:XAML and Managed Code
  16. 16. XNA Games & Managed CodeXNA FrameworkWindows Phone 7.1と同じロジックはVBまたはC#.NET APIのみでWinPRT APIは不可テンプレートはVS2010と同じ.NET API forWindowsPhoneWindowsPhoneRuntimeXNA & VB/C#
  17. 17. Demo:XNA and Managed Code
  18. 18. Direct3DアプリUIはすべてDirect3DPC版とソースコードの共通化ロジックはC++WinPRT APIを使用WindowsPhoneRuntime(Direct3D)Win32 &COMDirect X/Direct 3D & C++
  19. 19. Direct3D & XAMLXAMLを使ったManagedアプリでDirect3Dライブラリを使用プロジェクトテンプレート•VB、C#、C++.NET API forWindowsPhoneWindowsPhoneRuntimeWin32 &COMXAML & VB/C# & Direct3D & C++
  20. 20. Demo:Direct3D Games
  21. 21. XAML/Managed plus Native CodeManagedアプリからNativeライブラリを使用• C++のDLLかWindows Phone RuntimeComponentを追加Winsock、ファイルI/OをサポートNativeコードの速度を享受• 画像処理、計算、文書レンダリングなど.NET API forWindowsPhoneWindowsPhoneRuntimeWin32 &COMXAML & VB/C# & C++
  22. 22. Demo:Managed and Native ComponentInterop
  23. 23. HTML5アプリ開発Win8のHTML5アプリ開発とは違う• HTML5アプリからWinPRTは使えないWP8にはIE10がインストール済• IE10のコードベースはWin8と共通• HTML5のサポートはWP7.1より上• JavaScript実行速度向上WebBrowserコントロール• IE10と同じ心臓部• コントロールの中でローカルHTMLまたはWebアプリが動作可能
  24. 24. Demo:Managed AppDisplaying HTML Context
  25. 25. WP7.1アプリとの互換性
  26. 26. WP7.1アプリとWindows Phone 8WP7.1アプリはリコンパイルなしでWP8で動作可能完全コンパチではないので多少の違いはあるQuirksモードで動作 WP8.0rumtimeWP7.1AppWP7.1AppWP8.0AppWP8.0AppリコンパイルQuirks
  27. 27. WP7.1アプリをWP8.0用に変換するWP7.1依存のコードがないか注意•Quirksモードでの互換性維持の対象外ソースコード非互換バイナリ非互換
  28. 28. ソースコード非互換の例Item Windows Phone OS 8.0 Windows Phone OS 7.1IsolatedStorageFile.FileExistsメソッドnull が渡された場合、ArgumentNullExceptionfalseMutexクラス Mutex名には¥は使用不可 Mutex名に¥が指定されると実行時に別文字に変換されて正常動作BeginRead , BeginWrite,EndRead, EndWrite,非同期実行 同期実行Thread.CurrentCultureThread.CurrentUICultureカルチャ変更は該当スレッドのみ影響カルチャ変更は全スレッドに影響XmlSerializerクラス シリアル化された型には、既定のコンストラクターが必要です。シリアル化された型の既定のコンストラクターは必須ではありません。その他の非互換についてはhttp://msdn.microsoft.com/ja-jp/library/windowsphone/develop/jj206947.aspx
  29. 29. OSバイナリ非互換の例Item Windows Phone OS 8.0 Windows Phone OS 7.1Background File Transfers 同時転送ファイル数の制限が25同時転送ファイル数の制限が5Networking Vary ヘッダーを処理して応答をキャッシュすることが可能ダウンロードが 1 秒以上かかる前提は不可Access to private nestedclassesprivate入れ子クラスは未サポートprivate入れ子クラスをサポートその他の非互換についてはhttp://msdn.microsoft.com/ja-jp/library/windowsphone/develop/jj206947.aspx
  30. 30. 注目の新機能
  31. 31. 追加コントロールLongListSelector•Silverlight Toolkitに入っていたもの• フラットリスト• グループリスト• ジャンプリストPivot / Panorama•ROMに含まれる機能に昇格IE10ベースのWebBrowser control
  32. 32. フリップタイル
  33. 33. アイコンタイル
  34. 34. サイクルタイル9個のイメージをサイクル表示
  35. 35. ロックスクリーン背景画面プロバイダーとしてアプリを登録可能•マニフェストファイルとコード追加•ロック画面設定で利用者が選択Quick Status•アプリのタイル情報をロックスクリーンの通知エリアに表示可能•通知エリアが使えるアプリは5個• ロック画面設定で利用者が選択
  36. 36. LauncherPhone内蔵機能を使うための仕組み•写真撮影、メール、SMSなどWP8で追加されたLauncher•SaveAppointmentTask•ShareMediaTask•MapDownloaderTask•MapUpdaterTask•MapsTask•MapsDirectinsTask
  37. 37. MapsNokiaマップに変更•真っ白な地図に(WP7初期の再来?)Mapコントロールも新しく•Microsoft.Phone.Controls.Maps↓Microsoft.Phone.Maps.Controls
  38. 38. Location and Location TrackingWinPRTのLocationAPIはWin8互換バックグラウンドで動作可能•対象アプリは1個のみ•CPU使用率は10%•カメラやマイクにはアクセス不可WP7.1は、.NET Location APIで別物
  39. 39. SpeechWindows.Phone.Speech.VoiceCommands• ボイスコマンド(startボタン長押しで起動)でアプリ起動Windows.Phone.Speech.Recognition• 音声認識Windows.Phone.Speech.Synthesis• 読み上げ (TTS) 機能
  40. 40. Walletクレジットカードまたはデビットカード• Windows Phone ストアでのアプリやゲームの購入に使用します。ポイントカード• スーパーやお気に入りのレストランなどで、ポイントカードを提示してスキャンします。会員証• 図書館で本を借りたり、ジムにチェックインしたりする際に使用します。クーポン• Bing を使用してクーポンを閲覧したり、手動でクーポンコードなどの情報を入力したりできます。NFC対応
  41. 41. NFC(near field communication )写真共有• 他の NFC 対応デバイスと、写真や連絡先、Web アドレスなどをすばやく共有できます。• 例:写真を表示して[…]-[share...]-[Tap+Send]ペアリング• 電話で NFC 対応のアクセサリ (スピーカーやヘッドフォンなど) に軽く触れると、アクセサリとペアリングされて Bluetooth 通信ができます。支払いなどの取引を行う• 電話機と携帯電話会社でサポートされている場合にタップでカード支払いができます。
  42. 42. カメラをコードで操作レンズピッカー• ID_CAP_ISV_CAMERA• 標準カメラアプリのファインダーより入力して随時の操作結果をファインダーに表示可能Picture.GetPreviewImageメソッドでサムネイル画像を取得可能リッチメディアレンズ• ID_CAP_MEDIALIB_PHOTO• Photosハブにある写真に対するエフェクト機能を追加可能バックグラウンドでの写真アップロード• バックグラウンドエージェントで自動アップロード可能CameraAPI• PhotoCaptureDeviceクラスで、ISO、ホワイトバランス、露出、ピントを制御• AudioVideoCaptureDeviceクラスは、ビデオと録音に対して同等の制御を提供
  43. 43. メディアライブラリをコードでID_CAP_MEDIALIB_AUDIO•ライブラリに楽曲を追加/削除可能ID_CAP_MEDIALIB_PHOTO•GetThumbnailでサムネイル可能•GetPreviewImageでプレビュー可能バックグラウンドオーディオ•PlayStateChagedEventAegsでバックグランド実行中の状態を取得可能
  44. 44. VoIP(Voice over IP)フォアグランドプロセスバックグラウンドプロセスフォアグラウンドアプリWindows PhoneRuntime アセンブリNativeコアアセンブリVoipHttpIncomingCallTask(着信通知で起動)VoipForegroundLifetimeAgent(バックグラウンドの維持)VoipCallInProgressAgent(通話中だけ実行される)VoipKeepAliveTask(VoIPサービスに対するPing)VoIPクラウドサービスアウトプロセスサーバー
  45. 45. その他のNetwork関連の拡張機能Windows.Networking•WinRTとコンパチWindows.Networking.Sockets•ネットから着信するアプリ作成可能IPv6サポートWinsockネイティブAPIサポート
  46. 46. SDカード対応Microsoft.Storage.Storage API•ID_CAP_REMOVABLE_STORAGE•SDカードからファイル読み込み可能BitLockerが適用されない写真、音楽、ビデオが格納可能SDカードからインストール可能
  47. 47. カスタム連絡先ストアWindows.Phone.PersonalInformation.ContactStoreアプリ用のカスタム連絡先•保存した連絡先は、Peopleハブに表示カスタム連絡先ストア操作用API•追加、更新、削除、紹介連絡先はクラウドにも同期保存可能http://msdn.microsoft.com/ja-jp/library/windowsphone/develop/jj207034.aspx
  48. 48. ファイルとプロトコルの関連付けアプリをファイル拡張子と関連付け可能•別アプリでファイル開くとアプリ起動•LaunchFileAsyncアプリをプロトコルと関連付け可能•別アプリでリンク開くとアプリ起動•先頭にURIスキームがある例:myproto:/S?CategoryID=aea6aehttp://msdn.microsoft.com/ja-jp/library/windowsphone/develop/jj206987.aspx
  49. 49. アプリ内購入アプリ内でコンテンツを購入可能アプリで収益を上げる方法の1つAPI• Windows.ApplicationModel.Store実装しなければいけない機能• アプリで販売可能な製品• 製品情報• [購入]ボタンで購入操作を開始する機能• 製品ダウンロードと有効化の機能http://msdn.microsoft.com/ja-jp/library/windowsphone/develop/jj206949.aspx
  50. 50. 企業向けアプリケーション開発自社開発または委託開発Intuneの管理下にできるアップデートポリシー設定可能OEMとして端末初期導入OEMストアからダウンロード
  51. 51. Company Hubビジネスアプリを配布• 組織のアプリカタログを公開• 業務アプリを配布• Windows Phone 8 カンパニーポータルアプリ
  52. 52. 国際化対応WP8SDKで楽になった• 規定言語用にAppResources.resx• サポート言語追加• AppResources.xx-xx.resxを自動生成XAML上で• {Binding Path=LocalizedResources.[Key],Source={StaticResource LocalizedStrings}}コード上で• AppResources.[key]http://msdn.microsoft.com/ja-jp/library/windowsphone/develop/ff637522.aspx
  53. 53. 統計的な情報Consumer Store Coverage: Over 180countries•7.1→8.0 :+120カ国Developer: Over 180 countries•7.1→8.0 :+140カ国Languages: 50 languages•7.1→8.0 :+26言語
  54. 54. 実行環境開発環境ストアMDIL: Machine Dependent Intermediate LanguageソースコードMSILコンパイラMDILコンパイラMSILMDILMDILNativeImageGeneretorNativeDLL
  55. 55. 開発環境について
  56. 56. 開発環境の入手Windows Phone Developer Center• 旧→ http://create.msdn.com• 新→ http://dev.windowsphone.comSDKは無料SDKの動作環境• Windows 8 64bit版• 最低4GBのメモリエミュレータ要件• Windows 8 Pro以上• SLAT対応ハード(Core iとか)
  57. 57. SLAT対応しているかを確認するSysInternalsツール•http://technet.microsoft.com/en-us/sysinternals/cc835722coreinfo –v•サポートEPT *•サポート外EPT -
  58. 58. デベロッパーセンターアカウントhttp://msdn.microsoft.com/ja-jp/library/windowsphone/help/jj206719.aspxSDKを使うだけでは不要実機転送、ストア公開には必須Microsoftアカウントに紐付け年間$99• 有料アプリは無制限に登録可能• 無料アプリは100個まで登録可能会社アカウント or 個人アカウント• 会社アカウントは登録が面倒• 会社アカウントじゃないと使えない機能あり
  59. 59. Windows Phone エミュレータWin 8 Pro以上のHyper-Vで動作実機と同じ環境Windows Phone SDKに同封位置情報や端末向きもエミュレートエミュレータ環境設定•ロックスクリーン•ネットワーク接続のシミュレーション
  60. 60. エミュレータを使う上での注意点実機よりも動作が速い可能性がある•性能チェックは実機で要確認•エミュレータは機能テスト用プロファイリングツールを活用•実機とエミュレータに使用できる•http://wptools.codeplex.com/
  61. 61. エミュレータへのデプロイデプロイ先として選択最初にデプロイされると自動起動•停止するとローカルストレージの内容は消えるエミュレータの論理スペック•WVGAで512MBメモリ•解像度:720P、WVGA、WXGA
  62. 62. エミュレータの操作方法ハードウェアボタンの操作• F1:戻るボタン• F2:ホームボタン• F3:検索ボタン• F6:カメラボタン(半押し)• F7:カメラボタン(長押し)• F9:ボリュームアップ• F10:ボリュームダウン• F12:電源ボタンマルチタッチ対応(要タッチ対応PC)PgUp/PgDnでエミュレータキーボードとPC側キーボードの切替
  63. 63. 向きのエミュレート左回転右回転
  64. 64. カメラ動作のエミュレート赤い四角が動き回る
  65. 65. Demo:Photo Snap
  66. 66. 位置情報のエミュレート① 検索② ズーム③ ライブ操作On/Off④ ピンモードOn/Off⑤ すべてのポイントをクリア⑥ マップのポイントを保存⑦ 位置移動間隔(秒)⑧ すべてのポイントを再生
  67. 67. Additional Tools-Locationでのテスト[ライブ]ボタンでライブモードOn1. 検索ボックスで地名入力で検索2. ピンモードをOn3. マップをクリックしてピン追加• PositiionChangedイベント発生[ライブ]ボタンでライブモードOff1. ピンモードをOn2. マップをクリックしてピン追加3. マップのポイントを保存4. すべてのポイントを再生• PositiionChangedイベント発生
  68. 68. Demo:Location Demo
  69. 69. ロックスクリーンのエミュレートロックスクリーン表示•シミュレーションダッシュボードで設定•F12を2回押す
  70. 70. ネットワークのシミュレーション
  71. 71. スクリーンショットの保存[キャプチャ]でキャプチャ[保存]でPCのマイピクチャに保存
  72. 72. Visual StudioでのデバッグWindowsアプリと同じようデバッグ•ブレークポイント•ステップ実行•変数参照や値変更
  73. 73. Windows Phoneとの接続Windows Phone OS 7.1•Zune必須Windows Phone 8.0•Zune不要
  74. 74. 端末を開発用に登録する登録手順1. Windows Phone 8をWiFi接続2. USBでPCと接続3. Windows Phone DeveloperRegistrationを起動4. 「Click the Register button to unlockthe phone」と表示されたら[Register]ボタンをクリック5. デベロッパセンターアカウントに紐付けたMicrosoftアカウントに[サインイン]登録できる端末は3台まで
  75. 75. 実機へデプロイ!ターゲットを[Device]実行で実機にデプロイされて実行エミュレータと同様のデバッグ可能VSからデプロイできるのは10個まで•開発が終わったアプリはストアから
  76. 76. 実機デバッグエミュレータと同じようデバッグ•ブレークポイント•ステップ実行•変数参照や値変更
  77. 77. 実機でのスクリーンショット保存Windows Phone 8から可能電源とホームボタンの同時押し実機の[albums]-[screenshots]に保存
  78. 78. SummaryWP8には新機能が盛り沢山Windows 8とWP8でOSコアが共通XAML+マネージド、XNA+マネージド、Direct3D+ネイティブのハイブリッドアプリも作成可能WP7.1用アプリは変更なしまたはリコンパイルでWP8で動作可能

    Be the first to comment

    Login to see the comments

  • kodapon

    Jun. 30, 2014

Views

Total views

2,144

On Slideshare

0

From embeds

0

Number of embeds

123

Actions

Downloads

0

Shares

0

Comments

0

Likes

1

×