Artigo no estilo: Curso

Por que eu devo ler este artigo:A plataforma Xamarin vem se mostrando nos últimos anos como uma das principais alternativas para a criação de aplicações mobile multiplataforma, devido à utilização da linguagem C# e do .NET Framework como base de seu funcionamento. O conhecimento desta plataforma é útil para desenvolvedores .NET que desejam alcançar outros sistemas operacionais (em especial Android e iOS), mas sem precisar utilizar outra linguagem de programação. Para empresas que desenvolvem aplicações mobile, o Xamarin também se mostra uma opção bastante viável, uma vez que não serão necessárias equipes e ferramentas diferentes para trabalhar com tecnologias específicas para Android e iOS.

O mercado de dispositivos móveis contém, atualmente, três grandes Sistemas Operacionais concorrentes: o iOS da Apple, o Android da Google, e o Windows/Windows Phone da Microsoft. Cada um deles possui uma linguagem de programação e um IDE específico para desenvolvimento de aplicações, o que gera algumas dificuldades para as equipes de desenvolvimento, especialmente no sentido do retrabalho para a criação de aplicações que têm todos esses SOs como alvo.

É nesse contexto que entra a plataforma Xamarin, solução para criação de aplicações nativas nas três plataformas utilizando apenas uma linguagem e IDE: o C# juntamente com o Xamarin Studio. A grande vantagem do Xamarin com relação a outras ferramentas que criam aplicações multiplataforma é que os aplicativos criados são nativos dos Sistemas Operacionais. Isso ocorre porque as interfaces de usuário são criadas para cada uma das plataformas e não uma UI comum a todos, como ocorre normalmente. Além disso, contamos com a possibilidade de acessar recursos próprios dos dispositivos com certa facilidade utilizando o C#.

Além do Xamarin Studio, também presente no Mac, os usuários do Windows têm a possibilidade de criar aplicações com Xamarin no Visual Studio. O desenvolvimento para Windows e Windows Phone, de fato, depende dessa utilização. A grande vantagem nessa abordagem é aproveitar o fato de que o Visual Studio é um IDE consolidado, com inúmeros recursos para auxiliar no desenvolvimento de código e utilizado mundialmente. O Xamarin Studio é um IDE muito completo, mas para quem utiliza o Visual Studio e não quer mudar, pode continuar utilizando o IDE da Microsoft sem problema nenhum.

Esse artigo é a primeira parte de uma série que cobrirá os principais elementos do desenvolvimento utilizando a plataforma Xamarin e seu IDE oficial. Vamos entender como lidar com o projeto compartilhado (que executará em todas as plataformas-alvo) e criar uma aplicação exemplo para o Google Android utilizando esse projeto, já que é um dos SOs mais presentes nos smartphones do Brasil. Mais à frente veremos porque desenvolver para iOS é mais complicado, mas não impossível.

Por dentro da plataforma Xamarin

A Xamarin foi uma das responsáveis pela criação do projeto Mono, uma implementação open source do .NET Framework para outros SOs e é atualmente uma das empresas que mais investe na evolução desse projeto. Além disso, é uma das principais parceiras da Microsoft no projeto de trazer o .NET Framework para Linux e Mac OS X, especialmente devido à expertise adquirida durante anos com o Mono.

A plataforma Xamarin é uma solução robusta que traz diversos recursos interessantes para o desenvolvedor. Além de permitir a criação de código limpo e bem estruturado, esse conjunto de ferramentas também auxilia nos testes e garantia de boa performance da aplicação. Nem tudo isso, porém, está conectado diretamente ao Xamarin Studio ou à própria plataforma, existem ainda alguns componentes complementares cujas funções são descritas a seguir.

Esse ambiente de desenvolvimento possui três ferramentas básicas para a criação de aplicações móveis multiplataforma. Uma delas é a própria plataforma, a qual discutiremos em detalhes. Há, ainda, outros dois elementos que podem ser extremamente úteis durante esse processo: a Xamarin Test Cloud e o Xamarin Insights.

Para que desenvolvedores individuais e empresas pudessem ter a certeza de que seu aplicativo funciona em vários dispositivos, seriam necessários vários aparelhos diferentes nos quais o projeto seria testado. Tal prática, além de extremamente ineficiente – levaria um tempo muito grande para realizar a instalação e testes em vários devices físicos, é muito cara, uma vez que os smartphones e tablets precisariam ser comprados pela empresa ou desenvolvedor. A Xamarin Test Cloud aparece nesse cenário para suprir essa necessidade do mercado: é possível testar a aplicação em mais de mil modelos e configurações, na nuvem, de forma automática. O funcionamento é relativamente simples: você faz o upload do seu app e ele é testado em todos os dispositivos que você desejar (de forma individual ou simultânea), assumindo que ele exista na Test Cloud. Além disso, esse ambiente traz outros recursos importantes, como logs, métricas de performance e relatórios de bugs, sem contar o fato de que a equipe do Xamarin pode criar os testes automatizados para sua aplicação.

Outra ferramenta que compõe esse ecossistema é o Xamarin Insights. O monitoramento da aplicação em tempo real pode ser uma ferramenta essencial para detecção de problemas de performance ou mesmo falhas na aplicação. Isso permite que o desenvolvedor saiba o que está acontecendo internamente, recebendo relatórios detalhados sobre as atividades executadas. Para isso, essa ferramenta traz uma interface bastante fácil de ser utilizada, que indica os problemas encontrados, usuários que utilizaram a aplicação e outras informações relevantes, fazendo uso conjunto maciço de gráficos para amostragem dos dados.

A plataforma Xamarin traz todo o aparato necessário para criarmos aplicações móveis capazes de rodar nos três principais sistemas operacionais com muito código compartilhado: cerca de 75%, de acordo com o website da empresa (Figura 1). Os 25% que não são compartilhados correspondem às funcionalidades nativas de cada SO, além das interfaces específicas de cada um.

A
plataforma Xamarin
Figura 1. Compartilhamento de código (de Plataforma Xamarin, na seção Links)

A promessa da Xamarin é de uma ferramenta capaz de criar aplicações com três características principais:

1. Interfaces de usuário nativas de cada dispositivo – o que evita problemas de adaptação para os usuários, garantindo eficiência em termos de User Experience;

2. Acesso às APIs nativas de cada dispositivo – isso permite que alguns recursos próprios de cada plataforma estejam disponíveis nessas aplicações;

3. Performance de aplicação nativa – a performance será a mesma de uma aplicação nativa do Sistema Operacional, devido ao fato de que o Xamarin faz uso de técnicas de aceleração específicas para cada plataforma-alvo.

Outra vantagem dessa plataforma é a escolha da linguagem de programação C#, que é hoje uma das mais utilizadas no mercado e tida como uma das melhores para se aprender, devido à sua sintaxe clara (em parte derivada da linguagem C, amplamente utilizada no meio acadêmico), suporte às principais técnicas de programação (como Orientação a Objetos) e da vasta documentação e suporte da comunidade. Na comparação direta com as linguagens primárias de programação para Android e iOS (Java e Objective-C, respectivamente), o C# sai em uma boa posição, em especial com relação ao Objective-C, linguagem que pode ser muito confusa em certos pontos. Além disso, é possível utilizarmos alguns recursos úteis do .NET Framework que não estariam disponíveis de outra forma, como expressões lambda (BOX 1) e programação assíncrona com async (BOX 2).

BOX 1. Expressões Lambda

Expressões lambda são ferramentas importantes na criação de aplicações .NET. Trata-se de uma função anônima que pode ser utilizada para criar delegates em sua aplicação, podendo definir funções locais ou trazer árvores de expressão para a aplicação. As expressões lambda são definidas pelo operador lambda (“=>”), com os parâmetros de entrada à esquerda do operador e a expressão à direita.

BOX 2. Programação Assíncrona (async)

As palavras-chave async e await são muito importantes em aplicações .NET para criação da chamada programação assíncrona. Com o uso dessas duas palavras-chave é possível simplificar bastante a criação dessas aplicações, aumentando a responsividade da aplicação e melhorando a performance da mesma. É preciso cuidado, entretanto, uma vez que a programação assíncrona deve ser utilizada em detalhes específicos, e nunca em uma sequência de etapas que possuem dados dependentes.

A Xamarin oferece algumas opções de obtenção de licença de uso de suas ferramentas, como mostra a Figura 2, que traz as três possibilidades de compra da subscrição da plataforma. Note que cada uma delas possui suas vantagens e desvantagens. Merecem destaque alguns recursos mais importantes, como o acesso à Xamarin Test Cloud, presente nas três subscrições, e o Xamarin Studio, da mesma forma. Outros recursos, como o suporte à utilização do Visual Studio para o desenvolvimento, só estão presentes a partir da versão “Business”. Já a versão “Enterprise” traz alguns outros recursos não tão utilizados pelo desenvolvedor comum, mas possivelmente úteis em empresas maiores, como a criptografia nos dados locais e um técnico para gerenciamento da conta Xamarin da empresa.

Preços das subscrições da plataforma
Figura 2. Preços das subscrições da plataforma Xamarin

Os preços mostrados na figura, no entanto, não são válidos para todos os clientes, pois existem opções promocionais para startups com menos de três anos de vida, para empresas pequenas ou que desejam adquirir várias licenças. Nestes casos é necessário entrar em contato por e-mail ou telefone com a empresa, cujo número e endereço podem ser obtidos na página de download do produto (ver seção Links).

Outra possibilidade é a utilização do Xamarin Starter Edition, como faremos nesse artigo. Esta é a edição gratuita que traz o Xamarin Studio e permite criar apps com tamanho limitado, mas que podem ser submetidas para as lojas de aplicativos da Microsoft, Apple e Google, sem problemas. A baixa quantidade de recursos desta edição é uma forma que a Xamarin utiliza para “forçar” os desenvolvedores a investirem ao menos na subscrição Indie, que já traz alguns recursos interessantes.

Xamarin Studio vs Microsoft Visual Studio

A utilização do Visual Studio é necessária para desenvolver aplicações para Windows e Windows Phone, pois o Xamarin Studio não possui todos os recursos necessários para isso. O seu IDE permite apenas a criação de projetos iOS e Android compartilhados em uma mesma solução.

Quando instalamos o Xamarin automaticamente são adicionados os templates necessários às aplicações dentro do Visual Studio, permitindo que os projetos sejam criados sem maiores problemas.

A Figura 3 mostra os templates referentes ao Xamarin que são instalados no Visual Studio. Note que existe uma série de projetos possíveis, mesmo projetos para iOS. A complicação deste último se dá na hora de testarmos a aplicação, mas veremos isso em mais detalhes a seguir. Os templates mais importantes aqui são:

· Native Shared: o template destacado na Figura 3 é o mais importante. Consiste no projeto base, que será compartilhado entre os diferentes sistemas operacionais.

· iOS: no lado esquerdo da Figura 3 notamos que há uma seção “iOS”, que contém os projetos referentes a essa platafo ...

Quer ler esse conteúdo completo? Tenha acesso completo