Slide 1

Slide 1 text

Globalcode – Open4education Xamarin Forms e os problemas que você deve evitar Ione Souza Junior Desenvolvedor web / mobile

Slide 2

Slide 2 text

Globalcode – Open4education Sobre mim Desenvolvedor web desde 2006 PHP Java Início em projetos mobile em 2014 Cordova Xamarin ( último ano )

Slide 3

Slide 3 text

Globalcode – Open4education Agenda Desabilitando SwitchCell Especificando tipos de teclado Formulários com scroll UITests Utilização do ListView ImageCell com imagens pequenas Abas Devo continuar usando Xamarin Forms?

Slide 4

Slide 4 text

Globalcode – Open4education Antes de começar… Os exemplos que serão mostrados foram desenvolvidos com a versão 2.2.0.31 do Xamarin Forms Exemplos disponíveis em https://github.com/ ionixjunior/XFProblems

Slide 5

Slide 5 text

Globalcode – Open4education Desabilitando SwitchCell Evite utilizar a propriedade IsEnabled para desabilitar um SwitchCell… https://bugzilla.xamarin.com/ show_bug.cgi?id=25662

Slide 6

Slide 6 text

Globalcode – Open4education Especificando tipos de teclado Não especifique tipos de teclado em formulários extensos… https://bugzilla.xamarin.com/ show_bug.cgi?id=35746

Slide 7

Slide 7 text

Globalcode – Open4education Formulários com scroll Cuidado com scroll em formulários extensos… https://bugzilla.xamarin.com/ show_bug.cgi?id=40220

Slide 8

Slide 8 text

Globalcode – Open4education Utilização do ListView É preciso entender as limitações De preferência ( mas de preferência mesmo ) utilize built-in cells TextCell ImageCell

Slide 9

Slide 9 text

Globalcode – Open4education Utilização do ListView TextCell - apenas com texto

Slide 10

Slide 10 text

Globalcode – Open4education Utilização do ListView TextCell - com texto e descrição

Slide 11

Slide 11 text

Globalcode – Open4education Utilização do ListView ImageCell - texto, descrição e imagem

Slide 12

Slide 12 text

Globalcode – Open4education Utilização do ListView O que o Xamarin Forms oferece é pouco? Precisa de um layout mais flexível? Então você pode criar custom controls…

Slide 13

Slide 13 text

Globalcode – Open4education Utilização do ListView Criando seu custom control você tem mais flexibilidade… …mas perde em performance ( colocar X no android ) Então o que fazer? Implemente native renderer

Slide 14

Slide 14 text

Globalcode – Open4education Utilização do ListView Built-in cells Custom control Native renderer Performance X X Flexibilidade X X Agilidade X X Mas qual devo utilizar? Depende do seu app!

Slide 15

Slide 15 text

Globalcode – Open4education ImageCell com imagens pequenas Vamos utilizar um TableView com ImageCell para fazer uma legenda. As imagens são pequenas (16x16); No Android, a imagem no ImageCell tem tamanho fixo em 60x60;

Slide 16

Slide 16 text

Globalcode – Open4education ImageCell com imagens pequenas Como resolver? Criar um custom control; Implementar native renderer; Veja https://goo.gl/CUJpVm

Slide 17

Slide 17 text

Globalcode – Open4education Abas Evite utilizar telas com muitas abas… https://bugzilla.xamarin.com/ show_bug.cgi?id=28379

Slide 18

Slide 18 text

Globalcode – Open4education UITests Existem algumas diferenças de comportamentos entre as plataformas… https://bugzilla.xamarin.com/show_bug.cgi? id=32718

Slide 19

Slide 19 text

Globalcode – Open4education Devo continuar usando Xamarin Forms? Sim, desde que: Você entenda suas limitações… Seu projeto não seja muito grande… Você não pense que ele vai resolver todos seus problemas!

Slide 20

Slide 20 text

Globalcode – Open4education Mantenha o software atualizado sempre que possível Assim você poderá evitar problemas, pois bugs já foram corrigidos; Acompanhe o change log das versões, tem muita coisa nova chegando e talvez você precise relatora algumas coisas; Geralmente os bugs demoram a ser corrigidos, mas lembre-se: o bug que você reporta não é o único; tem vários tão importantes quanto o seu na fila de espera;

Slide 21

Slide 21 text

Globalcode – Open4education Perguntas?

Slide 22

Slide 22 text

Globalcode – Open4education Muito obrigado! @ionixjunior ionixjunior [email protected] ionixjunior.com.br