Introducción al desarrollo Android, Sesión 1

40
www.solusoft.es Introducción al desarrollo en Android

description

Slides para la primera sesión de formación en plataformas móviles (Android) en UC3M

Transcript of Introducción al desarrollo Android, Sesión 1

Page 1: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Introducción al desarrollo en Android

Page 2: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Indiceconociendoandroid

Qué es AndroidUn poco de historia

Android en el mundoVentajas y desventajasDesarrollar en Android

Introducción a la teoríaPatrón: Modelo, Vista, ControladorSensores y localizaciónFicheros AndroidPublicarTipsReferencia

Page 3: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

La evolución libre del mundo móvil…quéesandroid

Es un Sistema Operativo libre, gratuito y multiplataforma, especialmente diseñado para dispositivos móviles.

Google compró en 2005 Android Inc., La empresa que desarrollaba.

Se publicó antes el sistema operativo que el primer móvil.

En 2010 se situó como el sistema operativo móvil más vendido del mundo.

Page 4: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

La evolución libre del mundo móvil…androidenelmundo

En 2012 domina el 68% del mercado, con 500 millones de dispositivos activos y 1.3 millones de activaciones al día.

Page 5: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

La evolución libre del mundo móvil…ventajasandroid

•Es libre (licencia Apache)•Es gratis.•Rápida resolución de errores.•Permite adaptación a los terminales.•Buenas herramientas de desarrollo.•Gran flexibilidad para los usuarios.•Personalizable.•Gran comunidad.•Terminales económicos. •Multitarea.•Más que móviles.

Page 6: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

La evolución libre del mundo móvil…desventajasandroid

•FRAGMENTACIÓN• Versiones• Hardware• Fabricantes

•Caducidad capacidades Hardware.•Batería•Reinicios•Market poco exigente• Seguridad• Apariencia

•Aplicaciones mal acabadas

Page 7: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

La evolución libre del mundo móvil…desventajasandroid

Page 8: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Introducción al desarrollodesarrollarenandroid

Page 9: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Instalando el SDK…desarrollarenandroid

•Descargar e instalar Android SDK• Instalar Java SE Development

Kit•Instalar Eclipse• Instalar ADT Plugin

•Ejecutar Android SDK Manager•¡Comenzar!

http://developer.android.com/sdk/installing/index.html

•No es necesario registrarse•Es conveniente leer las guías de diseño

Page 10: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Esqueleto de un proyecto sencillo…desarrollarenandroid

Lo más relevante

•/src/•/res/drawable/•/res/layout/•/res/values/•AndroidManifest•Build Path•Otros…

Page 11: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Patrón MVC…desarrollarenandroid

Page 12: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Modelomvcandroid

Es el Sistema de Gestión de Datos y de Lógica de negocio.

•Java (Dalvik)•Acceso a datos• SQLite• Web Services

•Depende de las necesidades de información de la aplicación•Lógica de negocio

Page 13: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Vistamvcandroid

Es la interfaz con la que interactuará el usuario.

•Layouts XML•Parecido a HTML…

Externalizar…

•Estilos•Colores•Drawables•Strings (Localización)•Animaciones

Page 14: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Vistamvcandroid

Page 15: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Controladormvcandroid

Clases Java que ejecutan operaciones del modelo en función de las acciones que el usuario realiza en la interfaz.•Eventos•Hilos•Representación de información•Recolección de datos•Navegación entre Actividades

Page 16: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Controladormvcandroid

Actividades, Tareas e Intents (con y sin respuesta).

Page 17: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Controladormvcandroid

Page 18: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Tipos de componentecomponentesandroid

ActivitiesRepresentan un sola pantalla con interfaz de usuario.

ServicesEs un componente que se ejecuta en segundo plano realizando tareas largas o realizando procesos remotos.

Content ProvidersExpone y maneja colecciones de datos de aplicación.Broadcast receiversEs un componente que responde ante mensajes broadcast emitidos por el sistema o por otros componentes.

¡Declaración de componentes!

Page 19: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Particularidades de androiddesarrollarenandroid

Page 20: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Tu android es un dispositivo sensiblesensoresandroid

La mayoría de dispositivos Android tienen sensores Hardware o Software (sintéticos) que permiten realizar distintas mediciones.•Sensores de movimiento• Acelerómetros, gravedad,

giroscópios…•Sensores ambientales• Temperatura del aire, presión,

iluminación, humedad…•Sensores de posición• Sensores de orientación (GPS)

y magnéticos.

Para usarlos…•Determinar que están disponibles•Determinar sus capacidades y rangos…•Suscribirse al monitor de eventos del sensor para detectar sus actualizaciones.

Page 21: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Desafíos de la localizaciónsensoresandroid

Manejar las tecnologías de localización puede ser complicado, hay muchos factores en la lectura de la posición que pueden generar errores.•Multitud de orígenes• GPS, Cell-ID (GSM), WiFi…

•Movimiento del usuario• Ya que la posición cambia, es

necesario recalcular la localización a menudo

•Precisión cambiante• Las posiciones de cara origen

no tienen una precisión estable.

Page 22: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

AndroidManifest.xmlficherosandroid

AndroidManifest.xmlPresenta información esencial acerca de la aplicación que android debe conocer antes de ejecutarla.

•Obligatorio en la raíz de la app.•Define:• Nombre del paquete• Componentes• Permisos de acceso al API• Permisos de acceso al APP• Nivel del API de Android• Librerías

Page 23: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

AndroidManifest.xmlficherosandroid

Page 24: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

strings.xmlficherosandroid

strings.xmlPermite separar los recursos de tipo cadena de texto de tu aplicación y habilita la localización.

•Uso muy recomendado (casi obligatorio)•El nombre es opcional•Puede dividirse en varios ficheros•Disponible en tiempo de compilación

Page 25: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

strings.xmlficherosandroid

Page 26: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

layout.xmlficherosandroid

layout.xmlEstructura visual de una interfaz de usuario.

•Permite separar presentación de código de aplicación.•Nombre distinto para cada vista•Dos caminos para su declaración• XML• Runtime

•Ojo a los recursos en librerias•Es posible crear varios por tamaño de pantalla, orientaciones o idiomas.

Page 27: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

layout.xmlficherosandroid

Page 28: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

layout.xmlficherosandroid

Page 29: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

styles.xmlficherosandroid

styles.xmlColección de propiedades que especifican el aspecto y el formato de una View o una ventana.

•Es el equivalente a CSS.•Permite separar el contenido de su aspecto.•El nombre del fichero es indiferente.•Permite herencia de estilos.•También podemos hablar de Themes•Android define algunos estilos y temas por defecto.

Page 30: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

styles.xmlficherosandroid

Page 31: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

color.xmlficherosandroid

color.xmlColección de propiedades que especifican valores para colores de la aplicación.

•El nombre del fichero es indiferente•Permite reutilizar fácilmente constantes de color.•Permite hacer cambios rápidos en el aspecto de la aplicación.•Android define una serie de colores por defecto.

Page 32: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

color.xmlficherosandroid

Page 33: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Cada cosa en su sitioficherosandroid

styles.xml

color.xml drawables

Cómo

layout.xml

strings.xml

Qué

ActivityCuándo

Page 34: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Es hora de probardemotime

Page 35: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Llegando a los usuariospublicarapp

Generar el APKExportar la aplicación con el SDK o el IDE.Firmar el APKFirma única por app y con fecha de caducidad.

Canal de distribuciónAd-hoc o Market (Google Play, hay que ser developer).

API Level y FiltrosCalidad vs Cantidad

Recursos de PublicaciónMarketing: imágenes, vídeos.

MonetizaciónGratis, Pago, In-App Purchase

Page 36: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Trucos y cositastipsandroid

CleanMuchos problemas se resuelven reiniciando.

Es mejor evitar el emuladorA no ser que no tengamos alternativa…No hace falta cerrar el emuladorA muchos se les pasa por alto.

RecompilarLos problemas raros pueden ser del IDEDOC antes de tirar líneasMuchas cosas son más fáciles de lo que parece

Page 37: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

En caso de duda…algunasreferencias

http://developer.android.com/guideGuías de uso del API

Entrenamiento y ejemplos

http://developer.android.com/trainingReferencias API

http://developer.android.com/reference

http://developer.android.com/tools/index.htmlInstalar el SDK

https://github.com/findemor/FormacionAndroidRepositorio DEMO

http://bit.ly/soluAndroid1 Estas diapositivas

http://blog.findemor.es/category/android/Guías en mi blog

Page 38: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Es hora de jugarplaytime

Page 39: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

Es hora de jugarplaytime

Tag V1

Ejercicio propuestoBotón para mostrar u ocultar las últimas 10 posiciones

Fecha corrección: 5/11/2012

Page 40: Introducción al desarrollo Android, Sesión 1

www.solusoft.es

En caso de duda consulte a su farmacéuticocontactme

Manuel J. García

Técnico de Innovación en solusoft

[email protected]@findemor