O que é MAUI do .NET?
A interface do usuário de aplicativo multiplataforma do .NET (.NET MAUI) é uma estrutura multiplataforma para criar aplicativos móveis e de área de trabalho nativos com C# e XAML.
Usando o .NET MAUI, você pode desenvolver aplicativos que podem ser executados no Android, iOS, macOS e Windows de uma única base de código compartilhada.
O MAUI do .NET é de software livre e é a evolução do Xamarin.Forms, estendido de cenários móveis para desktop, com controles de interface do usuário recriados do zero para desempenho e extensibilidade. Se você já usou o Xamarin.Forms para criar interfaces de usuário multiplataforma, observará muitas semelhanças com o MAUI do .NET. No entanto, também há 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 de sua lógica de aplicativo e layout de interface do usuário em uma única base de código.
Para quem é o .NET MAUI
O MAUI do .NET é para desenvolvedores que desejam:
- Escreva aplicativos multiplataforma em XAML e C#, de uma única base de código compartilhada no Visual Studio.
- Compartilhe o layout e o design da interface do usuário entre plataformas.
- Compartilhar código, testes e lógica de negócios entre plataformas.
Como funciona o MAUI do .NET
O .NET MAUI unifica as APIs do Android, iOS, macOS e Windows em uma única API que permite uma experiência de desenvolvedor de 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 da plataforma para criar aplicativos: biblioteca .NET para Android, .NET para iOS, .NET para Mac Catalyst e WinUI 3 (Windows UI 3). Todas essas estruturas têm acesso à mesma BCL (Biblioteca de Classes Base do .NET). Essa biblioteca abstrai os detalhes da plataforma subjacente longe do seu código. O BCL depende do runtime 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 CLR (Common Language Runtime) fornece o ambiente de execução.
Embora o BCL permita que aplicativos em execução em diferentes plataformas compartilhem a lógica de negócios comum, as várias plataformas têm diferentes maneiras 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 única estrutura para criar as interfaces do usuário para aplicativos móveis e de área de trabalho. O diagrama a seguir mostra uma exibição de alto nível da arquitetura de um aplicativo MAUI do .NET:
Em um aplicativo MAUI do .NET, você escreve um código que interage principalmente com os controles do .NET MAUI e a camada de API (1). Essa camada consome diretamente as APIs de 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 gravados no PC ou mac e compilados em pacotes de aplicativos nativos:
- Aplicativos Android criados usando o .NET MAUI são compilados de C# para uma linguagem intermediária (IL), que é então compilada just-in-time (JIT) para um assembly nativo quando o aplicativo é iniciado.
- Os aplicativos iOS criados usando o .NET MAUI são totalmente compilados antecipadamente (AOT) do C# para o código de assembly nativo do ARM.
- Os aplicativos macOS criados usando o .NET MAUI usam o Mac Catalyst, uma solução da Apple que traz seu aplicativo iOS criado com uikit para a área de trabalho e aumenta-o com APIs adicionais do AppKit e da plataforma, conforme necessário.
- Aplicativos do Windows criados usando o .NET MAUI usam a biblioteca do Windows UI 3 (WinUI 3) para criar aplicativos nativos direcionados à área de trabalho do Windows. Para obter mais informações sobre o WinUI 3, consulte biblioteca de interface do usuário do Windows.
Nota
Criar aplicativos para iOS e macOS requer um Mac.
O que o MAUI do .NET fornece
O .NET MAUI fornece uma coleção de controles que podem ser usados para exibir dados, iniciar ações, indicar atividade, exibir coleções, selecionar dados e muito mais. Além de uma coleção de controles, o .NET MAUI também fornece:
- Um motor de layout sofisticado para criar páginas.
- Vários tipos de página para criar tipos de navegação avançados, como gavetas.
- Suporte para associação de dados, para padrões de desenvolvimento mais elegantes e mantêveis.
- 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 de dispositivo nativo. Essas APIs permitem que os aplicativos acessem recursos do dispositivo, como o GPS, o acelerômetro e os estados de bateria e rede. Para obter mais informações, consulte APIs Multiplataforma para Funcionalidades de Dispositivo.
- Funcionalidade gráfica multiplataforma que proporciona uma tela de desenho que dá suporte a desenho e pintura de formas e imagens, operações de composição e transformações de objetos gráficos.
- Um único sistema de projeto que usa vários direcionamentos para o Android, iOS, macOS e Windows. Para obter mais informações, consulte (Projeto Único .NET MAUI).
- Recarregamento frequente do .NET, para que você possa modificar o XAML e o código-fonte gerenciado enquanto o aplicativo estiver em execução e observar o resultado das modificações sem recompilar o aplicativo. Para obter mais informações, consulte recarga dinâmica do .NET.
APIs multiplataforma para recursos de dispositivo
O .NET MAUI fornece APIs multiplataforma para recursos de dispositivo nativo. Exemplos de funcionalidade fornecidos pelo MAUI do .NET 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 detectar alterações.
- Forneça informações sobre o dispositivo em que o aplicativo está em execução.
- Copie e cole texto na área de transferência do sistema, entre os aplicativos.
- Escolha arquivos únicos ou múltiplos do dispositivo.
- Armazene dados com segurança como pares chave/valor.
- Utilize mecanismos internos de conversão de texto em fala para ler texto do dispositivo.
- Inicie fluxos de autenticação baseados no navegador que aguardam um retorno de chamada para uma URL registrada pelo aplicativo específico.
Projeto único
O projeto único do .NET MAUI usa as experiências de desenvolvimento específicas da plataforma que você normalmente encontra ao desenvolver aplicativos e os abstrai em um único projeto compartilhado que pode ser direcionado para Android, iOS, macOS e Windows.
O projeto único do .NET MAUI fornece uma experiência de desenvolvimento multiplataforma simplificada e consistente, independentemente das plataformas que estão sendo direcionadas. O projeto único do .NET MAUI fornece os seguintes recursos:
- Um único projeto compartilhado que pode ser direcionado para Android, iOS, macOS e Windows.
- Uma seleção simplificada de destino de depuração para rodar seus aplicativos .NET MAUI.
- Arquivos de recursos compartilhados dentro do único projeto.
- Um único manifesto de 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 por meio de multi-direcionamento e do uso de projetos no estilo SDK. Para obter mais informações sobre o .NET MAUI single project, consulte .NET MAUI single project.
Recarga instantânea
O MAUI do .NET inclui suporte para recarregamento dinâmico do .NET, que permite modificar o código-fonte gerenciado enquanto o aplicativo está em execução, sem a necessidade de pausar manualmente ou atingir um ponto de interrupção. Em seguida, as edições de código podem ser aplicadas ao aplicativo em execução sem recompilação.
O MAUI do .NET também inclui suporte para recarregamento dinâmico XAML, o que permite salvar seus arquivos XAML e ver as alterações refletidas em seu aplicativo em execução sem recompilação. Além disso, o estado de navegação e os dados serão mantidos, permitindo que você itera rapidamente em sua interface do usuário sem perder seu lugar no aplicativo.