O que é um aplicativo da UWP (Plataforma Universal do Windows)?What's a Universal Windows Platform (UWP) app?

A UWP é uma das muitas maneiras de criar aplicativos cliente para o Windows.UWP is one of many ways to create client applications for Windows. Os aplicativos UWP usam as APIs do WinRT para fornecer uma interface do usuário eficiente e recursos assíncronos avançados que são ideais para dispositivos conectados à Internet.UWP apps use WinRT APIs to provide powerful UI and advanced asynchronous features that are ideal for internet-connected devices.

Para baixar as ferramentas necessárias para começar a criar aplicativos UWP, confira Preparar-se e, em seguida, escreva seu primeiro aplicativo.To download the tools you need to start creating UWP apps, see Get set up, and then write your first app.

Em que parte a UWP entra na história de desenvolvimento da Microsoft?Where does UWP fit in the Microsoft development story?

A UWP é uma opção para criar aplicativos que são executados em dispositivos Windows 10 e podem ser combinados com outras plataformas.UWP is one choice for creating apps that run on Windows 10 devices, and can be combined with other platforms. Os aplicativos UWP podem fazer uso de APIs do Win32 e classes .NET (confira Conjuntos de APIs para aplicativos UWP, DLLs para aplicativos UWP e .NET para aplicativos UWP).UWP apps can make use of Win32 APIs and .NET classes (see API Sets for UWP apps, Dlls for UWP apps, and .NET for UWP apps).

A história de desenvolvimento da Microsoft continua evoluindo e, juntamente com iniciativas como a WinUI, o MSIX e o Project Reunion, a UWP é uma ferramenta avançada para a criação de aplicativos cliente.The Microsoft development story continues to evolve, and along with initiatives such as WinUI, MSIX, and Project Reunion, UWP is a powerful tool for creating client apps.

Recursos de um aplicativo UWPFeatures of a UWP app

Um aplicativo UWP:A UWP app is:

  • É seguro: os aplicativos UWP declaram quais dados e recursos de dispositivo eles acessam.Secure: UWP apps declare which device resources and data they access. O usuário deve autorizar esse acesso.The user must authorize that access.
  • Pode usar uma API comum em todos os dispositivos que executam o Windows 10.Able to use a common API on all devices that run Windows 10.
  • Pode usar funcionalidades específicas do dispositivo e adaptar a interface do usuário a diferentes tamanhos, resoluções e DPI de telas de dispositivos.Able to use device specific capabilities and adapt the UI to different device screen sizes, resolutions, and DPI.
  • Está disponível na Microsoft Store em todos os dispositivos (ou apenas naqueles especificados por você) que são executados no Windows 10.Available from the Microsoft Store on all devices (or only those that you specify) that run on Windows 10. A Microsoft Store fornece várias maneiras de ganhar dinheiro com seu aplicativo.The Microsoft Store provides multiple ways to make money on your app.
  • Pode ser instalado e desinstalado sem risco ao computador nem de causar "danos ao computador".Able to be installed and uninstalled without risk to the machine or incurring "machine rot".
  • É interessante: use blocos dinâmicos, notificações por push e atividades do usuário que interagem com o recurso de "Continuar do ponto em que parei" da Cortana e a Linha do Tempo do Windows para despertar o interesse dos usuários.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.
  • É programável em C#, C++, Visual Basic e Javascript.Programmable in C#, C++, Visual Basic, and Javascript. Para a interface do usuário, use WinUI, XAML, HTML ou DirectX.For UI, use WinUI, XAML, HTML, or DirectX.

Vamos analisar isso em mais detalhes.Let's look at these in more detail.

SeguroSecure

Em seu manifesto, os aplicativos UWP declaram as funcionalidades do dispositivo de que precisam, como acesso a microfone, localização, webcam, dispositivos USB, arquivos e assim por diante.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. O usuário deve reconhecer e autorizar esse acesso antes que o aplicativo receba a funcionalidade.The user must acknowledge and authorize that access before the app is granted the capability.

Uma superfície de API comum entre todos os dispositivosA common API surface across all devices

O Windows 10 apresenta a UWP (Plataforma Universal do Windows), que fornece uma plataforma de aplicativo comum em cada dispositivo que executa o Windows 10.Windows 10 introduces the Universal Windows Platform (UWP), which provides a common app platform on every device that runs Windows 10. As APIs básicas da UWP são as mesmas em todos os dispositivos Windows.The UWP core APIs are the same on all Windows devices. Se o aplicativo usa apenas as APIs básicas, ele será executado em qualquer dispositivo Windows 10, independentemente de você estar direcionando um computador desktop, Xbox, fone de ouvido de realidade mista e assim por diante.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.

Um aplicativo UWP escrito em C++/WinRT ou C++/CX tem acesso às APIs do Win32 que fazem parte da UWP.A UWP app written in C++ /WinRT or C++ /CX has access to the Win32 APIs that are part of the UWP. Essas APIs do Win32 são implementadas por todos os dispositivos Windows 10.These Win32 APIs are implemented by all Windows 10 devices.

Os SDKs de extensão expõem as funcionalidades exclusivas de tipos de dispositivos específicosExtension SDKs expose the unique capabilities of specific device types

Se o seu alvo for as APIs universais, então o aplicativo poderá ser executado em todos os dispositivos que executam o Windows 10.If you target the universal APIs, then your app can run on all devices that run Windows 10. Mas se você quiser que o aplicativo UWP aproveite as APIs específicas do dispositivo, poderá fazer isso também.But if you want your UWP app to take advantage of device-specific APIs, then you can do that, too.

Os SDKs de extensão permitem que você chame as APIs especializadas para diferentes dispositivos.Extension SDKs let you call specialized APIs for different devices. Por exemplo, se o aplicativo UWP direcionar um dispositivo IoT, você poderá adicionar o SDK de extensão de IoT a seu projeto para direcionar recursos específicos para os dispositivos IoT.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. Para obter mais informações sobre como adicionar os SDKs de extensão, confira a seção SDKs de extensão em Programação com SDKs de extensão.For more information about adding extension SDKs, see the Extension SDKs section in Programming with extension SDKs.

Você pode escrever o aplicativo para que seja executado somente em um tipo específico de dispositivo e depois limitar sua distribuição no Microsoft Store a apenas esse tipo de dispositivo.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. Outra opção é testar condicionalmente a presença de uma API em runtime e adaptar o comportamento do aplicativo de acordo.Or, you can conditionally test for the presence of an API at runtime and adapt your app's behavior accordingly. Para obter mais informações, confira a seção Escrevendo código em Programação com SDKs de extensão.For more information, see the Writing code section in Programming with extension SDKs.

O vídeo a seguir apresenta uma breve visão geral das famílias de dispositivos e codificação adaptável:The following video provides a brief overview of device families and adaptive coding:

Entrada e controles adaptáveisAdaptive controls and input

Os elementos de interface do usuário respondem ao tamanho e à resolução em DPI da tela em que o aplicativo está sendo executado, ajustando seu layout e escala.UI elements respond to the size and DPI of the screen the app is running on by adjusting their layout and scale. Os aplicativos UWP funcionam bem com vários tipos de entrada, como teclado, mouse, toque, caneta e controladores do Xbox One.UWP apps work well with multiple types of input such as keyboard, mouse, touch, pen, and Xbox One controllers. Caso você precise personalizar mais sua interface do usuário para um tamanho de tela ou dispositivo específico, novos painéis de layout e ferramentas ajudarão a criar a interface do usuário que se adapte aos diferentes dispositivos e fatores forma nos quais os aplicativos podem ser executados.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.

Dispositivos Windows

O Windows ajuda a direcionar sua interface do usuário a vários dispositivos com os seguintes recursos:Windows helps you target your UI to multiple devices with the following features:

  • Controles universais e painéis de layout ajudarão a otimizar sua interface do usuário para a resolução de tela do dispositivo.Universal controls and layout panels help you to optimize your UI for the screen resolution of the device. Por exemplo, controles como botões e controles deslizantes adaptam-se automaticamente ao tamanho da tela do dispositivo e à densidade do DPI.For example, controls such as buttons and sliders automatically adapt to device screen size and DPI density. Os painéis de layout ajudam a ajustar o layout do conteúdo com base no tamanho da tela.Layout panels help adjust the layout of content based on the size of the screen. O dimensionamento adaptável ajusta a resolução e as diferenças de DPI entre dispositivos.Adaptive scaling adjusts to resolution and DPI differences across devices.
  • A manipulação de entrada comum permite que você receba a entrada por toque, caneta, mouse, teclado ou por um controlador, como um controlador do Xbox da Microsoft.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.
  • As ferramentas que ajudam você a criar a interface do usuário que pode se adaptar a diferentes resoluções de tela.Tooling that helps you to design UI that can adapt to different screen resolutions.

Alguns aspectos da interface do usuário do seu aplicativo se adaptará automaticamente em todos os dispositivos.Some aspects of your app's UI will automatically adapt across devices. O projeto de experiência do usuário do seu aplicativo, no entanto, talvez precise se adaptar dependendo do dispositivo no qual o aplicativo está sendo executado.Your app's user-experience design, however, may need to adapt depending on the device the app is running on. Por exemplo, um aplicativo de fotos pode se adaptar a sua interface do usuário quando executado em um dispositivo pequeno e portátil para garantir que esse uso seja ideal para uso com uma única mão.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. Quando um aplicativo de fotos é executado em um computador desktop, a interface do usuário deve se adaptar para aproveitar ao máximo o espaço adicional na tela.When a photo app is running on a desktop computer, the UI should adapt to take advantage of the additional screen space.

Existe uma loja para todos os dispositivosThere's one store for all devices

Um armazenamento unificado de aplicativos disponibilizará seu aplicativo nos dispositivos Windows 10, como computador, tablet, Xbox, HoloLens, Surface Hub e dispositivos IoT (Internet das Coisas).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. Você pode enviar seu aplicativo para a loja e disponibilizá-lo em todos os tipos de dispositivos ou apenas os escolhidos.You can submit your app to the store and make it available to all types of devices, or only those you choose. Você envia e gerencia todos os aplicativos para dispositivos Windows em um só lugar.You submit and manage all your apps for Windows devices in one place. Você tem um aplicativo da área de trabalho do C++ que deseja modernizar com recursos UWP e vender na Microsoft Store?Have a C++ desktop app that you want to modernize with UWP features and sell in the Microsoft store? Tudo bem.That's okay, too.

Os aplicativos UWP integram-se ao Application Insights para telemetria detalhada e análise, uma ferramenta crucial para entender os usuários e melhorar os aplicativos.UWP apps integrate with Application Insights for detailed telemetry and analytics—a crucial tool for understanding your users and improving your apps.

Os aplicativos UWP podem ser empacotados com MSIX e distribuídos por meio da Microsoft Store ou de outras maneiras.UWP apps can be packaged with MSIX and distributed via the Microsoft Store, or in other ways. O MSIX permite que os aplicativos sejam atualizados independentemente de como eles são distribuídos. Confira Atualizar pacotes de aplicativos publicados que não são da Store com seu código.MSIX allows apps to be updated no matter how they are distributed, see Update non-Store published app packages from your code.

Monetizar seu aplicativoMonetize your app

Você pode escolher como vai monetizar seu aplicativo.You can choose how you'll monetize your app. Há várias formas de ganhar dinheiro com seu aplicativo.There are a number of ways to make money with your app. Basta escolher a que funciona melhor para você, por exemplo:All you need to do is choose the one that works best for you, for example:

  • Um download pago é a opção mais simples.A paid download is the simplest option. Você só precisa definir o preço.Just name the price.
  • As avaliações permitem que os usuários experimentem o aplicativo antes de comprá-lo, proporcionando descoberta e conversão mais fáceis do que as opções "freemium" mais tradicionais.Trials let users try your app before buying it, providing easier discoverability and conversion than the more traditional "freemium" options.
  • Preços de venda para incentivar os usuários.Sale prices to incentivize users.
  • Compras no aplicativo.In-app purchases.

Forneça informações importantes em tempo real aos usuários para que eles voltemDeliver relevant, real-time info to your users to keep them coming back

Há várias formas de manter os usuários interessados no seu aplicativo UWP:There are a variety of ways to keep users engaged with your UWP app:

  • Os blocos dinâmicos e os blocos da tela de bloqueio mostram com rapidez informações contextualmente relevantes e oportunas sobre o aplicativo.Live tiles and lock screen tiles that show contextually relevant and timely info from your app at a glance.
  • Notificações por push que apresentam alertas em tempo real para chamar a atenção do seu usuário.Push notifications that bring real-time alerts to your user’s attention.
  • As atividades do usuário permitem que os usuários recomecem do ponto em que pararam no aplicativo, mesmo em dispositivos diferentes.User Activities allow users to pick up where they left off in your app, even across devices.
  • A Central de Ações organiza as notificações de seu aplicativo.The Action Center organizes notifications from your app.
  • Execução em segundo plano e gatilhos colocam seu aplicativo em ação quando os usuários precisam dele.Background execution and triggers bring your app into action when the user needs it.
  • O aplicativo pode usar dispositivos de voz e Bluetooth LE para ajudar os usuários a interagir com o mundo ao redor.Your app can use voice and Bluetooth LE devices to help users interact with the world around them.
  • Integre a Cortana para adicionar a funcionalidade de comando de voz a seu aplicativo.Integrate Cortana to add voice command capability to your app.

Usar uma linguagem que você já conheceUse a language you already know

Os aplicativos UWP usam o Windows Runtime, a API nativa fornecida pelo sistema operacional.UWP apps use the Windows Runtime, the native API provided by the operating system. Essa API é implementada em C++ e tem suporte em C#, Visual Basic, C++ e JavaScript.This API is implemented in C++ and is supported in C#, Visual Basic, C++, and JavaScript. Algumas opções para criar aplicativos UWP incluem:Some options for writing UWP apps include:

  • Interface do usuário XAML e C#, VB ou C++XAML UI and C#, VB, or C++
  • Interface do usuário do DirectX e C++DirectX UI and C++
  • JavaScript e HTMLJavaScript and HTML
  • WinUIWinUI

Prepare-se para começarGet set up

Confira Preparar-se para baixar as ferramentas necessárias para começar a criar aplicativos e, em seguida, escreva seu primeiro aplicativo.Check out Get set up to download the tools you need to start creating apps, and then write your first app.

Projetar seu aplicativoDesign your app

O sistema de design da Microsoft chama-se Fluente.The Microsoft design system is named Fluent. O Sistema de Design Fluente é um conjunto de recursos UWP combinado a práticas recomendadas para criação de aplicativos que funcionam perfeitamente em todos os tipos de dispositivos com Windows.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. As experiências do Fluente adaptam-se a e funcionam normalmente em dispositivos de tablets a notebooks e de computadores a televisores, além de em dispositivos de realidade virtual.Fluent experiences adapt and feel natural on devices from tablets to laptops, from PCs to televisions, and on virtual reality devices. Confira O Sistema de Design Fluente para aplicativos UWP para obter uma introdução ao Design Fluente.See The Fluent Design System for UWP apps for an introduction to Fluent Design.

Um bom projeto é o processo de decisão sobre como os usuários vão interagir com seu aplicativo, como será sua aparência e como ele funcionará.Good design is the process of deciding how users will interact with your app, in addition to how it will look and function. A experiência do usuário desempenha uma função enorme em determinar o grau de felicidade que as pessoas terão com seu aplicativo. Portanto, não economize nessa etapa.User experience plays a huge part in determining how happy people will be with your app, so don't skimp on this step. As Noções básicas de design apresentam o design de um aplicativo Universal do Windows.Design basics introduces you to designing a Universal Windows app. Confira a Introdução aos aplicativos da UWP (Plataforma Universal do Windows) para os designers para saber mais sobre como criar aplicativos UWP que encantam seus usuários.See the Introduction to Universal Windows Platform (UWP) apps for designers for information on designing UWP apps that delight your users. Antes de começar a codificar, confira a cartilha de dispositivos para ajudá-lo a pensar sobre a experiência de interação quanto ao uso do seu aplicativo em todos os fatores forma diferentes que você deseja direcionar.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.

Além da interação em diferentes dispositivos, planeje seu aplicativo para adotar os benefícios de trabalhar em vários dispositivos.In addition to interaction on different devices, plan your app to embrace the benefits of working across multiple devices. Por exemplo:For example:

Adicionar serviçosAdd services

Enviar seu aplicativo para a StoreSubmit your app to the Store

O Partner Center permite gerenciar e enviar todos os seus aplicativos para dispositivos Windows em um único local.Partner Center lets you manage and submit all of your apps for Windows devices in one place. Confira Publicar aplicativos e jogos do Windows para aprender a enviar seus aplicativos para publicação na Microsoft Store.See Publish Windows apps and games to learn how to submit your apps for publication in the Microsoft Store.

Os novos recursos simplificam os processos, dando mais controle a você.New features simplify processes while giving you more control. Você também encontrará relatórios de análise detalhados, detalhes de pagamento combinados, formas de promover seu aplicativo e atrair os seus clientes e muito mais.You'll also find detailed analytic reports combined payout details, ways to promote your app and engage with your customers, and much more.

Para mais material introdutório, confira Uma Introdução sobre como criar aplicativos para dispositivos Windows 10For more introductory material, see An Introduction to Building Windows Apps for Windows 10 Devices

Tópicos mais avançadosMore advanced topics

Como a plataforma Universal do Windows se relaciona com APIs do Windows RuntimeHow the Universal Windows Platform relates to Windows Runtime APIs

Se você estiver criando um aplicativo da UWP (Plataforma Universal do Windows), poderá obter muita vantagem e conveniência por tratar os termos "UWP (Plataforma Universal do Windows)" e "WinRT (Windows Runtime)" como mais ou menos sinônimos.If you're building a Universal Windows Platform (UWP) app, then you can get a lot of mileage and convenience out of treating the terms "Universal Windows Platform (UWP)" and "Windows Runtime (WinRT)" as more or less synonymous. Porém, é possível examinar os bastidores da tecnologia e determinar qual exatamente é a diferença entre essas ideias.But it is possible to look under the covers of the technology, and determine just what the difference is between those ideas. Se você está curioso quanto a isso, esta última seção é para você.If you're curious about that, then this last section is for you.

O Windows Runtime e APIs do WinRT são uma evolução das APIs do Windows.The Windows Runtime, and WinRT APIs, are an evolution of Windows APIs. Originalmente, o Windows foi programado por meio de APIs Win32 em etilo C simples.Originally, Windows was programmed via flat, C-style Win32 APIs. A elas, foram adicionadas APIs COM (sendo DirectX um exemplo de destaque).To those were added COM APIs (DirectX being a prominent example). Windows Forms, WPF, .NET e linguagens gerenciadas trouxeram sua própria maneira de escrever aplicativos do Windows e sua própria variante de tecnologia de API.Windows Forms, WPF, .NET, and managed languages brought their own way of writing Windows apps, and their own flavor of API technology. O Windows Runtime é, nos bastidores, o próximo estágio do COM.The Windows Runtime is, under the covers, the next stage of COM. Na camada ABI (interface binária de aplicativo) propriamente dita, suas raízes em COM tornam-se visíveis.At the actual application binary interface (ABI) layer, its roots in COM become visible. Mas o Windows Runtime foi projetado para poder ser chamado de uma gama maior de diferentes linguagens de programação.But the Windows Runtime was designed to be callable from a great range of different programming languages. E pode ser chamado de uma maneira muito natural para cada uma dessas linguagens.And callable in a way that's very natural to each of those languages. Para esse fim, o acesso ao Windows Runtime é disponibilizado por meio das chamadas projeções de linguagem.To this end, access to the Windows Runtime is made available via what are known as language projections. Há uma projeção de linguagem do Windows Runtime para C#, Visual Basic, C++ padrão, JavaScript e assim por diante.There is a Windows Runtime language projection into C#, into Visual Basic, into standard C++, into JavaScript, and so on. Além disso, uma vez empacotado corretamente (confira Ponte de Desktop), você pode chamar APIs do WinRT de um aplicativo criado em um de uma ampla gama de modelos de aplicativos: Win32, .NET, WinForms e WPF.Furthermore, once packaged appropriately (see Desktop Bridge), you can call WinRT APIs from an app built in one of a great range of application models: Win32, .NET, WinForms, and WPF.

E, claro, você pode chamar APIs do WinRT do seu aplicativo da UWP.And, of course, you can call WinRT APIs from your UWP app. UWP é um modelo de aplicativo criado com base no Windows Runtime.UWP is an application model built on top of the Windows Runtime. Tecnicamente, o modelo de aplicativo UWP baseia-se em CoreApplication, embora esse detalhe possa estar oculto de você, dependendo de sua escolha de linguagem de programação.Technically, the UWP application model is based on CoreApplication, although that detail may be hidden from you, depending on your choice of programming language. Como este tópico explicou, de um ponto de vista de proposta de valor, a UWP é útil para escrever um único binário que pode, se você quiser, ser publicado na Microsoft Store e executado em uma grande variedade de fatores forma de dispositivo.As this topic has explained, from a value proposition point of view, the UWP lends itself to writing a single binary that can, should you choose, be published to the Microsoft Store and run on any one of a great range of device form factors. O alcance de dispositivo de seu aplicativo da UWP depende do subconjunto de APIs do Windows Runtime que você limita o seu aplicativo a chamar ou que você chama condicionalmente.The device reach of your UWP app depends on the subset of Windows Runtime APIs that you limit your app to calling, or that you call conditionally.

Espero que esta seção tenha sido bem-sucedida em descrever a diferença entre a tecnologia subjacente de APIs do Windows Runtime e o mecanismo e o valor comercial da plataforma Universal do Windows.Hopefully, this section has been successful in describing the difference between the technology underlying Windows Runtime APIs, and the mechanism and business value of the Universal Windows Platform.