Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Windowsストアアプリで Push通知を使ってみよう
Search
tanaka_733
March 17, 2013
Technology
0
180
Windowsストアアプリで Push通知を使ってみよう
Windows 8 Developers カンファレンス vol.2.0 at 3/17(Sun) の発表資料
tanaka_733
March 17, 2013
Tweet
Share
More Decks by tanaka_733
See All by tanaka_733
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
tanaka733
2
9.3k
Calling PowerShell from CSharp
tanaka733
0
1.6k
Garbage Collection in .NET Framework
tanaka733
4
2.8k
New Features in Visual Studio 2013
tanaka733
0
1k
Starting Unity for Windows Store App
tanaka733
0
790
とあるインフラエンジニアのAzure活用
tanaka733
2
540
ぼくの考えた割と普通(c)なデプロイ戦略
tanaka733
1
10k
ASP.NET MVC4 Web APIをバックエンドにして作るストアとWindows Phoneプッシュ通知アプリ
tanaka733
0
1.7k
Yurufuwa_CSharp.pdf
tanaka733
0
5.1k
Other Decks in Technology
See All in Technology
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
ドメイン名の終活について - JPAAWG 7th -
mikit
33
20k
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
170
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
590
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Designing for Performance
lara
604
68k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
What's new in Ruby 2.0
geeforr
343
31k
Faster Mobile Websites
deanohume
305
30k
Transcript
Windowsストアアプリで Push通知を使ってみよう 田中 孝佳 (@tanaka_733) Windows 8 Developers カンファレンス vol.2.0
3/17(Sun)
Agenda はじめに なぜプッシュ通知を使うのか 通知の送信 プッシュ通知の実装 まとめ
はじめに はじめに なぜプッシュ通知を使うのか 通知の送信 プッシュ通知の実装 まとめ
自己紹介 (@tanaka_733) 趣味でC#な開発 • Windows Phone • Windows ストアアプリ •
Kinect ブログ書いています • 銀の光と碧い空: http://techblog.hilife-jp.info/ めとべや東京 というコミュニティやっています
めとべや東京 WinRT関連技術の勉強会を開いているコミュニティです! 3/30(土)にIIJさん(神保町)にて勉強会やります! • http://metrostyledev.net/index.php/event/20130330/ SkyDrive SDK for ストアアプリ について話します
今日のセッションの目的 ストアアプリの通知の概要を知ろう プッシュ通知の実装の仕方を知ろう
なぜプッシュ通知を使うのか はじめに なぜプッシュ通知を使うのか 通知の送信 プッシュ通知の実装 まとめ
ストアアプリは没入型 Child Playing Video Games (Animal Crossing) By mamarati http://www.flickr.com/photos/36758336@N00/41589909/
ストアアプリは没入型 • ユーザーをコンテンツに集中させる • スナップにより複数のアプリを表示させることはできる 1つの画面に1つのアプリ • アプリを切り替えると一時停止される • バックグラウンドでの動作に移行
表示されないアプリの動作は強く制限される
動いていないアプリが情報を伝えるには? • アプリを選んでもらうときにアピール タイル • 新着メッセージの「数」などを表示 バッジ • トースト、直接などの方法で強くアピール 通知
通知の送信 はじめに なぜプッシュ通知を使うのか 通知の送信 プッシュ通知の実装 まとめ
通知の配信方法 (基本的なタイミング) • アプリ実行中にAPIを呼び出す ローカル • 指定した時間にAPIを呼び出すようにスケジュール スケジュール • ポーリングしてタイルとバッジを更新
定期的 • アプリが実行されていなくても外部から送信 • タイル、バッジ、トースト・直接通知のすべてに対応 プッシュ 通知配信方法の選択 http://msdn.microsoft.com/ja-jp/library/windows/apps/hh779721.aspx
外から情報を伝えたいときはプッシュ通知 スケジュール • 通知の内容があらかじめ分かっている必要がある • 例) カレンダーの予定の通知など 定期的 • タイルとバッジの通知にしか使えない
プッシュ通知に向いている通知 リアルタイムデータ •ニュース(スポーツ)速報 カスタマイズされたデータ •SNSの着信
プッシュ通知の実装 はじめに なぜプッシュ通知を使うのか 通知の送信 プッシュ通知の実装 まとめ
プッシュ通知の仕組み https://github.com/tjanczuk/wns
プッシュ通知の仕組み (クライアント側) https://github.com/tjanczuk/wns 開発している ストアアプリ OS側で提供して いる基盤
プッシュ通知の仕組み (サーバー側) https://github.com/tjanczuk/wns 開発する サーバー側 システム MSが提供している 通知基盤
DEMO
準備:アプリ名の登録と関連付け プッシュ通知を使うにはアプリ名を登録して関連づける必要があります (つまり、開発者登録が必要)
準備:アプリ名の登録と関連付け アプリ名と関連付けはVisualStudioから
準備:プッシュ通知の資格情報の取得
クライアントの実装 (①~③) ⑥でWNSから端末に送信するためのChannelURIを取得
トースト通知の許可
サーバーサイドの実装 (Azure Mobile Service) サーバーサイドの要件 • アプリからのChannelURIを含むリクエストを処理する • WNSにHTTPSでChannelURIを含むリクエストを送信する 個人で(無料で)試す場合のいくつかのアイディア
• 自分のサーバーにLAMPで構築 • 無料で使えるPaaS で node.js + mongodb で構築 (一例:無料で提供されることが多い) • Azure Mobile Service などのBaaS を使う • BaaS: Backend As A Service
Azure Mobile Service を使ってみました 現状無償枠内での利用が可能 • Microsoft ID とクレジットカードの登録が必要 ストアアプリやWindows
Phone 以外に iOS や Android にも対応 SDKをインストールすることで、簡単にプログラミングできる
Mobile Serviceの認証キーの取得
Mobile Serviceの作成
Mobile Serviceの作成
Mobile Serviceの作成
プッシュ通知の資格情報を入力 プッシュ通知の認証情報を入力 (ストアアプリダッシュボードで表示したもの)
テーブルの作成
フックスクリプトの作成 (⑤) このままだと、単にデータを入れるだけのサービスになる。 レコードのCRUDをトリガーとしてサーバー側にロジックを追加できる。 テーブルにレコードを追加するときにプッシュ通知を送るようにしてみる。 JavaScriptで記述。詳細は http://msdn.microsoft.com/en-US/library/windowsazure/jj554226 を参照
バッチスクリプトの作成 (⑤) また、サーバー側から任意のタイミングで処理を実行するために、 スケジュールジョブを作成してみる https://gist.github.com/tanaka-takayoshi/f3deae9dd9b0efd3cee3
バッチスクリプトの作成 (⑤) また、サーバー側から任意のタイミングで処理を実行するために、 スケジュールジョブを作成してみる https://gist.github.com/tanaka-takayoshi/f3deae9dd9b0efd3cee3
お疲れ様でした。Azure側の作業は終わりです。 ここから、クライアント側です(④)
SDK のDLとインストール
プロジェクトの参照に追加
MobileServiceClientを設定 (App.xaml.cs) Azure Mobile Serviceの 画面で取得した ApplicationKey
作成したテーブルのEntityクラスを作成
Mobile Serviceにメッセージを送信
まとめ はじめに なぜプッシュ通知を使うのか 通知の送信 プッシュ通知の実装 まとめ
まとめ 直接・トースト通知はストアアプリでユーザーの気を惹かせる通知方法 任意のタイミングで通知をするのにはプッシュ通知が必要 プッシュ通知のためにはサーバーサイドの開発が必要 Azure Mobile Serviceを使うとお手軽に(現状無料で)サーバーサイドが準備できる
もう一度宣伝! めとべや東京 #15 3/30(土) です • http://metrostyledev.net/index.php/event/20130330/ COD2013 5/11(土) で話します
• http://cod.ms/Pages/place_tokyoa.aspx • プッシュ通知についてもう少し詳しく掘り下げます • ChannelURI の管理 • サーバー側でASP.NET を使う場合、node.js + mongodb の場合 • 直接通知の使いどころ