O sucesso do seu app está nos detalhes!
-
Upload
suelen-goularte-carvalho -
Category
Technology
-
view
927 -
download
0
Transcript of O sucesso do seu app está nos detalhes!
![Page 1: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/1.jpg)
O SUCESSO DO SEU APP ESTÁ NOS DETALHES@SuelenGC
Sudeste
![Page 2: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/2.jpg)
Suelen GCgithub.com/suelengc
@suelengc
2006
2015
![Page 3: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/3.jpg)
![Page 4: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/4.jpg)
SOME NUMBERSExistem mais de 1 milhão de aplicativos no
Google Play.
![Page 5: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/5.jpg)
NÚMERO DE APPS
Agosto/2014
![Page 6: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/6.jpg)
GROWTH OF NUMBER OF APP IN THEGOOGLE PLAY STORE FROM DECEMBER 2009 TO JULY 2015
![Page 7: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/7.jpg)
USUÁRIOS ATIVOS
Agosto/2014
![Page 8: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/8.jpg)
NÃO BASTA TER UM APLICATIVO, ELE
PRECISA SER O MELHOR!
![Page 9: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/9.jpg)
DESIGNEntre um feio e um bonito que faça a mesma
coisa, os usuários irão ficar com o bonito!
![Page 10: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/10.jpg)
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!
![Page 11: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/11.jpg)
APPLY THE MATERIAL THEME
To apply the material theme in your app, specify a style that inherits from android:Theme.Material
![Page 12: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/12.jpg)
USE CARDS
CardView lets you show pieces of information inside cards with a consistent look across apps.
![Page 13: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/13.jpg)
USE LISTS WITH BEST PERFORMANCE
RecyclerView is a more pluggable version of ListView that supports different layout types and provides performance improvements.
![Page 14: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/14.jpg)
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…
![Page 15: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/15.jpg)
August/2015
![Page 16: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/16.jpg)
August/2015
![Page 17: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/17.jpg)
August/2015
![Page 18: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/18.jpg)
![Page 19: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/19.jpg)
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.
![Page 20: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/20.jpg)
PERFORMANCE of users have uninstalled an app after a negative experience.90%
![Page 21: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/21.jpg)
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.
![Page 22: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/22.jpg)
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
![Page 23: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/23.jpg)
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.
![Page 24: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/24.jpg)
USE FOR-EACH LOOP SYNTAX
Use the for-each loop by default, but consider a hand-written counted loop for performance-critical ArrayList iteration.
![Page 25: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/25.jpg)
CONSIDER PACKAGE ACCESS INSTEAD OFPRIVATE ACCESS WITH PRIVATE INNER CLASSES
Declare fields and methods accessed by inner classes to have package access, rather than private access.
![Page 26: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/26.jpg)
AVOID USING FLOATING-POINT
As a rule of thumb, floating-point is about 2x slower than integer on Android-powered devices.
![Page 27: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/27.jpg)
KNOW AND USE THE LIBRARIES
Do not reinvent the wheel. Know what native API can offer to you before implementing by yourself.
![Page 28: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/28.jpg)
FEEDBACK is the time that the
most people have patience to wait a feedback from apps.
200ms
![Page 29: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/29.jpg)
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.
![Page 30: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/30.jpg)
KEEPING YOUR APP RESPONSIVE
Network or database operations, or computationally expensive calculations such as resizing bitmaps should be done in a worker thread.
![Page 31: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/31.jpg)
KEEPING YOUR APP RESPONSIVE
How to Avoid ANRs?
➤ Use AsyncTask. ➤ Do not NEVER! call Thread.wait()
or Thread.sleep(). ➤ Use IntentService for long process.
![Page 32: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/32.jpg)
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).
![Page 33: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/33.jpg)
FEEDBACK TIPS - HIGH CALCULATIONS
For games specifically, do calculations for moves in a worker thread.
![Page 34: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/34.jpg)
SMARTPense em mobilidade. Lembre que seu app pode
aproveitar as principais características dos dispositivos móveis, como câmera e GPS.
![Page 35: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/35.jpg)
USE MOBILE RESOURCES - GEOLOCATION
Do not ask where the user is. Instead, use Geolocation resources to discover that.
![Page 36: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/36.jpg)
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.
![Page 37: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/37.jpg)
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.
![Page 38: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/38.jpg)
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.
![Page 39: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/39.jpg)
Houston temos um problema!
![Page 40: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/40.jpg)
“Não se pode melhorar aquilo que não se pode medir!
![Page 41: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/41.jpg)
MÉTRICAS DE USO
![Page 42: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/42.jpg)
MÉTRICAS DE CRASH’S E ERROS E PERFORMANCE
![Page 43: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/43.jpg)
“O “app perfeito” não deve ser visto necessariamente como um destino, mas sim como uma jornada.
![Page 44: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/44.jpg)
Obrigada!
Sudeste
github.com/suelengc
![Page 45: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/45.jpg)
Dúvidas?
Sudeste
github.com/suelengc
![Page 46: O sucesso do seu app está nos detalhes!](https://reader036.fdocument.pub/reader036/viewer/2022062401/58ed0cc01a28ab0b348b4667/html5/thumbnails/46.jpg)
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/