8. NÃO BASTA TER UM
APLICATIVO, ELE
PRECISA SER O MELHOR!
9. DESIGN
Entre um feio e um bonito que faça a mesma
coisa, os usuários irão ficar com o bonito!
10. 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!
11. APPLY THE MATERIAL THEME
To apply the material theme in your
app, specify a style that inherits from
android:Theme.Material
12. USE CARDS
CardView lets you show pieces of
information inside cards with a
consistent look across apps.
13. USE LISTS WITH BEST PERFORMANCE
RecyclerView is a more pluggable
version of ListView that supports
different layout types and provides
performance improvements.
14. 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…
19. 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.
21. 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.
22. 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
23. 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.
24. USE FOR-EACH LOOP SYNTAX
Use the for-each loop by default, but
consider a hand-written counted loop
for performance-critical ArrayList
iteration.
25. 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.
26. AVOID USING FLOATING-POINT
As a rule of thumb, floating-point is
about 2x slower than integer on
Android-powered devices.
27. KNOW AND USE THE LIBRARIES
Do not reinvent the wheel. Know
what native API can offer to you
before implementing by yourself.
28. FEEDBACK
is the time that the
most people have patience to wait a
feedback from apps.
200ms
29. 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.
30. KEEPING YOUR APP RESPONSIVE
Network or database operations, or
computationally expensive calculations
such as resizing bitmaps should be
done in a worker thread.
31. KEEPING YOUR APP RESPONSIVE
How to Avoid ANRs?
➤ Use AsyncTask.
➤ Do not NEVER! call Thread.wait()
or Thread.sleep().
➤ Use IntentService for long process.
32. 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).
33. FEEDBACK TIPS - HIGH CALCULATIONS
For games specifically, do calculations for
moves in a worker thread.
34. SMART
Pense em mobilidade. Lembre que seu app pode
aproveitar as principais características dos
dispositivos móveis, como câmera e GPS.
35. USE MOBILE RESOURCES - GEOLOCATION
Do not ask where the user is. Instead,
use Geolocation resources to discover
that.
36. 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.
37. 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.
38. 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.