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

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


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

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


Windows 8 デベロッパー キャンプで、アプリ開発にエキスパートのサポートを

ブログとフォーラムに寄せられたコメントや質問を読み、Metro スタイル アプリが多くの皆さんにご興味をお持ちいただいていることを実感していますが、それでもまだ、解消されていない疑問が多く残されているのではないでしょうか。そのような皆さんの悩みを解決するのにぴったりの場所が Windows 8 デベロッパー キャンプ (英語) です。デベロッパー キャンプは、デベロッパー センターの各種リソースを補完する目的で開催され、実際の技術に触れていただきながら解説することで、Metro スタイル アプリ開発者としての皆さんのスキルアップをサポートします。 Windows 8 デベロッパー キャンプは、皆さんのような開発者がだれでも参加できる、アプリ開発について深く学ぶための無料イベントです。アプリ開発のエキスパートと言葉を交わしながら学び、直接アドバイスをもらうことができます。既に現在、世界中のさまざまな場所でキャンプが開催されています。 キャンプのテーマは場所ごとにさまざまに異なりますが、開発プラットフォーム、Metro スタイル デザイン、Windows ストアの基礎知識についてはすべてのキャンプで共通して学習できます。タイルと通知を使ってアプリをもっと便利にする、Windows 8 のコントラクトと統合するといった、基礎知識からさらに踏み込んだ内容については、キャンプごとに異なるトピックを用意しています。 キャンプについてご興味をお持ちいただけたら http://www.devcamps.ms/windows (英語) にアクセスしてみてください。世界中で今まさに開催されているすべてのキャンプをご覧いただけます。現在お申し込みいただけるキャンプは 100 以上、さらに毎日次々に追加されています。キャンプは無料で参加できますので、スケジュールをチェックして興味のあるキャンプを見つけたら、ぜひお申し込みください。 Neil Hutson プラットフォーム エバンジェリズム担当シニア ディレクター


Windows ランタイムの非同期性により高速で滑らかなアプリにする

人間はもともと非同期な生き物です。このことは、私たちがアプリの反応に何を期待するかに直接影響を与えます。Windows ランタイム (WinRT) では、高速で滑らかな Metro スタイル アプリを構築するための一級市民としてこの非同期性が採用されています。Metro スタイル アプリを構築する場合、ある時点で非同期コードを記述する必要があります。この記事では、WinRT で非同期プログラミングがなぜ非常に一般的になっているかについてお話しし、アプリで非同期プログラミングを使用する基本的な方法やそのしくみの背景について説明します。 高速で滑らかなアプリは反応性が高くなければならない Windows アプリを使っていて応答が止まったことや、アプリがグレー表示になってドーナツ型のカーソルが回転したことは何回くらいありますか。間違いなく、予想される最悪の時間に思えます。さらに悪いことに、このような状況に陥ると、努力してきた作業がたくさん失われてしまう可能性があります。 ユーザーは、アプリがすべての対話的操作に応答することを期待します。お気に入りのニュース閲覧アプリを使うとき、ニュース フィードを追加したり、新しい記事を読んだり、新しい記事を保存したりします。アプリがインターネットから最新の記事を取得しているときでも、ユーザーがこれらの操作をすべて行うことができる必要があります。 これは、ユーザーがタッチを使ってアプリを操作しているときは特に重要です。ユーザーは、アプリが “指に吸い付かない” ことに気付きます。パフォーマンス上の小さい問題でも、ユーザー エクスペリエンスが低下し、高速で滑らかな感覚が失われる可能性があります。 ユーザーの入力時にアプリの応答が停止する場合、アプリは高速で滑らかとは言えません。では、アプリが応答を停止するのはなぜでしょうか。主な理由は、アプリが同期的であるということです。ある処理が終わるのを待っているとき (インターネットからデータを取得するなど)、ユーザーの入力には応答できません。 最近のアプリの多くは、ソーシャル Web サイトに接続したり、クラウドにデータを保存したり、ハード ディスク上のファイルを操作したり、他のガジェットやデバイスと通信したりします。これらの要因によって予測できないレイテンシが生じると、高速で滑らかなアプリの作成が難しくなることがあります。正しく構築しないと、アプリが外部環境の待機に使う時間が長くなり、ユーザーのニーズへの応答に使う時間が短くなります。 私たちが Windows ランタイム (WinRT) の API を設計し始めた頃、いつでもつながるこの世界に対応することが中心的な原則でした。高速で滑らかなアプリにつながる強力な API サーフェスを既定で提供することが重要と感じていました。 これらの目標を達成するため、Windows ランタイムで I/O にバインドされる可能性がある多くの API を非同期にしました。同期的に記述した場合、視覚的なパフォーマンスが低下する可能性が高いものがあります (実行に 50 ミリ秒以上長く時間がかかる可能性があるなど)。API へのこのような非同期アプローチにより、高速で滑らかなコードを既定で記述できるようになり、Metro スタイル アプリ開発におけるアプリの応答性の重要性が高まります。 非同期パターンに慣れていない方は、WinRT の非同期性を、ある人に電話越しにコールバック番号を教えることに置き換えてみてください。その人にコールバック番号を教えて電話を切り、必要な他の仕事を続けます。その人があなたと話す準備ができたら、教えてもらった番号であなたにコールバックできます。これが WinRT における非同期性の本質的なしくみです。 WinRT の非同期的な性質についてよく理解するため、まずこれらの非同期 API を直接的な方法で使う方法を見てみます。次に、WinRT に導入された非同期プリミティブ…


XAML と DirectX の統合

私たちは Windows 8 の開発の早い段階で、XAML により提供される豊富なコントロール セットや双方向性などの UI と、グラフィックスなどでの DirectX による低レベル高パフォーマンス レンダリングを統合する方法を考えてきました。 Dev Center フォーラムやその他のチャネルを通じて Developer Preview のためにご提供いただいたフィードバックは、開発者が本当に構築したかった関連するシナリオ セットに集中するのに役立ちました。ここでは、いくつかの一般的なテーマを取り上げます。皆さんの多くは、XAML アプリとも呼ばれるアプリに DirectX グラフィックスを追加するか、または DirectX アプリに Metro スタイル UI を簡単に追加することを希望していました。 ここで、良い情報があります。Consumer Preview のリリースでは、XAML アプリと DirectX アプリを厳密に区別する必要がなくなります。使い慣れた XAML モデルを使用して、同じアプリ内で多彩な UI プラットフォームとしての XAML および高パフォーマンス レンダリング ソリューションとしての DirectX の両方の利点を利用できるようになります。 これらを組み合わせることができるようになるので、実際に両方のメリットを活かすことができます。これにより、さまざまな可能性が開けます。皆さんから寄せられた主なシナリオには、次のような事例が含まれていました。 UI とグラフィックスを融合するアプリの画像処理、創造性、および設計 大きな DirectX グラフィックスと UI が混在する大縮尺の地図とドキュメント ビューアー フルスクリーンの高パフォーマンス DirectX グラフィックスおよび最小限のオーバーレイ…


Live SDK による Windows 8 アプリへのシングル サインオン機能の実装と SkyDrive との連携

Windows 8 なら、クラウドを利用して、仕事でもプライベートでも、複数のデバイスからシームレスに作業できます。Microsoft アカウントを使って PC やデバイスにサインインし、SkyDrive のパーソナル ストレージを利用することで (詳細については、アプリ、ファイル、PC、デバイスをクラウドとつなぐ SkyDrive と Windows 8 を参照してください)、アプリ、設定、および個人ファイルにいつでもアクセスできます。開発するアプリでこのようなクラウド機能を利用するには、Metro スタイル アプリに Live SDK を統合します。 Live SDK には、Microsoft アカウントを使ったシングル サインオン (SSO) 機能をアプリに統合し、SkyDrive、Hotmail、および Consumer Preview 版の Messenger の情報にアプリからアクセスするためのコントロールと API のセットが含まれています。また、対応する Windows Phone 用の SDK (英語) もあり、同様の機能セットを提供しています。 Live SDK の作業の開始 まず、まだインストールが済んでいない場合は、Windows 8 Consumer Preview、Visual Studio 11 Beta、および Live SDK Developer Preview (英語) を…


Developer Preview から Consumer Preview へのアプリの移行

こんにちは、Windows 開発チームのパートナー アーキテクト、John Sheehan と申します。 皆さんには、プレビュー リリースのアプリを構築していただき本当に感謝しています。皆さんのフィードバックは、Windows 8 の改良に役立っています。もちろん、プレビューで構築するということは、プレビュー リリースごとにアプリに更新を加えなければならないことを意味します。それこそが、この記事で扱う Developer Preview から Consumer Preview へのプロジェクトの移行です。ここでは、一部の変更点を強調しますが、変更点の詳細な説明については、//Build から Windows 8 Consumer Preview (英語) へのアプリの移行に関するホワイト ペーパー (英語) を Dev Center からダウンロードできます。 Consumer Preview へのアプリの移行について考えるにあたって、皆さんの中にはなぜこれらの変更を加えたのか疑問に思っている方もいらっしゃると思います。私個人としては、これらの変更をすべて重要と捉えていると断言できます。たとえば、改良点の中には、直接いただいたフィードバックに基づいて加えたものがあります。ある機能はややこしかったのでわかりやすくしましたし、皆さんが必要としていた機能がないこともありました。ひとつの機能が完成し、自分たちで使ってみたところ、意図していた状態になっていなかったことに気づき、そこから学んだことを取り入れて改良したりもしました。考慮すべき要素はたくさんあります。もちろん、私たちは、Metro スタイル アプリにとってすばらしいプラットフォームを生み出すという目標の下に、すべての決定を慎重に考慮していますのでご安心ください。 私は、Developer Preview において自分で構築した Connect 4 アプリに対して移行プロセスを行う必要がありました。移行には少し手間がかかると思いますが、この投稿とドキュメントで概要を説明する手順に従えば、かなり早く終えることができます。 ではやってみましょう。 一からやり直す 既存のプロジェクトを残したまま Consumer Preview に移行したくなるかもしれませんが、Developer Preview 以降たくさんの点が変更されていますので、新しいプロジェクトを作成するのが最善です。たとえば、Visual Studio のプロジェクト定義ファイルにたくさんの変更が加えられました。JavaScript プロジェクトの拡張子が .jsproj に変更され、.csproj/.vbproj ファイルのインポート ステートメントが変更されました。これらの変更が加えられたため、既存のプロジェクトを開くことさえできません。新しいプロジェクトを開始したら、古いプロジェクトの内容を新しいプロジェクトに移すことができます。…


//build/ 以降のアプリ開発者向けの変更点 (第 2 部)

お約束したとおり、//build/ 以降に私たちが行ってきた重要な作業についてさらにお話しします。この記事の第 1 部では、DirectX と XAML の統合、Blend デザイナーの改良点、CSS 独立アニメーションなどについて扱いました。しかし、皆さんは新機能のもっと深いところまでお知りになりたいだろうと思いますので、これから見ていきましょう。 タイルおよびトースト通知 タイルとトーストは、Metro スタイル デザインの原則の主要な部分です。タイルとトーストを使えば、アプリが実行されていなくても、重要な情報をひとめで見ることができます。タイルとトースト通知の開発エクスペリエンスについては、皆さんからたくさんのフィードバックをいただきましたが、その大部分はタイルの作成と更新に関するものに集中していました。これにお応えして、タイルのエクスペリエンスに次の 3 つの改良点を加えました。 API のポーリングによるタイルの更新を導入しました。新しい定期タイル通知 API を使うと、アプリ固有のタイル コンテンツがあるクラウド サービスをポーリングするように Windows に指示することができます。これは、Web 上のコンテンツを利用して、アプリのタイルに常に新鮮な情報が表示されるようにする最も簡単な方法です。次の JavaScript スニペットは、アプリのタイルのポーリングを開始する方法を示しています。 // update the tile with a poll URLvar polledUri = new Windows.Foundation.Uri("http://www.fabrikam.com/tile.xml");var recurrence = Windows.UI.Notifications.PeriodicUpdateRecurrence.halfHour;var tileUpdater = Windows.UI.Notifications.TileUpdateManager.createTileUpdaterForApplication();tileUpdater.startPeriodicUpdate(polledUri, recurrence); Web サービスから返されるコンテンツは、タイル XML スキーマ (英語) に従っている必要があります。タイル バッジもポーリングによって更新することができます。 タイルの更新の詳細については、Dev Center の以下のリンクを確認してください。…


//build/ 以降のアプリ開発者向けの変更点 (第 1 部)

Consumer Preview が入手可能になりましたので、私たちが何をしようとしていたか見ていただけたかと思います。//build/ 以降、エンジニアリング チームはハードな作業を続けてきました。私たちは、皆さんのフィードバックに耳を傾け、開発プラットフォームを改良してきました。同時に、多くのプラットフォーム機能にこれまで見られなかった最後のしあげを加えました。 Windows で直接行っていた作業と並行して、//build/ 以降 Visual Studio ツールにも大幅な改良を加えてきました。Metro スタイル アプリ開発と他のシナリオにも改良が加えられました。ここでは、Metro スタイル開発についてお話しますが、他の VS 機能についてもお知りになりたい場合は Jason Zander のブログ (英語) をご覧になることをお勧めします。 皆さんも慌ただしかったことと思います。MSDN Developer Preview forums で 5,000 を超えるスレッドを作り、30,000 近くのメッセージを投稿しました。弊社の製品利用統計情報から、皆さんが Visual Studio を使って開発プラットフォームを試していたことも承知しています。9 月以降、数千ものアプリ パッケージが作成されました。 そうした中で、このトピックを執筆することになりました。Consumer Preview でアプリを構築し始めるとき、どのような種類の変化を期待できるでしょうか。Consumer Preview で私たちが主に焦点を当てていたのは、Windows を開発者である皆さんにとってより良いプラットフォームにすることでした。API をより使いやすくし、Metro スタイル UI の標準コントロールを作成しました。こうしたツールの改良により、生産性を上げ、高速で滑らかなアプリを作ることができるようになります。さらに、Windows とハードウェアの能力をより有効に活用するために、最新の機能を搭載しました。 2 部から成るこの記事では、Consumer Preview でプラットフォームとツールを改良するために行ってきた重要な作業の一部について詳しく説明します。いくつかの新機能を追加し、既存の機能に改良を加えましたが、これらはすべて Metro スタイル アプリ開発におけるエクスペリエンスを向上させるためのものです。こうした改良点について気に入っていただけるものと思います。 XAML での DX…


Windows 8 アプリ開発者ブログへようこそ

Windows 8 アプリ開発者ブログへようこそ! Windows 開発チームのディスティングイッシュト エンジニア、Aleš Holeček と申します。このブログは、本日の Windows 8 Consumer Preview のリリースを受けて、Windows 8 用のすばらしいアプリの設計と開発に取り組む皆さんに向けたものとして開設されました。既にたびたび述べてきたとおり、Windows 8 は Windows を抜本的に刷新するものとなり、そこではアプリが舞台の中心に立つこととなります。そのためには、Windows アプリの開発というものの定義も刷新する必要がありました。 このブログでは、私たちが得た知識を共有すると共に、Windows Metro スタイル アプリ開発という新しい世界に踏み込む皆さんと対話を行っていきます。Dev Center (英語) とコミュニティのフォーラム (英語) を補完することもこのブログの趣旨の一つです。必要に応じて、皆さんのお役に立ちそうな Dev Center のコンテンツやサンプルも紹介していきたいと思います。その他、プラットフォームとアプリの開発において私たちが得た経験や、開発において陥りがちな問題、ヒントや裏技のほか、プラットフォームにおいて私たちが行った決定の背景など、すばらしいアプリを開発していただくうえで参考になりそうなさまざまなトピックを扱っていきます。 まずは Dev Center で Consumer Preview と Visual Studio 11 Express Beta ツール (英語) のダウンロードをお願いします。 皆さんが開発する Metro スタイル アプリは、すべてのエクスペリエンスの中心になります。私たちは当初から、開発者の皆さんに利用していただくための新しいプラットフォームとツールを設計しました。これらを使って、皆さんがご存知のテクノロジを活用して、ネイティブの Windows アプリを開発することができます。たとえば、HTML5、CSS3、JavaScript、または XAML を組み合わせた…

1