SlideShare una empresa de Scribd logo
1 de 81
Desenvolvendo aplicativos nativos
Exemplos, casos e conceitos
David Tiago Conceição
@davidtiagocon
davidtc.developer@gmail.com
Android
Crescimento sem precedentes
Número de dispositivos
Número de ativações
Número de aplicativos
Android
Experiência de uso
Roteiro
Conceito
Android SDK
Código Java
Recursos
ImageView
Adapters
Informações externas
Serviços externos
Performance
Elemento da experiência de uso
Aumentar a Performance
Diminuir o tempo que o usuário leva para
alcançar seus objetivos
Performance
Impacto direto na experiência de uso
Aplicativos lentos
Aplicativos pesados
Aplicativos complexos
Android SDK
Android SDK
Atualizações
Bibliotecas
Build System
Android SDK
Atualizações
Target
Android SDK
Atualizações
Target
Android SDK
Warnings
Build
Lint
Código Java
Código Java
Código eficiente
Código Java
Getters & Setters
Código Java
Iterações
Enhanced for
Código Java
Iterações
Limites
Código Java
Iterações
Limites
Código Java
Iterações
Limites
Código Java
Iterações
Limites
Código Java
Métodos static
Código Java
Métodos static
Com cuidado
Código Java
Mitos
Código Java
Mitos
Acesso aos membros
Hierarquia de classes
Enum
Código Java
Mitos
Acesso aos membros
Hierarquia de classes
Enum
Compilador JIT
Código Java
Estruturas de dados
Tipos apropriados
Código Java
Estruturas de dados
Tipos apropriados
Código Java
Estruturas de dados
Tipos apropriados
Código Java
Estruturas de dados
Inicialização de listas
Código Java
Estruturas de dados
Cuidado com o autoboxing
Código Java
Builders
StringBuilder
Código Java
Context
Atenção aos vazamentos de memória
Código Java
Escopo de variáveis
Código Java
Garbage collector
Atenção especial Android 2.3 e anteriores
Código Java
Multitarefa
Código Java
Multitarefa
Código Java
Multitarefa
Código Java
Multitarefa
Código Java
Multitarefa
Código Java
Conheça as bibliotecas
Código Java
Conheça as bibliotecas
Recursos
Recursos
Layouts
<include>
<merge>
Recursos
Layouts
<include>
http://developer.android.com/training/improving-layouts/reusing-layouts.html
Recursos
Layouts
<include>
http://developer.android.com/training/improving-layouts/reusing-layouts.html
Recursos
Layouts
Maior profundidade = menor performance
Recursos
Layouts
Recursos
Layouts
Analisando layouts
Perfil renderização
Analisando layouts
Perfil renderização
LinearLayout RelativeLayou
t
Analisando layouts
Overdraw
Analisando layouts
Overdraw
LinearLayout RelativeLayou
t
Recursos
Layouts
Maior profundidade geralmente significa menor performance
ImageView
ImageView
Bitmaps são pesados!
ImageView
Bitmaps
Ocupam muita memória
ImageView
Bitmaps
Ocupam muita memória
ImageView
Bitmaps
Ocupam muita memória
ImageView
Bitmaps
Ocupam muita memória
ImageView
Exibição dinâmica
ImageView
Cache local
ImageView
Cache em memória
Adapters
Adapters
Reutilizar layouts
Otimização com ViewHolder
Adapters
Reutilizar layouts
Otimização com ViewHolder
Adapters
Não sobrecarregue o getView!
Informações externas
Protocolos leves
Informações externas
Agilize a exibição
Separando informações básicas das pesadas
Informações externas
Agilize a exibição
Lazy loading
Informações externas
Agilize a exibição
Cache
Serviços Externos
Localização
Fused Location Provider
Serviços Externos
Cuidado ao monitorar a localização
Serviços Externos
Cuidado ao monitorar a localização
Tempo necessário
Serviços Externos
Cuidado ao monitorar a localização
Tempo necessário
Prioridade
Serviços Externos
Cuidado ao monitorar a localização
Tempo necessário
Prioridade
Substituição por geofencing
Serviços Externos
Reconhecimento de atividade
Serviços Externos
Reconhecimento de atividade
Mudança de temporizadores
Serviços Externos
Reconhecimento de atividade
Mudança de temporizadores
Antecipação de ações
Serviços Externos
Push notifications
Fuja do pooling!
Leitura Futura
Sending Operations to Multiple Threads
http://developer.android.com/training/multiple-threads/index.html
Best Practices for Performance
http://developer.android.com/training/best-performance.html
Android Performance Case Study
http://www.curious-creature.org/docs/android-performance-case-study-1.html
Displaying Bitmaps Efficiently
http://developer.android.com/training/displaying-bitmaps/index.html
David Tiago Conceição
@davidtiagocon
davidtc.developer@gmail.com
facebook.com/davidtiagocon
LinkedIn: David Tiago Conceição
Obrigado!

Más contenido relacionado

Similar a Desenvolvendo aplicativos nativos Android

Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento androidDiego Keller
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Desenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com JavaDesenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com Javaarmeniocardoso
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaMessias Batista
 
O Fantástico Mundo DevTools
O Fantástico Mundo DevToolsO Fantástico Mundo DevTools
O Fantástico Mundo DevToolsMarcus Silva
 
Curso de Android - Módulo 02
Curso de Android - Módulo 02Curso de Android - Módulo 02
Curso de Android - Módulo 02Luiz Duarte
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negóciosRamon Durães
 
Desenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaDesenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaPaula Santana
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaWaldir R. Pires Jr
 
Novidades do Visual Studio 2013
Novidades do Visual Studio 2013Novidades do Visual Studio 2013
Novidades do Visual Studio 2013Adriano Bertucci
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 

Similar a Desenvolvendo aplicativos nativos Android (20)

Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento android
 
Web Dev Camp
Web Dev CampWeb Dev Camp
Web Dev Camp
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Desenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com JavaDesenvolvimento de Aplicações Corporativas com Java
Desenvolvimento de Aplicações Corporativas com Java
 
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoaO novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
O novo desenvolvedor android conceitos básicos e a comunidade em joão pessoa
 
Iniciando com AWS Mobile services
Iniciando com AWS Mobile servicesIniciando com AWS Mobile services
Iniciando com AWS Mobile services
 
O Fantástico Mundo DevTools
O Fantástico Mundo DevToolsO Fantástico Mundo DevTools
O Fantástico Mundo DevTools
 
Palestra Android
Palestra AndroidPalestra Android
Palestra Android
 
Curso de Android - Módulo 02
Curso de Android - Módulo 02Curso de Android - Módulo 02
Curso de Android - Módulo 02
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negócios
 
Desenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaDesenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageria
 
Ix ws allan
Ix ws allanIx ws allan
Ix ws allan
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
Show Day Droid x
Show Day Droid xShow Day Droid x
Show Day Droid x
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Android
AndroidAndroid
Android
 
Novidades do Visual Studio 2013
Novidades do Visual Studio 2013Novidades do Visual Studio 2013
Novidades do Visual Studio 2013
 
Android
AndroidAndroid
Android
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 

Desenvolvendo aplicativos nativos Android