Partilhar via


Resumo do Capítulo 1. Como se encaixa Xamarin.Forms ?

Observação

Este livro foi publicado na primavera de 2016 e não foi atualizado desde então. Há muito no livro que permanece valioso, mas parte do material está desatualizado e alguns tópicos não estão mais totalmente corretos ou completos.

Um dos trabalhos mais desagradáveis na programação é portar uma base de código de uma plataforma para outra, principalmente se essa plataforma envolver uma linguagem de programação diferente. Há uma tentação ao portar o código para refatorá-lo também, mas se ambas as plataformas devem ser mantidas em paralelo, as diferenças entre as duas bases de código tornarão a manutenção futura mais difícil.

Desenvolvimento móvel multiplataforma

Esse problema é comum ao segmentar plataformas móveis. Atualmente, existem duas grandes plataformas móveis, a família Apple de iPhones e iPads com sistema operacional iOS e o sistema operacional Android que roda em uma variedade de telefones e tablets. Outra plataforma significativa é a Plataforma Universal do Windows (UWP) da Microsoft, que permite que um único programa tenha como alvo o Windows 10.

Um fornecedor de software que deseja atingir essas plataformas deve lidar com diferentes paradigmas de interface do usuário, três ambientes de desenvolvimento diferentes, três interfaces de programação diferentes e - talvez o mais estranho - três linguagens de programação diferentes: Objective-C para iPhone e iPad, Java para Android e C# para Windows.

A solução C# e .NET

Embora Objective-C, Java e C# sejam todos derivados da linguagem de programação C, eles evoluíram por caminhos muito diferentes. C# é a mais recente dessas linguagens e vem amadurecendo de maneiras muito úteis. Além disso, o C# está intimamente associado a toda uma infraestrutura de programação chamada .NET, que fornece suporte para matemática, depuração, reflexão, coleções, globalização, E/S de arquivo, rede, segurança, threading, serviços Web, manipulação de dados e leitura e gravação de XML e JSON.

Atualmente, o Xamarin fornece ferramentas para direcionar as APIs nativas do Mac, iOS e Android usando C# e .NET. Essas ferramentas são chamadas de Xamarin.Mac, Xamarin.iOS e Xamarin.Android, conhecidas coletivamente como a plataforma Xamarin. Essas são bibliotecas e associações que expressam as APIs nativas dessas plataformas com idiomas .NET.

Os desenvolvedores podem usar a plataforma Xamarin para escrever aplicativos em C# direcionados a Mac, iOS ou Android. Mas ao segmentar mais de uma plataforma, faz muito sentido compartilhar parte do código entre as plataformas de destino. Isso envolve separar o programa em código dependente de plataforma (geralmente envolvendo a interface do usuário) e código independente de plataforma, que geralmente requer apenas o .NET Framework base. Esse código independente de plataforma pode residir em uma PCL (Biblioteca de Classes Portátil) ou em um projeto compartilhado, geralmente chamado de Projeto de Ativo Compartilhado ou SAP.

Observação

As bibliotecas de classes portáteis foram substituídas por bibliotecas do .NET Standard. Todo o código de exemplo do livro foi convertido para usar bibliotecas padrão do .NET.

O que são Xamarin.Forms

Ao segmentar várias plataformas móveis, Xamarin.Forms permite ainda mais compartilhamento de código. Um único programa escrito para Xamarin.Forms pode ter como alvo estas plataformas:

  • iOS para programas executados no iPhone, iPad e iPod touch
  • Android para programas executados em telefones e tablets Android
  • a Plataforma Universal do Windows para o Windows 10

Observação

Xamarin.Forms não dá mais suporte ao Windows 8.1, Windows Phone 8.1 ou Windows 10 Mobile, mas Xamarin.Forms os aplicativos são executados na área de trabalho do Windows 10. Também há suporte de visualização para as plataformas Mac, WPF, GTK# e Tizen .

A maior parte de um Xamarin.Forms programa existe em uma biblioteca ou em um SAP. Cada uma das plataformas consiste em um pequeno stub de aplicativo que chama esse código compartilhado.

As Xamarin.Forms APIs são mapeadas para controles nativos em cada plataforma, para que cada plataforma mantenha sua aparência característica:

Captura de tela tripla do compartilhamento visual da plataforma

As capturas de tela da esquerda para a direita mostram um iPhone e um telefone Android:

Em cada tela, a página contém um Xamarin.FormsLabel para exibir texto, um Button para iniciar ações, um Switch para escolher um valor de ativação/desativação e um Slider para especificar um valor dentro de um intervalo contínuo. Todas essas quatro visões são filhas de um StackLayout em um ContentPage.

Também anexado à página está uma Xamarin.Forms barra de ferramentas composta por vários ToolbarItem objetos. Eles são visíveis como ícones na parte superior das telas do iOS e do Android e na parte inferior da tela do Windows 10 Mobile.

Xamarin.Forms também oferece suporte a XAML, a Extensible Application Markup Language desenvolvida na Microsoft para várias plataformas de aplicativos. Todos os visuais do programa mostrado acima são definidos em XAML, conforme demonstrado no exemplo PlatformVisuals.

Um Xamarin.Forms programa pode determinar em qual plataforma está sendo executado e executar um código diferente de acordo. De forma mais poderosa, os desenvolvedores podem escrever código personalizado para as várias plataformas e executar esse código a partir de um Xamarin.Forms programa de maneira independente da plataforma. Os desenvolvedores também podem criar controles adicionais escrevendo renderizadores para cada plataforma.

Embora Xamarin.Forms seja uma boa solução para aplicativos de linha de negócios, ou para prototipagem, ou para fazer uma demonstração rápida de prova de conceito, é menos ideal para aplicativos que exigem gráficos vetoriais ou interação de toque complexa.

Seu ambiente de desenvolvimento

Seu ambiente de desenvolvimento depende de quais plataformas você deseja direcionar e quais computadores deseja usar.

Se você quiser direcionar o iOS, precisará de um Mac com o Xcode e a plataforma Xamarin instalada. O suporte ao Android também requer a instalação do Java e dos SDKs necessários. Em seguida, você pode direcionar o iOS e o Android usando o Visual Studio para Mac.

A instalação do Visual Studio permite que você direcione o iOS, o Android e todas as plataformas Windows no computador. No entanto, o direcionamento do iOS do Visual Studio ainda requer um Mac com o Xcode e a plataforma Xamarin instalada.

Você pode testar programas em um dispositivo real conectado por USB ao computador ou em um simulador.

Instalação

Antes de criar e compilar um Xamarin.Forms aplicativo, você deve tentar criar e compilar separadamente um aplicativo iOS, um aplicativo Android e um aplicativo UWP, dependendo das plataformas que você deseja direcionar e do seu ambiente de desenvolvimento.

Os sites do Xamarin e da Microsoft contêm informações sobre como fazer isso:

Depois de criar e executar projetos para essas plataformas individuais, você não deve ter problemas para criar e executar um Xamarin.Forms aplicativo.