Alive with activity、パート 3: プッシュ通知と Windows Azure モバイル サービス

このシリーズのパート 1 では、”aliveness (常に動きがあること)” はユーザーにとって何を意味するかと、そのエクスペリエンスを生むうえでアプリがどのような働きをするかについて説明しました。パート 2 では、ライブ タイルの定期的な更新をサポートするために、Web サービスを作成し、デバッグする方法を見てきました。このパート 3 では、Windows プッシュ通知サービス (WNS) を利用してタイル更新、トースト、および直接通知を特定のクライアント デバイスにオンデマンドで提供する方法と、Windows Azure モバイル サービスを利用することでプロセス全体を簡略化する方法を学んで、シリーズを締めくくりましょう。 プッシュ通知 パート 2 で見たように、定期的な更新はクライアント側から開始され、ポーリングまたは “プル” 手法でタイルまたはバッジの更新が実行されます。”プッシュ” 通知は、サービスがデバイスに更新を直接送信するときに使用され、その更新はユーザー、アプリ、さらにはセカンダリ タイルに対して固有のものにすることができます。 ポーリングと異なり、プッシュ通知はどのようなときであっても非常に高い頻度で実行できます。ただし、デバイスがバッテリ電源を使っているか、コネクト スタンバイ モードであるか、通知トラフィックが過剰になった場合、Windows によってプッシュ通知のトラフィックの量が調整されます。つまり、すべての通知が配信されるとは限りません (特に、デバイスの電源が切られている場合)。 したがって、プッシュ通知を使った時計のタイルや、同じ頻度または間隔で更新されるその他のタイル ガジェットを実装できるとは考えないでください。タイルや通知を、ユーザーに提供すべき興味深く意味のある情報が保持されているバックエンド サービスと連携して、ユーザーが再びアプリを使いたくなるように誘導するためには、プッシュ通知をどのように使用すればいいかについて考えましょう。 以下で詳しく見ていきましょう。プッシュ通知には 2 種類あります。 タイル更新、バッジ更新、またはトースト通知のペイロードを保持している XML 更新: Windows はこのようなプッシュ通知を処理して、アプリに代わって、更新やトーストを発行できます。必要に応じて、アプリが直接このような通知を処理することもできます。 サービスから送信する任意のデータを保持しているバイナリまたは “直接” 通知: これらの通知はアプリ固有のコードによって処理される必要があります。そうしないと、Windows はデータをどのように処理すべきかわかりません。サイズ制限 (5 KB) やエンコード (base64) など、詳細については「直接通知のガイドラインとチェック リスト」を参照してください。 どちらのケースも、実行中 (フォアグラウンド)…


Alive with activity、パート 2: ライブ タイルのサービスの作成とデバッグ

このシリーズのパート 1 では、Windows 8 の全体的なユーザー エクスペリエンスに “aliveness (常に動きがあること)” という感覚をもたらすタイル更新、バッジ更新、トースト通知の性質について説明しました。特に、XML ペイロードを使ってこれらの通知を生成する方法について見ていきました。このような XML ペイロードは、実行中のアプリやバックグラウンド タスクからローカルに発行することも、オンライン サービスの要求に応じて提供することもできます。 実行中のアプリから XML ペイロードを生成して発行する処理は、Visual Studio Ultimate 2012 または Visual Studio Express 2012 for Windows 8 を使ってアプリ内で簡単に開発およびデバッグできます。アプリのタイルとバッジのサンプル (英語)、セカンダリ タイルのサンプル (英語)、およびスケジュール通知のサンプル (英語) には、この場合に必要なものがすべて揃っています。 これよりも少し手間がかかるのは、定期的な更新とプッシュ通知をサポートする Web サービスの開発とデバッグです。このようなケースのクライアント側は、「プッシュおよび定期通知のクライアント側のサンプル」(英語) がたいへん参考になりますが、このサンプルを利用するには、サンプルと連携するサービスが必要です。この記事では、タイル更新とバッジ更新のための定期通知をサポートするサービスの開発方法について具体的に説明します。Visual Studio ツールと localhost を使って、サービスを運用環境に展開する前にデバッグする方法にも焦点を当てていきます。また、Windows Azure モバイル サービスをこの目的で使う方法についても簡単に触れます。パート 3 で説明しますが、Windows Azure モバイル サービスはプッシュ通知のサポートにも非常に便利です。 サービスの基本的な性質 タイルとバッジの定期更新をサポートするサービスとは、実際にはどのような動作をするものでしょうか。これまで主にクライアント アプリを扱ってきた開発者にとって、”サービス″ という言葉はどちらかというと取りつきにくいので、まずこの言葉の意味を確認しましょう。 ごく簡単に言えば、サービスとは…


Alive with activity、パート 1: タイル、バッジ、トーストを使う

ライブ タイルと、その関連機能のバッジ、トースト通知、プッシュ通知は、Windows 8 アプリと Windows ストア アプリの最も目を引く機能の 1 つです。これらの機能が連携して、”alive with activity (常に動きのある)” システムが生まれます。つまり、アプリが実行されていないときでも、常にアプリのサービスから送られてくる情報がスタート画面にもロック画面にも表示されます。 このブログの過去の記事で、ライブ タイルと通知に関する基本的な機能をいくつか紹介しました。 復習してみましょう。 優れたタイル エクスペリエンスを開発する (パート 1): タイルのデザインを紹介し、アプリの機能を基にテンプレートを選ぶ方法を説明しています。 優れたタイル エクスペリエンスを開発する (パート 2): アプリによりローカル更新を配信する方法、定期通知をセットアップする方法、およびセカンダリ タイルを管理する方法を説明しています。また、PHP と ASP.NET でサービスを構築する方法を紹介しています。 これらの参考記事を基に、今回の記事から 3 回にわたって、さらにいくつかの領域について詳しく説明したいと思います。 パート 1 (この記事) の内容は、次のとおりです。 ユーザー エクスペリエンスの簡単なビジュアル ツアー: “aliveness (常に動きがあること)” はユーザーにとって何を意味するでしょうか。 タイル、バッジ、トースト通知の XML スキーマ。テンプレート カタログを見てわかるとは限らない、さまざまな機能がわかります。 タイル、通知、バックグラウンドのタスク間の関係。 パート 2 では、いくつかの言語でサービスを作成およびデバッグする方法を説明します。具体的には localhost を使い、ツールには Visual Studio…