Xamarin Forms — Platform-Specifics

Xamarin.Forms Ago 29, 2019
A funcionalidade “Platform-specifics” permite que você execute alguma feature que está disponível apenas em uma plataforma específica, sem precisar criar um Custom Renderer ou Effects.

Um exemplo clássico é o “Android Bottom Tabs”. Por default, quando cria-se uma Tabbed Page, o iOS renderiza as abas na parte inferior da tela, já o Android e UWP na parte superior.

Imagem mostra Android, iOS, UWP e o Windows Phone com um componente de Abas
Android, UWP e o finado e não saudoso Windows Phone com abas na parte superior. iOS, diferentão, na parte inferior da tela.

Porém, caso fosse necessário ter no Android a aba na parte inferior, teríamos que recorrer a algum plugin ou usar o modo Espartano e criar um Custom Renderer.

Eu particularmente achava um saco isso!

Achava até a Xamarin lançar, na versão 3.1.0 do Xamarin Forms a opção de configurar a localização das abas usando o Platform-Specifics!

O uso do Platform-Specifics é simples e pode ser feito de duas maneiras: Code-Behind e no XAML. Eu prefiro no XAML.

Vejamos o exemplo de como configurar as abas do Android para que fiquem na parte inferior da tela.

Code-Behind

XAML

O processo é simples e consiste em declarar o namespace da plataforma em questão, e invoca-se a configuração no método On no qual, via generics, especifica-se a plataforma. A partir disso temos à disposição vários métodos para configurar nossa aplicação.

Anatomia do método:

this.On<**Plataforma**>().MetodosEspecificos(**ParâmetrosDeConfiguração**);

Os namespaces por plataforma são:

A lista de métodos específicos por plataforma pode ser acessada clicando em cada item acima.

Coisas da Apple...

Quando a Apple lançou o iPhone X, ela trouxe uma coisa meio bizarra chamada Notch.

Além disso a Apple atualizou os seus guidelines incluindo duas características importantes: Safe Area e Large Titles.

Imagem mostrando o iPhone X na vertical e na horizontal, dando destaque ao Noch
Notch, Large Titles e Safe Area. Imagem copiada descaradamente do post do David Ortinau, no qual eu cito abaixo ;p

Com isso é necessário atualizar nossa aplicação para já dar suporte a essas características e é nisso que o Platform-Specifics também nos ajuda:

Mais sobre Safe Area e Large Titles aqui.

Em resumo, Platform-Specifics é algo que você vai precisar usar muito, e a cada versão do Xamarin Forms a Microsoft vai adicionando mais e mais recursos.

Agora, se você sentir falta de alguma funcionalidade, basta criá-la: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/platform-specifics/creating.

Cada dia que passa o Xamarin Forms está mais e mais produtivo e melhor. \o/

Era isso!

Photo by Marvin Meyer on Unsplash

Angelo Belchior

Cloud Solutions Architect. Microsoft MVP em duas categorias – AI e Developer Technologies