SlideShare uma empresa Scribd logo
Dicas de otimização e planejamento de
apps para o mercado brasileiro
Marcelo 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

Mais conteúdo relacionado

Semelhante a Dicas de otimização e planejamento de apps para o mercado brasileiro

Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Joao Galdino Mello de Souza
 
Desenvolvimento Web multi-devices com Google Web Starter Kit
Desenvolvimento Web multi-devices com Google Web Starter KitDesenvolvimento Web multi-devices com Google Web Starter Kit
Desenvolvimento Web multi-devices com Google Web Starter Kit
Rodrigo Antinarelli
 
A importancia do Design na Internet / ESPM 21/07/2011
A importancia do Design na Internet / ESPM 21/07/2011A importancia do Design na Internet / ESPM 21/07/2011
A importancia do Design na Internet / ESPM 21/07/2011
Valtech (Nonlinear Creations)
 
Especificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBetaEspecificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBeta
Danilo Sousa
 
Arquitetura de informação
Arquitetura de informaçãoArquitetura de informação
Arquitetura de informação
pospipoca
 
Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?
Thiago Mazarão Maltempi
 
Web APIs e dados abertos - API de Compras Governamentais
Web APIs e dados abertos - API de Compras GovernamentaisWeb APIs e dados abertos - API de Compras Governamentais
Web APIs e dados abertos - API de Compras Governamentais
nitaibezerra
 
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Joao Galdino Mello de Souza
 
Overview - Bot Framework
Overview - Bot FrameworkOverview - Bot Framework
Overview - Bot Framework
Renato Romão
 
Open Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkOpen Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot Framework
Douglas Romão
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
Flávio Lisboa
 
O Poderoso AngularJS
O Poderoso AngularJSO Poderoso AngularJS
O Poderoso AngularJS
Beto Muniz
 
MVC 3 & razor (DevBrasil Summit 2011)
MVC 3 & razor (DevBrasil Summit 2011)MVC 3 & razor (DevBrasil Summit 2011)
MVC 3 & razor (DevBrasil Summit 2011)
José Roberto Araújo
 
Mvc 3 & razor
Mvc 3 & razorMvc 3 & razor
Mvc 3 & razor
Felipe Pimentel
 

Semelhante a Dicas de otimização e planejamento de apps para o mercado brasileiro (14)

Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
 
Desenvolvimento Web multi-devices com Google Web Starter Kit
Desenvolvimento Web multi-devices com Google Web Starter KitDesenvolvimento Web multi-devices com Google Web Starter Kit
Desenvolvimento Web multi-devices com Google Web Starter Kit
 
A importancia do Design na Internet / ESPM 21/07/2011
A importancia do Design na Internet / ESPM 21/07/2011A importancia do Design na Internet / ESPM 21/07/2011
A importancia do Design na Internet / ESPM 21/07/2011
 
Especificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBetaEspecificação de Requisitos de Software ParentalBeta
Especificação de Requisitos de Software ParentalBeta
 
Arquitetura de informação
Arquitetura de informaçãoArquitetura de informação
Arquitetura de informação
 
Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?Java: Por onde começar nos dias de hoje?
Java: Por onde começar nos dias de hoje?
 
Web APIs e dados abertos - API de Compras Governamentais
Web APIs e dados abertos - API de Compras GovernamentaisWeb APIs e dados abertos - API de Compras Governamentais
Web APIs e dados abertos - API de Compras Governamentais
 
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
Internet das Coisas (IoT) – O que essa “coisa” tem a ver com Capacity Plannin...
 
Overview - Bot Framework
Overview - Bot FrameworkOverview - Bot Framework
Overview - Bot Framework
 
Open Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkOpen Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot Framework
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
O Poderoso AngularJS
O Poderoso AngularJSO Poderoso AngularJS
O Poderoso AngularJS
 
MVC 3 & razor (DevBrasil Summit 2011)
MVC 3 & razor (DevBrasil Summit 2011)MVC 3 & razor (DevBrasil Summit 2011)
MVC 3 & razor (DevBrasil Summit 2011)
 
Mvc 3 & razor
Mvc 3 & razorMvc 3 & razor
Mvc 3 & razor
 

Mais de Marcelo Quinta

O que há de novo nas Android Support Libraries
O que há de novo nas Android Support LibrariesO que há de novo nas Android Support Libraries
O que há de novo nas Android Support Libraries
Marcelo Quinta
 
Bibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóBibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vó
Marcelo Quinta
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?
Marcelo Quinta
 
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidConhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
Marcelo Quinta
 
Boas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelBoas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento Móvel
Marcelo Quinta
 
iOS libraries
iOS librariesiOS libraries
iOS libraries
Marcelo Quinta
 
Android libraries
Android librariesAndroid libraries
Android libraries
Marcelo Quinta
 
Android bluetooth
Android bluetoothAndroid bluetooth
Android bluetooth
Marcelo Quinta
 
Mobile
MobileMobile
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some money
Marcelo Quinta
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC Florianópolis
Marcelo Quinta
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
Marcelo Quinta
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robótica
Marcelo Quinta
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
Marcelo Quinta
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
Marcelo Quinta
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
Marcelo Quinta
 
Hello World JavaFX
Hello World JavaFXHello World JavaFX
Hello World JavaFX
Marcelo Quinta
 

Mais de Marcelo Quinta (17)

O que há de novo nas Android Support Libraries
O que há de novo nas Android Support LibrariesO que há de novo nas Android Support Libraries
O que há de novo nas Android Support Libraries
 
Bibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóBibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vó
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?
 
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidConhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
 
Boas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelBoas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento Móvel
 
iOS libraries
iOS librariesiOS libraries
iOS libraries
 
Android libraries
Android librariesAndroid libraries
Android libraries
 
Android bluetooth
Android bluetoothAndroid bluetooth
Android bluetooth
 
Mobile
MobileMobile
Mobile
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some money
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC Florianópolis
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robótica
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
 
Hello World JavaFX
Hello World JavaFXHello World JavaFX
Hello World JavaFX
 

Último

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 

Último (8)

Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 

Dicas de otimização e planejamento de apps para o mercado brasileiro