introducción al desarrollo android, sesión 1
DESCRIPTION
Slides para la primera sesión de formación en plataformas móviles (Android) en UC3MTRANSCRIPT
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
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.
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.
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.
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
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
www.solusoft.es
Esqueleto de un proyecto sencillo…desarrollarenandroid
Lo más relevante
•/src/•/res/drawable/•/res/layout/•/res/values/•AndroidManifest•Build Path•Otros…
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
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
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
www.solusoft.es
Controladormvcandroid
Actividades, Tareas e Intents (con y sin respuesta).
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!
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.
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.
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
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
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.
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.
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.
www.solusoft.es
Cada cosa en su sitioficherosandroid
styles.xml
color.xml drawables
Cómo
layout.xml
strings.xml
Qué
ActivityCuándo
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
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
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
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
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