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 モバイル サービスはプッシュ通知のサポートにも非常に便利です。 サービスの基本的な性質 タイルとバッジの定期更新をサポートするサービスとは、実際にはどのような動作をするものでしょうか。これまで主にクライアント アプリを扱ってきた開発者にとって、”サービス″ という言葉はどちらかというと取りつきにくいので、まずこの言葉の意味を確認しましょう。 ごく簡単に言えば、サービスとは…

0

優れたタイル エクスペリエンスを開発する (パート 2)

この記事のパート 1 では、タイルの更新を設計する方法と、ライブ タイルに表示するコンテンツに合ったテンプレートを選択する方法について学びました。その中でアプリの既定のワイド タイルをセットアップしたので、タイルの更新を始める準備ができました。今回は具体的なコードを見ていきましょう。最初に、Contoso Food Trucks アプリ タイルでポーリングをセットアップする方法について説明します。Web サービス側のコードがどのようになるかもお見せします。次に、アプリにセカンダリ タイルを追加して、「Windows 8 SDK: アプリのタイルおよびバッジのサンプル」(英語) に含まれている NotificationsExtensions ライブラリを使ってそのタイルを更新します。では、早速始めましょう。 通知の配信方法の選択 タイルをどのように表示すればよいかはわかったので (パート 1 を思い出してください)、タイルを更新するタイミングを決める必要があります。 アプリでタイルを更新するには、4 とおりの方法があります (デベロッパー センターの「通知の配信方法の選択」(英語) を参照してください)。まず、ローカル通知を使ってタイルを更新することができます。これは、アプリの実行中に情報が変化する場合に便利です。また、アプリでタイルとトーストの更新をスケジュールして、正確な時刻に更新が行われるようにすることもできます。さらに、アプリが実行中でない場合にクラウドからタイル通知をプッシュまたはポーリングして、タイルを更新する方法もあります。ポーリングは、更新頻度の低いブロードキャスト コンテンツに適しています。プッシュは、すぐに届ける必要のあるトースト通知を送信する場合や、ユーザーごとに個別にタイルを更新する場合に適しています。この記事では、ポーリング更新とローカル更新に焦点を絞ってお話しします。 近くにいるフード トラックのためのポーリング 私たちのアプリでは、タイルの更新に 2 種類の異なる情報を使います。最も重要なのは、ユーザーが設定した既定のランチの場所の近くにいるフード トラックの情報です。アプリの実行時、ユーザーは、ランチを探す既定の場所をアプリ内で設定します。私たちは、その既定の場所の情報を使ってタイルを更新し、近くにいるトラックをユーザーに知らせます。下の画像は、この記事のパート 1 に掲載したアプリのタイルです。それでは、ポーリングを使ってこれらのタイルをアプリのタイルに表示する方法を見ていきましょう。     通常、フード トラックは、1 日中同じ場所に停まっているか、少なくともランチの時間帯は移動しません。フード トラックの場所はそれほど頻繁には変わらないので、タイルをリアルタイムで更新する必要はありません。このため、今回はプッシュ通知を除外することができます (プッシュ通知は、タイミングが重要となる通知に向いています)。ただし、このデータは少なくとも 1 日 1 回は更新したいので、定期的な通知を使って Web サービスをポーリングし、変更をチェックするのが最適な方法と考えられます。 クライアント側の実装: 近くにいるフード トラックのためのポーリング 定期通知をセットアップするクライアント側の実装は、ほんの数行のコードで完了します。ユーザーがアプリを起動するかアプリに切り替えたら、そのつど TileUpdater.startPeriodicUpdate (英語) を呼び出します。これにより、API…

0

優れたタイル エクスペリエンスを開発する (パート 1)

ライブ タイルは、ユーザーにアプリを継続的に使ってもらうようにするための優れた手段の 1 つです。この記事では、ポーリングとローカル API を使ってアプリのライブ タイルを更新し、Windows 8 のスタート画面上でアプリの魅力を直接アピールする方法について説明します。タイルを通して、アプリ側で発生している最も重要なことを最前線で伝えることができます。アプリ タイルはアプリの非常に重要な要素であり、ユーザーの目に最も多くさらされる部分でもあります。タイルを最大限に活用して、ユーザーに使い続けてもらえるアプリを作りましょう。 この記事では、サンプル アプリを通して次の方法について説明します。 タイルの更新を設計する タイルのコンテンツに最適なテンプレートを選択する アプリが実行されていない場合は、クラウドからポーリング通知を実行してタイルを更新する アプリの実行中は、SDK (「Windows 8 SDK: アプリのタイルおよびバッジのサンプル」(英語)) に含まれる NotificationsExtensions ライブラリを使ってタイルを更新する Contoso Food Trucks アプリについて では、サンプル アプリ Contoso Food Trucks について説明しましょう。ユーザーはこのアプリを使って、移動中のフード トラック (移動型レストラン) の情報を確認することができます。このアプリは、Metro スタイル アプリ用 Web サイトの事例 (英語) として紹介したものと同じアプリです。今回の記事では、このアプリにライブ タイルを追加する方法について説明します。 アプリの一番のセールス ポイントを知る タイルに表示すべきコンテンツの内容や、更新頻度を決めるうえで有効なことは、アプリの一番の長所を知ることです。 Contoso Food Trucks アプリが最も得意とするのは、ユーザーのお気に入りのフード トラックを探して追跡することと、ユーザーの近くにいるトラックを見つけることです。そこで、Contoso Food Trucks タイルの目標を次のように設定しましょう。 特定の場所の近くにいるフード…

0