Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
O SUCESSO DO SEU APP ESTÁ NOS
DETALHES
@SuelenGC
Sudeste
Suelen GC
github.com/suelengc
@suelengc
2006
2015
SOME NUMBERS
Existem mais de 1 milhão de aplicativos no
Google Play.
NÚMERO DE APPS
Agosto/2014
GROWTH OF NUMBER OF APP IN THE
GOOGLE PLAY STORE FROM DECEMBER 2009 TO JULY 2015
USUÁRIOS ATIVOS
Agosto/2014
NÃO BASTA TER UM
APLICATIVO, ELE
PRECISA SER O MELHOR!
DESIGN
Entre um feio e um bonito que faça a mesma
coisa, os usuários irão ficar com o bonito!
SEE MATERIAL DESIGN GUIDE LINES
Google already did the work of learning
how is the best way to interact and
show things to...
APPLY THE MATERIAL THEME
To apply the material theme in your
app, specify a style that inherits from
android:Theme.Material
USE CARDS
CardView lets you show pieces of
information inside cards with a
consistent look across apps.
USE LISTS WITH BEST PERFORMANCE
RecyclerView is a more pluggable
version of ListView that supports
different layout types ...
USE ANIMATIONS
Android 5.0 (API level 21) includes new
APIs to create custom animations in your
app in a more easiest way....
August/2015
August/2015
August/2015
MAINTAINING COMPATIBILITY
➤ Define and Provide Alternative Styles.
➤ Use the Support Library.
➤ Test your apps in many dif...
PERFORMANCE
of users have uninstalled
an app after a negative experience.
90%
PREFER STATIC OVER INSTANCE METHODS
If you don't need to access an object's
fields, make your method static.
Invocations w...
USE STATIC FINAL FOR CONSTANTS
The compiler will be more efficient if
he know that variable will not be
changed.
*Valid fo...
AVOID INTERNAL GETTERS/SETTERS
Inside a class you should always access
fields directly. Leave getters/setters for
public i...
USE FOR-EACH LOOP SYNTAX
Use the for-each loop by default, but
consider a hand-written counted loop
for performance-critic...
CONSIDER PACKAGE ACCESS INSTEAD OF
PRIVATE ACCESS WITH PRIVATE INNER CLASSES
Declare fields
and methods
accessed by inner
...
AVOID USING FLOATING-POINT
As a rule of thumb, floating-point is
about 2x slower than integer on
Android-powered devices.
KNOW AND USE THE LIBRARIES
Do not reinvent the wheel. Know
what native API can offer to you
before implementing by yoursel...
FEEDBACK
is the time that the
most people have patience to wait a
feedback from apps.
200ms
KEEPING YOUR APP RESPONSIVE
What Triggers ANR?
➤ No response to an input event (such as
key press or screen touch events)
...
KEEPING YOUR APP RESPONSIVE
Network or database operations, or
computationally expensive calculations
such as resizing bit...
KEEPING YOUR APP RESPONSIVE
How to Avoid ANRs?
➤ Use AsyncTask.
➤ Do not NEVER! call Thread.wait()
or Thread.sleep().
➤ Us...
FEEDBACK TIPS - WORK IN BACKGROUND
If your application is doing work in the
background in response to user input,
show tha...
FEEDBACK TIPS - HIGH CALCULATIONS
For games specifically, do calculations for
moves in a worker thread.
SMART
Pense em mobilidade. Lembre que seu app pode
aproveitar as principais características dos
dispositivos móveis, como ...
USE MOBILE RESOURCES - GEOLOCATION
Do not ask where the user is. Instead,
use Geolocation resources to discover
that.
USE MOBILE RESOURCES - DEEPLINKS
If users are accessing your site in mobile,
you must to turn possible open app with
the s...
USE MOBILE RESOURCES - PERMISSIONS
Request only the necessary permissions!
Otherwise, a more suspicious user can
get scare...
MEÇA! MEÇA! MEÇA!
É importante coletar e avaliar algumas
informações importantes como: tempo entre
os acessos, acessos por...
Houston
temos um
problema!
“Não se pode melhorar aquilo que não
se pode medir!
MÉTRICAS DE USO
MÉTRICAS DE CRASH’S E ERROS E PERFORMANCE
“O “app perfeito” não deve ser visto
necessariamente como um destino,
mas sim como uma jornada.
Obrigada!
Sudeste
github.com/suelengc
Dúvidas?
Sudeste
github.com/suelengc
REFERÊNCIAS
➤ http://m.corporate.canaltech.com.br/noticia/apps/Desempenho-um-diferencial-competitivo-para-apps/
➤ http://e...
O sucesso do seu app está nos detalhes!
O sucesso do seu app está nos detalhes!
Upcoming SlideShare
Loading in …5
×

O sucesso do seu app está nos detalhes!

1,039 views

Published on

Presentation did at DevFest Sudeste 2015 about details to make your app get success.

Published in: Technology

O sucesso do seu app está nos detalhes!

  1. 1. O SUCESSO DO SEU APP ESTÁ NOS DETALHES @SuelenGC Sudeste
  2. 2. Suelen GC github.com/suelengc @suelengc 2006 2015
  3. 3. SOME NUMBERS Existem mais de 1 milhão de aplicativos no Google Play.
  4. 4. NÚMERO DE APPS Agosto/2014
  5. 5. GROWTH OF NUMBER OF APP IN THE GOOGLE PLAY STORE FROM DECEMBER 2009 TO JULY 2015
  6. 6. USUÁRIOS ATIVOS Agosto/2014
  7. 7. NÃO BASTA TER UM APLICATIVO, ELE PRECISA SER O MELHOR!
  8. 8. DESIGN Entre um feio e um bonito que faça a mesma coisa, os usuários irão ficar com o bonito!
  9. 9. SEE MATERIAL DESIGN GUIDE LINES Google already did the work of learning how is the best way to interact and show things to the users in the most of cases. Take advantage of that!
  10. 10. APPLY THE MATERIAL THEME To apply the material theme in your app, specify a style that inherits from android:Theme.Material
  11. 11. USE CARDS CardView lets you show pieces of information inside cards with a consistent look across apps.
  12. 12. USE LISTS WITH BEST PERFORMANCE RecyclerView is a more pluggable version of ListView that supports different layout types and provides performance improvements.
  13. 13. USE ANIMATIONS Android 5.0 (API level 21) includes new APIs to create custom animations in your app in a more easiest way. ➤ Customize Touch Feedback ➤ Use the Reveal Effect ➤ Customize Activity Transitions ➤ Specify custom transitions and so on…
  14. 14. August/2015
  15. 15. August/2015
  16. 16. August/2015
  17. 17. MAINTAINING COMPATIBILITY ➤ Define and Provide Alternative Styles. ➤ Use the Support Library. ➤ Test your apps in many differents devices/android versions. ➤ Knows what version supports which feature.
  18. 18. PERFORMANCE of users have uninstalled an app after a negative experience. 90%
  19. 19. PREFER STATIC OVER INSTANCE METHODS If you don't need to access an object's fields, make your method static. Invocations will be about 15%-20% faster.
  20. 20. USE STATIC FINAL FOR CONSTANTS The compiler will be more efficient if he know that variable will not be changed. *Valid for primitives types and String
  21. 21. AVOID INTERNAL GETTERS/SETTERS Inside a class you should always access fields directly. Leave getters/setters for public interface. Doing it, could be from 3 to 7 times faster than invoking a trivial getter.
  22. 22. USE FOR-EACH LOOP SYNTAX Use the for-each loop by default, but consider a hand-written counted loop for performance-critical ArrayList iteration.
  23. 23. CONSIDER PACKAGE ACCESS INSTEAD OF PRIVATE ACCESS WITH PRIVATE INNER CLASSES Declare fields and methods accessed by inner classes to have package access, rather than private access.
  24. 24. AVOID USING FLOATING-POINT As a rule of thumb, floating-point is about 2x slower than integer on Android-powered devices.
  25. 25. KNOW AND USE THE LIBRARIES Do not reinvent the wheel. Know what native API can offer to you before implementing by yourself.
  26. 26. FEEDBACK is the time that the most people have patience to wait a feedback from apps. 200ms
  27. 27. KEEPING YOUR APP RESPONSIVE What Triggers ANR? ➤ No response to an input event (such as key press or screen touch events) within 5 seconds. ➤ A BroadcastReceiver hasn't finished executing within 10 seconds.
  28. 28. KEEPING YOUR APP RESPONSIVE Network or database operations, or computationally expensive calculations such as resizing bitmaps should be done in a worker thread.
  29. 29. KEEPING YOUR APP RESPONSIVE How to Avoid ANRs? ➤ Use AsyncTask. ➤ Do not NEVER! call Thread.wait() or Thread.sleep(). ➤ Use IntentService for long process.
  30. 30. FEEDBACK TIPS - WORK IN BACKGROUND If your application is doing work in the background in response to user input, show that progress is being made (such as with a ProgressBar in your UI).
  31. 31. FEEDBACK TIPS - HIGH CALCULATIONS For games specifically, do calculations for moves in a worker thread.
  32. 32. SMART Pense em mobilidade. Lembre que seu app pode aproveitar as principais características dos dispositivos móveis, como câmera e GPS.
  33. 33. USE MOBILE RESOURCES - GEOLOCATION Do not ask where the user is. Instead, use Geolocation resources to discover that.
  34. 34. USE MOBILE RESOURCES - DEEPLINKS If users are accessing your site in mobile, you must to turn possible open app with the same information, but with a better usage experience.
  35. 35. USE MOBILE RESOURCES - PERMISSIONS Request only the necessary permissions! Otherwise, a more suspicious user can get scared and end up giving up performing the installation.
  36. 36. MEÇA! MEÇA! MEÇA! É importante coletar e avaliar algumas informações importantes como: tempo entre os acessos, acessos por dia, tempo de permanência, uso das funcionalidades, etc.
  37. 37. Houston temos um problema!
  38. 38. “Não se pode melhorar aquilo que não se pode medir!
  39. 39. MÉTRICAS DE USO
  40. 40. MÉTRICAS DE CRASH’S E ERROS E PERFORMANCE
  41. 41. “O “app perfeito” não deve ser visto necessariamente como um destino, mas sim como uma jornada.
  42. 42. Obrigada! Sudeste github.com/suelengc
  43. 43. Dúvidas? Sudeste github.com/suelengc
  44. 44. REFERÊNCIAS ➤ http://m.corporate.canaltech.com.br/noticia/apps/Desempenho-um-diferencial-competitivo-para-apps/ ➤ http://exame.abril.com.br/tecnologia/noticias/especialista-do-google-da-dicas-para-o-desenvolvimento-de-um-app-de- sucesso ➤ http://developer.android.com/intl/pt-br/training/material/compatibility.html#CheckVersion ➤ http://developer.android.com/intl/pt-br/training/articles/perf-anr.html#Avoiding ➤ http://developer.android.com/intl/pt-br/tools/debugging/systrace.html ➤ http://developer.android.com/intl/pt-br/tools/debugging/debugging-tracing.html ➤ http://developer.android.com/intl/pt-br/training/articles/memory.html ➤ http://developer.android.com/intl/pt-br/training/articles/perf-tips.html ➤ http://www.statista.com/statistics/266210/number-of-available-applications-in-the-google-play-store/ ➤ http://www.statista.com/statistics/263795/number-of-available-apps-in-the-apple-app-store/ ➤ http://www.tecmundo.com.br/sistema-operacional/60596-ios-android-windows-phone-numeros-gigantes-comparados- infografico.htm ➤ http://tnh1.ne10.uol.com.br/noticia/tecnologia/2015/05/04/322692/como-criar-um-aplicativo-de-sucesso-e-fidelizar- usuarios ➤ http://www.totalcross.com/blog/por-que-o-design-e-importante-para-o-sucesso-do-seu-aplicativo/ ➤ http://www.rankmyapp.com.br/blog/fatores-essenciais-de-um-app-de-sucesso/ ➤ http://opensignal.com/reports/2015/08/android-fragmentation/

×