fundamentals of metro style apps how and when your app will run metro n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Fundamentals of Metro style apps: how and when your app will run Metro スタイル アプリの基礎 : アプリ実 PowerPoint Presentation
Download Presentation
Fundamentals of Metro style apps: how and when your app will run Metro スタイル アプリの基礎 : アプリ実

Loading in 2 Seconds...

play fullscreen
1 / 48

Fundamentals of Metro style apps: how and when your app will run Metro スタイル アプリの基礎 : アプリ実 - PowerPoint PPT Presentation


  • 232 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Fundamentals of Metro style apps: how and when your app will run Metro スタイル アプリの基礎 : アプリ実' - shira


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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 runMetro スタイル アプリの基礎: アプリ実行の方法とタイミング

Ben Srour

Senior Program Manager Lead

Microsoft Corporation

slide2

トランスクリプト付き日本語翻訳ファイルについてトランスクリプト付き日本語翻訳ファイルについて

この PowerPoint ファイルには、「ノート」 セクションにセッションの講師が話している内容を書き起こしたもの (トランスクリプト) を入力しています。

ノートを参照するには、PowerPoint の表示モードを [標準] または [ノート] に設定してください。[標準] の場合は、スライド表示ウィンドウの下 (ノート ペイン) に表示されます。

ノート表示モードで見た際にノートが 1 ページに収まりきらない場合は、スライドを複製して複数ページにわたってノートを入力しています。そのため、オリジナルの英語版ファイルと比較して、スライド番号やスライドの枚数が異なる場合があります。(本スライドが追加されている時点で、英語版とは枚数が異なります)

ノートを印刷するには、[印刷プレビュー] または [印刷] 画面において、[印刷対象] を [ノート] に指定してください。

slide3

免責事項

本プレゼンテーション (以下、本書) で提供されている情報は、本書が発表された時点における Microsoft の見解を述べたものです。市場ニーズの変化に対応する必要があるため、本書は記載された内容の実現に関する Microsoft の確約とはみなされないものとします。また本書に記載された情報の正確さについて、保証するものではありません。

本書は情報の提供のみを目的としており、明示または黙示に関わらず、本書について Microsoft はいかなる保証をするものでもありません。

本書に記載されている機能名や用語の日本語訳は、あくまでも暫定的なものであり、将来変更される可能性があります。

slide4
アジェンダ
  • アプリはいつ実行されるのか
  • アプリはどのように実行されるのか
  • アプリが常に実行中であるように見せるためのヒント
    • 状態の保存と復元
    • ライブ タイルの使用
  • アプリのさまざまな実行方法について

理解していただきたいこと

  • Windows 8 で Metro スタイル アプリが実行される方法とタイミング
  • アプリの状態を保持する方法
slide5
アプリを実行するタイミングの変更

多数のアプリを起動

フォアグラウンドのアプリを選択

システムがアプリの存続を管理

ユーザーがアプリの存続を管理

slide6
プロセスのライフサイクル

アプリ 1

アプリ 2

アプリ N

アプリ 3

実行

アプリは短時間おいて一時停止する

アプリは一時停止の状態から直ちに再開

一時停止

アプリはメモリの制約から通知なしで終了される

終了

slide7
一時停止の導入
  • システム リソースはフォアグラウンドのアプリに優先的に割り当てられる
  • 非アクティブなアプリはバッテリ持続時間や応答性に影響を及ぼさないように、OS によって一時停止される
  • アプリを瞬時に切り替えられる
slide8
アプリが終了されるケース
  • システムのメモリ不足
  • ユーザーの切り替え
  • システムのシャットダウン
  • アプリのクラッシュ

アプリの終了は、アプリに通知されない

slide10
プロセスの状態の遷移

アプリは 5秒間で一時停止を処理

終了前に、アプリに通知は行われない

一時停止

実行中の

アプリ

一時停止状態の

アプリ

アプリの

終了

ユーザーがアプリを起動

メモリ不足

復帰

再開時、アプリには通知が行われる

スプラッシュ スクリーン

コードが実行される

コードは実行されない

アプリは非実行状態

slide11
一時停止と再開の登録は簡単

//Suspending イベントを登録し、イベントを受信したら suspendingHandlerを呼び出す

Windows.UI.WebUI.WebUIApplication.addEventListener("suspending",suspendingHandler);

//Suspending イベントを処理し、WinJSsessionStateを使用して現在のユーザー セッションを保存

functionsuspendingHandler(eventArgs){

//一時停止状態に入る

}

//Resuming イベントを登録し、イベントを受信したら resumingHandlerを呼び出す

Windows.UI.WebUI.WebUIApplication.addEventListener("resuming",resumingHandler);

functionresumingHandler(){

//再開される。通常、特に処理は行わない

}

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

さまざまな情報を、いち早く、少しずつ

アプリ間で情報共有

コンテキスト内で検索

slide15
アプリを開始する方法の変更

タイル、検索、共有などからアクティブ化

[スタート] メニューから起動

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

kind

実行中のアプリ

Launch

activated

shareTarget

Search

slide18
アクティブ化処理中のスプラッシュ スクリーン
  • システムが提供するスプラッシュ スクリーンによって、一貫性のあるアプリ切り替えが実現される
  • Windows がアプリを起動しているときに表示
  • 表示されているのは、アクティブ化処理が行われている間
  • 開発者は、アプリ マニフェストで色と画像を指定
  • アプリがアクティブ化処理の 15 秒間内にウィンドウを表示できない場合、そのアプリは終了される
slide19
延長スプラッシュ スクリーン
  • 読み込みに時間がかかるアプリもある
  • アプリの最初の表示内容をスプラッシュ スクリーンと同一にする
  • スプラッシュ スクリーンを手動で表示するには、Splash Screen API を使用
  • Splash Screen SDK のサンプルを参照してください。
slide20
タイル起動によるアクティブ化

アプリの実行

activated

イベント

ユーザーがタイルをタップ

launch

eventArgs.kind

スプラッシュ スクリーンの表示

slide21
アクティブ化

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) {

}

}

slide22

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

slide23
実際には実行されてなくても実行中であるように見えるアプリが洗練されたアプリです。実際には実行されてなくても実行中であるように見えるアプリが洗練されたアプリです。
slide24
ユーザー データをこまめに保存
  • 作業内容は消失
  • 作業内容を保存
  • アプリの状態を常に保存し復元できるアプリが望ましい
slide25
アプリ データの保存
  • アプリの使用中にアプリ データをこまめに保存
  • アプリ データは、
    • アプリ独自のカスタムなデータ構造
  • Windows.Storage.ApplicationData
  • 必要に応じてファイル I/O を使用
slide26
ユーザー セッション状態の保存と復元
  • 単にユーザー セッション メタデータを保存し、復元する
    • ユーザーがアプリを使用している最中に
  • HTML/JS
    • WinJS.Application.sessionState オブジェクトを使用
    • プロパティ バッグは一時停止時に自動的にシリアル化されてディスクへ保存
    • アクティブ化時にディスクからプロパティ バッグを再読み込み
    • アプリがクラッシュした場合は状態を再読み込みしない
  • XAML および C++
    • SuspensionManager クラス (SDK サンプルを参照) は HTML/JS の sessionState と同等の機能を提供
slide27
アプリがクラッシュしたら、再起動
  • アプリのフリーズは当然避けたいが…
  • 以下のような場合には突然終了される可能性がある
    • 読み込み時間が長すぎる
    • 一時停止するのに時間がかかりすぎる
    • 入力メッセージの処理が停止 (UI スレッドの I/O がブロックされる)
    • タスク マネージャー
  • ユーザーをホームに戻し、保存されているユーザー セッション状態は無視
  • アクティブ化イベント引数で previousExecutionStateが提供される
slide32
ライブ タイルを使って実行中に見せる
  • タイルを利用して、ユーザーがアプリを使用していないときも価値を提供
  • 何らかの処理が行われているように見せることで、ユーザーがアプリに戻るのを促す効果
  • スタート画面上のタイルを更新する 2 つの方法
slide33
タイルのローカル更新
  • アプリの実行中にローカル通知を使用してタイルを更新
  • アプリの状態を反映するのに最適
      • ダウンロードした画像
      • 今開いている本のページ

実行中のアプリ

Local Notification API を呼び出す

slide34
プッシュ通知を使用したライブ タイル

アプリ クラウド サービス

  • アプリが実行中でなくてもタイルを更新できる!
  • プッシュ通知を使用して、スタート画面のタイルをリモート更新可能
  • 最新コンテンツをユーザーに提供するのに最適
  • 詳細情報: [396] Using tiles and notifications

HTTP POST

Windows プッシュ通知サービス (WNS)

通知を配信

slide36
バックグラウンド オーディオの再生
  • アプリはバックグラウンドでオーディオを再生できる
  • 開発者は、アプリ マニフェストでバックグラウンド オーディオを指定
  • オーディオ ストリームはそれぞれ特定の型を持つ (通信、メディア、ゲーム)
  • 一度に 1 つのオーディオ ストリームの型を再生可能
  • 詳細情報: [778] Media fundamentals of a communications app
slide37
バックグラウンドでのアップロードとダウンロードバックグラウンドでのアップロードとダウンロード
  • BackgroundTransferAPI を使用すると、HTTP経由でのデータのアップロードまたはダウンロードがバックグラウンドで実行可能
    • フォアグラウンドのときに開始したアップロードまたはダウンロードを、一時停止中も継続できる
    • 詳細情報: [581] Making apps social and connected with HTTP services
slide38
ロック画面アプリ
  • バックグラウンドで実行可能なアプリ
  • リアルタイム通信アプリ向け (メール、IM、VoIP)
  • バックグラウンドで TCP ソケットを保持
  • 定期的にコードを実行
  • システム イベント (ユーザー ログイン) に応答する形でコードを実行
slide40
アクティブ化のベスト プラクティス
  • すばやくアクティブ化する
  • アプリを初期化する
  • 処理は必要になるまで、できるだけ先に延ばす
  • ユーザーが最後に使用した状態を復元する
  • 15 秒以上必要な場合は、延長スプラッシュ スクリーンを表示する
slide41
一時停止のベスト プラクティス
  • 状態をすばやく (5 秒以内に)保存する
  • 終了されることを前提に、ユーザー セッション データを保存する
  • アプリのタイルを更新する
  • 共有リソース (ファイル、デバイス、ネットワークなど) への排他的アクセスを解放する
  • 一時停止前から、アプリ データをこまめに保存する
slide42
まとめ
  • Windows アプリの実行方法に関する新しい考え方
    • バックグラウンドにあるアプリは、一時停止され、最終的には終了される
  • アプリを常に最新の状態にするには、
    • 状態を保存/復元
    • ライブ タイルの活用
slide43
関連セッション
  • [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
slide44
リンク
  • アプリのライフサイクル (英語)
  • アプリをアクティブ化する方法 (英語)
  • アプリを一時停止する方法 (英語)
  • アプリを再開する方法 (英語)
  • WNS とLive Connect のアプリ管理サイトでプッシュ通知の使用を始められます。
    • https://manage.dev.live.com/build
  • バックグラウンド タスクの概要 (英語)
slide45
その他の参照リソースとドキュメント
  • SDK サンプル
    • アクティブ化と有効期間
    • スプラッシュ スクリーン
    • タイルと通知
    • 共有
    • 検索
feedback and questions http forums dev windows com session feedback http bldw in sessionfeedback
thank you

Feedback and questions http://forums.dev.windows.com

Session feedbackhttp://bldw.in/SessionFeedback

slide47

© 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.