Xamarin Forms - Dicas de desempenho
Neste artigo vou apresentar algumas dicas para melhorar o desempenho de aplicações Xamarin Forms. Elas foram sugeridas por Jason Smith da Xamarin e apresentadas neste vídeo : https://www.youtube.com/watch?v=RZvdql3Ev0E eu apenas extrai e traduzi as dicas. |
Dicas de desempenho para aplicações Xamarin Forms por Json Smith.
1 - Dicas Gerais |
ATIVE a compilação XAML se você estiver usando código XAML. Ex: [assembly: XamlCompilation(XamlCompilationOptions.Compile)]
EVITE realizar o Binding quando a atribuição estática for suficiente.
NÃO
atribua valores padrão. Fazer isso tem um custo mesmo que você não esteja
modificando o valor.
EVITE usar o recurso da transparência.
USE async/await para evitar bloquear a thread
principal. (É uma boa prática)
CONSIDERE inflar visões fora da thread principal, mas não se esqueça de
adicioná-las à árvore visual na thread principal.
2 - Layout |
NÃO use o
layout StackLayout para hospedar uma única view
filha (child).
NÃO use o layout Grid quando usar um layout StackLayout resolve o seu problema.
NÃO use vários layouts StackLayouts quando um layout Grid for suficiente.
EVITE usar o layout CarouselPage.
NÃO use um ContentView com Padding (preenchimento) apenas para aplicar uma margem à uma view filha (child). Em vez disso, use a propriedade Margin na view filha (a partir do Xamarin.Forms 2.2).
CUIDADO ao utilizar as propriedades Spacing (ColumnSpacing/RowSpacing para o Grid) e Padding. Exemplo:
Ao invés de fazer assim : | Faça assim : |
<StackLayout> <ContentView Padding="10,10,10,5"> <Label Text="1"/> </ContentView> <ContentView Padding="10,0,10,5"> <Label Text="2"/> </ContentView> <ContentView Padding="10,0,10,0"> <Label Text="3"/> </ContentView> </StackLayout> |
<StackLayout Padding="10"
Spacing="5"> <Label Text="1"/> <Label Text="2"/> <Label Text="3"/> </StackLayout> |
PREFIRA
usar LayoutOptions.Fill ou
LayoutOptions.FillAndExpand. Estes são os padrões e não devem ser
modificados na maioria das vezes.
PREFIRA usar colunas/linhas de grade de tamanho de estrela (*) em vez de tamanho
automático(auto).
NÃO use vários layouts StackLayouts para simular uma grade.
EVITE usar o layout RelativeLayout se possível.
3 - Labels |
4 - Navegação |
AGUARDE
os métodos PushAsync e PopAsync. A falha em fazê-lo é prejudicial tanto ao
desempenho quanto à exatidão.
EVITE ocultar/mostrar a barra de navegação.
USE o AppCompat backend para o Android. Isso vai melhorar o desempenho e a
aparência do aplicativo.
5 - ListViews |
6 - Imagens |
Verifique o código usado em suas aplicações Xamarin Forms e faça os ajustes indicados para melhorar o seu desempenho.
Espero que essas dicas te ajudem a melhorar o desempenho da sua aplicação Xamarin.
Nota : Na primeira dica, para ativar a compilação XAML, na nova versão do Xamarin, se você usar o código XAML para ocultar o botão da barra de navegação usando - NavigationPage.HasBackButton="False" , vai ocorrer um erro em tempo de compilação.
O erro desaparece quando você remove o atributo para ativar a compilação XAML. ( [XamlCompilation(XamlCompilationOptions.Compile)])
Referências:
Xamarim - Desenvolvimento Multiplataforma com C# ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Criando sua primeira ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Anatomia da aplicação - Macoratti.net
https://developer.xamarin.com/api/type/Android.App.AlertDialog/
https://developer.android.com/reference/android/app/Activity.html
https://developer.xamarin.com/api/type/Android.Widget.ProgressBar/