MAUI - Por onde começar? Parte 2: O arsenal de ferramentas para desenvolver apps MAUI
Tags: dotnet, maui, android, ios
Published: 2024-03-31 19:44:19

Olá meus amigos, dando continuídade ao nosso artigo anterior [MAUI - Por onde começar? Parte 1: Entendendo o MAUI](https://dev.to/marcoscostadev/maui-por-onde-comecar-parte-1-entendendo-o-maui-577g) aqui trarei um punhado de ferramentas e biblioteca úteis que em geral eu uso no meu dia-a-dia quando estou desenvolvendo com MAUI. Vamos usar elas no decorrer dessa série de artigos. Estarei indicando ao final das explicações quais ferramentas você deve instalar para dar continuidade. Porém quero explicar mais sobre outras ferramentas existentes para você entender onde e como usar.

----

## XAML STYLER 
![logo XAML STYLER, apenas um sinal de 'maior que' e outro sinal de 'menor que'](https://teamxavalon.gallerycdn.vsassets.io/extensions/teamxavalon/xamlstyler/3.2311.2/1699944475737/Microsoft.VisualStudio.Services.Icons.Default)

A extensão [XAML Styler](https://marketplace.visualstudio.com/items?itemName=TeamXavalon.XAMLStyler) para o Visual Studio é uma ferramenta valiosa para desenvolvedores que trabalham com XAML. Pois ela torna simples a identação de código XML nos seus arquivos XAML. Ao salvar, ela consegue identificar coisas mal formatadas, tags que estão faltando fechar, analisa sua arvore XML, consequentemente, melhorando a leitura desses arquivos.

Ele ajuda a manter um estilo de codificação XAML consistente e melhora significativamente a legibilidade do código.

_Se quiser instalar ela, já pode._

----

## ResX Manager
![logo ResX Manager, 3 bandeiras dos países italia, alemanha e estados unidos](https://tomenglert.gallerycdn.vsassets.io/extensions/tomenglert/resxmanager/1.84.6269.0/1708877402110/Microsoft.VisualStudio.Services.Icons.Default)
A extensão [ResX Manager](https://marketplace.visualstudio.com/items?itemName=TomEnglert.ResXManager) é uma extensão do Visual Studio de longe a ferramenta que eu mais uso, pois ela facilita a criação de aplicativos multiculturais. O ResX Manager mostra todos os arquivos de recursos .resx da solução em uma visualização centralizada. Você pode editar rapidamente as strings diretamente na grade de dados. 
 O ResX Manager oferece exportação e importação para facilitar a troca de traduções fora do Visual Studio. Você pode usar API de tradução do google translate, bing e entre outras para ajudar na automatização de suas traduções.

_Caso deseje proceder com a instalação, já está autorizado._

----

## CommunityToolkit.Mvvm
![logo do CommunityToolkit.Mvvm, uma maletinha azul](https://api.nuget.org/v3-flatcontainer/communitytoolkit.mvvm/8.2.2/icon)
A extensão `CommunityToolkit.Mvvm` é uma biblioteca que usaremos através de todo nosso projeto, assim conseguiremos usufruir ao máximo da arquitetura MVVM. Você vai instalar ela usando o `Nuget Package Manager` no seu projeto, ou usando o comando abaixo na pasta do seu projeto via terminal

```
dotnet add package CommunityToolkit.Mvvm --version 8.2.2
```

A grande vantagem dela é porque ela é agnóstica em relação aos frameworks de interface do usuário (UI), o que significa que pode ser usado em várias plataformas, como UWP, WPF, Xamarin, Uno e entre outras que você desejar implementar a MVVM. Além de ser uma das bibliotecas mais usadas quando se fala de implementação de mvvm.

_Se assim o desejar, pode prosseguir com a instalação imediatamente._

---- 

## CommunityToolkit.Maui
![logo do CommunityToolkit.Maui, uma maletinha roxa](https://api.nuget.org/v3-flatcontainer/communitytoolkit.maui/8.0.0/icon)
A [CommunityToolkit.Maui](https://www.nuget.org/packages/CommunityToolkit.Maui/) é uma biblioteca essencial para o desenvolvimento de aplicativos .NET MAUI. Ela trás varios controles de interface pre-prontos, animações, conversores, efeitos, popups, expander. Você pode adiciona-la ao projeto pois facilitará bastante nossa vida.

```
dotnet add package CommunityToolkit.Maui --version 8.0.0
```

_Caso julgue conveniente, está à disposição para realizar a instalação._

----

## Menções honrosas

- **SyncFusion**
Se você deseja ter coisas ainda mais prontas, você pode optar por usar a [SyncFusion](https://www.syncfusion.com/maui-controls), ela trás diversos controles prontos que você pode estilizar e usar de graça para projetos onde você tem uma equipe pequena de desenvolvedores ou por uma lincença.


- **Telerik UI**
Da mesma forma que a SyncFusion, temos a [Telerik UI for MAUI](https://www.telerik.com/maui-ui) vários controles pre-prontos que podem ser usados e com suporte do Time Telerik


- **Blazor-MAUI**
Opa, o que [blazor](https://learn.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-8.0) está fazendo aqui? Você pode está me perguntando. Então, acontece que o blazor é uma biblioteca front-end para desenvolvimento de applicações web usando C# e web assembly. Com o [blazor-MAUI](https://learn.microsoft.com/en-us/aspnet/core/blazor/hybrid/tutorials/maui?view=aspnetcore-8.0) conseguimos trazer toda a experiencia de desenvolver para web para o mundo mobile. Todo blazor é carregador dentro de uma web view e o MAUI como backend, o que permite acessar todos os recursos nativo do dispositivo através do MAUI, enquanto UI para o usuário poderá ser exibida em uma WebView. Isso nós chamamos de desenvolvimento hibrido, assim como fazemos com Ionic Framework + capacitor, mas com uma grande vantagem que você não precisa mudar a linguagem para acessar os recursos nativo.


- **MudBlazor**
Já que eu estou falando de blazor, porque não falar do [MudBlazor](https://www.mudblazor.com/), semelhante ao Angular Material, o MudBlazor traz vário componentes que você pode usar em uma aplicação Blazor (blazor-maui), diversos controles de interfaces estão disponiveis para o seu uso.



- **Plugins, bibliotecas em gerais**
O MAUI tem uma comunidade muito forte, assim como a do C#, e você pode contar com diversos plugins que lhe ajudarão a criar apps em diferentes plataformas. Temos plugins/bibliotecas para [AdMob](https://github.com/marcojak/MauiMTAdmob) exibir anúncios, [InApp billing](https://github.com/jamesmontemagno/InAppBillingPlugin) permite compras de produtos digitais nas lojas, [Local Notifications](https://github.com/thudugala/Plugin.LocalNotification) para exibir notificações geradas pelo seu app. Entre vário outros, sem falar da gama de bibliotecas que já existem hoje no dotnet que você pode usar, como por exemplo, a [Serilog](https://serilog.net/), o [Svg.Skia](https://github.com/wieslawsoltes/Svg.Skia) entre milhões de outras bibliotecas compatíveis.

## Tá, e agora?
Agora, você descansa que em breve estaremos começando o nosso projeto, já no próximo artigo. Aguarde!

Espero que vocês tenham gostado, qualquer dica, sugestão, correção, deixa aí em baixo. Muito obrigado por ter chegado até aqui.

[Repositório do GitHub](https://github.com/MarcosCostaDev/Maui-por-onde-comecar/tree/0b18897107526877705bb228d1e47859d083267d)



![meme do personagem perseguindo uma bola amarela com os textos "dev querendo começar a desenvolver para maui", "MAUI"na bola, uma bolha rosa segurando o personagem com a frase "Uma puta explicação sobre conceitos e ferramentas", ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/23zarw81fx0yzrs3fb7r.png)

Até a proxima pessoal!