Compartilhar via


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

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, particularmente se essa plataforma envolve 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, então 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 rodando o 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 segmentar 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 desajeitado, 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. O 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 arquivos, 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 expressões idiomáticas .NET.

Os desenvolvedores podem usar a plataforma Xamarin para escrever aplicativos em C# destinados 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 direcionar o Windows 10

Observação

Xamarin.Forms não suporta mais o 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. Há também 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 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 de visuais 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 para especificar um valor dentro de Slider um intervalo contínuo. Todas essas quatro visões são filhos de um StackLayout em um ContentPage.

Também anexado à página é uma Xamarin.Forms barra de ferramentas que consiste em vários ToolbarItem objetos. Eles são visíveis como ícones na parte superior das telas do iOS e 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 elementos visuais do programa mostrados acima são definidos em XAML, conforme demonstrado no exemplo PlatformVisuals.

Um Xamarin.Forms programa pode determinar em qual plataforma ele está sendo executado e executar código diferente de acordo. Mais poderosamente, os desenvolvedores podem escrever código personalizado para as várias plataformas e executar esse código de um Xamarin.Forms programa de maneira independente de 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 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 segmentar e quais máquinas deseja usar.

Se você quiser segmentar o iOS, precisará de um Mac com 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 iOS e Android usando o Visual Studio para Mac.

A instalação do Visual Studio permite que no PC você segmente iOS, Android e todas as plataformas Windows. No entanto, a segmentação do iOS a partir do Visual Studio ainda requer um Mac com o Xcode e a plataforma Xamarin instalados.

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

Instalação

Antes de criar e criar 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 segmentar e seu ambiente de desenvolvimento.

Os sites Xamarin e 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.