1 / 48

Fundamentals of Metro style apps: how and when your app will run Metro スタイル アプリの基礎 : アプリ実行の方法とタイミング

APP-409T. Fundamentals of Metro style apps: how and when your app will run Metro スタイル アプリの基礎 : アプリ実行の方法とタイミング. Ben Srour Senior Program Manager Lead Microsoft Corporation. トランスクリプト付き日本語翻訳ファイルについて. この PowerPoint ファイルには、「ノート」 セクションにセッションの講師が話している内容を書き起こしたもの ( トランスクリプト ) を入力しています。

shira
Download Presentation

Fundamentals of Metro style apps: how and when your app will run Metro スタイル アプリの基礎 : アプリ実行の方法とタイミング

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. APP-409T Fundamentals of Metro style apps: how and when your app will runMetro スタイル アプリの基礎: アプリ実行の方法とタイミング Ben Srour Senior Program Manager Lead Microsoft Corporation

  2. トランスクリプト付き日本語翻訳ファイルについてトランスクリプト付き日本語翻訳ファイルについて この PowerPoint ファイルには、「ノート」 セクションにセッションの講師が話している内容を書き起こしたもの (トランスクリプト) を入力しています。 ノートを参照するには、PowerPoint の表示モードを [標準] または [ノート] に設定してください。[標準] の場合は、スライド表示ウィンドウの下 (ノート ペイン) に表示されます。 ノート表示モードで見た際にノートが 1 ページに収まりきらない場合は、スライドを複製して複数ページにわたってノートを入力しています。そのため、オリジナルの英語版ファイルと比較して、スライド番号やスライドの枚数が異なる場合があります。(本スライドが追加されている時点で、英語版とは枚数が異なります) ノートを印刷するには、[印刷プレビュー] または [印刷] 画面において、[印刷対象] を [ノート] に指定してください。

  3. 免責事項 本プレゼンテーション (以下、本書) で提供されている情報は、本書が発表された時点における Microsoft の見解を述べたものです。市場ニーズの変化に対応する必要があるため、本書は記載された内容の実現に関する Microsoft の確約とはみなされないものとします。また本書に記載された情報の正確さについて、保証するものではありません。 本書は情報の提供のみを目的としており、明示または黙示に関わらず、本書について Microsoft はいかなる保証をするものでもありません。 本書に記載されている機能名や用語の日本語訳は、あくまでも暫定的なものであり、将来変更される可能性があります。

  4. アジェンダ • アプリはいつ実行されるのか • アプリはどのように実行されるのか • アプリが常に実行中であるように見せるためのヒント • 状態の保存と復元 • ライブ タイルの使用 • アプリのさまざまな実行方法について 理解していただきたいこと • Windows 8 で Metro スタイル アプリが実行される方法とタイミング • アプリの状態を保持する方法

  5. アプリを実行するタイミングの変更 多数のアプリを起動 フォアグラウンドのアプリを選択 システムがアプリの存続を管理 ユーザーがアプリの存続を管理

  6. プロセスのライフサイクル アプリ 1 アプリ 2 アプリ N アプリ 3 実行 … アプリは短時間おいて一時停止する アプリは一時停止の状態から直ちに再開 一時停止 アプリはメモリの制約から通知なしで終了される 終了

  7. 一時停止の導入 • システム リソースはフォアグラウンドのアプリに優先的に割り当てられる • 非アクティブなアプリはバッテリ持続時間や応答性に影響を及ぼさないように、OS によって一時停止される • アプリを瞬時に切り替えられる

  8. アプリが終了されるケース • システムのメモリ不足 • ユーザーの切り替え • システムのシャットダウン • アプリのクラッシュ アプリの終了は、アプリに通知されない

  9. デモ プロセス ライフサイクルの考え方

  10. プロセスの状態の遷移 アプリは 5秒間で一時停止を処理 終了前に、アプリに通知は行われない 一時停止 実行中の アプリ 一時停止状態の アプリ アプリの 終了 ユーザーがアプリを起動 メモリ不足 復帰 再開時、アプリには通知が行われる スプラッシュ スクリーン コードが実行される コードは実行されない アプリは非実行状態

  11. 一時停止と再開の登録は簡単 //Suspending イベントを登録し、イベントを受信したら suspendingHandlerを呼び出す Windows.UI.WebUI.WebUIApplication.addEventListener("suspending",suspendingHandler); //Suspending イベントを処理し、WinJSsessionStateを使用して現在のユーザー セッションを保存 functionsuspendingHandler(eventArgs){ //一時停止状態に入る } //Resuming イベントを登録し、イベントを受信したら resumingHandlerを呼び出す Windows.UI.WebUI.WebUIApplication.addEventListener("resuming",resumingHandler); functionresumingHandler(){ //再開される。通常、特に処理は行わない }

  12. 一時停止のしくみ • 一時停止状態のアプリは NT カーネルのスケジューリング対象外 • CPU、ディスク、ネットワークの消費はゼロ • すべてのスレッドが一時停止される • アプリはメモリ内に残る • システム全体がデッドロック状態に陥るようなクリティカル セクション内でアプリが一時停止されることがないよう、カーネルが管理 • アプリはフォアグラウンドに移動されると瞬時に一時停止状態から復帰

  13. アプリの起動

  14. 変化するユーザーの要望 さまざまな情報を、いち早く、少しずつ アプリ間で情報共有 コンテキスト内で検索

  15. アプリを開始する方法の変更 タイル、検索、共有などからアクティブ化 [スタート] メニューから起動

  16. コントラクトによるアプリのアクティブ化 • アプリはコントラクトによってアクティブ化される • 起動、検索、共有など • アプリはコントラクト別に処理を初期化する必要がある • コンテキストは提供される kind 実行中のアプリ Launch activated shareTarget Search

  17. デモ コントラクトによるアプリのアクティブ化

  18. アクティブ化処理中のスプラッシュ スクリーン • システムが提供するスプラッシュ スクリーンによって、一貫性のあるアプリ切り替えが実現される • Windows がアプリを起動しているときに表示 • 表示されているのは、アクティブ化処理が行われている間 • 開発者は、アプリ マニフェストで色と画像を指定 • アプリがアクティブ化処理の 15 秒間内にウィンドウを表示できない場合、そのアプリは終了される

  19. 延長スプラッシュ スクリーン • 読み込みに時間がかかるアプリもある • アプリの最初の表示内容をスプラッシュ スクリーンと同一にする • スプラッシュ スクリーンを手動で表示するには、Splash Screen API を使用 • Splash Screen SDK のサンプルを参照してください。

  20. タイル起動によるアクティブ化 アプリの実行 activated イベント ユーザーがタイルをタップ launch eventArgs.kind スプラッシュ スクリーンの表示

  21. アクティブ化 Windows.UI.WebUI.WebUIApplication.addEventListener("activated",activatedHandler); functionactivatedHandler(eventArgs) { //タイルからのアクティブ化の初期化ロジック if(eventArgs.kind==Windows.ApplicationModel.Activation.ActivationKind.launch){ } //共有からのアクティブ化の初期化ロジック else if (eventArgs.kind==Windows.ApplicationModel.Activation.ActivationKind.shareTarget) { } }

  22. アプリを常に実行しているように見せるためのヒントアプリを常に実行しているように見せるためのヒント

  23. 実際には実行されてなくても実行中であるように見えるアプリが洗練されたアプリです。実際には実行されてなくても実行中であるように見えるアプリが洗練されたアプリです。

  24. ユーザー データをこまめに保存 • 作業内容は消失 • 作業内容を保存 • アプリの状態を常に保存し復元できるアプリが望ましい

  25. アプリ データの保存 • アプリの使用中にアプリ データをこまめに保存 • アプリ データは、 • アプリ独自のカスタムなデータ構造 • Windows.Storage.ApplicationData • 必要に応じてファイル I/O を使用

  26. ユーザー セッション状態の保存と復元 • 単にユーザー セッション メタデータを保存し、復元する • ユーザーがアプリを使用している最中に • HTML/JS • WinJS.Application.sessionState オブジェクトを使用 • プロパティ バッグは一時停止時に自動的にシリアル化されてディスクへ保存 • アクティブ化時にディスクからプロパティ バッグを再読み込み • アプリがクラッシュした場合は状態を再読み込みしない • XAML および C++ • SuspensionManager クラス (SDK サンプルを参照) は HTML/JS の sessionState と同等の機能を提供

  27. アプリがクラッシュしたら、再起動 • アプリのフリーズは当然避けたいが… • 以下のような場合には突然終了される可能性がある • 読み込み時間が長すぎる • 一時停止するのに時間がかかりすぎる • 入力メッセージの処理が停止 (UI スレッドの I/O がブロックされる) • タスク マネージャー • ユーザーをホームに戻し、保存されているユーザー セッション状態は無視 • アクティブ化イベント引数で previousExecutionStateが提供される

  28. 状態の保存と復元のベスト プラクティス

  29. デモ 状態の保存と復元

  30. デモ 状態の保存と復元 (続き)

  31. ライブ タイルを使って常に実行中に見せる

  32. ライブ タイルを使って実行中に見せる • タイルを利用して、ユーザーがアプリを使用していないときも価値を提供 • 何らかの処理が行われているように見せることで、ユーザーがアプリに戻るのを促す効果 • スタート画面上のタイルを更新する 2 つの方法

  33. タイルのローカル更新 • アプリの実行中にローカル通知を使用してタイルを更新 • アプリの状態を反映するのに最適 • ダウンロードした画像 • 今開いている本のページ 実行中のアプリ Local Notification API を呼び出す

  34. プッシュ通知を使用したライブ タイル アプリ クラウド サービス • アプリが実行中でなくてもタイルを更新できる! • プッシュ通知を使用して、スタート画面のタイルをリモート更新可能 • 最新コンテンツをユーザーに提供するのに最適 • 詳細情報: [396] Using tiles and notifications HTTP POST Windows プッシュ通知サービス (WNS) 通知を配信

  35. その他のアプリ実行方法

  36. バックグラウンド オーディオの再生 • アプリはバックグラウンドでオーディオを再生できる • 開発者は、アプリ マニフェストでバックグラウンド オーディオを指定 • オーディオ ストリームはそれぞれ特定の型を持つ (通信、メディア、ゲーム) • 一度に 1 つのオーディオ ストリームの型を再生可能 • 詳細情報: [778] Media fundamentals of a communications app

  37. バックグラウンドでのアップロードとダウンロードバックグラウンドでのアップロードとダウンロード • BackgroundTransferAPI を使用すると、HTTP経由でのデータのアップロードまたはダウンロードがバックグラウンドで実行可能 • フォアグラウンドのときに開始したアップロードまたはダウンロードを、一時停止中も継続できる • 詳細情報: [581] Making apps social and connected with HTTP services

  38. ロック画面アプリ • バックグラウンドで実行可能なアプリ • リアルタイム通信アプリ向け (メール、IM、VoIP) • バックグラウンドで TCP ソケットを保持 • 定期的にコードを実行 • システム イベント (ユーザー ログイン) に応答する形でコードを実行

  39. まとめ

  40. アクティブ化のベスト プラクティス • すばやくアクティブ化する • アプリを初期化する • 処理は必要になるまで、できるだけ先に延ばす • ユーザーが最後に使用した状態を復元する • 15 秒以上必要な場合は、延長スプラッシュ スクリーンを表示する

  41. 一時停止のベスト プラクティス • 状態をすばやく (5 秒以内に)保存する • 終了されることを前提に、ユーザー セッション データを保存する • アプリのタイルを更新する • 共有リソース (ファイル、デバイス、ネットワークなど) への排他的アクセスを解放する • 一時停止前から、アプリ データをこまめに保存する

  42. まとめ • Windows アプリの実行方法に関する新しい考え方 • バックグラウンドにあるアプリは、一時停止され、最終的には終了される • アプリを常に最新の状態にするには、 • 状態を保存/復元 • ライブ タイルの活用

  43. 関連セッション • [APP-162T] Building high performance Metro style apps using HTML5 • [APP-737T] Metro style apps using XAML: what you need to know • [PLAT-475T] Create experiences that span devices • [APP-396T] Using tiles and notifications • [SAC-963H] SMB2 in a continuously available file server • [PLAT-581T] Making apps social and connected with HTTP services • [APP-405T] Share: your app powers the Windows 8 share experience • [APP-406T] Search: integrating into the Windows 8 search experience • [PLAT-778T] Media fundamentals of a communications app • [APP-410T] Real time communication: keep your Metro style app connected whether it is running or suspended

  44. リンク • アプリのライフサイクル (英語) • アプリをアクティブ化する方法 (英語) • アプリを一時停止する方法 (英語) • アプリを再開する方法 (英語) • WNS とLive Connect のアプリ管理サイトでプッシュ通知の使用を始められます。 • https://manage.dev.live.com/build • バックグラウンド タスクの概要 (英語)

  45. その他の参照リソースとドキュメント • SDK サンプル • アクティブ化と有効期間 • スプラッシュ スクリーン • タイルと通知 • 共有 • 検索

  46. thank you Feedback and questions http://forums.dev.windows.com Session feedbackhttp://bldw.in/SessionFeedback

  47. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related