Partilhar via


O que é .NET MAUI?

.NET Multi-platform App UI (.NET MAUI) é uma estrutura multiplataforma para criar aplicativos móveis e de desktop nativos com C# e XAML.

Usando a MAUI do .NET, você pode desenvolver aplicativos que podem ser executados no Android, iOS, macOS e Windows a partir de uma única base de código compartilhada.

plataformas suportadas pelo .NET MAUI.

O .NET MAUI é de código aberto e é a evolução do Xamarin.Forms, estendido de cenários móveis para desktop, com controles de interface do usuário reconstruídos do zero para desempenho e extensibilidade. Se você já usou o Xamarin.Forms para criar interfaces de usuário entre plataformas, notará muitas semelhanças com o MAUI do .NET. No entanto, existem também algumas diferenças. Usando o .NET MAUI, você pode criar aplicativos multiplataforma usando um único projeto, mas pode adicionar código-fonte e recursos específicos da plataforma, se necessário. Um dos principais objetivos do .NET MAUI é permitir que você implemente o máximo possível da lógica do aplicativo e do layout da interface do usuário em uma única base de código.

Para quem é o .NET MAUI

.NET MAUI é para desenvolvedores que desejam:

  • Escreva aplicativos de plataforma cruzada em XAML e C#, a partir de uma única base de código compartilhada no Visual Studio.
  • Compartilhe o layout e o design da interface do usuário entre plataformas.
  • Compartilhe código, testes e lógica de negócios entre plataformas.

Como funciona o .NET MAUI

O .NET MAUI unifica as APIs do Android, iOS, macOS e Windows numa única API que permite uma experiência de desenvolvimento escrever uma vez e executar em qualquer lugar, além de fornecer acesso profundo a todos os aspectos de cada plataforma nativa.

O .NET 6 ou superior fornece uma série de estruturas específicas de plataforma para a criação de aplicativos: .NET para Android, .NET para iOS, .NET para Mac Catalyst e biblioteca Windows UI 3 (WinUI 3). Todas essas estruturas têm acesso à mesma BCL (Base Class Library) do .NET. Esta biblioteca abstrai os detalhes da plataforma subjacente longe do seu código. A BCL depende do tempo de execução do .NET para fornecer o ambiente de execução para seu código. Para Android, iOS e macOS, o ambiente é implementado pelo Mono, uma implementação do runtime do .NET. No Windows, o .NET Core Common Language Runtime (CLR) fornece o ambiente de execução.

Embora a BCL permita que aplicativos executados em diferentes plataformas compartilhem uma lógica de negócios comum, as várias plataformas têm maneiras diferentes de definir a interface do usuário para um aplicativo e fornecem modelos variados para especificar como os elementos de uma interface do usuário se comunicam e interoperam. Você pode criar a interface do usuário para cada plataforma separadamente usando a estrutura específica da plataforma apropriada (.NET para Android, .NET para iOS, .NET para Mac Catalyst ou WinUI 3), mas essa abordagem exige que você mantenha uma base de código para cada família individual de dispositivos.

O .NET MAUI fornece uma estrutura única para criar as interfaces do usuário para aplicativos móveis e de desktop. O diagrama a seguir mostra uma exibição de alto nível da arquitetura de um aplicativo .NET MAUI:

diagrama de arquitetura .NET MAUI.

Em um aplicativo .NET MAUI, você escreve código que interage principalmente com os controles .NET MAUI e a camada de API (1). Em seguida, essa camada consome diretamente as APIs da plataforma nativa (3). Além disso, o código do aplicativo pode exercer diretamente as APIs da plataforma (2), se necessário.

Os aplicativos .NET MAUI podem ser escritos em PC ou Mac e compilados em pacotes de aplicativos nativos:

  • As apps Android criadas usando o .NET MAUI são compiladas do C# em uma linguagem intermediária (IL), que é então compilada em tempo real (JIT) para código nativo quando a app é iniciada.
  • As aplicações iOS criadas usando o .NET MAUI são compiladas antecipadamente (AOT) a partir de C# em código de assembly ARM nativo.
  • Os aplicativos macOS criados usando o .NET MAUI usam o Mac Catalyst, uma solução da Apple que traz seu aplicativo iOS construído com UIKit para a área de trabalho e o aumenta com APIs adicionais do AppKit e da plataforma, conforme necessário.
  • Os aplicativos do Windows criados usando o .NET MAUI usam a biblioteca da interface do usuário do Windows 3 (WinUI 3) para criar aplicativos nativos destinados à área de trabalho do Windows. Para obter mais informações sobre o WinUI 3, consulte Biblioteca da Interface do Usuário do Windows.

Observação

A criação de aplicações para iOS e macOS requer um Mac.

O que o .NET MAUI oferece

O .NET MAUI fornece uma coleção de controles que podem ser usados para exibir dados, iniciar ações, indicar atividades, exibir coleções, selecionar dados e muito mais. Além de uma coleção de controles, o .NET MAUI também fornece:

  • Um mecanismo de layout sofisticado para projetar páginas.
  • Vários tipos de página para criar tipos de navegação avançados, como gavetas.
  • Suporte para vinculação de dados, para padrões de desenvolvimento mais elegantes e fáceis de manter.
  • A capacidade de personalizar manipuladores para aprimorar a maneira como os elementos da interface do usuário são apresentados.
  • APIs multiplataforma para acessar recursos nativos do dispositivo. Essas APIs permitem que os aplicativos acessem recursos do dispositivo, como o GPS, o acelerômetro e os estados da bateria e da rede. Para mais informações, consulte APIs multiplataforma para funcionalidades do dispositivo.
  • Funcionalidade gráfica multiplataforma, que fornece uma tela de desenho que suporta formas e imagens de desenho e pintura, operações de composição e transformações gráficas de objetos.
  • Um único sistema de projeto que utiliza a capacidade de multidestino para direcionar Android, iOS, macOS e Windows. Para obter mais informações, consulte o Projeto Único do .NET MAUI.
  • .NET hot reload, para que você possa modificar seu XAML e seu código-fonte gerenciado enquanto o aplicativo está em execução e, em seguida, observe o resultado de suas modificações sem reconstruir o aplicativo. Para obter mais informações, consulte .NET hot reload.

APIs multiplataforma para recursos de dispositivo

O .NET MAUI fornece APIs multiplataforma para recursos nativos do dispositivo. Exemplos de funcionalidades fornecidas pelo .NET MAUI para acessar recursos do dispositivo incluem:

  • Acesso a sensores, como acelerômetro, bússola e giroscópio em dispositivos.
  • Capacidade de verificar o estado de conectividade de rede do dispositivo e detetar alterações.
  • Forneça informações sobre o dispositivo em que o aplicativo está sendo executado.
  • Copie e cole texto na área de transferência do sistema, entre aplicações.
  • Escolha um ou vários arquivos do dispositivo.
  • Armazene dados de forma segura como pares chave/valor.
  • Utilize mecanismos integrados de conversão de texto em fala para ler texto do dispositivo.
  • Inicie fluxos de autenticação baseados no navegador que aguardam uma resposta de retorno para uma URL específica registrada de aplicativo.

Projeto único

O projeto único .NET MAUI usa as experiências de desenvolvimento específicas da plataforma que você normalmente encontra ao desenvolver aplicativos e as abstrai em um único projeto compartilhado que pode ter como alvo Android, iOS, macOS e Windows.

O projeto único .NET MAUI fornece uma experiência de desenvolvimento multiplataforma simplificada e consistente, independentemente das plataformas de destino. O projeto único .NET MAUI fornece os seguintes recursos:

  • Um único projeto compartilhado que pode ter como alvo Android, iOS, macOS e Windows.
  • Uma seleção simplificada de alvo de depuração para execução dos seus aplicativos .NET MAUI.
  • Arquivos de recursos compartilhados dentro de um único projeto.
  • Um único manifesto do aplicativo que especifica o título, a id e a versão do aplicativo.
  • Acesso a APIs e ferramentas específicas da plataforma quando necessário.
  • Um único ponto de entrada de aplicativo multiplataforma.

O projeto único do .NET MAUI é habilitado usando a funcionalidade de direcionamento múltiplo e o uso de projetos no estilo de SDK. Para obter mais informações sobre o projeto único do .NET MAUI, consulte projeto único do .NET MAUI.

Atualização instantânea

O .NET MAUI inclui suporte para hot reload do .NET, que permite modificar o código-fonte gerido enquanto a aplicação está em execução, sem a necessidade de pausar manualmente ou atingir um ponto de paragem. Em seguida, as edições de código podem ser aplicadas ao aplicativo em execução sem recompilação.

O .NET MAUI também inclui suporte para a recarga a quente do XAML, que permite guardar os seus ficheiros XAML e visualizar as alterações refletidas na sua aplicação em execução sem recompilação. Além disso, o seu estado de navegação e dados serão mantidos, permitindo que você itere rapidamente na sua interface de utilizador sem perder o seu lugar na aplicação.