ユニバーサル Windows プラットフォーム (UWP) アプリとはWhat's a Universal Windows Platform (UWP) app?

ユニバーサル Windows プラットフォーム アプリは、さまざまなデバイスで実行でき、アダプティブ ユーザー インターフェイス、自然なユーザー入力、1 つのストア、1 つのデベロッパー センター、およびクラウド サービスをサポートしています。

UWP アプリには次のような特長があります。A UWP app is:

  • 高いセキュリティ。UWP アプリはアクセスするデバイス リソースとデータを宣言します。Secure: UWP apps declare which device resources and data they access. ユーザーは、そのアクセスを承認する必要があります。The user must authorize that access.
  • Windows 10 を実行しているすべてのデバイスで共通の API を使用できます。Able to use a common API on all devices that run Windows 10.
  • デバイス固有の機能を使用して、異なるデバイスの画面サイズ、解像度、DPI に合わせて UI を調整することができます。Able to use device specific capabilities and adapt the UI to different device screen sizes, resolutions, and DPI.
  • Windows 10 を実行するすべてのデバイス (または指定したデバイスのみ) で Microsoft Store から入手できます。Available from the Microsoft Store on all devices (or only those that you specify) that run on Windows 10. Microsoft Store では、アプリで収益を上げるいくつかの方法を提供します。The Microsoft Store provides multiple ways to make money on your app.
  • コンピューターへのリスクや "コンピューターの劣化" を気にせずにインストールおよびアンインストールできます。Able to be installed and uninstalled without risk to the machine or incurring "machine rot".
  • 魅力的。ライブ タイル、プッシュ通知、Windows タイムラインや Cortana の前回終了した位置から再開を利用したユーザー アクティビティによって、ユーザーのエンゲージメントを高めます。Engaging: use live tiles, push notifications, and user activities that interact with Windows Timeline and Cortana's Pick Up Where I Left Off, to engage users.
  • C#、C++、Visual Basic、Javascript でプログラミング可能です。Programmable in C#, C++, Visual Basic, and Javascript. UI 用に、XAML、HTML、または DirectX を使用します。For UI, use XAML, HTML, or DirectX.

これらをさらに詳しく見てみましょう。Let's look at these in more detail.

セキュリテイ保護Secure

UWP アプリでは、マイク、位置情報、Web カメラ、USB デバイス、ファイルなどへのアクセスに必要なデバイスの機能をマニフェストで宣言します。UWP apps declare in their manifest the device capabilities they need such as access to the microphone, location, Webcam, USB devices, files, and so on. アプリに機能が付与される前に、ユーザーがそのアクセスを確認して承認する必要があります。The user must acknowledge and authorize that access before the app is granted the capability.

すべてのデバイスに共通の API セットA common API surface across all devices

Windows 10 ではユニバーサル Windows プラットフォーム (UWP) が導入され、Windows 10 を実行する各デバイスで共通のアプリ プラットフォームが提供されます。Windows 10 introduces the Universal Windows Platform (UWP), which provides a common app platform on every device that runs Windows 10. UWP のコア API は、すべての Windows デバイスで同じです。The UWP core APIs are the same on all Windows devices. アプリがコア API のみを使う場合は、対象となるのがデスクトップ PC、Xbox、Mixed Reality ヘッドセットなどのいずれかに関係なく、そのアプリはどの Windows 10 デバイスでも動作します。If your app only uses the core APIs, it will run on any Windows 10 device no matter whether you are targeting a desktop PC, Xbox, Mixed-reality headset, and so on.

C++/WinRT または C++/CX で記述された UWP アプリは UWP の一部である Win32 API にアクセスします。A UWP app written in C++ /WinRT or C++ /CX has access to the Win32 APIs that are part of the UWP. これらの Win32 API は、すべての Windows 10 デバイスによって実装されます。These Win32 APIs are implemented by all Windows 10 devices.

拡張 SDK が特定のデバイスの種類に固有の機能を公開するExtension SDKs expose the unique capabilities of specific device types

ユニバーサル API を対象としている場合、アプリは Windows 10 が動作しているすべてのデバイスで実行できます。If you target the universal APIs, your app can run on all devices that run Windows 10. ただし、UWP アプリでデバイス固有の API を利用したい場合は、利用できます。But if you want your UWP app to take advantage of device specific APIs, you can.

拡張 SDK では、さまざまなデバイスに特化した API を呼び出すことができます。Extension SDKs let you call specialized APIs for different devices. たとえば、UWP アプリで IoT デバイスをターゲットにしている場合、IoT デバイスに固有の機能をターゲットにしたプロジェクトに IoT 拡張 SDK を追加できます。For example, if your UWP app targets an IoT device, you can add the IoT extension SDK to your project to target features specific to IoT devices. 拡張 SDK の追加に関する詳細については、デバイス ファミリの概要に関するページ拡張 SDKのセクションを参照してください。For more information about adding extension SDKs, see the Extension SDKs section in Device families overview.

特定の種類のデバイスでのみ実行されることを想定し、Microsoft Store からの配布をその種類のデバイスのみに制限するようにアプリを記述することができます。You can write your app so that you expect it to run only on a particular type of device, and then limit its distribution from the Microsoft Store to just that type of device. または、実行時に API の存在を条件付きでテストし、結果に応じてアプリの動作を調整できます。Or, you can conditionally test for the presence of an API at runtime and adapt your app's behavior accordingly. 詳細については、デバイス ファミリの概要に関するページコードの記述のセクションを参照してください。For more information, see the Writing Code section in Device families overview.

次のビデオでは、デバイス ファミリとアダプティブ コードの作成に関する簡単な概要を示します。The following video provides a brief overview of device families and adaptive coding:

アダプティブ コントロールおよび入力Adaptive controls and input

UI 要素は、そのレイアウトやスケールを調整することで、アプリが実行されている画面のサイズや DPI に対応します。UI elements respond to the size and DPI of the screen the app is running on by adjusting their layout and scale. UWP アプリは、キーボード、マウス、タッチ、ペン、Xbox One コントローラーなど、さまざまな種類の入力デバイスで問題なく機能します。UWP apps work well with multiple types of input such as keyboard, mouse, touch, pen, and Xbox One controllers. 特定の画面サイズやデバイスに合わせて UI をさらに調整する必要がある場合は、新しく追加されたレイアウト パネルとツールを使用して、アプリが実行されるさまざまなデバイスやフォーム ファクターに合わせて調整可能な UI を設計できます。If you need to further tailor your UI to a specific screen size or device, new layout panels and tooling help you design UI that can adapt to the different devices and form factors that your app may run on.

Windows デバイス

Windows では、UI を次の機能を備えた複数のデバイスを対象としたものにすることができます。Windows helps you target your UI to multiple devices with the following features:

  • UI をデバイスの画面の解像度に合わせて最適化するために役立つユニバーサル コントロールとレイアウト パネル。Universal controls and layout panels help you to optimize your UI for the screen resolution of the device. たとえば、ボタンやスライダーなどのコントロールは、デバイスの画面サイズや DPI 密度に合わせて自動的に調整されます。For example, controls such as buttons and sliders automatically adapt to device screen size and DPI density. レイアウト パネルは、画面のサイズに基づいてコンテンツのレイアウトを調整するのに役立ちます。Layout panels help adjust the layout of content based on the size of the screen. デバイス間での解像度と DPI の相違を調整するアダプティブ スケーリング。Adaptive scaling adjusts to resolution and DPI differences across devices.
  • 一般的な入力処理では、タッチ、ペン、マウス、キーボード、またはコントローラー (Microsoft Xbox コントローラーなど) による入力を受け取ることができます。Common input handling allows you to receive input through touch, a pen, a mouse, a keyboard, or a controller such as a Microsoft Xbox controller.
  • さまざまな画面の解像度に合わせて変化する UI の設計に役立つツール。Tooling that helps you to design UI that can adapt to different screen resolutions.

アプリの UI の一部はデバイス間で自動的に対応します。Some aspects of your app's UI will automatically adapt across devices. ただし、アプリのユーザー エクスペリエンスの設計は、アプリが実行されているデバイスへの対応が必要になる場合があります。Your app's user-experience design, however, may need to adapt depending on the device the app is running on. たとえば、フォト アプリが小型のハンドヘルド デバイスで実行されている場合、UI を片手での使用に適するように調整できます。For example, a photo app could adapt its UI when running on a small, handheld device to ensure that usage is ideal for single-handed use. フォト アプリがデスクトップ コンピューターで実行されている場合、UI は広い画面スペースを利用するように調整する必要があります。When a photo app is running on a desktop computer, the UI should adapt to take advantage of the additional screen space.

1 つのストアですべてのデバイスに対応するThere's one store for all devices

統一されたアプリ ストアによって、PC、タブレット、Xbox、HoloLens、Surface Hub、IoT (モノのインターネット) デバイス などの Windows 10 デバイスでアプリを入手できます。A unified app store makes your app available on Windows 10 devices such as PC, tablet, Xbox, HoloLens, Surface Hub, and Internet of Things (IoT) devices. 開発者は、アプリをストアに提出し、すべての種類のデバイスまたは選択した種類のデバイス向けに販売できます。You can submit your app to the store and make it available to all types of devices, or only those you choose. Windows デバイス向けのすべてのアプリを 1 か所で提出、管理できます。You submit and manage all your apps for Windows devices in one place. UWP の機能を使って最新化し、Microsoft Store での販売を希望する C++ デスクトップ アプリがある場合もHave a C++ desktop app that you want to modernize with UWP features and sell in the Microsoft store? 問題ありません。That's okay, too.

UWP アプリは、詳細なテレメトリや分析のために Application Insights に統合されています。これは、ユーザーを理解し、アプリの品質を向上させるために欠かせないツールです。UWP apps integrate with Application Insights for detailed telemetry and analytics—a crucial tool for understanding your users and improving your apps.

アプリの収益化Monetize your app

アプリを収益化する方法を選択できます。You can choose how you'll monetize your app. アプリで収益を得る方法は多数あります。There are a number of ways to make money with your app. 必要なのは、ニーズに合った最適な方法を選ぶことだけです。たとえば、次のような方法があります。All you need to do is choose the one that works best for you, for example:

  • 有料のダウンロードは最も簡単な方法です。A paid download is the simplest option. 必要な作業は価格の指定だけです。Just name the price.
  • 試用版を使うとユーザーは購入前にアプリを試すことができ、従来の "フリーミアム" オプションよりも目につきやすく、コンバージョンも簡単です。Trials let users try your app before buying it, providing easier discoverability and conversion than the more traditional "freemium" options.
  • セール価格はユーザーに対して動機付けとなります。Sale prices to incentivize users.
  • アプリ内購入と広告も利用できます。In-app purchases and ads are also available.

Microsoft Store からアプリのシームレスなインストール、アンインストール、アップグレードのエクスペリエンスを提供するApps from the Microsoft Store provide a seamless install, uninstall, and upgrade experience

すべての UWP アプリは、ユーザー、デバイス、システムを保護するパッケージ システムを使用して配布されます。All UWP apps are distributed using a packaging system that protects the user, device, and system. UWP アプリはアプリで作成したドキュメント以外に何も残さずにアンインストールすることができるため、ユーザーはアプリをインストールしたことを後悔する必要はありません。Users never need regret installing an app because UWP apps can be uninstalled without leaving anything behind except the documents created with the app.

アプリはシームレスに展開および更新することができます。Apps can be deployed and updated seamlessly. ユーザーが必要に応じてコンテンツや拡張機能をダウンロードできるように、アプリのパッケージをモジュール化することができます。App packaging can be modularized so that you can download content and extensions on demand.

関連するリアルタイム情報をユーザーに表示して繰り返し集客するDeliver relevant, real-time info to your users to keep them coming back

UWP アプリに対するユーザーのエンゲージメントを維持するためのさまざまな方法があります。There are a variety of ways to keep users engaged with your UWP app:

  • ライブ タイルとロック画面タイルは、アプリからのコンテキストに関連したタイムリーな情報をひとめでわかるように表示します。Live tiles and lock screen tiles that show contextually relevant and timely info from your app at a glance.
  • プッシュ通知は、ユーザーがリアルタイムの通知に注目できるようにします。Push notifications that bring real-time alerts to your user’s attention.
  • ユーザー アクティビティでは、異なるデバイスでも、アプリで前回中断したところから作業を始めることができます。User Activities allow users to pick up where they left off in your app, even across devices.
  • アクション センターでは、アプリの通知を整理できます。The Action Center organizes notifications from your app.
  • バックグラウンドの実行とトリガーにより、ユーザーが必要とするときにアプリが有効になります。Background execution and triggers bring your app into action when the user needs it.
  • アプリで音声と Bluetooth LE デバイスを使うと、ユーザーはそれらのデバイスを中心に広がる世界とやり取りすることができます。Your app can use voice and Bluetooth LE devices to help users interact with the world around them.
  • 音声コマンド機能をアプリに追加するには、Cortana を統合します。Integrate Cortana to add voice command capability to your app.

使い慣れた言語の使用Use a language you already know

UWP アプリは、オペレーティング システムによって提供されるネイティブな API である Windows ランタイムを使います。UWP apps use the Windows Runtime, the native API provided by the operating system. この API は C++ で実装され、C#、Visual Basic、C++、JavaScript でサポートされます。This API is implemented in C++ and is supported in C#, Visual Basic, C++, and JavaScript. UWP アプリを作成するための一部のオプションを次に示します。Some options for writing UWP apps include:

  • XAML UI と、C#、VB、または C++XAML UI and C#, VB, or C++
  • DirectX UI と C++DirectX UI and C++
  • JavaScript と HTMLJavaScript and HTML

準備Get set up

準備」を確認し、アプリの作成を始めるために必要なツールをダウンロードしてから、初めてのアプリを作成してください。Check out Get set up to download the tools you need to start creating apps, and then write your first app.

アプリをデザインするDesign your app

Microsoft デザイン システムは Fluent と呼ばれます。The Microsoft design system is named Fluent. Fluent Design System は、すべての種類の Windows デバイスで適切に動作するアプリを作成するためのベスト プラクティスと組み合わされた、UWP 機能のセットです。The Fluent Design System is a set of UWP features combined with best practices for creating apps that perform beautifully on all types of Windows-powered devices. Fluent エクスペリエンスは、タブレット、ノート PC、デスクトップ、テレビから、仮想現実デバイスまで、さまざまなデバイスに対応し、自然に操作できます。Fluent experiences adapt and feel natural on devices from tablets to laptops, from PCs to televisions, and on virtual reality devices. Fluent Design の概要については、UWP アプリ向けの Fluent Design System に関するページを参照してください。See The Fluent Design System for UWP apps for an introduction to Fluent Design.

適切な設計とは、アプリの外観や機能に加えて、ユーザーによるアプリの操作方法を決定するプロセスです。Good design is the process of deciding how users will interact with your app, in addition to how it will look and function. ユーザー エクスペリエンスは、ユーザーがアプリでどの程度満足するかを判断する場合に大きな役割を果たします。そのため、この手順は必ず守ってください。User experience plays a huge part in determining how happy people will be with your app, so don't skimp on this step. 設計の基本に関するページでは、ユニバーサル Windows アプリの設計を紹介します。Design basics introduces you to designing a Universal Windows app. ユーザーを楽しませる UWP アプリの設計の情報については、「デザイナー向けユニバーサル Windows プラットフォーム (UWP) アプリの紹介」をご覧ください。See the Introduction to Universal Windows Platform (UWP) apps for designers for information on designing UWP apps that delight your users. コーディングを開始する前に、ターゲットにするすべての異なるフォーム ファクターについてのアプリの使用についての操作エクスペリエンスを検討するために役立つ「デバイスの基本情報」をご覧ください。Before you start coding, see the device primer to help you think through the interaction experience of using your app on all the different form factors you want to target.

さまざまなデバイスでの操作に加えて、複数のデバイスで動作する利点を取り入れるように アプリの計画 を行います。In addition to interaction on different devices, plan your app to embrace the benefits of working across multiple devices. 次に例を示します。For example:

サービスの追加Add services

アプリをストアに提出するSubmit your app to the store

新しい統合 Windows デベロッパー センター ダッシュボードにより、Windows デバイス向けのすべてのアプリの管理と申請を 1 か所で行うことができます。The new unified Windows Dev Center dashboard lets you manage and submit all of your apps for Windows devices in one place. Microsoft Store にアプリ公開の申請をする方法については、「統合 Windows デベロッパー センター ダッシュボードの使用」をご覧ください。See Using the unified Windows Dev Center dashboard to learn how to submit your apps for publication in the Microsoft Store.

新しい機能が追加されたことで、より高度な管理が可能になった一方、プロセスは簡単になりました。New features simplify processes while giving you more control. また、詳しい分析レポートに加えて、支払いの詳細も得られるようになりました。いずれもアプリの宣伝と顧客エンゲージメントの獲得に役立ちます。You'll also find detailed analytic reports combined payout details, ways to promote your app and engage with your customers, and much more.

別の入門資料については、「Windows 10 デバイス向け Windows アプリのビルドの概要」をご覧ください。For more introductory material, see An Introduction to Building Windows Apps for Windows 10 Devices

高度なトピックMore advanced topics