アプリ開発者のための Windows Store App Labs が公開されました

本日は、30 以上の都市で開催されている、開発者、デザイナー、経営者や起業家など、アプリ開発にかかわるすべての皆さんのために Microsoft が開設した Windows Store App Labs (英語) をご紹介いたします。Windows Store App Labs では、最新の Windows 8 デバイスに実際に触れ、Windows エキスパートに技術的なアドバイスを聞き、最先端で活躍するデザイナーやデジタル マーケティング企業のデザイン ガイダンスを知ることができます。これらはすべて、無料でご利用いただけます。 最新の Windows 8 デバイスで実際にテストしてください ラボには最新の Windows 8 デバイスを揃えました。フォーム ファクターも、Microsoft Surface (英語)、Ultrabook、オールインワン型などの Windows RT タブレットなどを各種取り揃えているので、さまざまな画面サイズ、入力方式、アーキテクチャで皆さんのアプリを試していただけます。  皆さんのアプリを実行してテストしていただけるよう、Windows 8 デバイスを各種のフォーム ファクターで用意いたしました。 技術面のアドバイスは Windows 8 エキスパートから アプリを Microsoft の Windows エキスパートにお見せいただいて、必要なアドバイスを彼らから直接聞くことができます。皆さんのアプリが Windows ストアに無事提出されるよう、コーディングに関するヒントでお手伝いします。 デザインのアドバイスは、最先端で活躍するデザインのプロフェッショナルから アプリをもっと目立たせたいなどのデザインに関するヒントは、デザイナーやデジタル マーケティング企業に聞きましょう。アプリの試作版や完全版をお見せいただければ、アプリのレイアウト、ライブ タイル、ナビゲーション、UI 要素などにどのように手を入れればよいかアドバイスさせていただきます。 Windows…


Windows 8 で優れた印刷エクスペリエンスを開発する

Windows を刷新するにあたり、私たちは、ユーザー エクスペリエンス、開発者プラットフォーム、広範にわたるデバイス エコシステムなど、印刷のあらゆる側面と、全体としてすばらしいエクスペリエンスを提供するためにそれらをどのように連携させるかについて、改めて検討することにしました。この記事では、Windows 8 での印刷のユーザー エクスペリエンスと開発者プラットフォームについて概説します。また、アプリの要件に合わせて印刷のユーザー エクスペリエンスを調整する方法についても説明します。 Windows 8 アプリからの印刷 まず、Windows 8 での印刷のしくみを見ていきましょう。その後、各種アプリで印刷がどのように処理されるかを説明します。 Windows 8 の印刷は、印刷をサポートするアプリのコンテキストに応じて動作します。アプリは、印刷コントラクトに登録することで、印刷をサポートします。アプリで印刷をサポートするかどうかは、開発者が判断します。すべてのアプリが印刷を使用するわけではありません。たとえば、ゲームを開発している場合であれば、印刷は必要ないと判断することもあります。しかし、航空会社向けのアプリを開発している場合は、航空券の印刷は、チェックイン プロセスの重要な項目の 1 つになるでしょう。アプリで印刷をサポートするかどうか、また印刷を提供するのはどのような場合であるかは、開発者が自由に決めることができますが、ユーザーの期待を考慮する必要があります。ユーザーによってアプリからの印刷が期待されている場合は、アプリで印刷をサポートすることをお勧めします。 Windows 8 で印刷をするには、画面の右端から内側に向かってスワイプし、チャームを表示します。アプリで印刷がサポートされている場合、デバイス チャームをタップすると、コンピューターにインストールされているすべてのプリンターが表示されます。印刷に使うプリンターを選択すると、次のような印刷ウィンドウが表示されます。 印刷のフロー 印刷ウィンドウには、印刷内容のプレビューと、よく使われるプリンターの設定が表示されます。私たちが印刷機能について計画している段階で、印刷内容を印刷前に確認したいという要望が多くの方から寄せられました。Windows 8 の印刷プラットフォームでは、印刷ウィンドウで印刷コンテンツのプレビューを表示できるようになっています。したがって、アプリから独自の方法でプレビューを表示する必要がありません。この印刷プラットフォームではプレビューの表示を更新することもでき、印刷ウィンドウでプリンターの設定を変えるごとに、印刷結果がどうなるかをユーザーが確認できます。 既定の印刷エクスペリエンスを効率的にするため、印刷ウィンドウには既定で [印刷部数]、[印刷の向き]、[カラー] の 3 種類のプリンター設定しか表示されません。私たちの調査によると、これらは、印刷時にユーザーが最もよく変更されるプリンター設定です。これらの設定を表示することで、ユーザーが印刷ジョブの構成中に、最もよく使う設定にすぐにアクセスできます。アプリの開発者は、アプリに最適なエクスペリエンスを提供するため、印刷ウィンドウに表示する設定を制御できます。また、各設定の既定値を定義することもできます。 すべての Windows 8 アプリで、コンテンツの印刷には同じエクスペリエンスを使用します。したがって、ユーザーはあるアプリでの印刷方法がわかれば、すべてのアプリから印刷することができます。つまり、ユーザーは印刷機能を探し回ることも、アプリごとに印刷方法を新たに覚える必要もありません。 印刷コントラクト アプリは印刷コントラクトを使って、印刷プラットフォームと通信します。アプリは印刷するコンテンツを提供し、Windows は印刷エクスペリエンスと基盤のインフラストラクチャを提供します。アプリを印刷コントラクトに登録すると、デバイス チャームから印刷機能を利用できるようになるため、簡単に印刷機能にアクセスして使用できます。 すべての WinRT API など、印刷コントラクトは、任意の言語および UI フレームワークと連係できるように設計されています。したがって、HTML または XAML のいずれを使ってもコンテンツをレイアウトできます。アプリからのコンテンツ印刷の動作をさらに制御したい場合は、D2D や XPS テクノロジを使うこともできます。 アプリに印刷のサポートを追加する場合は、次の 2…


HTML コントロールを使ってすばらしい Metro スタイル アプリを作成する

Windows 8 では、HTML を使って Metro スタイル アプリを構築することができます。直接 HTML コントロールを使って Windows 8 の新しいエクスペリエンスを自動的に実現できることは、ご存じないかもしれません。私たちは、HTML を使う際の優れた柔軟性を維持しながら、タッチ機能を備えた業務用アプリを構築できるように、HTML に手を加えてきました。輝くようなアプリをすばやく効率的に構築できるようにしたいと思っています。 特に、既存の知識を使ってすばらしい Windows 8 エクスペリエンスを実現できるように、<button> などの一般的な HTML コントロールを引き続き活用できるようにしたいと思っています。Windows 8 では、Windows 8 のエクスペリエンスが組み込まれた標準 HTML コントロールの新しい実装によってこれが可能になっています。既定では、これらの標準コントロールすべてに Windows 8 の新しい外観、優れたタッチ エクスペリエンス、ローカライズとグローバリゼーションの強力なサポートが備わっています。これらの標準 HTML コントロールを使うことで、HTML に期待する柔軟性を維持しながら、皆さんの顧客に気に入っていただけるすばらしい Metro スタイル アプリを構築することができます。 Windows 8 チームは、ユーザーに気に入っていただけるすばらしいアプリをできるだけ簡単に作ることができるようにしたいと思っています。ケース スタディとして、最もシンプルなコントロールの 1 つである <button> を取り上げて、Windows 8 の新しい <button> によりどのように生産性が上がるのかについて詳しく説明します。ここで紹介するヒントやテクニックを使えば、Windows 8 の HTML を最大限に活用してすばらしい Metro スタイル…


Windows 8 の入力を最新化する

Windows 8 では、入力プラットフォームの最新化を図っています。より明快な Windows 8 開発を実現するだけでなく、Windows とアプリの進化に合わせて拡張でき、新しい入力方式をサポートできる基礎を築きたいと考えました。 そのために、私たちは基本に立ち返り、設計の指針とする大原則に照準を合わせました。今回のブログ記事では、この大原則が重要である理由と、このプラットフォームを利用して Windows 8 ですばらしいアプリを構築する方法について説明します。 プラットフォームの原則 Windows は、これまで常に、Windows を基盤とするアプリによって映し出されてきました。多くのユーザーが Windows を体験したのはアプリの世界をとおしてであり、Windows 8 ではさらにその傾向が強まっています。Windows 8 では、OS 機能の大半がアプリのエクスペリエンスを介して提供されます。したがって、アプリは、これまでよりも格段に予測可能な動作になり、ユーザーが自信を持って操作できる必要があります。同様に、開発プロセスとプラットフォームも一貫性があり、予測可能である必要があります。ハードウェアの取り組みについては、ブログ記事「Windows 7 のハードウェアで Windows 8 のタッチ機能を体験する」と「タッチ ハードウェアと Windows 8」で説明しました。また、お寄せいただいたフィードバックを基にいくつかの点について議論をしました。合格と見なせるプラットフォームは、開発がしやすくて自信を持って利用でき、幅広いリーチが可能な、開発者が本当に創造力を解き放つことができるプラットフォームです。私たちは、まず、次の原則を原点としました。 幅広いリーチ できるだけ多くのデバイスを容易にターゲットにできる必要があります。つまり、入力プラットフォームの観点では、さまざまな種類の入力 (マウス、タッチ、ペン、タッチパッド) とフォーム ファクター (スレート、オールインワン、デスクトップ、ノート PC、コンバーチブル) をサポートする必要があります。Windows は非常に多くのフォーム ファクターとデバイスをサポートしていることもあり、そのような対応範囲の広い、利便性の高いプラットフォームと見なすことができます。その代わり、Windows では、それらのフォーム ファクターとデバイスを容易にターゲットにできる必要もあります。 一貫性と自信 Windows 8 では、一貫性があり、自信を持って操作できるエクスペリエンスを提供したいと考えています。アプリ開発者が、ユーザーに新しい対話式操作や入力パラダイムを教えなくても済む必要があります。Windows 全体で一貫性のあるエクスペリエンスを利用でき、アプリの操作方法をユーザーが既に知っていると確信を持つことができる必要があります。その結果、アプリとエコシステムに対するユーザーの自信も高まり、開発者の作業が楽になります。 開発の容易さ あまにりにも複雑であるか、一貫性がない、または開発が難しい場合、そのプラットフォームが成功を収めることはありません。Windows 8 では、開発の容易さも指針となる原則の 1 つにしています。 入力プラットフォームの概要 入力プラットフォームは、レイヤーで構成されています。最下位レイヤーは…


優れたタイル エクスペリエンスを開発する (パート 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 8 のコントラクトのアクティベーションを行う

Metro スタイル アプリの開発を始めるとすぐに行き当たるのがコントラクトです。コントラクトは Windows 8 で導入された強力な新しいコンセプトで、Metro スタイル アプリはこれを利用して、他のアプリや Windows との間の対話的操作のサポートを宣言することができます。検索コントラクト、共有コントラクトなど、いくつかはおそらく既に耳にされていることと思います。コントラクトを活用することで、アプリはシステムや他のアプリとの連携能力が増し、インストールされているコントラクト対応アプリの数が増えるほど、機能が向上していきます。この記事では、アクティベーションの流れをご紹介します。アクティベーションは、アプリにコントラクトを追加する際に考慮する必要のある中心的な概念の 1 つです。 Metro スタイル アプリの起動を行い、ユーザーがアプリを起動した理由をそのアプリに通知するのに使用されるのが、Windows アクティベーション プラットフォームです。アプリ起動の理由はさまざまで、ユーザーがスタート画面でアプリのタイルを使って起動した場合もあれば、たとえばユーザーが検索を行った際の結果表示など、具体的なタスクのために起動される場合もあります。Windows はアプリに、起動された理由と、必要な場合はタスクを完了するための追加情報を提供します。Windows 8 アクティベーション プラットフォーム以前、こういった情報をアプリに受け渡すために使用されていたのは、コマンド ライン パラメーターでした。新しいモデルでは、StorageFile、ShareOperation などのライブ オブジェクトを受け渡して、アプリにコンテキスト情報を与えることもできます。これはコントラクトの有用性がさらに際立つ要素の 1 つと言えるでしょう。それでは、コントラクトによる起動をサポートするために必要な知識を、詳しく見ていきましょう。 コントラクト: 目的に応じた、コンテキストを伴う Metro スタイル アプリの起動 Windows 8 Consumer Preview のデモ (英語) でご覧いただけるとおり、Windows 8 のコントラクトは、他の Metro スタイル アプリやシステム UI とアプリをつなぐ糊のような役割を果たします。たとえば、File Open Picker (ファイル オープン ピッカー) コントラクトを使用すると、ユーザーはアプリ内から別のアプリのファイルをインポートすることができます。検索コントラクトでは、システム内のどこからでもアプリを検索することができ、クエリを複数のアプリ間で迅速に受け渡すことができます。いずれの場合も、そして他の多くのコントラクト使用シナリオでも、ユーザーが目的のタスクをすばやく効率的に完了できるよう、Windows がアプリの UI の特定の部分を直接指定して起動できるようになっている必要があります。そこで活躍するのが、アクティベーション…


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 グラフィックスおよび最小限のオーバーレイ…