Desenvolvendo aplicativos nativos
Exemplos, casos e conceitos
David Tiago Conceição
@davidtiagocon
davidtc.developer@gmail...
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
Be...
David Tiago Conceição
@davidtiagocon
davidtc.developer@gmail.com
facebook.com/davidtiagocon
LinkedIn: David Tiago Conceiçã...
Próximos SlideShares
Carregando em…5
×

Desenvolvendo aplicativos nativos

453 visualizações

Publicada em

Slides da palestra apresentada no The Developer's Conference 2014 em Florianópolis, trilha Android

Publicada em: Software
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
453
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendo aplicativos nativos

  1. 1. Desenvolvendo aplicativos nativos Exemplos, casos e conceitos David Tiago Conceição @davidtiagocon davidtc.developer@gmail.com
  2. 2. Android Crescimento sem precedentes Número de dispositivos Número de ativações Número de aplicativos
  3. 3. Android Experiência de uso
  4. 4. Roteiro Conceito Android SDK Código Java Recursos ImageView Adapters Informações externas Serviços externos
  5. 5. Performance Elemento da experiência de uso
  6. 6. Aumentar a Performance Diminuir o tempo que o usuário leva para alcançar seus objetivos
  7. 7. Performance Impacto direto na experiência de uso Aplicativos lentos Aplicativos pesados Aplicativos complexos
  8. 8. Android SDK
  9. 9. Android SDK Atualizações Bibliotecas Build System
  10. 10. Android SDK Atualizações Target
  11. 11. Android SDK Atualizações Target
  12. 12. Android SDK Warnings Build Lint
  13. 13. Código Java
  14. 14. Código Java Código eficiente
  15. 15. Código Java Getters & Setters
  16. 16. Código Java Iterações Enhanced for
  17. 17. Código Java Iterações Limites
  18. 18. Código Java Iterações Limites
  19. 19. Código Java Iterações Limites
  20. 20. Código Java Iterações Limites
  21. 21. Código Java Métodos static
  22. 22. Código Java Métodos static Com cuidado
  23. 23. Código Java Mitos
  24. 24. Código Java Mitos Acesso aos membros Hierarquia de classes Enum
  25. 25. Código Java Mitos Acesso aos membros Hierarquia de classes Enum Compilador JIT
  26. 26. Código Java Estruturas de dados Tipos apropriados
  27. 27. Código Java Estruturas de dados Tipos apropriados
  28. 28. Código Java Estruturas de dados Tipos apropriados
  29. 29. Código Java Estruturas de dados Inicialização de listas
  30. 30. Código Java Estruturas de dados Cuidado com o autoboxing
  31. 31. Código Java Builders StringBuilder
  32. 32. Código Java Context Atenção aos vazamentos de memória
  33. 33. Código Java Escopo de variáveis
  34. 34. Código Java Garbage collector Atenção especial Android 2.3 e anteriores
  35. 35. Código Java Multitarefa
  36. 36. Código Java Multitarefa
  37. 37. Código Java Multitarefa
  38. 38. Código Java Multitarefa
  39. 39. Código Java Multitarefa
  40. 40. Código Java Conheça as bibliotecas
  41. 41. Código Java Conheça as bibliotecas
  42. 42. Recursos
  43. 43. Recursos Layouts <include> <merge>
  44. 44. Recursos Layouts <include> http://developer.android.com/training/improving-layouts/reusing-layouts.html
  45. 45. Recursos Layouts <include> http://developer.android.com/training/improving-layouts/reusing-layouts.html
  46. 46. Recursos Layouts Maior profundidade = menor performance
  47. 47. Recursos Layouts
  48. 48. Recursos Layouts
  49. 49. Analisando layouts Perfil renderização
  50. 50. Analisando layouts Perfil renderização LinearLayout RelativeLayou t
  51. 51. Analisando layouts Overdraw
  52. 52. Analisando layouts Overdraw LinearLayout RelativeLayou t
  53. 53. Recursos Layouts Maior profundidade geralmente significa menor performance
  54. 54. ImageView
  55. 55. ImageView Bitmaps são pesados!
  56. 56. ImageView Bitmaps Ocupam muita memória
  57. 57. ImageView Bitmaps Ocupam muita memória
  58. 58. ImageView Bitmaps Ocupam muita memória
  59. 59. ImageView Bitmaps Ocupam muita memória
  60. 60. ImageView Exibição dinâmica
  61. 61. ImageView Cache local
  62. 62. ImageView Cache em memória
  63. 63. Adapters
  64. 64. Adapters Reutilizar layouts Otimização com ViewHolder
  65. 65. Adapters Reutilizar layouts Otimização com ViewHolder
  66. 66. Adapters Não sobrecarregue o getView!
  67. 67. Informações externas Protocolos leves
  68. 68. Informações externas Agilize a exibição Separando informações básicas das pesadas
  69. 69. Informações externas Agilize a exibição Lazy loading
  70. 70. Informações externas Agilize a exibição Cache
  71. 71. Serviços Externos Localização Fused Location Provider
  72. 72. Serviços Externos Cuidado ao monitorar a localização
  73. 73. Serviços Externos Cuidado ao monitorar a localização Tempo necessário
  74. 74. Serviços Externos Cuidado ao monitorar a localização Tempo necessário Prioridade
  75. 75. Serviços Externos Cuidado ao monitorar a localização Tempo necessário Prioridade Substituição por geofencing
  76. 76. Serviços Externos Reconhecimento de atividade
  77. 77. Serviços Externos Reconhecimento de atividade Mudança de temporizadores
  78. 78. Serviços Externos Reconhecimento de atividade Mudança de temporizadores Antecipação de ações
  79. 79. Serviços Externos Push notifications Fuja do pooling!
  80. 80. 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
  81. 81. David Tiago Conceição @davidtiagocon davidtc.developer@gmail.com facebook.com/davidtiagocon LinkedIn: David Tiago Conceição Obrigado!

×