SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
Buenas prácticas en el
desarrollo Android
¿Quiénes somos?
Androcode.es
Cómo desarrollar
aplicaciones para Android
Principios básicos
Principios básicos

Java y Dalvik
Activities, Services, Intents, ...
Recursos (la clase R)
Cómo desarrollar buenas
aplicaciones para Android
Principios de diseño
Encántame

Simplifica mi vida

Hazme asombroso
Principios de diseño
Encántame

Simplifica mi vida

Hazme asombroso
Encántame
Sorprende al usuario
Los objetos reales son más divertidos
Permite la personalización
Aprende del usuario
Principios de diseño
Encántame

Simplifica mi vida

Hazme asombroso
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
Principios de diseño
Encántame

Simplifica mi vida

Hazme asombroso
Hazme asombroso
Proporciona trucos
Sé educado y claro
Divide tareas complejas
Haz tú el trabajo pesado
Las cosas importantes hazlas rápido
Patrones de diseño
Action Bar

De los elementos más importantes
Consistente con el sistema
Recoge acciones comunes
Ayuda a la navegación
Action Bar

1. Icono o logo
2. Control de vista / Título
3. Action Items
4. Menú
Action Bar
Up vs Back
Compatibilidad
Las teclas hardware desaparecen,
pero entonces...
Compatibilidad
¿Y qué ocurre con los
móviles con teclas
físicas?
Gestos
Pulsar
Mantener pulsado
Deslizar
Arrastrar
Doble pulsación
Pellizcar
Gestos
Pulsar
Mantener pulsado
Deslizar
Arrastrar
Doble pulsación
Pellizcar
Gestos
Pulsar
Mantener pulsado
Deslizar
Arrastrar
Doble pulsación
Pellizcar
Gestos
Pulsar
Mantener pulsado
Deslizar
Arrastrar
Doble pulsación
Pellizcar
Gestos
Pulsar
Mantener pulsado
Deslizar (para desechar)
Arrastrar
Doble pulsación
Pellizcar
Gestos
Pulsar
Mantener pulsado
Deslizar
Arrastrar
Doble pulsación
Pellizcar
Gestos
Pulsar
Mantener pulsado
Deslizar
Arrastrar
Doble pulsación
Pellizcar
Gestos
Pulsar
Mantener pulsado
Deslizar
Arrastrar
Doble pulsación
Pellizcar
Notificaciones

Avisos fuera de contexto
Indicar acción en segundo plano
Acceso rápido a acciones
Parte fundamental de Android
Notificaciones sí... pero bien

Ojo con el flujo
¿Cuándo debo lanzar una?
Establece prioridad, sin ser egoísta 4.1+
Notificaciones enriquecidas 4.1+
Antipatrones
Cómo NO hacer las cosas bien
Interfaz iOS
Botón atrás o salir
Controles brillantes
Iconos copiados
Pestañas en la parte baja
Flechas en elementos de listas
Interfaz iOS
Botón atrás o salir
Controles brillantes
Iconos copiados
Pestañas en la parte baja
Flechas en elementos de listas
Interfaz iOS
Botón atrás o salir
Controles brillantes
Iconos copiados
Pestañas en la parte baja
Flechas en elementos de listas
Interfaz iOS
Botón atrás o salir
Controles brillantes
Iconos copiados
Pestañas en la parte baja
Flechas en elementos de listas
Interfaz iOS
Botón atrás o salir
Controles brillantes
Iconos copiados
Pestañas en la parte baja
Flechas en elementos de listas
Interfaz iOS
Botón atrás o salir
Controles brillantes
Iconos copiados
Pestañas en la parte baja
Flechas en elementos de listas
Interfaz iOS
Botón atrás o salir
Controles brillantes
Iconos copiados
Pestañas en la parte baja
Flechas en elementos de listas
Diálogos
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
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
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
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
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
¿Cuándo usar diálogos?
Consecuencias significantes
Puede darle por error y no puede deshacerse
Lo que no se ve
Más que buena
No todo es interfaz
Estar al día
Ser adivina
Estar adaptada
Comportarse suavemente
Cómo no agotar la batería

Push vs Pull
Más es menos
Adapta tus descargas
Desarrollo
Consejos sobre cómo mejorar el
desarrollo
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/
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
Support Library
v4
Fragment, ListFragment, DialogFragment
FragmentManager, FragmentTransaction
FragmentPagerAdapter, FragmentStatePagerAdapter, FragmentTabHost
LoaderManager, Loader, AsyncTaskLoader, CursorLoader
NotificationCompat, ShareCompat, TaskStackBuilder

GridLayout

v7

FragmentCompat, FragmentPagerAdapter
FragmentStatePagerAdapter, FragmentTabHost

v13
ActionBar Sherlock
Más librerías
androidviews.net

theultimateandroidlibrary.com
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!
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
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
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
Datos externos
Conectar
o  java.net
o  apache HTTP Client
Consumir
o  org.json
o  org.w3c.dom
o  org.xml.sax
Datos externos
Conectar
o  java.net
o  apache HTTP Client
¡TRUCAZO!
Para tratar HTML como XML
Consumir
tagsoup
o  org.json
¡Viene incluido!
o  org.w3c.dom
o  org.xml.sax
Recursos
Recursos everywhere!
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/
Enlaces

developers.android.com/design
Enlaces

developers.android.com/develop
Enlaces

androidniceties.tumblr.com
Enlaces

android-app-patterns.com
Enlaces

androcode.es/tag/herramientas/
Libros
¿Preguntas?

Mais conteúdo relacionado

Mais procurados

Mais procurados (8)

Android
Android Android
Android
 
Tutorial de eclipse_completo-a
Tutorial de eclipse_completo-aTutorial de eclipse_completo-a
Tutorial de eclipse_completo-a
 
Lizbeth Anahi zambrano Santos 402
Lizbeth Anahi zambrano Santos 402Lizbeth Anahi zambrano Santos 402
Lizbeth Anahi zambrano Santos 402
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
GWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracaso
 
Taller Windows 10 TLP Innova
Taller Windows 10 TLP InnovaTaller Windows 10 TLP Innova
Taller Windows 10 TLP Innova
 
Monik
MonikMonik
Monik
 
Creando Aplicaciones UWP para Xbox One
Creando Aplicaciones UWP para Xbox OneCreando Aplicaciones UWP para Xbox One
Creando Aplicaciones UWP para Xbox One
 

Destaque

Arquitectura basada en objetos de computación distribuida en la configuración...
Arquitectura basada en objetos de computación distribuida en la configuración...Arquitectura basada en objetos de computación distribuida en la configuración...
Arquitectura basada en objetos de computación distribuida en la configuración...Tensor
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Germania Rodriguez
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionCarlos A. Iglesias
 
GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group PresentationCarlos A. Iglesias
 

Destaque (10)

Curso desarrollo en android
Curso desarrollo en androidCurso desarrollo en android
Curso desarrollo en android
 
Arquitectura basada en objetos de computación distribuida en la configuración...
Arquitectura basada en objetos de computación distribuida en la configuración...Arquitectura basada en objetos de computación distribuida en la configuración...
Arquitectura basada en objetos de computación distribuida en la configuración...
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL
 
Effective Android UI - spanish
Effective Android UI - spanishEffective Android UI - spanish
Effective Android UI - spanish
 
Software design patterns on Android Spanish
Software design patterns on Android SpanishSoftware design patterns on Android Spanish
Software design patterns on Android Spanish
 
GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 

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

Tutoriales eclipse(2)
Tutoriales eclipse(2)Tutoriales eclipse(2)
Tutoriales eclipse(2)ivan ramirez
 
Diseno de Interfaces (2011)
Diseno de Interfaces (2011)Diseno de Interfaces (2011)
Diseno de Interfaces (2011)Victor Tisnado
 
Taller de introducción a iOS development
Taller de introducción a iOS developmentTaller de introducción a iOS development
Taller de introducción a iOS developmentrafaecheve
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilDaniel Garcia (a.k.a cr0hn)
 
¡¡Android es cool!!
¡¡Android es cool!!¡¡Android es cool!!
¡¡Android es cool!!ficiverson
 
0032 aplicaciones para_dispositivos_ios
0032 aplicaciones para_dispositivos_ios0032 aplicaciones para_dispositivos_ios
0032 aplicaciones para_dispositivos_iosGeneXus
 
Uso de TICs en el Área de EPT.pptx
Uso de TICs en el Área de EPT.pptxUso de TICs en el Área de EPT.pptx
Uso de TICs en el Área de EPT.pptxLucyCarmenQuintoSana
 
Software netbeans-ide-7.2
Software netbeans-ide-7.2Software netbeans-ide-7.2
Software netbeans-ide-7.2Tania Tellez
 
Diapositivas Software netbeans-ide-7.2
Diapositivas Software netbeans-ide-7.2Diapositivas Software netbeans-ide-7.2
Diapositivas Software netbeans-ide-7.2Chistian Hernandez
 
Taller SOLID Refactor
Taller SOLID RefactorTaller SOLID Refactor
Taller SOLID RefactorAgile Spain
 
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...Alan Cárdenas
 
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...Alan Cárdenas
 
Comunicador Multimedia
Comunicador MultimediaComunicador Multimedia
Comunicador MultimediaHector Maida
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 

Semelhante a Buenas prácticas en el desarrollo Android - Imaginática 2013 (20)

TUTORIAL DE ECLIPSE
TUTORIAL DE ECLIPSETUTORIAL DE ECLIPSE
TUTORIAL DE ECLIPSE
 
Developing for Android (The movie)
Developing for Android (The movie)Developing for Android (The movie)
Developing for Android (The movie)
 
Tutoriales eclipse(2)
Tutoriales eclipse(2)Tutoriales eclipse(2)
Tutoriales eclipse(2)
 
Diseno de Interfaces (2011)
Diseno de Interfaces (2011)Diseno de Interfaces (2011)
Diseno de Interfaces (2011)
 
Taller de introducción a iOS development
Taller de introducción a iOS developmentTaller de introducción a iOS development
Taller de introducción a iOS development
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácil
 
Devs.info
Devs.infoDevs.info
Devs.info
 
Tutorial de eclipse completo programacion
Tutorial de eclipse completo programacionTutorial de eclipse completo programacion
Tutorial de eclipse completo programacion
 
¡¡Android es cool!!
¡¡Android es cool!!¡¡Android es cool!!
¡¡Android es cool!!
 
0032 aplicaciones para_dispositivos_ios
0032 aplicaciones para_dispositivos_ios0032 aplicaciones para_dispositivos_ios
0032 aplicaciones para_dispositivos_ios
 
Uso de TICs en el Área de EPT.pptx
Uso de TICs en el Área de EPT.pptxUso de TICs en el Área de EPT.pptx
Uso de TICs en el Área de EPT.pptx
 
Manual de eclipse
Manual de eclipseManual de eclipse
Manual de eclipse
 
Software netbeans-ide-7.2
Software netbeans-ide-7.2Software netbeans-ide-7.2
Software netbeans-ide-7.2
 
Software netbeans-ide-7.2
Software netbeans-ide-7.2Software netbeans-ide-7.2
Software netbeans-ide-7.2
 
Diapositivas Software netbeans-ide-7.2
Diapositivas Software netbeans-ide-7.2Diapositivas Software netbeans-ide-7.2
Diapositivas Software netbeans-ide-7.2
 
Taller SOLID Refactor
Taller SOLID RefactorTaller SOLID Refactor
Taller SOLID Refactor
 
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
 
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
A manual de_usuario_de_eclipse_2_2_.pptx;filename_utf-8_manual_de_usuario_de_...
 
Comunicador Multimedia
Comunicador MultimediaComunicador Multimedia
Comunicador Multimedia
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Último (10)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

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