Introducción al desarrollo en
                    Android




                      www.solusoft.es
conociendoandroid
                                     Indice


Qué es Android
         Un poco de historia
Android en el mundo
Ventajas y desventajas
Desarrollar en Android
         Introducción a la teoría
Patrón: Modelo, Vista, Controlador
Sensores y localización
Ficheros Android
Publicar
Tips
Referencia




                         www.solusoft.es
quéesandroid
      La evolución libre del mundo móvil…


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
androidenelmundo
                               La evolución libre del mundo móvil…


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
ventajasandroid
      La evolución libre del mundo móvil…


•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
desventajasandroid
     La evolución libre del mundo móvil…


•FRAGMENTACIÓN
     •Versiones
     •Hardware
     •Fabricantes
•Caducidad capacidades Hardware.
•Batería
•Reinicios
•Market poco exigente
     •Seguridad
     •Apariencia
•Aplicaciones mal acabadas




                        www.solusoft.es
desventajasandroid
 La evolución libre del mundo móvil…




                    www.solusoft.es
desarrollarenandroid
       Introducción al desarrollo




                www.solusoft.es
desarrollarenandroid
                                        Instalando el SDK…


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

               •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
                                           www.solusoft.es
desarrollarenandroid
   Esqueleto de un proyecto sencillo…


        Lo más relevante


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




                     www.solusoft.es
desarrollarenandroid
             Patrón MVC…




            www.solusoft.es
mvcandroid
                                   Modelo


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
mvcandroid
                                            Vista


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
mvcandroid
           Vista




   www.solusoft.es
mvcandroid
                               Controlador


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
mvcandroid
                                                          Controlador



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




                                                       www.solusoft.es
mvcandroid
      Controlador




   www.solusoft.es
componentesandroid
                                             Tipos de componente



Activities
Representan un sola pantalla con interfaz de usuario.

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

Content Providers
Expone y maneja colecciones de datos de aplicación.

Broadcast receivers
Es un componente que responde ante mensajes broadcast
emitidos por el sistema o por otros componentes.


               ¡Declaración de componentes!


                                                   www.solusoft.es
desarrollarenandroid
       Particularidades de android




                  www.solusoft.es
sensoresandroid
       Tu android es un dispositivo sensible


La mayoría de dispositivos Android tienen
sensores Hardware o Software (sintéticos)
que permiten realizar distintas
mediciones.
Para usarlos…
•Sensores de movimiento
•Determinar que están disponibles
    •Acelerómetros, gravedad,
•Determinar sus capacidades y
    giroscópios…
rangos…
•Sensores ambientales
•Suscribirse al monitoraire,eventos del
    •Temperatura del de presión,
    iluminación, humedad…
sensor para detectar sus
•Sensores de posición
actualizaciones.
    •Sensores de orientación (GPS) y
    magnéticos.




                           www.solusoft.es
sensoresandroid
                   Desafíos de la localización


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
ficherosandroid
                      AndroidManifest.xml


AndroidManifest.xml
Presenta 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
ficherosandroid
     AndroidManifest.xml




         www.solusoft.es
ficherosandroid
                                   strings.xml


strings.xml
Permite 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
ficherosandroid
           strings.xml




       www.solusoft.es
ficherosandroid
                                   layout.xml


layout.xml
Estructura 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
ficherosandroid
           layout.xml




       www.solusoft.es
ficherosandroid
           layout.xml




       www.solusoft.es
ficherosandroid
                                  styles.xml


styles.xml
Colecció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
ficherosandroid
           styles.xml




       www.solusoft.es
ficherosandroid
                                  color.xml


color.xml
Colecció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
ficherosandroid
            color.xml




       www.solusoft.es
ficherosandroid
                                              Cada cosa en su sitio



Cómo     color.xml            drawables


                     styles.xml               strings.xml



Qué




                                  layout.xml


Cuándo                             Activity


                                                  www.solusoft.es
demotime
 Es hora de probar




  www.solusoft.es
publicarapp
                      Llegando a los usuarios


Generar el APK
Exportar la aplicación con el SDK o el IDE.
Firmar el APK
Firma única por app y con fecha de
caducidad.
Canal de distribución
Ad-hoc o Market (Google Play, hay que
ser developer).
API Level y Filtros
Calidad vs Cantidad
Recursos de Publicación
Marketing: imágenes, vídeos.
Monetización
Gratis, Pago, In-App Purchase


                             www.solusoft.es
tipsandroid
                           Trucos y cositas


Clean
Muchos problemas se resuelven
reiniciando.
Es mejor evitar el emulador
A no ser que no tengamos alternativa…

No hace falta cerrar el emulador
A muchos se les pasa por alto.

Recompilar
Los problemas raros pueden ser del IDE

DOC antes de tirar líneas
Muchas cosas son más fáciles de lo que
parece




                           www.solusoft.es
algunasreferencias
                                            En caso de duda…


Estas diapositivas
http://bit.ly/soluAndroid1
Guías de uso del API
http://developer.android.com/guide
Entrenamiento y ejemplos
http://developer.android.com/training
Referencias API
http://developer.android.com/reference
Instalar el SDK
http://developer.android.com/tools/index.html
Repositorio DEMO
https://github.com/findemor/FormacionAndroid
Guías en mi blog 
http://blog.findemor.es/category/android/



                                                www.solusoft.es
playtime
Es hora de jugar




www.solusoft.es
playtime
                        Es hora de jugar


Tag V1   Ejercicio propuesto
         Botón para mostrar u ocultar
         las últimas 10 posiciones
         Fecha corrección: 5/11/2012




                        www.solusoft.es
contactme
En caso de duda consulte a su farmacéutico




                   Manuel J. García
            Técnico de Innovación
                       en solusoft

               mgarcia@solusoft.es
                       @findemor




                          www.solusoft.es

Android UC3M Sesión 1

  • 1.
    Introducción al desarrolloen Android www.solusoft.es
  • 2.
    conociendoandroid Indice Qué es Android Un poco de historia Android en el mundo Ventajas y desventajas Desarrollar en Android Introducción a la teoría Patrón: Modelo, Vista, Controlador Sensores y localización Ficheros Android Publicar Tips Referencia www.solusoft.es
  • 3.
    quéesandroid La evolución libre del mundo móvil… 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
  • 4.
    androidenelmundo La evolución libre del mundo móvil… 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
  • 5.
    ventajasandroid La evolución libre del mundo móvil… •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
  • 6.
    desventajasandroid La evolución libre del mundo móvil… •FRAGMENTACIÓN •Versiones •Hardware •Fabricantes •Caducidad capacidades Hardware. •Batería •Reinicios •Market poco exigente •Seguridad •Apariencia •Aplicaciones mal acabadas www.solusoft.es
  • 7.
    desventajasandroid La evoluciónlibre del mundo móvil… www.solusoft.es
  • 8.
    desarrollarenandroid Introducción al desarrollo www.solusoft.es
  • 9.
    desarrollarenandroid Instalando el SDK… •No es necesario registrarse •Es conveniente leer las guías de diseño •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 www.solusoft.es
  • 10.
    desarrollarenandroid Esqueleto de un proyecto sencillo… Lo más relevante •/src/ •/res/drawable/ •/res/layout/ •/res/values/ •AndroidManifest •Build Path •Otros… www.solusoft.es
  • 11.
    desarrollarenandroid Patrón MVC… www.solusoft.es
  • 12.
    mvcandroid Modelo 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
  • 13.
    mvcandroid Vista 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
  • 14.
    mvcandroid Vista www.solusoft.es
  • 15.
    mvcandroid Controlador 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
  • 16.
    mvcandroid Controlador Actividades, Tareas e Intents (con y sin respuesta). www.solusoft.es
  • 17.
    mvcandroid Controlador www.solusoft.es
  • 18.
    componentesandroid Tipos de componente Activities Representan un sola pantalla con interfaz de usuario. Services Es un componente que se ejecuta en segundo plano realizando tareas largas o realizando procesos remotos. Content Providers Expone y maneja colecciones de datos de aplicación. Broadcast receivers Es un componente que responde ante mensajes broadcast emitidos por el sistema o por otros componentes. ¡Declaración de componentes! www.solusoft.es
  • 19.
    desarrollarenandroid Particularidades de android www.solusoft.es
  • 20.
    sensoresandroid Tu android es un dispositivo sensible La mayoría de dispositivos Android tienen sensores Hardware o Software (sintéticos) que permiten realizar distintas mediciones. Para usarlos… •Sensores de movimiento •Determinar que están disponibles •Acelerómetros, gravedad, •Determinar sus capacidades y giroscópios… rangos… •Sensores ambientales •Suscribirse al monitoraire,eventos del •Temperatura del de presión, iluminación, humedad… sensor para detectar sus •Sensores de posición actualizaciones. •Sensores de orientación (GPS) y magnéticos. www.solusoft.es
  • 21.
    sensoresandroid Desafíos de la localización 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
  • 22.
    ficherosandroid AndroidManifest.xml AndroidManifest.xml Presenta 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
  • 23.
    ficherosandroid AndroidManifest.xml www.solusoft.es
  • 24.
    ficherosandroid strings.xml strings.xml Permite 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
  • 25.
    ficherosandroid strings.xml www.solusoft.es
  • 26.
    ficherosandroid layout.xml layout.xml Estructura 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
  • 27.
    ficherosandroid layout.xml www.solusoft.es
  • 28.
    ficherosandroid layout.xml www.solusoft.es
  • 29.
    ficherosandroid styles.xml styles.xml Colecció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
  • 30.
    ficherosandroid styles.xml www.solusoft.es
  • 31.
    ficherosandroid color.xml color.xml Colecció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
  • 32.
    ficherosandroid color.xml www.solusoft.es
  • 33.
    ficherosandroid Cada cosa en su sitio Cómo color.xml drawables styles.xml strings.xml Qué layout.xml Cuándo Activity www.solusoft.es
  • 34.
    demotime Es horade probar www.solusoft.es
  • 35.
    publicarapp Llegando a los usuarios Generar el APK Exportar la aplicación con el SDK o el IDE. Firmar el APK Firma única por app y con fecha de caducidad. Canal de distribución Ad-hoc o Market (Google Play, hay que ser developer). API Level y Filtros Calidad vs Cantidad Recursos de Publicación Marketing: imágenes, vídeos. Monetización Gratis, Pago, In-App Purchase www.solusoft.es
  • 36.
    tipsandroid Trucos y cositas Clean Muchos problemas se resuelven reiniciando. Es mejor evitar el emulador A no ser que no tengamos alternativa… No hace falta cerrar el emulador A muchos se les pasa por alto. Recompilar Los problemas raros pueden ser del IDE DOC antes de tirar líneas Muchas cosas son más fáciles de lo que parece www.solusoft.es
  • 37.
    algunasreferencias En caso de duda… Estas diapositivas http://bit.ly/soluAndroid1 Guías de uso del API http://developer.android.com/guide Entrenamiento y ejemplos http://developer.android.com/training Referencias API http://developer.android.com/reference Instalar el SDK http://developer.android.com/tools/index.html Repositorio DEMO https://github.com/findemor/FormacionAndroid Guías en mi blog  http://blog.findemor.es/category/android/ www.solusoft.es
  • 38.
    playtime Es hora dejugar www.solusoft.es
  • 39.
    playtime Es hora de jugar Tag V1 Ejercicio propuesto Botón para mostrar u ocultar las últimas 10 posiciones Fecha corrección: 5/11/2012 www.solusoft.es
  • 40.
    contactme En caso deduda consulte a su farmacéutico Manuel J. García Técnico de Innovación en solusoft mgarcia@solusoft.es @findemor www.solusoft.es