O Incrível Xamarin.Forms
Fala Galera,
blz?
Quando conheci Xamarin achei a ideia/tecnologia incrível. A possibilidade de utilizar meus conhecimentos C# para desenvolver aplicativos móveis parecia ter vindo sob medida e no momento certo.
Existia um cliente, que ate então desenvolvíamos melhorias e correções em um sistema web ,que nos pediu um aplicativo para integrar com o sistema atual da empresa.
Então tínhamos o cenário :
Desenvolvedor .net com apenas alguma expertise em Objetive-C.. e Java.
Por mais que eu tivesse algum conhecimento em Mobile eu teria que desenvolver 2 aplicativos (iOS e Android) em um tempo relativamente curto.
Certo ,para o cenário atual a única opção seria encontrar outro desenvolvedor com conhecimentos de Objective-C/Swift e Java. Ou algum desenvolvedor de cada uma das tecnologias.
Problema : Preço + Disponibilidade.
Por mais que poderíamos contratar apenas um job pontual, a manutenção se tornaria cara e ficaríamos na dependência da disponibilidade do Desenvolvedor. Na Época não valia a pena a contratação do mesmo , pois não tínhamos tanta demanda mobile assim.
Foi ai que veio a solução , onde volto ao começo desse artigo. Xamarin! A possibilidade da utilização dos meus conhecimentos em C#.
Certo isso resolve parte do problema, mas não a necessidade de fazer um app multi plataforma e rápido.. Não ate eu conhecer Xamarin.Forms!
Xamarin.Forms é ❤ :
A ideia do Xamarin ,alem de utilizar c#, é compartilhar todo backend entre as plataformas evitando retrabalho e realizar a mesma tarefa diversas vezes.
Mas e se eu quiser compartilhar a interface tambem ? É ai que entra o Xamarin.Forms.
Você cria uma interface e ele replica para todas as plataformas e de forma nativa. Sim se você ainda tem duvidas.. XAMARIN É NATIVO!!!!!!!!
Certo, mas é magia? Não nem macumba, bruxaria e etc..
O Xamarin.Forms utiliza controles comuns de cada plataforma e os renderiza de acordo com a mesma.
Por exemplo imagine que criamos um botão em Xamarin.Forms, o que acontece ?
O botão é criado de acordo com a plataforma executada. Ou seja, você vai ter o controle de acordo com o padrão e "guideline" de cada plataforma.
Uma mesma interface é replicada obedecendo a regra de cada plataforma :
Mas como eu faço isso ? Xamarin.Forms te da duas opções . Você pode utilizar o poderoso Xaml (eXtensible Application Markup Language) ou o C# mesmo. O resultado final sera o mesmo:
Caramba! Então eu vou fazer tudo em Xamarin.Forms hoje mesmo! Calma…. ja viu algo na vida que é só Elogios?
Vou dar a minha opinião pessoal, A maioria dos meus projetos é Xamarin.Forms.
Ate hoje o que não consegui fazer com ele, resolvi com Custom Renderers.
Mas em alguns casos eu recomendo utilizar as interfaces nativas.
Quais casos? Quanto a customização visual for mais importante que o compartilhamento de código.
Interfaces muito complexas que utilizem muito apis e recursos nativos, talvez não sejam simples de fazer com Xamarin.Forms :
Ainda sim mesmo que você resolve trabalhar com a interface nativa, pode compartilhar o backend com alguma framework. MvvmCrosss, por exemplo.
Certo, mas você quer saber porque eu amo Xamarin.Forms certo ?
Então eu te digo, simplesmente pela:
· Rapidez de desenvolvimento.
· Multiplataforma com baixa custo de desenvolvimento.
· Reutilização de Código, tanto no back-end como no front-end.
· Interfaces geradas com controles nativos de cada plataforma.
· Uma performance incrível , comparado com outras soluções multiplataforma.
· Possibilidade de utilizar api’s nativas de cada plataforma.
· Curva de aprendizado, não preciso aprender outras linguagens nem outras IDE’s.
· Conteúdo de material disponível na internet , incluindo vídeos, artigos e exemplos de código.
Como dica final , mesmo utilizando o Xamarin.Forms eu recomendo estudar as diferenças e particularidades de cada plataforma.
Isto vai te ajudar e muito a compreender diversas funcionalidades, para melhorar sua habilidade de desenvolvimento multiplataforma.
E claro , se quiser aprender muitas coisas com Xamarin.Forms eu tenho diversos artigos .
Este artigo foi um pouco diferente, mas para quem esta começando e para contar um pouco da minha experiencia com Xamarin.Forms e o porque de eu utilizar tanto.
Se quiser ver mais artigos do tipo, é só deixar um comentario :D
Espero ter ajudado!
Aquele abraço!