Upload
marcelo-quinta
View
242
Download
3
Embed Size (px)
Citation preview
Arquitetura móvel para diferentes contextosMarcelo 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)
Google Analytics
Fabric
Contexto da tecnologia
SO
PROCESSOS
BORA RESOLVER
Nosso escopo será este
Conexão Web
Evitar múltiplas requisições repetidas (e também dar sincronia a estas quando não tiver opção)
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
Sem polling
Diga ao servidor quem você é (ou peça a pessoa do back-end dar moral pra isso)
User-Agent
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
Outras opções ainda melhores
Original: 20Kb Formato WebP
Qualidade e tamanho otimizados : 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()));
Mídias suportadas
https://developer.android.com/guide/appendix/media-formats.html#core
Segurança
OAuth, MD5 checking, HTTPS, SSL?
Allow backup: true ou false?
Localização
GPS somente quando necessário
Armazenamento
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
Venha bater um papo com a gente
Google Developer Experts
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