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

Baixar exemplo Baixar o exemplo

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 concluídos.

Um dos trabalhos mais desagradáveis na programação é portar uma base de código de uma plataforma para outra, especialmente 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 precisarem ser mantidas em paralelo, as diferenças entre as duas bases de código dificultarão a manutenção futura.

Desenvolvimento móvel multiplataforma

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

Um fornecedor de software que deseja direcionar 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. O C# é o 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, coletivamente conhecidas como a plataforma Xamarin. São bibliotecas e associações que expressam as APIs nativas dessas plataformas com expressões .NET.

Os desenvolvedores podem usar a plataforma Xamarin para escrever aplicativos em C# direcionados ao Mac, iOS ou Android. Mas ao direcionar mais de uma plataforma, faz muito sentido compartilhar parte do código entre as plataformas de destino. Isso envolve a separação do programa em código dependente da plataforma (geralmente envolvendo a interface do usuário) e o código independente da plataforma, que geralmente requer apenas a estrutura base do .NET. 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

Bibliotecas de classes portáteis foram substituídas por bibliotecas .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 direcionar várias plataformas móveis, Xamarin.Forms permite ainda mais compartilhamento de código. Um único programa escrito para pode ser direcionado a Xamarin.Forms essas plataformas:

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

Observação

Xamarin.Formsnão dá mais suporte a 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:

plataforma Captura de tela tripla de visuais de plataforma compartilhando

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 ativado/desativado e um Slider para especificar um valor dentro de um intervalo contínuo. Todos os quatro desses pontos de vista são filhos de um StackLayout em um ContentPage.

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

Xamarin.Forms também dá suporte ao XAML, a Linguagem extensível de marcação de aplicativo desenvolvida na Microsoft para várias plataformas de aplicativo. 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 ele está sendo executado e executar código diferente adequadamente. 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 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, ela é menos ideal para aplicativos que exigem elementos 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 você deseja usar.

Se você quiser direcionar 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 o iOS e o Android usando Visual Studio para Mac.

A instalação do Visual Studio permite que no computador você direcione para iOS, Android e todas as plataformas windows. No entanto, direcionar o iOS do Visual Studio ainda requer um Mac com 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 criar um Xamarin.Forms aplicativo, você deve tentar criar e criar separadamente um aplicativo iOS, um aplicativo Android e um aplicativo UWP, dependendo das plataformas que você deseja direcionar e 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.