Xamarin Forms - Melhorando o desempenho


 Neste artigo veremos como podemos melhorar o desempenho das nossas aplicações Xamarin Forms.

Quem não deseja melhorar o desempenho de sua aplicação, não é mesmo.  Ainda mais quando estamos falando de aplicações mobile e para piorar usando aplicação que é renderizada para mais de uma plataforma.

Então a seguir vou apresentar cinco dicas que foram compiladas da web com objetivo de melhorar o desempenho da sua aplicação Xamarin Forms. Na última apresento sete dicas para otimização do layout.

Nota: Dependendo da versão atual do Xamarin.Forms pode ser que alguma técnica indicada já tenha sido incorporada ao projeto Xamarin.Forms.

1 - Habilitar o compilador XAML

O XAML pode opcionalmente ser compilado diretamente na linguagem intermediária (IL) com o compilador XAML (XAMLC).  O XAMLC está desativado por padrão para garantir compatibilidade com versões anteriores. No entanto, ele pode ser ativado nos níveis de assembly e classe

Segundo a documentação  a ativação a nível de assembly pode ser feita com o código a seguir:

 using Xamarin.Forms.Xaml;
 ...
 [assembly: XamlCompilation (XamlCompilationOptions.Compile)]
 namespace PhotoApp
 {
   ...
 }

Para habilitar o compilador a nível de classe o código usado é visto abaixo:

 using Xamarin.Forms.Xaml;
 ...
 [XamlCompilation (XamlCompilationOptions.Compile)]
 public class HomePage : ContentPage
 {
     ...
 }

2 - Habilitar a compactação do Layout

A compactação de layout remove layouts especificados da árvore visual, na tentativa de melhorar o desempenho da renderização da página.

O benefício de desempenho que isso proporciona varia de acordo com a complexidade de uma página, a versão do sistema operacional em uso e o dispositivo no qual o aplicativo está sendo executado. No entanto, os ganhos de desempenho serão realmente visíveis em dispositivos mais antigos.

Para obter mais informações, consulte a documentação oficial de Compactação de layout.

3 - Usar Fast Renderers

Os Fast Renderers ou renderizadores rápidos reduzem os custos de inflação e renderização dos controles Xamarin.Forms no Android, nivelando a hierarquia de controles nativa resultante. Isso melhora ainda mais o desempenho, criando menos objetos, o que resulta em uma árvore visual menos complexa e menos uso de memória.

Os renderizadores rápidos estão disponíveis para os seguintes controles no Xamarin.Forms no Android: Button, Image, Label e Frame.

Funcionalmente, esses renderizadores rápidos não são diferentes dos renderizadores herdados. A partir do Xamarin.Forms 4.0, todos os aplicativos direcionados ao FormsAppCompatActivity usarão esses renderizadores rápidos por padrão.

Os renderizadores para todos os novos controles, incluindo ImageButton e CollectionView, usam a abordagem do renderizador rápido.

Para mais informações, consulte os documentos oficiais do Fast Renderers.

4 - Remover Bindings desnecessários

Não use Bindings ou associações para conteúdo que possa ser facilmente definido estaticamente. Não há vantagem em criar ligações para dados que não precisam ser vinculadas porque as ligações são uma sobrecarga adicional, especialmente em comparação com variáveis estáticas.

Por exemplo, a configuração de Button.Text = "Submit" tem menos sobrecarga do que vincular Button.Text a uma propriedade de string ViewModel com o valor "Submit".

5 - Otimizando o Layout

O aspecto mais importante da otimização no nível do layout é saber quando você deve usar qual layout. Como desenvolvedor de XAML, você deve estar ciente de como cada um desses layouts funciona e quais são as desvantagens de usar cada um deles.

Então vamos iniciar orientações de otimização de layout:

1 - Gerais:

2 - Para o Grid

3 - Para o StackLayout

4 - Para a Label

5 - Para o ListView

6 - Para o Navigation

7 - Para a Image

Com essas orientações aplicadas ao seu projeto quando pertinentes sua aplicação vai com certeza ter um melhor desempenho.

"Bendito seja o Deus e Pai de nosso Senhor Jesus Cristo, o Pai das misericórdias e o Deus de toda a consolação;
Que nos consola em toda a nossa tribulação, para que também possamos consolar os que estiverem em alguma tribulação, com a consolação com que nós mesmos somos consolados por Deus."
2 Coríntios 1:3,4

Referências:


José Carlos Macoratti