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
190
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.5k
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
810
とあるインフラエンジニアのAzure活用
tanaka733
2
560
ぼくの考えた割と普通(c)なデプロイ戦略
tanaka733
1
11k
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
Amazon Aurora のバージョンアップ手法について
smt7174
2
180
株式会社Awarefy(アウェアファイ)会社説明資料 / Awarefy-Company-Deck
awarefy
3
11k
実は強い 非ViTな画像認識モデル
tattaka
3
1.4k
AIエージェント時代のエンジニアになろう #jawsug #jawsdays2025 / 20250301 Agentic AI Engineering
yoshidashingo
8
4k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.9k
Охота на косуль у древних
ashapiro
0
120
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
210
OPENLOGI Company Profile
hr01
0
60k
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
OPENLOGI Company Profile for engineer
hr01
1
20k
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2.9k
急成長する企業で作った、エンジニアが輝ける制度/ 20250227 Rinto Ikenoue
shift_evolve
0
190
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Navigating Team Friction
lara
183
15k
4 Signs Your Business is Dying
shpigford
183
22k
Code Reviewing Like a Champion
maltzj
521
39k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Building Adaptive Systems
keathley
40
2.4k
KATA
mclloyd
29
14k
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 の場合 • 直接通知の使いどころ