Buenas prácticas en el desarrollo Android - Imaginática 2013

70
Buenas prácticas en el desarrollo Android

description

Repasaremos las principales recomendaciones para hacer aplicaciones coherentes con el ecosistema Android, aprovechando todos los recursos a nuestra disposición, y que resulten en una experiencia de usuario lo más placentera posible. Básicamente, os conteremos las claves para hacer buenas aplicaciones. No será de alto nivel técnico, por lo que puede ser apta para cualquiera interesado en el mundo de las aplicaciones móviles.

Transcript of Buenas prácticas en el desarrollo Android - Imaginática 2013

Page 1: Buenas prácticas en el desarrollo Android - Imaginática 2013

Buenas prácticas en el desarrollo Android

Page 2: Buenas prácticas en el desarrollo Android - Imaginática 2013

¿Quiénes somos? Androcode.es

Page 3: Buenas prácticas en el desarrollo Android - Imaginática 2013
Page 4: Buenas prácticas en el desarrollo Android - Imaginática 2013
Page 5: Buenas prácticas en el desarrollo Android - Imaginática 2013
Page 6: Buenas prácticas en el desarrollo Android - Imaginática 2013

Cómo desarrollar aplicaciones para Android

Principios básicos

Page 7: Buenas prácticas en el desarrollo Android - Imaginática 2013

Principios básicos

Java y Dalvik

Activities, Services, Intents, ...

Recursos (la clase R)

Page 8: Buenas prácticas en el desarrollo Android - Imaginática 2013

Cómo desarrollar buenas aplicaciones para Android

Page 9: Buenas prácticas en el desarrollo Android - Imaginática 2013

Principios de diseño

Encántame

Simplifica mi vida

Hazme asombroso

Page 10: Buenas prácticas en el desarrollo Android - Imaginática 2013

Principios de diseño

Encántame

Simplifica mi vida

Hazme asombroso

Page 11: Buenas prácticas en el desarrollo Android - Imaginática 2013

Encántame

Sorprende al usuario

Los objetos reales son más divertidos

Permite la personalización

Aprende del usuario

Page 12: Buenas prácticas en el desarrollo Android - Imaginática 2013

Principios de diseño

Encántame

Simplifica mi vida

Hazme asombroso

Page 13: Buenas prácticas en el desarrollo Android - Imaginática 2013

Simplifica mi vida

Sé simple, imágenes mejor que palabras

Muestra sólo lo que necesita el usuario

Decide por él, pero déjale la última palabra

No pierdas al usuario ni sus cosas

Interrumpe sólo si es necesario

Page 14: Buenas prácticas en el desarrollo Android - Imaginática 2013

Principios de diseño

Encántame

Simplifica mi vida

Hazme asombroso

Page 15: Buenas prácticas en el desarrollo Android - Imaginática 2013

Hazme asombroso

Proporciona trucos

Sé educado y claro

Divide tareas complejas

Haz tú el trabajo pesado

Las cosas importantes hazlas rápido

Page 16: Buenas prácticas en el desarrollo Android - Imaginática 2013

Patrones de diseño

Page 17: Buenas prácticas en el desarrollo Android - Imaginática 2013

Action Bar

De los elementos más importantes

Consistente con el sistema

Recoge acciones comunes

Ayuda a la navegación

Page 18: Buenas prácticas en el desarrollo Android - Imaginática 2013

Action Bar

1. Icono o logo

2. Control de vista / Título

3. Action Items

4. Menú

Page 19: Buenas prácticas en el desarrollo Android - Imaginática 2013

Action Bar

Page 20: Buenas prácticas en el desarrollo Android - Imaginática 2013

Up vs Back

Page 21: Buenas prácticas en el desarrollo Android - Imaginática 2013

Compatibilidad

Las teclas hardware desaparecen, pero entonces...

Page 22: Buenas prácticas en el desarrollo Android - Imaginática 2013

Compatibilidad

¿Y qué ocurre con los móviles con teclas físicas?

Page 23: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 24: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 25: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 26: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 27: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar (para desechar)

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 28: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 29: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 30: Buenas prácticas en el desarrollo Android - Imaginática 2013

Pulsar

Mantener pulsado

Deslizar

Arrastrar

Doble pulsación

Pellizcar

Gestos

Page 31: Buenas prácticas en el desarrollo Android - Imaginática 2013

Avisos fuera de contexto

Indicar acción en segundo plano

Acceso rápido a acciones

Parte fundamental de Android

Notificaciones

Page 32: Buenas prácticas en el desarrollo Android - Imaginática 2013

Ojo con el flujo

¿Cuándo debo lanzar una?

Establece prioridad, sin ser egoísta 4.1+

Notificaciones enriquecidas 4.1+

Notificaciones sí... pero bien

Page 33: Buenas prácticas en el desarrollo Android - Imaginática 2013

Antipatrones

Cómo NO hacer las cosas bien

Page 34: Buenas prácticas en el desarrollo Android - Imaginática 2013

Botón atrás o salir

Controles brillantes

Iconos copiados

Pestañas en la parte baja

Flechas en elementos de listas

Interfaz iOS

Page 35: Buenas prácticas en el desarrollo Android - Imaginática 2013

Botón atrás o salir

Controles brillantes

Iconos copiados

Pestañas en la parte baja

Flechas en elementos de listas

Interfaz iOS

Page 36: Buenas prácticas en el desarrollo Android - Imaginática 2013

Botón atrás o salir

Controles brillantes

Iconos copiados

Pestañas en la parte baja

Flechas en elementos de listas

Interfaz iOS

Page 37: Buenas prácticas en el desarrollo Android - Imaginática 2013

Botón atrás o salir

Controles brillantes

Iconos copiados

Pestañas en la parte baja

Flechas en elementos de listas

Interfaz iOS

Page 38: Buenas prácticas en el desarrollo Android - Imaginática 2013

Botón atrás o salir

Controles brillantes

Iconos copiados

Pestañas en la parte baja

Flechas en elementos de listas

Interfaz iOS

Page 39: Buenas prácticas en el desarrollo Android - Imaginática 2013

Botón atrás o salir

Controles brillantes

Iconos copiados

Pestañas en la parte baja

Flechas en elementos de listas

Interfaz iOS

Page 40: Buenas prácticas en el desarrollo Android - Imaginática 2013

Botón atrás o salir

Controles brillantes

Iconos copiados

Pestañas en la parte baja

Flechas en elementos de listas

Interfaz iOS

Page 41: Buenas prácticas en el desarrollo Android - Imaginática 2013

o  No abuses de los diálogos o  Muchos casos son evitables o  De carga bloqueantes o  De error o  De promoción o  Toasts

Diálogos

Page 42: Buenas prácticas en el desarrollo Android - Imaginática 2013

o  No abuses de los diálogos o  Muchos casos son evitables o  De carga bloqueantes o  De error o  De promoción o  Toasts

Diálogos

Page 43: Buenas prácticas en el desarrollo Android - Imaginática 2013

o  No abuses de los diálogos o  Muchos casos son evitables o  De carga bloqueantes o  De error o  De promoción o  Toasts

Diálogos

Page 44: Buenas prácticas en el desarrollo Android - Imaginática 2013

o  No abuses de los diálogos o  Muchos casos son evitables o  De carga bloqueantes o  De error o  De promoción o  Toasts

Diálogos

Page 45: Buenas prácticas en el desarrollo Android - Imaginática 2013

o  No abuses de los diálogos o  Muchos casos son evitables o  De carga bloqueantes o  De error o  De promoción o  Toasts

Diálogos

Page 46: Buenas prácticas en el desarrollo Android - Imaginática 2013

Consecuencias significantes Puede darle por error y no puede deshacerse

¿Cuándo usar diálogos?

Page 47: Buenas prácticas en el desarrollo Android - Imaginática 2013

Lo que no se ve

Más que buena

Page 48: Buenas prácticas en el desarrollo Android - Imaginática 2013

No todo es interfaz

Estar al día

Ser adivina

Estar adaptada

Comportarse suavemente

Page 49: Buenas prácticas en el desarrollo Android - Imaginática 2013

Cómo no agotar la batería

Push vs Pull

Más es menos

Adapta tus descargas

Page 50: Buenas prácticas en el desarrollo Android - Imaginática 2013

Desarrollo

Consejos sobre cómo mejorar el desarrollo

Page 51: Buenas prácticas en el desarrollo Android - Imaginática 2013

Entorno de desarrollo

Haznos un favor, usa Maven o  Proceso de construcción estándar o  Enfocado en la automatización o  Convención sobre configuración o  Gestión de dependencias o  Pruebas

https://code.google.com/p/maven-android-plugin/

Page 52: Buenas prácticas en el desarrollo Android - Imaginática 2013

Eclipse o IntelliJ IDEA

Eclipse o  Soporte oficial o  Más conocido

IntelliJ IDEA o  Mejor soporte Maven o  Utilidades para el desarrollo o  Más estable

Page 53: Buenas prácticas en el desarrollo Android - Imaginática 2013

Support Library

Fragment, ListFragment, DialogFragment FragmentManager, FragmentTransaction FragmentPagerAdapter, FragmentStatePagerAdapter, FragmentTabHost LoaderManager, Loader, AsyncTaskLoader, CursorLoader NotificationCompat, ShareCompat, TaskStackBuilder

FragmentCompat, FragmentPagerAdapter FragmentStatePagerAdapter, FragmentTabHost

v4

GridLayout v7

v13

Page 54: Buenas prácticas en el desarrollo Android - Imaginática 2013

ActionBar Sherlock

Page 55: Buenas prácticas en el desarrollo Android - Imaginática 2013

Más librerías

androidviews.net

theultimateandroidlibrary.com

Page 56: Buenas prácticas en el desarrollo Android - Imaginática 2013

Ejecución de tareas

Threads y Handlers o  Los viejos rockeros nunca mueren

AsyncTask o  Probablemente la técnica más utilizada

o  Ya no molan: ciclo de vida, ejecución en serie/paralelo, pérdidas de información,...

Loaders & Services o  Yeah!

Page 57: Buenas prácticas en el desarrollo Android - Imaginática 2013

Opciones básicas de almacenamiento

Shared Preferences o  Perfectas para las preferencias o  ¡Ojo! el resultado es un fichero XML, no abuses

Internal Storage o  Privado para tu aplicación

External Storage o  En principio visible para todos o  Comprueba siempre el estado

Page 58: Buenas prácticas en el desarrollo Android - Imaginática 2013

Opciones básicas de almacenamiento

Shared Preferences o  Perfectas para las preferencias o  ¡Ojo! el resultado es un fichero XML, no abuses

Internal Storage o  Privado para tu aplicación

External Storage o  En principio visible para todos o  Comprueba siempre el estado

Nunca uses rutas absolutas

Usa los métodos que proporciona

android

Page 59: Buenas prácticas en el desarrollo Android - Imaginática 2013

Bases de Datos

Soporte completo de SQLite pero... ¿Porqué escribir SQL?

ORMLite Hay muchas, muchísimas Si puedes usa ContentProvider o  Patrón fachada

o  Puedes "publicar" tus datos o  Gestión de multi-hilo y conexiones

Page 60: Buenas prácticas en el desarrollo Android - Imaginática 2013

Datos externos

Conectar o  java.net o  apache HTTP Client Consumir o  org.json o  org.w3c.dom o  org.xml.sax

Page 61: Buenas prácticas en el desarrollo Android - Imaginática 2013

Datos externos

Conectar o  java.net o  apache HTTP Client Consumir o  org.json o  org.w3c.dom o  org.xml.sax

¡TRUCAZO! Para tratar HTML como XML

tagsoup ¡Viene incluido!

Page 62: Buenas prácticas en el desarrollo Android - Imaginática 2013

Recursos

Recursos everywhere!

Page 63: Buenas prácticas en el desarrollo Android - Imaginática 2013

Enlaces

developers.android.com/design developers.android.com/develop youtube.com/user/androiddevelopers

App Clini, ADiA, ...

android-app-patterns.com androidniceties.tumblr.com androcode.es/tag/herramientas/

Page 64: Buenas prácticas en el desarrollo Android - Imaginática 2013

Enlaces

developers.android.com/design

Page 65: Buenas prácticas en el desarrollo Android - Imaginática 2013

Enlaces

developers.android.com/develop

Page 66: Buenas prácticas en el desarrollo Android - Imaginática 2013

Enlaces

androidniceties.tumblr.com

Page 67: Buenas prácticas en el desarrollo Android - Imaginática 2013

Enlaces

android-app-patterns.com

Page 68: Buenas prácticas en el desarrollo Android - Imaginática 2013

Enlaces

androcode.es/tag/herramientas/

Page 69: Buenas prácticas en el desarrollo Android - Imaginática 2013

Libros

Page 70: Buenas prácticas en el desarrollo Android - Imaginática 2013

¿Preguntas?