Introdução ao Xamarin

Xamarin é uma plataforma de desenvolvimento de aplicativos móveis para a criação de  aplicativos nativos para iOS, Android e Windows,  utilizando o C#, atingindo de 75% a quase 100% de reutilização de código entre plataformas, tornando-se a ferramenta ideal para quem tem a necessidade de desenvolver aplicativos móveis para diversas plataformas.


Aplicativos escritos com Xamarin e C# têm acesso total a APIs da plataforma subjacente e a capacidade de criar interfaces do usuário nativas e compilados para os pacotes específicos de plataforma.


Os desenvolvedores já familiarizados com C# e  Visual Studio aproveitarão o mesmo poder e produtividade ao trabalhar com o Xamarin para aplicativos móveis, incluindo a depuração remota em dispositivos Android, iOS e Windows sem precisar aprender codificação em linguagens nativas como Objective-C ou Java.


Alem da facilidade de utilizar apenas o C# e acesso aos principais recursos do .NET o Xamarin fornece um conjunto geral de APIs que permitem que você escreva uma camada de interface de usuário compartilhada (Xamarin.Forms) para todas as plataformas em uma biblioteca de classes portátil e APIs especificas para algumas particularidades do iOS e Android.


Abaixo um simples diagrama apresentando a estrutura básica do Xamarin:


O Xamarin.Forms contem diversos controles ( botões, caixas de texto, etc ) que são comuns a várias plataformas, já o Xamarin.iOS e o Xamarin.Android contem controles específicos.

Em muitas aplicações podemos utilizar apenas o  Xamarin.Forms e desta forma nossa aplicação será 100% compatível entre as diversas plataformas.


Introdução a arquitetura de uma aplicação Xamarin

Na plataforma Xamarin você  pode projetar a aplicação para maximizar a reutilização de código e gerar aplicativos nativos, de alta qualidade em todas as principais plataformas móveis: iOS, Android e Windows Phone.

A frase "write-once, run everywhere" é frequentemente usado para exaltar as virtudes de uma única base de código que é executado sem modificações em múltiplas plataformas.

O Xamarin não é apenas uma  plataforma"write-once, run everywhere", porque um dos seus pontos fortes é a capacidade de implementar interfaces nativas especificamente para cada plataforma.


É possível compartilhar a maior parte do código e obter o melhor dos dois mundos:. escrever o seu armazenamento de dados e código de lógica de negócios uma única vez, e utilizar interfaces do usuário nativas em cada plataforma.


Você pode utilizar o padrão de projeto MVC (Model / View / Controller) ou  uma abordagem MVVC ( Model / View / ViewModel ) onde existe uma separação clara entre o "Modelo" e o restante da aplicação.


Veja abaixo uma representação de como pode ser estruturada as camadas de  uma aplicação Xamarin


 

Obviamente todo o código existente é  escrito em C #.


Data Layer:  O armazenamento de dados, normalmente um banco de dados SQLite, mas poderia ser implementada com arquivos XML ou qualquer outro mecanismo adequado.

Data Access Layer: Um envoltório em torno da camada de dados contendo métodos para  criar, ler, atualizar e  excluir ( tambem chamado de CRUD - Create, Read, Update e Delete) os dados.


Service Access Layer: - Normalmente utilizado para acessar serviços na nuvem (REST, JSON, WCF) para recuperação de dados e imagens a partir de servidores remotos.


Business Layer: Ou Camada de negócios  (lógica de negócios) contém definições de entidade de negócio (o modelo) e lógica de negócios.


Camada da Aplicação:  O código que é especifico  para cada plataforma (que geralmente não são compartilhados entre as plataformas).


Um aplicativo não precisa  conter necessariamente todas as camadas,  por exemplo, a camada de acesso de serviço não existiria em um aplicativo que não acessa recursos de rede.

Uma aplicação simples pode mesclar a camada de dados e camada de acesso a dados porque as operações são extremamente básicos.


Introdução ao Xamarin.Forms


Xamarin.Forms é um framework que permite a criação de  interfaces de usuário multiplataforma.

Ele fornece a sua própria abstração para a interface de usuário que será processado usando controles nativos no iOS, Android, Windows ou Windows Phone.


Isso significa que os aplicativos podem compartilhar uma grande parte do seu código de interface do usuário e ainda manter o look and feel nativo da plataforma de destino.


Há duas técnicas para criar interfaces de usuário em Xamarin.Forms.

A primeira técnica é criar UIs inteiramente com código C # fonte.

A segunda técnica é usar Extensible Application Markup Language (XAML).


Veja abaixo exemplo, via código,  gerando uma simples mensagem na tela:


 

Ao executar nos 3 emuladores:

 


 

No Xamarin.Forms há quatro principais grupos de controle usados ​​para criar a interface do usuário de um aplicativo multiplataforma.

Pages:  Representam as telas do aplicativo móvel.

Abaixo os principais tipos de modelos disponíveis:

 




Layouts: - São recipientes utilizados para compor os controles em estruturas lógicas.

Abaixo os principais tipos de layouts disponíveis:

 


 

Views: - São os controles exibidos na interface do usuário, como etiquetas, botões e caixas de  texto.

Abaixo exemplo utilizando ListView:

 


Cells: São elementos especializados usados ​​para os itens de uma lista.

Abaixo exemplo utilizando ImageCell:

 



IDEs para Xamarin


Atualmente temos duas excelentes IDEs para desenvolvimento em Xamarin:


Xamarin Studio para MAC

 


Visite: https://www.xamarin.com/studio


e Visual Studio para Windows


 


Visite: https://www.xamarin.com/visual-studio


As duas IDEs tem funcionalidades semelhantes, no nosso curso utilizamos o Visual Studio 2015 onde na versão Community, alem de gratuito, nas versões mais recentes já vem com o Xamarin .


Para aprender mais veja o nosso curso de Xamarin online.