windowsruntimeで通知ファーストなアプリを作る
DESCRIPTION
2014年8月の.Netラボで発表しましたTRANSCRIPT
WindowsRuntime で通知ファーストなアプリを作る
栂井 良太 (@garicchi)
1
自己紹介
栂井良太 (Ryota Togai)
@garicchi
Microsoft MVP for WindowsPlatformDevelopment 2014 ~
学生です
http://garicchi.com※ 息子ではない
2
アジェンダ
WindowsRuntime とはWindowsRuntime の通知トースト通知タイル通知バッジ通知スケジュール通知定期的なポーリング通知Azure と連携したプッシュ通知
3
WindowsRuntime とは
4
WindowsRuntime
Windows8 で登場したの新しい API
Windows ストアアプリと WindowsPhone アプリを作ることができる
言語プロジェクションによって C++ 、 C# 、 VB 、 JavaScript の 4 つの言語から呼び出すことができる
5
これまでとの大きな違い
セキュアアプリの隔離Windows ストアアプリのプロセスモデルの単純化電力消費効率がよいモダン UI
6
よく言われる意見
Windows ストアアプリは仕事でつかわないしなぁ…まだ市場も整ってないし…将来性あると思ってるの?Windows8 は失敗作でしょ?
7
そんなことはない
仕事や家庭で多く普及してる Windows がタブレットに今までとは違うあたらしいソフトウエアのスタイル個人的にかなり未来を感じる 8
例えばコレ
ウチの大学の図書館図書貸し出しシステムタッチ対応 ( なぜかマウスポインタがある )レスポンス最悪 9
趣味レベルから始めましょう
仕事をちょっと効率化したりマイコン制御したりWindows ストアに提出したり ( レビューしてくれます )
10
Windows8 で大きく変わったものは?
11
スタート画面
スタート画面を開く多だけで複数のアプリの新着情報を見れるようになった。従来→メールチェックのためにメールを開く、スケジュールチェックのためにカレンダーを開くなど
12
Windows8 以降では通知が重視 !!
そのための WindowsRuntime の新しい通知API
13
WindowsRuntime の通知
14
今までの Windows の通知
バルーン通知表示できる情報量が少なすぎるユーザーも気づきにくい
15
これからの Windows の通知
アプリ自身が自身のタイルで通知を出すどのアプリにどのような通知があるのかがすぐにわかる
16
通知システム
3 種類の通知
トースト通知 タイル通知 バッジ通知
17
通知のしくみ
WindowsRuntime の通知は XML として定義される何らかの方法で XML を作成、発行OS によって通知
通知発行
Windows
アプリXML
18
4 つの通知更新方法
アプリはこの 4 つの方法で通知の更新を行うことができる
更新方法 適用先
フォアグラウンド更新 タイル、バッジ、トースト
スケジュール更新 タイル、トースト
定期的な更新 タイル、バッジ
プッシュ更新 タイル、バッジ、トースト
19
フォアグラウンド更新
アプリが開いている状態で発行される通知( 例 ゲームのハイスコアが更新された、何かの非同期処理が完了した )
Foreground
Background
アプリの状態
通知
発行
20
スケジュール更新
フォアグラウンドで通知を発行→一定時間後に通知( 例 カレンダーのリマインダー、カウントダウン )
Foreground
Background
アプリの状態
通知
発行
一定時間
21
定期的な更新
定期的に HTTP サーバーにポーリングを行うHTTP サーバーは指定の xml を返すと通知が更新される( 例 天気の更新、 Web サイトの更新 )
Foreground
Background
アプリの状態
通知更新
Serverポーリング
22
プッシュ通知
WNS を利用してプッシュ通知( 例 SNS の更新、メッセージの受信 )
Foreground
Background
アプリの状態WNS
Server
通知チャネル登録
プッシュ通知送信 プッシュ通知送信
23
WindowsRuntime で通知が変わる
WindowsRuntime の通知は、 3 つの通知方法と 4 つの更新方法で構成される
通知自体は XML で定義される
24
トースト通知
25
トースト通知
ユーザーにとって重要なリアルタイムな通知( 例 メールの新着通知、カレンダーのリマインダー )一定時間で消える
26
Toast 通知の種類
大まかに分けるとテキストのみと画像あり
ToastText01
ToastImageAndText01
WindowsPhone
27
ループトースト通知
絶対に見逃してほしくない通知 ( アラームなど ) はトーストを出し続け、ユーザーが止めるまで音を鳴らし続ける
通知
通知発行 ユーザー操作
サウンドが鳴り続ける
通知
通知発行
サウンド
通常
ループ
28
Toast 通知
29
Toast 通知 ( サウンド付き )
ループサウンドの場合→ループ要素=true 、長さ =Longループでないサウンドの場合→ループ要素=false
30
タイル通知
31
ライブタイルがもたらすもの
今日の予定
今の時間
今日の天気
スタート画面に行けばほしい情報が一目でわかる
32
タイルで変わるアプリの使用頻度
タイルサイズは大、中、小、ワイドの 4 種類ライブタイルに対応しているほどタイルサイズが大きくなる傾向 (経験談 )
ライブタイル対応
非対応
33
ライブタイル対応にしよう!
ライブタイルに対応していないアプリ多すぎ !!ィせっかくの Windows8 なのでライブタイルに対応させよう
ライブタイルに対応する
アプリの使用頻度が上がる
アプリの開発が加速する
34
タイル通知の種類
タイルは種類がたくさんhttp://msdn.microsoft.com/ja-jp/library/windows/apps/hh761491.aspx 35
タイル通知のオプション
有効期限と通知キュー通知に有効期限を設けることで通知に信頼性を1度に最大 5 つの通知を発行することが可能
通知
通知発行 通知削除
一定時間後通知 5
通知 4
通知 3
通知 2
通知 1 通知
36
タイル通知
37
バッジ通知
38
バッジ通知の種類
2 種類の通知数字→アプリの未読、カウントグリフ→アプリの状態をアイコンで有効期限は設定可能
バッジ通知 ( 数字 ) バッジ通知 ( グリフ )
39
グリフの種類
12 種類のグリフアイコンによってさまざまなアプリの状態を通知ユーザーは一目でアプリの状態を判断することができる 40
バッジ通知数字
グリフ
41
定期的なポーリング通知
42
ポーリング通知
HTTP サーバーに定期的にデータをポーリングHTTP サーバーのデータを更新すれば通知も更新される定期的に変更したい通知やアプリのアップデート情報など
通知更新
Http Serverポーリング
アプリ
43
ユースケース
デベロッパーがアプリの新しい情報を発信したいときメルマガを送らなくても、アプリを更新しなくても、サーバーの XML を編集するだけで通知を送ることができる
アプリ
ユーザー
Http Server
XML
PC
デベロッパー
新しい情報をユーザーに通知したい
44
ポーリング通知
XML を返す HTTP サーバーに定期的なポーリングを行うタイルかバッジのフォーマットに従った XML を返さなければならない
45
ポーリング通知
マニフェストファイルに更新頻度と URL を指定更新頻度は 30 分、 1 、 6 、 12 時間、毎日
46
Azure を利用したプッシュ通知
47
プッシュ通知
WNS にプッシュ通知を送るサーバーが必要Server がアプリと同一の通知チャネルを持っておくことが必要
Foreground
Background
アプリの状態WNS
Server
通知チャネル登録
プッシュ通知送信 プッシュ通知送信
48
AzureMobileServices を利用したプッシュ
WNS
Azure
App
(1)
(2)
(3)
(4)
(5)(1)WNS にチャンネル Uri を要求
(2)WNS からチャンネル Uri を取得
(3) データベーステーブルにチャンネル Uri とともにデータを挿入
(4) 送信側クライアントが通知チャネルを取得
(5)DB2 にデータを挿入
(6) スクリプトで WNS にプッシュ要求
(7)WNS からプッシュ通知送信
DB1 DB2
送信側クライアント
スクリプト実行
(6)
(7)49
プッシュ通知の有用性
リアルタイムな情報を通知ユーザーがアプリを開いてくれるAzure を利用してサーバーサイドを簡易化
50
Future
Windows9 のインタラクティブタイル (予定 )XAML でタイルを書けるようになる気がする ..https://www.youtube.com/watch?v=aUfMszCJSwI 51
まとめ
WindowsRuntime によって統一化された新しい通知システム3 つの通知方法4 つの通知更新方法Windows のアプリをつくろう!
52