Upload
marcelo-quinta
View
353
Download
0
Embed Size (px)
Citation preview
Dicas de otimização e planejamento de apps para o mercado brasileiroMarcelo Quinta
@mrquinta
https://autosorfaos.wordpress.com/2010/08/10/ford-corcel-ii-7/
CONTEXTO
Quem é seu usuário?
“Se quiser saber o que seu usuário quer, não pergunte a ele. Veja como ele se comporta.”
Não lembro quem me disse isso
“Onde tem gambiarra, tem oportunidade”
Júlio Souza (Projeto Redação)
SO
PROCESSOS
BORA RESOLVER
Google Analytics
Fabric
Nosso escopo será este
Conexão Web
Evitar requisições repetidas e tome cuidado com as paralelas
Requisição com lista infinita de acordo com a rede
Wifi
Requisição com lista infinita de acordo com a rede
4G
Requisição com lista infinita de acordo com a rede
2G
Verificando a conexão
ConnectivityManager networkManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = networkManager.getActiveNetworkInfo();int type = info.getType();int type = info.getSubtype();
Personalize os tempos de resposta!
Erro? Não mostre uma tela vazia
https://github.com/xiprox/ErrorView
Flat Buffers
https://google.github.io/flatbuffers/index.html
Flat Buffers
https://google.github.io/flatbuffers/index.html
Chega de polling
Imageria
Se pode fazer um drawable em XML ou SVG, faça
https://developer.android.com/intl/pt-br/guide/appendix/media-formats.html
Use imagens com cuidado
https://github.com/EverythingMe/webp-android
http://www.html5rocks.com/en/tutorials/speed/img-compression/
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
Envie a imagem adequada
Original: 969Kb Formato JPG
Comprimida em qualidade: 317Kb Formato JPG
E essa?
Mesmo slide anterior =P
Outras opções ainda melhores
Original convertido: 20Kb Formato WebP
Qualidade e tamanho modificados : 25Kb Formato JPG
Tudo junto
Gerando uma nova imagem
Bitmap bmResolution = Bitmap.createBitmap(croppedImage, 0, 0, width, height, matrix, true);
ByteArrayOutputStream out = new ByteArrayOutputStream();...bmResolution.compress(Bitmap.CompressFormat.JPEG, 90, out);Bitmap decoded = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
Segurança
Allow backup: true ou false?
OAuth, MD5 checking, HTTPS, SSL?
Localização
GPS somente quando necessário
Seu APK
APK Analyzer
https://developer.android.com/studio/build/apk-analyzer.html
Proguard nele! Cuidado com webviews e bibliotecas
UI
Xinglings estão ficando cada dia mais doidos
Material Design Support Library
Material Design Support Library
Cursos do Udacity que fiz e indico
Android Performance
https://www.udacity.com/course/android-performance--ud825
UX Design for Mobile developers
https://www.udacity.com/course/ux-design-for-mobile-developers--ud849
Advanced Android App Development
https://www.udacity.com/course/advanced-android-app-development--ud855
Developing Android Apps https://www.udacity.com/course/developing-android-apps--ud853
Palestra interessante para assistir Building for billions on Android - Google I/O 2016
https://www.youtube.com/watch?v=vaEV8bNi1Dw
Indicação de leitura
Já pensou em ser acelerado pelo Google?
Google Developers Launchpad
Marcelo Quinta@mrquinta
Obrigado
Muito dessa apt foi feito com material disponibilizado pelo Google. Dê uma olhada no canal do Youtube deles: https://www.youtube.com/user/GoogleDevelopers