O sucesso do seu app está nos detalhes!

Preview:

Citation preview

O SUCESSO DO SEU APP ESTÁ NOS DETALHES@SuelenGC

Sudeste

Suelen GCgithub.com/suelengc

@suelengc

2006

2015

SOME NUMBERSExistem mais de 1 milhão de aplicativos no

Google Play.

NÚMERO DE APPS

Agosto/2014

GROWTH OF NUMBER OF APP IN THEGOOGLE PLAY STORE FROM DECEMBER 2009 TO JULY 2015

USUÁRIOS ATIVOS

Agosto/2014

NÃO BASTA TER UM APLICATIVO, ELE

PRECISA SER O MELHOR!

DESIGNEntre 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 the users in the most of cases.

Take advantage of that!

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 and provides performance improvements.

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…

August/2015

August/2015

August/2015

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.

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 will be about 15%-20% faster.

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

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.

USE FOR-EACH LOOP SYNTAX

Use the for-each loop by default, but consider a hand-written counted loop for performance-critical ArrayList iteration.

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.

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 yourself.

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) within 5 seconds.

➤ A BroadcastReceiver hasn't finished executing within 10 seconds.

KEEPING YOUR APP RESPONSIVE

Network or database operations, or computationally expensive calculations such as resizing bitmaps should be done in a worker thread.

KEEPING YOUR APP RESPONSIVE

How to Avoid ANRs?

➤ Use AsyncTask. ➤ Do not NEVER! call Thread.wait()

or Thread.sleep(). ➤ Use IntentService for long process.

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).

FEEDBACK TIPS - HIGH CALCULATIONS

For games specifically, do calculations for moves in a worker thread.

SMARTPense em mobilidade. Lembre que seu app pode

aproveitar as principais características dos dispositivos móveis, como câmera e GPS.

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 same information, but with a better usage experience.

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.

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.

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://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/

Recommended