windowストアアプリ コントラクトとライフサイクル

27
Windows Store Apps Contract and Application Lifecycle 博之 (Microsoft MVP for Silverlight) 極東IT-Engineers 代表/RIAアーキテクチャ研究会 Windowsストアアプリ コントラクトと アプリケーションライフサイクル Community Open Day 2013

Upload: hiroyuki-mori

Post on 05-Dec-2014

1.423 views

Category:

Documents


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Windowストアアプリ コントラクトとライフサイクル

Windows Store AppsContract and Application Lifecycle森 博之 (Microsoft MVP for Silverlight)

極東IT-Engineers 代表/RIAアーキテクチャ研究会

Windowsストアアプリ

コントラクトと

アプリケーションライフサイクル

Community Open Day 2013

Page 2: Windowストアアプリ コントラクトとライフサイクル

自己紹介Self-introduction

• 森 博之(もり ひろゆき)• フリーランスエンジニア/テクニカルライター• 極東IT-Engineers 代表• RIA Architecture研究会• Microsoft MVP for Silverlight• 著書

• 「.NET開発者」のためのSilverlight入門• Windows 8 [入門+実用] Windowsストアアプリ開発入門

Community Open Day 2013

Page 3: Windowストアアプリ コントラクトとライフサイクル

アジェンダAgenda

• 開発者視点から見たWindows 8

• コントラクトと機能拡張

• アプリケーションライフサイクル

Community Open Day 2013

Page 4: Windowストアアプリ コントラクトとライフサイクル

開発者視点から見たWindows 8Community Open Day 2013

Page 5: Windowストアアプリ コントラクトとライフサイクル

Windows8を取り巻く環境Around the Windows 8

• スマートフォン/タブレットの普及

⇒タッチエクスペリエンスの普及

• 高繊細・高性能ディスプレイ/ビデオカードの登場

⇒表現力の向上

• ハードウェア/パーツの小型化

⇒GPS・電子コンパス・NFC・カメラなど

Community Open Day 2013

Page 6: Windowストアアプリ コントラクトとライフサイクル

OSの役割とはAbout Operating System

• ハードウェアの制御(ハードウェアの抽象化)

• アプリケーションからの制御(APIの提供)

• ユーザーインターフェースの提供(ユーザーエクスペリエンス)

これらが協調・統合する方向に進化している

Community Open Day 2013

Page 7: Windowストアアプリ コントラクトとライフサイクル

Windows 8では…Windows 8 is ...

• 新しいスタートメニュー

⇒タッチインタラクションに 適化/アプリ情報の表示

• チャームによるアプリ連携

⇒OS機能とアプリとの連携

• Windowsストア

⇒インストールエクスペリエンスの向上

Community Open Day 2013

Page 8: Windowストアアプリ コントラクトとライフサイクル

開発者視点で見ると...Developer’s eyes

• 新しいスタートメニュー

⇒アプリからOSへ情報を通知しなければ…

• チャームによるアプリ連携

⇒OSとアプリ間で相互連携しなければ…

• Windowsストア

⇒アプリからストアに対して情報を公開しなければ…

Community Open Day 2013

Page 9: Windowストアアプリ コントラクトとライフサイクル

コントラクト!Contract !

• OSや他のアプリとの連携を支える仕組み

• アプリ視点では外部との連携を行うための取り決め

Community Open Day 2013

Page 10: Windowストアアプリ コントラクトとライフサイクル

コントラクトと拡張機能Community Open Day 2013

Page 11: Windowストアアプリ コントラクトとライフサイクル

コントラクトはどのように行うかHow to contract

• 利用する機能をマニフェストに宣言

• 決められたロジックを追記する

Community Open Day 2013

Page 12: Windowストアアプリ コントラクトとライフサイクル

デモDemonstration

• サンプル

• アプリへの検索の追加• http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/JJ130767(v=win.10).aspx

• http://msdn.microsoft.com/ja-JP/windows/apps/jj674832

Community Open Day 2013

Page 13: Windowストアアプリ コントラクトとライフサイクル

検索コントラクトSearch ContractCommunity Open Day 2013

アプリマニフェストで検索コントラクトを宣言

アプリの検索ページを作成

メインアプリの時、検索クエリに応答する

メインアプリじゃない時、検索クエリに応答する

フィルターや検索結果の表示を行う

空の検索クエリに対するアクティブ化の処理

Page 14: Windowストアアプリ コントラクトとライフサイクル

コントラクトと拡張機能Contract and Extensions

コントラクト• キャッシュファイルアップデーターコントラ

クト

• ファイルオープンピッカーコントラクト

• ファイル保存ピッカーコントラクト

• リモート再生コントラクト

• 検索コントラクト

• 設定コントラクト

• 共有コントラクト

拡張機能• アカウントの画像プロバイダー

• 自動再生

• バックグラウンドタスク

• カメラの設定

• 連絡先ピッカー

• ファイルのアクティブ化

• ゲームエクスプローラー

• 印刷タスク設定

• プロトコルのアクティブ化

• SSL/証明書

Community Open Day 2013

1つ以上のアプリ間とのコントラクト アプリとOSのコントラクト

Page 15: Windowストアアプリ コントラクトとライフサイクル

アプリケーションのライフサイクルCommunity Open Day 2013

Page 16: Windowストアアプリ コントラクトとライフサイクル

アプリのライフサイクルは…App Lifecycle is...

• デスクトップアプリではアプリが起動してから終了するまでに必要となる処理や発生するイベントに対応するロジックを記述すればよい

⇒Windowsストアアプリのライフサイクルは異なる

⇒スマートフォンのようなライフサイクルの管理が必要

Community Open Day 2013

Page 17: Windowストアアプリ コントラクトとライフサイクル

スマホのライフサイクル?What’s a smartphone lifecycle?

• スマートフォンでは…

• 多くのスマホではUI上シングル起動

• バックグラウンド動作する場合もある

• 必要に応じてアプリが復元・終了する

Community Open Day 2013

Page 18: Windowストアアプリ コントラクトとライフサイクル

アプリのライフサイクルWindows Store Apps Lifecycle.

• Windowsストアアプリのライフサイクル

• アプリの展開

• Windowsストアからアプリパッケージを展開する

• アプリの実行

• のちほど…

• アプリの削除

• 削除時にはアプリのローカルデータと共に削除される

Community Open Day 2013

Page 19: Windowストアアプリ コントラクトとライフサイクル

アプリの実行Execute ApplicationCommunity Open Day 2013

• アプリの状態• Running(実行中)

• NotRunning(実行されていない)

• Suspended(中断)

• アプリの振る舞い• Activated

• Suspending

• Resuming

Page 20: Windowストアアプリ コントラクトとライフサイクル

アクティブ化~実行中Activated~Running

• アクティブ化• アプリの起動時

• コントラクトからの起動(検索や他アプリ)

• Activatedイベントにより通知される• OnLaunchedメソッドのイベント引数にあるPreviousExecutionStateにより前回どのように終了していたかを取得できる。

⇒初回起動なのか、前回を復元するのかを選択する

Community Open Day 2013

Page 21: Windowストアアプリ コントラクトとライフサイクル

デモDemonstration

• サンプル

• Windowsストア : Gridアプリケーション

Community Open Day 2013

Page 22: Windowストアアプリ コントラクトとライフサイクル

アプリの一時停止Suspending Apps

• 一時停止• アプリを切り替えた場合、Windowsが低電力状態となった場

合にアプリを一時停止する⇒ユーザーがすぐ復帰する場合もあるため、数秒待機して一時停止する⇒Suspendingイベントが登録されていたら、一時停止前にイベントに通知される⇒アプリデータのメモリ状況を保持するメモリがない場合、アプリは終了する⇒必要に応じたデータ保存を行う仕組みが必要になる

Community Open Day 2013

Page 23: Windowストアアプリ コントラクトとライフサイクル

デモDemonstration

• サンプル

• Windowsストア : Gridアプリケーション

Community Open Day 2013

Page 24: Windowストアアプリ コントラクトとライフサイクル

アプリの復元方法Resuming Apps

• アプリの復元

• システムにより可能な限りの復元が行われる

• ただし、ニュースアプリのような時間経過によって内容が変化するアプリは更新が必要になる

• ⇒Resumingイベント

• 復元できない場合はアクティブ化時にデータを復元する必要がある

• ⇒Suspending時に適切にデータ保存しておく必要がある

Community Open Day 2013

Page 25: Windowストアアプリ コントラクトとライフサイクル

デモDemonstration

• サンプル

• Windowsストア : Gridアプリケーション

Community Open Day 2013

Page 26: Windowストアアプリ コントラクトとライフサイクル

まとめIn conclusion

• Windowsやアプリの進化⇒コントラクト

• コントラクトと拡張機能• コントラクト:1つ以上のアプリ間とのコントラクト

• 拡張機能:アプリとOSのコントラクト

• ライフサイクル• スマートフォンのようなライフサイクルの管理が必要

Community Open Day 2013

Page 27: Windowストアアプリ コントラクトとライフサイクル

ご清聴ありがとうございましたThank youCommunity Open Day 2013