.NET MAUI - Apresentando os novos recursos


Hoje vamos apresentar alguns dos novos recursos do NET MAUI.

O NET Multi-platform App UI (.NET MAUI) é um framework multiplataforma para a criação de aplicativos móveis e de desktop nativos com C# e XAML.

Qual é a diferença entre .NET MAUI e Xamarin Forms ?

Com o .NET 6, o desenvolvimento de aplicativos nativos torna-se parte da plataforma .NET como outros frameworks, como o ASP.NET Core, que já fazem do .NET 5.

No .NET MAUI, todo o seu código está em um único projeto em comparação com o Xamarin Forms, onde você tinha que ter um projeto para cada plataforma. Isso deve reduzir a complexidade e torná-la uma experiência melhor para o desenvolvedor.

Se você já usou o Xamarin.Forms anteriormente para criar aplicações multiplataforma, você notará muitas semelhanças com o .NET MAUI.

No entanto, também existem 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.

A previsão de lançamento do .NET 6 é  para novembro de 2021 e terá suporte por três anos, como uma versão Long Term Support (LTS). A matriz da plataforma foi significativamente expandida em comparação com .NET 5.  Agora o .NET MAUI, sofreu um atraso, e esta previsto somente para o primeiro semestre de 2022. Conforme comunicado oficial:

"Infelizmente, o .NET MAUI não estará pronto para produção com o .NET 6 GA em novembro", disse Scott Hunter, diretor de gerenciamento de programas do .NET, em uma postagem do blog de 14 de setembro. "Queremos fornecer a melhor experiência, desempenho e qualidade no primeiro dia para nossos usuários e, para isso, precisamos adiar o cronograma. Agora, estamos visando o início do segundo trimestre de 2022 para .NET MAUI GA."

Recursos do .NET MAUI

O .NET MAUI esta na Preview 7.

1- Startup

Os aplicativos .NET MAUI usarão uma classe de inicialização que permitirá:

2- Acessibilidade

A previsão é adicionar mais controles e melhorar a API de acessibilidade para evitar confusão, além disso alinhar o comportamento em todos os casos e plataformas é uma das prioridades em uma das seções com tanta importância como acessibilidade.

3- Instalação de carga de trabalho

Como parte da unificação do .NET, a Microsoft introduziu o conceito de cargas de trabalho do SDK para habilitar cenários específicos de desenvolvedor além do .NET SDK.

Nas previews anteriores, os SDKs subjacentes para iOS, Mac Catalyst, macOS, Android foram habilitados. Agora eles estão apresentados como maui, maui-desktop, maui-mobile e workloads.  O primeiro irá adquirir e instalar todos os SDKs necessários para construir aplicativos .NET MAUI. (Em um futuro próximo, o Visual Studio 2022 os incluirá em seu instalador.)

Se você quiser usá-los, basta abrir uma janela de prompt de comandos e usar a CLI para verificar o que você instalou digitando: 
dotnet sdk check



Depois de verificar o que está instalado, você pode ver como as cargas de trabalho adicionais estão sendo executadas. Para isso digite o comando :  dotnet workload list

Finalmente, para instalar o .NET MAUI, você precisa executar :
 dotnet workload install maui

Fontes, imagens e ícones compartilhados

As Fontes e Imagens podem ser colocadas em um local em sua solução e o .NET MAUI permitirá que funcionem nativamente em todas as plataformas de destino. Eles são rastreados em seu *.csproj como SharedImage e SharedFont.

<ItemGroup>
    <SharedImage Include="appicon.svg" ForegroundFile="appiconfg.svg" IsAppIcon="true" />
    <SharedFont Include="Resources\Fonts\ionicons.ttf" />
</ItemGroup>

Ambos aceitam curingas para incluir todos os arquivos em um local.

<ItemGroup>
    <SharedImage Include="appicon.svg" ForegroundFile="appiconfg.svg" IsAppIcon="true" />
    <SharedImage Include="Resources\Images*" />
    <SharedFont Include="Resources\Fonts*" />
</ItemGroup>

Escala de fonte

Todos os controles em todas as plataformas agora têm o dimensionamento de fonte habilitado por padrão. Isso significa que, à medida que os usuários do seu aplicativo ajustam suas preferências de escala de texto no sistema operacional, sua IU refletirá essa escolha. Isso produz um aplicativo mais acessível.

Cada controle tem um FontAutoScalingEnabled adicionado e funciona até mesmo com FontImageSource ou seus ícones de fonte. Ao  definir um FontSize para um tamanho 100% para travá-lo, você definirá FontAutoScalingEnabled = ”false"

<VerticalStackLayout>
  <Label
    Text="Scaling disabled"
    FontSize="18"
    FontAutoScalingEnabled="False"/>
  <Label
    Text="Scaling enabled"
    FontSize="18"/>
</VerticalStackLayout>

Novos Layouts

Os layouts que foram usados no .NET MAUI são os layouts do Xamarin.Forms. Essa abordagem foi usada para colocar rapidamente a interface do usuário na tela e se concentrar em completar sua biblioteca de controles da IU.

Os layouts antigos agora só podem ser encontrados no namespace Microsoft.Maui.Controls.Compatibility e os novos layouts são ativados por padrão como:

Agora o StackLayout envolve dois layouts focados em orientações horizontais e verticais. A recomendação é escolher aquele que se adapta às suas necessidades de layout. O StackLayout ainda tem uma propriedade de orientação que você pode definir e, em alguns casos, isso é essencial quando seus layouts adaptáveis podem mudar a orientação com base no tamanho da tela ou idioma do dispositivo.

Os leiautes AbsoluteLayout e RelativeLayout agora existem apenas no namespace de compatibilidade e a recomendação é que você considere cuidadosamente se realmente precisa usá-los ou não.

Ao mesmo tempo, foram criados layouts simplificados com base em uma nova abordagem do LayoutManager que emprega seus  anos de treinamento em design Xamarin.Forms para otimizar a consistência, desempenho e capacidade de manutenção.

Alertas nativos

Cada plataforma possui uma forma nativa de exibir alertas aos usuários. Podem ser popups informativos simples, formulários de entrada simples e até mesmo planilhas de ação com várias opções para orientar o usuário.

Eles estão disponíveis em qualquer página em um aplicativo .NET MAUI.

await DisplayAlert ("Alert", "Voce recebeu um alerta", "OK");

Clipping

Quando você precisa mascarar o conteúdo, agora pode adicionar formas à região de recorte de um layout ou visualização. O uso mais comum para isso é fazer uma imagem circular.

Gestos

Os reconhecedores de gestos permitem que você toque, aperte, movimente, deslize e arraste e solte a qualquer instância de visualização. Você pode aplicá-los facilmente em XAML.

<Grid>
   <Grid.GestureRecognizers>
      <TapGestureRecognizer NumeroDeToquesRequeridos = "2" Command = "{Binding OnTileTapped}" />
</Grid.GestureRecognizers>
    <! - Conteúdo da grade ->
</Grid>

Tela de abertura

Especialmente em plataformas móveis, você deseja que sua primeira tela apareça o mais rápido possível, e isso é feito implementando uma tela inicial estática. O .NET MAUI agora tem um único local para descrever sua tela inicial para todas as plataformas que as suportam :

<MauiSplashScreen Include = "Resources \ appiconfg.svg" Color = "# 512BD4" />

Novos manipuladores de controle

Foram introduzidos os primeiros controles e propriedades que implementam uma nova abordagem de manipulador. Isso inclui implementações parciais de botão, rótulo e entrada, controle deslizante e interruptor. Eles agora estão aceitando solicitações pull para preencher implementações completas e vários contribuidores já contribuíram com sucesso.

O aplicativo de amostra HelloMaui agora é executado a partir de um único projeto para macOS, iOS e Android apresentando o conjunto atual de controles portados.

.NET Hot Reload

O recurso Hot Reload é uma nova experiência que permite fazer edições ao vivo no código-fonte do aplicativo .NET MAUI enquanto ele está em execução, reduzindo o número de vezes que você precisa reconstruir seu aplicativo.

Para começar a testar esse recurso, instale o .NET 6 Preview 4(ou superior) e o Visual Studio 2019 versão 16.11 Preview 1 ou superior.

Inicie seu aplicativo por meio do depurador do Visual Studio (F5) direcionado a um host WinUI 3. Depois que seu aplicativo estiver em execução, você terá a nova opção de fazer alterações no código e aplicá-las usando nosso novo botão “aplicar alterações de código” .

Nas próximas versões, o .NET Hot Reload também estará disponível para Android, iOS e macOS, e estarão integrados ao XAML Hot Reload e o Live Visual Tree também.

Projeto Único e Windows

A Microsoft fez algumas atualizações no projeto único com base no feedback da comunidade e no suporte do Windows para adotar os recursos mais recentes.

O pacote NuGet é substituído pela carga de trabalho .NET MAUI (true no .csproj).

Soluções de projeto único agora aninham plataformas individuais dentro de uma pasta “Plataforms” para uma organização organizada.

Além destes recursos também foram incluídos também :

Esses são alguns dos novos recursos do .NET MAUI que deverá ser lançado somente em 2022.

Para ver o que está por vir em lançamentos futuros, visite o roteiro de produtos e para ver o status da integridade dos recursos, visite o wiki de status.

"Ele (Jesus) não cometeu pecado algum, e nenhum engano foi encontrado em sua boca.
Quando insultado, não revidava; quando sofria, não fazia ameaças, mas entregava-se àquele que julga com justiça."

1 Pedro 2:22,23

Referências:


José Carlos Macoratti