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
210
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
10k
Calling PowerShell from CSharp
tanaka733
0
1.8k
Garbage Collection in .NET Framework
tanaka733
4
2.8k
New Features in Visual Studio 2013
tanaka733
0
1.1k
Starting Unity for Windows Store App
tanaka733
0
830
とあるインフラエンジニアのAzure活用
tanaka733
2
580
ぼくの考えた割と普通(c)なデプロイ戦略
tanaka733
1
11k
ASP.NET MVC4 Web APIをバックエンドにして作るストアとWindows Phoneプッシュ通知アプリ
tanaka733
0
1.8k
Yurufuwa_CSharp.pdf
tanaka733
0
5.1k
Other Decks in Technology
See All in Technology
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
250
AWSで始める実践Dagster入門
kitagawaz
1
620
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
940
KotlinConf 2025_イベントレポート
sony
1
140
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
870
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
180
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
460
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
230
Modern Linux
oracle4engineer
PRO
0
100
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
460
Featured
See All Featured
Building an army of robots
kneath
306
46k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Visualization
eitanlees
148
16k
Context Engineering - Making Every Token Count
addyosmani
3
48
Making Projects Easy
brettharned
117
6.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Code Reviewing Like a Champion
maltzj
525
40k
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 の場合 • 直接通知の使いどころ