Windows 8 用の Bing アプリの作成

概要 Windows 8 向けに Bing チームはニュース、天気、ファイナンス、スポーツ、トラベル、マップというアプリを作成しています。この技術概要の記事では、これらのアプリのアーキテクチャ、それらが使う主要な Windows 8 の機能とコントラクト、それらが採用しているコモン コントロール、グローバルな対応状態について概説します。 Bing チームのメンバー数人で 1 年ほど前に、Windows 8 向けの Bing アプリを提供するためのアプリ チームを結成しました。これらのアプリの最大の目的は、高速で滑らかなエクスペリエンスにより、複数のソースのコンテンツを利用して、情報をユーザーに提供し続けることです。どのアプリも、タッチおよびタブレット デバイス向けに最適化されていますが、キーボードとマウスを使っても快適に操作できます。この数か月間、私たちはこれらのアプリをグローバル対応にするように取り組んできました。 これらのアプリを開発するにあたり、私たちには 2 つの目的がありました。Windows 8 の魅力をさらに高めるすばらしいアプリを構築することと、アプリ開発者のモデルになるアプリを提供することです。この記事では、これらのアプリの技術概要と、皆さんのアプリ開発に役立つ知見とリソースを紹介します。これらのアプリを開発する中で、私たちは多くのことを学びました。この経験をもとに、次回は今回とは異なる方法をとりたいことがいくつかあります。その全容については、続きをお読みください。 天気アプリ: 気になる場所の天気を確認できます。 アーキテクチャの概要 プラットフォーム サービス マップ アプリは XAML/C# を使っていますが、それ以外はどのアプリも HTML/Java Script で作成されています。すべてのアプリで、インストルメンテーション、キャッシュ、クエリ サービス、設定、ローミング、プロファイル管理、市場に合わせたカスタマイズ、音声認識の基礎機能など、いくつか基本的なサービスを提供する共通クライアント プラットフォームを利用しています。いくつかの理由からあえてクライアント側キャッシュを採用して、プリフェッチを活用し、クライアント側で各種データの有効期間を設定できるようにしています。 私たちのアプリはすべての PC デバイスを対象に設計されていますが、その多くはタブレット デバイスになると想定しています。Windows 8 タブレットは、コンシューマーと企業ユーザーの両方が、コンテンツの利用にもコンテンツの作成にも使用できます。多くの場合、ユーザーはさまざまな接続状態を経験します (高速ネットワークでの完全な接続、WiFi や携帯ネットワークでの弱い接続、断続的に途切れるネットワーク、さらには接続がまったくない状態)。私たちの目標は、Web ページとは異なるリッチなクライアント アプリを作成することでした。私たちは、すべてのネットワーク データをファイル システムにキャッシュし、最新のデータが取得されるまで、キャッシュされているデータを再利用するという IE のコンセプトを採用しました。また、キャッシュされたデータも利用できず、ネットワーク要求も失敗した場合のエクスペリエンスも設計しました。このようなシナリオのために、正常に接続を処理する旨のエラー メッセージと再試行メカニズムを用意し、OS からのネットワーク接続の変化に応じて自動的に再試行されるようにしています。…


Windows 8 アプリのテストを自動化する

Windows ストア アプリのテストに関するブログ記事では、主にアプリのテスト項目について説明しました。前回の記事で説明した検証分野は手動でテストすることも可能ですが、検証分野の一部を自動化すればさらに効率的です。アプリ検証の自動化には多くのメリットがあります。自動テストによって、手動テストの実施で必要になる時間とコストを節約できます。自動テストを 1 回作成すれば最小限のコストで繰り返し実行でき、かかる時間も手動テストに比べてかなり短くなります。これによって、アプリの毎回の新規リリースで、品質を維持しながらコストを抑えることができます。面倒な手動テストでは最も注意深いテスト担当者にさえミスが発生することを考えると、自動テストによって検証の精度が高まるとも言えます。 この記事では、Windows 8 アプリのテストを自動化する際のヒントとテクニックをいくつか紹介します。覚えておいていただきたいのは、自動テストが強力なテクニックであるということと、そのメリットをフル活用するにはある程度の初期投資が必要ということです。この記事の説明とサンプルは自動化の基本的な部分を紹介するものであり、皆さんはこれらを踏まえた上で独自の基盤を構築、維持する必要があります。より軽量なテスト テクニックをお探しの場合は、Visual Studio を使ったアプリのテストに関する最近のブログ記事をご覧ください。 アプリの自動テストの一般的なワークフローを構成する手順を以下に示します。 インストール: アプリのインストールを自動化します。 アクティベーション: アプリのアクティベーションを自動化します。 実行時: 実行時のアプリを自動化します。 ライフサイクルの状態: アプリの中断、再開、終了を自動化します。 アンインストール: アプリのアンインストールを自動化します。 それでは、これらの各手順の詳しい説明と、各手順で使用できるツールとテクノロジを見ていきましょう。 Windows RT 上でのテストに関する注意事項 自動化の具体的なトピックに進む前に、Windows RT 上でのテストに関する注意点を簡単に説明します。x86/64 プロセスを構築または移植して Windows RT 上で実行させることはできません。このため、今回の記事のこれ以降で説明するツールやテクノロジを Windows RT 上のテストに適用することはできません。代わりに、Windows RT 上のテストには Visual Studio を使う (英語) ことをお勧めします。 アプリのインストールを自動化する アプリをテストするには、最初にテスト マシンにアプリをインストールする必要があります。アプリ パッケージを作成してテスト マシンにインストールする方法としてお勧めなのは、Visual Studio を使ってアプリ パッケージをローカルに共有する方法です。この方法では、Visual Studio によって作成されるフォルダーに、すべての関連ファイルと PowerShell スクリプトが格納されます。このスクリプトによって適切な証明書とライセンス、依存パッケージ、アプリ…


メディア再生: Windows 8 の魅力的なアプリ開発で知っておくべき、メディア再生の新たな機能

Windows 8 では、アプリのエクスペリエンス向上を目的に、Microsoft のオーディオ システムがいくつかの点で変更されています。今回のブログ記事ではこうした変更点の内容と、これらの変更点を皆さんのメディア アプリで活用する方法について説明します。Windows ストアのアプリにおけるオーディオの動作、特にバックグラウンドでのオーディオの再生方法について今回の情報で理解を深めていただけますと幸いです。まず最初によくあるユーザー シナリオを見てみましょう。 Windows の音楽アプリでお気に入りのバンドを聴いていると、友達から mp3 が送信されてきました。友達の好きなバンドの曲で、素敵なライブ バージョンです。mp3 を開くと Windows Media Player が起動して曲が再生されます。これで、2 人の好きなバンドそれぞれの曲が同時再生されています。さらに妹を学校に迎えに行く時間を知らせるアラームが鳴り始め、音が混ざり合って何がなんだかわかりません。あなたは焦ってラップトップのふたを閉じてしまいます。もしあなたが私と同じ考えをお持ちであれば、マシンが再生するサウンドをうまく制御する方法が欲しくなるはずです。 Windows 8 のアプリでは、再生マネージャーとメディア転送コントロールの導入によってこの問題が解決されています。再生マネージャーは、オーディオ カテゴリを使ってオーディオ ストリームに動作を割り当てます (さらに拡張することでオーディオ アプリにも動作を割り当てられます)。フォアグラウンドで入力されるオーディオ ストリームは常にオーディオ再生が許可されますが、ストリームにタグ付けすることによって、再生マネージャーがバックグラウンドとフォアグラウンドのさまざまなストリームの処理方法を詳細に制御できます。 たとえば、音楽を再生中のバックグラウンド対応アプリをバックグラウンドに移動し、新しいアプリをフォアグラウンドで起動して音楽を再生すると、再生マネージャーはバックグラウンドのアプリのオーディオをミュートします。これによってより滑らかで直感的なユーザー エクスペリエンスが実現します。ユーザーの聴きたい曲が再生され、そうでない曲は再生されません。(時刻や着信を知らせる) アラートの発生時にバックグラウンドの音楽の音量を下げることができ、曲を停止/再生、トラックを前後にスキップできるメディア転送コントロールにも簡単にアクセスできるので、音がうるさくて止めたいアプリを慌てて探す必要はありません。 新たな機能が導入された理由 以前のバージョンの Windows では、複数のアプリケーションを開いて同時実行できました。オーディオについては、メディア プレーヤーを最小化してドキュメントの作業や Web サーフィンを大画面上で同時に実行でき、モニターが 2 台あればさらなるマルチタスキングが可能でした。Windows 8 で新たに登場した没入型環境の場合、画面上に同時に表示できるアプリの数が以前とは違います。全画面とスナップ部分にそれぞれ 1 つだけしか表示できないので、サウンドを出しているアプリがバック スタックに移動してしまっている場合、そのアプリを見つけるのは以前よりたいへんです。こうした背景が主な理由となって再生マネージャーとメディア転送コントロールが進化し、これらの機能を通して音楽の再生と停止をより簡単に制御できるようになりました。音がうるさいアプリは再生マネージャーからミュートできるので、スワイプを使って複数のアプリを表示させ、アプリを探す必要はありません。 オーディオ ミキサーはデスクトップ環境にはありますが、没入型環境にはありません。デスクトップ アプリケーション用には引き続き提供されるミキサーがアプリでは表示されないのは、デスクトップにミキサーを表示して、関連するアプリの音量を調整するというエクスペリエンスに私たちが納得しなかったことが理由です。私たちはこの方法の代わりに、アプリに音量コントロールを搭載しないことを推奨しています。マスターの音量コントロールだけを使うことで音量関係のエクスペリエンスをシンプルにすることがねらいですが、今回の記事での説明はここまでとします。 ストリーム カテゴリ オーディオ ストリームの音が出る場合と出ない場合をシステムが制御するために追加されたのが、ストリーム カテゴリです。システム的に制御することで、オーディオの音を出すかどうかを Windows が論理的に決定できるようになります。オーディオ カテゴリは、アプリがフォアグラウンド…


Visual Studio 2012 を使った Windows 8 アプリのテスト

私たちは、Windows 8 でオペレーティング システム プラットフォームの刷新を進めながら、Visual Studio で利用できるツールセットの拡張にも取り組み、Windows 8 アプリをテストする際の生産性の向上に努めました。この新しい現代的な OS 環境で、綿密なデザインと十分なテストを通じてアプリの品質を高めれば、皆さんのアプリはより大きな成功を収めることができるでしょう。以前のブログ記事「Windows 8 で Metro スタイル アプリをテストする」では、高品質な Windows 8 アプリを作成するうえで考慮する必要のある主な分野について取り上げました。今回の記事では、アプリのテストと検証を支援する Visual Studio 2012 の機能をいくつか紹介します。 Windows 8 デバイスでのアプリの外観 アプリの成功はその主要機能にかかっていると言えますが、エンド ユーザーに気に入ってもらうためには、Windows 8 デザイン ガイドラインに従って洗練された外観を提供することも重要です。アプリのユーザー エクスペリエンスを検証する際の物理デバイスへの依存度を軽減するため、Visual Studio 2012 にはシミュレーターが搭載されています。したがって、開発中にずっとタブレット デバイスに接続している必要はありません。シミュレーターを利用すれば、あらゆるフォーム ファクターの物理デバイスをテストのために用意しなくても済む可能性が高くなります。シミュレーターは次のような分野のテストに役立ち、数回クリックするだけでアプリの外観をすばやく簡単に検証することができます。 画面のサイズ、解像度、アスペクト比 アプリのレイアウト 画面の向き 図 1. Visual Studio のシミュレーターで Windows 8 のスタート画面を表示したところ。 Windows 8 アプリは、さまざまなフォーム ファクターのデバイスで動作します。画面サイズと解像度を変えてアプリの動作をテストできるように、Visual Studio のシミュレーターでは、これら 2…


Windows 8 アプリ開発者向けのアプリ開発イベント

Windows 8 が Released To Manufacturing (RTM) に到達し、お客様への提供開始が 10 月 26 日となることが発表されましたので、今こそアプリを開発する絶好のタイミングです。8 月 15 日には、すべての開発者が Windows デベロッパー センターで、Visual Studio 2012 の RTM リリースを含む、必要なツールやリソースをすべて利用できるようになります。ここでは、アプリ開発のスピード向上に役立つ無料イベントについていくつか確認してみましょう。 世界中の開発者に Windows 8 をお届けする 以前の記事で Windows 8 デベロッパー キャンプについて紹介して以来、世界中で開催されたデベロッパー キャンプで Window 8 アプリを開発する何千人もの開発者とお会いし、有意義な時間を過ごしています。キャンプは、フランスで開催された小規模な出会いの場から、インドネシアで開催された 1,000 人規模の 24 時間ハッカソン、ベイルートで開催された丸一週間の開発者ウィークまで、さまざまです。世界中のどの場所で開催されるかにかかわらず、キャンプの焦点は Windows 8 アプリの開発をサポートすることに当てられています。 お近くの無料デベロッパー キャンプに出席する http://www.devcamps.ms/windows (英語) でスケジュールをチェックし、今すぐキャンプにお申込みください。今後数週間は、スウェーデン (8 月 2 日)、アトランタ (8 月 2…

2