You are on page 1of 37

hagamos

apps

#b 8j b un z g 20 z 1
2

calidad

Android de

Normalmente los programadores pensamos...

...mi cdigo compila sin errores...

Normalmente pensamos...

... mi aplicacin funciona ! ...

Normalmente pensamos...

... vamos a subirla al market Google Play !!!

ERROR !

los

debemos disear las aplicaciones pensando en el usuario

usuarios

son la

clave

Hay dos tipos de aplicaciones

Aplicaciones que quieren a los usuarios Aplicaciones que odian a los usuarios

Nuestros diseos deben ser


Intuitivos Convenientes Sin sorpresas Invisibles (sutiles) Fciles de aprender (mejor que fciles de usar)

Quin debe disear la aplicacin?


El diseador !!! - los programadores no tenemos ni idea de diseo - Dejaras a un diseador tocar tu cdigo? Diseador y programador deben ir de la mano

Se busca disead@r Android


Que sea usuari@ de Android Que entienda que disear para mviles no es como disear una web Que se haya ledo las guas de estilo grco de Android Que conozca los componentes del UI Que conozca a fondo los tipos de resources

disead@r debes saber que:


Debes olvidarte del pixel perfect Los colores nunca sern igual que los de tu photoshop Necesitaremos maquetar en horizontal y vertical TODAS las pantallas (si lo haces bien nos valdr el mismo) Necesitaremos la misma imagen optimizada para distintas densidades Podemos crear muchos recursos grcos (degradados, formas, capas...) con simples XML En Android casi todo es personalizable Por cada botn (o similar) necesitaremos varios estados (pulsado, normal, seleccionado...) Podemos crear animaciones para nuestra UI escribiendo XML Tenemos componentes de UI para casi todo, pero si no te convencen podemos hacernos los nuestros

si, pero... cmo mejoro mi aplicacin?

Soporta tamaos de pantalla


Los tamaos de pantalla son la mayor limitacin del usuario Da soporte a tus usuarios! Usa <supports-screens> Usa dp en vez de px

No me hagas girar la cabeza

Prepara siempre layouts verticales y horizontales No fuerces el vertical!

A cada cual lo suyo

Mi aplicacin Android debe funcionar exactamente igual que la versin para iPhone

A cada cual lo suyo

Los usuarios esperan que las cosas funcionen al "modo Android" (que no es el mismo que el de iPhone)

No dejes que el usuario se olvide


"El usuario no se acuerda de las apps que tiene" Integra tu aplicacin en el sistema: widgets resultados de bsquedas ltros de intents...

Saca partido de las peculiaridades

disp. mvil = telfono + tablet + .... (no son lo mismo)

online / offline
El usuario no siempre tiene red haz que tu app funcione sin conexin Usa BroadcastReceivers para conocer cuando la conectividad cambia

Usa notificaciones push

Si usas servicios web... no hagas pings todo el rato a tu servidor - Usa versiones de datos - Usa C2DM (noticaciones push)

Permite personalizar
No todos los usuarios son iguales Deja que puedan congurar la app (SharedPreferences)

"toda app debera tener una pantalla de configuracin"

No me toques el back

"No me gusta el botn atrs, lo voy a desactivar o modicar su comportamiento

No me toques el back

Deja el botn "atrs" en paz, los usuarios lo conocen y saben usarlo. No modiques su comportamiento (aprende a manejar la pila de Activity)

Busca la sencillez
"Los usuarios siempre leen las instrucciones" Haz que tu aplicacin sea sencilla Has visto algn libro de O'Reilly sobre Angry Birds?

Ctrl-Z

"Los usuarios siempre saben lo que hacen". El "deshacer es para cobardes"

Ctrl-Z

Permite a los usuarios deshacer (incluso en operaciones de servidor)

Haz que fluya


El usuario espera que cuando haya una accin se produzca una reaccin No bloquees la UI (AsyncTask, Thread, Servicios...) Evita los ANR Entretn a los usuarios (barras de progreso, animaciones...) Permite a los usuarios cancelar/posponer Y hazlo rpido!

Piensa en mvil

"Los usuarios tienen los dedos diminutos"...

claridad ante todo

"Los usuarios son estpidos, quieren simplicidad: un simple botn para hacer algo"

claridad ante todo

Los usuarios quieren claridad, un montn de informacin y un poco de organizacin

Escribe cdigo del bueno


Usa todas las herramientas que tengas a tu alcance: - lint - monkey - traceview - hierarchyviewer - ... Usa test unitarios - Automatiza con Jenkins (matrices de dispositivos)

Optimiza los recursos


Ajusta el tamao de las imgenes al mnimo necesario Siempre que sea posible usa xml en vez de imgenes Simplica la estructura de tus layouts (cuantos menos niveles mejor) Duplica slo lo necesario

Aprovecha las nuevas funcionalidades

Usa ActionBar Usa Fragments Usa Loaders

Fragments: una app varias pantallas

Google Play es una jungla... ... es tu escaparate mundial !


Prepara una buena pgina de app Piensa que imgenes pones Piensa los textos Sube vdeos Tradcela a otros idiomas

preguntas ?

Esto es todo amig@s...


si quieres ms:
La Biblia Android http://developer.android.com/guide/ Gua de estilo http://developer.android.com/design/ Notificaciones Push http://code.google.com/android/c2dm Google IOsched11 (una app que hay que estudiarse) http://code.google.com/p/iosched/
Disclaimer Esta charla est basada en las notas que tom en el Google Dev Festival de Barcelona 2011. Las he complementado con aportaciones propias basadas en mi experiencia laboral de los ltimos aos. Para la realizacin de la misma no se ha maltratado a ningn diseador (aunque alguno de los que me he tropezado se lo merecan)

http://francho.org/about

You might also like