Desenvolvendo aplicativos Cross-Platform com Xamarin (Parte 2)

Quais são os tipos de projetos (Xamarin) e suas principais características?!

Em meu artigo anterior abordei os aspectos teóricos quanto a arquitetura Xamarin e os caminhos para criarmos nossos aplicativos NATIVOS utilizando esta tecnologia.

Pois bem, hoje quero mostrar a vocês COMO colocamos em prática a teoria abordada no artigo introdutório.

Começando…

Após a instalação do Xamarin, que pode ser feita seguindo as etapas descritas neste link, ou ainda “embutido” na instalação do Visual Studio 2017 (ou VS15).
Etapa “vencida” (instalação), abra o seu Visual Studio (irei utilizar o Visual Studio neste artigo) e, ao iniciar um novo projeto serão exibidas, aproximadamente, as seguintes opções:

Acesso aos templates de projetos Xamarin (VS2015)
Acesso aos templates de projetos Xamarin (VS2015)

Note que agora temos disponíveis templates “Android”, “Apple Watch”, “Cross-Platform”, “iPad” e “iPhone” (itens destacados na imagem acima) que agregam os projetos necessários para utilizarmos o Xamarin e implementarmos nossos aplicativos e serão discutidas a seguir.

Templates: Android, Apple Watch, iPad e iPhone (VS2015)

Em geral, os templates de projetos agrupados nestas “categorias”, são destinados ao desenvolvimento NATIVO, observemos:

Android

Templates Android
Templates Android

Apple Watch, iPad e iPhone

Templates: Android, Apple Watch, iPad e iPhone (VS2015)
Templates Apple Watch, iPad e iPhone

Quando observamos os tipos de projetos nas categorias acima apresentadas, notamos que eles estão “bem próximos” aos tipos de “projetos” das linguagens nativas de cada plataforma e, portanto, a abordagem para implementação dos aplicativos segue os padrões de suas respectivas plataformas e todos os recursos disponíveis em Java e Obj-C estarão disponíveis para C# através do Xamarin.

Portanto se você optou pelo desenvolvimento NATIVO, estes são os projetos que você irá utilizar e, portanto, se desejar desenvolver para Android, um projeto do template Android será necessário, e assim sucessivamente para cada plataforma destino desejada (não é necessariamente uma regra, mas pretendo me aprofundar melhor nestes aspectos futuramente, não é o intuito dessa série de artigos introdutórios).

Categoria Android tem 2 projetos diferentes!? E agora?!

Se você observou atentamente os templates Android, deve ter notado que em meu Visual Studio existem 2 projetos que, até o momento da publicação deste artigo, não são “nativos” da instalação do Xamarin, veja:

Templates AppCompat - James Montemagno
Templates AppCompat – James Montemagno

Estes templates podem ser facilmente instalados, baixando a extension Xamarin.Android Template Pack para o Visual Studio (mais informações aqui) criada por James Montemagno que, quando utilizados, criam um projeto “em branco” com o Material Design e outras coisas mais já configuradas e prontas para utilização.

Templates Xamarin.Forms

Não há muito o que ser “destacado” dos templates Xamarin.Forms (pelo menos não agora), vamos a eles:

Templates Xamarin.Forms
Templates Xamarin.Forms

Destaquei os 2 projetos que promovem o “divisor de águas” entre os caminhos da abordados no artigo anterior para desenvolvimento Xamarin.Forms, que são: Blank App (Xamarin.Forms Portable) e Blank App (Xamarin.Forms Shared).

Como os próprios nomes dos templates sugerem, o “Shared” utiliza uma abordagem onde o projeto não gera uma “DLL” e sim os arquivos do projeto são “injetados” nas plataformas destino como parte de cada um deles, e o “Portable” sendo a abordagem cujo projeto gera uma “DLL” e as implementações são compiladadas e referenciadas nos projetos de destino.

Concluindo…

Apresentados os projetos disponíveis para desenvolvimento de aplicativos com Xamarin, os mais utilizados (pelo menos por mim, mas acredito que seja um senso comum) são:

Android

Android Navigation Drawer App AppCompat, que cria um projeto com boa parte do trabalho DURO de configuração da Support Library e Material Design feito, e isso ajuda muito.

Binding Library (Android), que faz os “binds” que possibilitam você utilizar uma biblioteca Android/Java (JAR) dentro do seu projeto Xamarin.Android e isso SALVA A VIDA!

Apple Watch, iPad e iPhone

Neste caso varia muito do projeto e de muitos outros fatores e exceto os projetos de jogos (que ainda não tive a oportunidade de trabalhar), mas todos eles são usados +/- igual, dependendo do foco do aplicativo e tals, nada relevante a destacar (pelo menos não agora, rs…).

Cross-Platform (Xamarin.Forms)

Acredito que os aspectos mais relevantes eu já tenha destacado, mas para complementar, acho pertinente dizer que utilizo MUITO (100% dos projetos) a abordagem “Portable”, para mim o código fica mais organizado e faz mais sentido (para mim) cada projeto gerar uma “DLL” e VAI QUE eu precise mandar esse projeto “núcleo” para um terceiro e não queira que ele tenha contato com a implementação do projeto?! Faço o que?! Me jogo no chão?! Apago tudo e recrio?! Enfim… Eu costumo ser um pouco precavido… rs… Mas isso sou eu… rs…

Considerações finais… Finais MESMO…

Em meu próximo artigo vamos iniciar EFETIVAMENTE a criação “básica” de aplicativos utilizando Xamarin.Forms (para começar) e finalizarei esta série introdutória para a tecnologia Xamarin, até porque tenho muito a compartilhar sobre a Evolve 2016, .NET Core e outras coisas mais!

Até a próxima conexão!