Bloque 1
Historia de Android (1h): se introducirá al alumno en el contexto temporal y tecnológico en que se sitúa Android.
- Historia
- ¿Qué es Android?
Prácticas y ejemplos
Este bloque será meramente introductorio por lo que no se requerirán prácticas de ningún tipo.
Bloque 2
Nociones de JAVA y XML (32h): impartición de los conocimientos necesarios en estas tecnologías para que el alumno adquiera las habilidades necesarias para empezar a desarrollar y entender las aplicaciones Android.
· Introducción desarrollo JAVA
· Librerías JAVA
· Ejemplos prácticos
· Introducción a la tecnología XML
· Integración JAVA y XML
Prácticas y ejemplos
Este bloque contendrá una serie de prácticas enfocadas al entendimiento del alumno de la tecnología JAVA y XML:
· Permitir al usuario familiarizarse con el entorno de desarrollo
· Realización de una aplicación sencilla en JAVA
· Generación manual y utilizando el IDE de distintos ficheros XML
· Realización de prácticas en los que su aplicación JAVA interactúe con los XML creados
Bloque 3
Partes del sistema Android (4h): Se analizarán las partes que componen el sistema operativo Android desde un punto de vista tanto de hardware como software.
· Linux kernel
· Librerías
· Android Runtime
· Framework de aplicaciones
· Capa de aplicaciones
· Máquina virtual Dalvik
· Librerias
Prácticas y ejemplos
Este bloque contendrá una serie de ejemplos reales en los que el alumno podrá entender de una manera visual (utilizando un dispositivo Android real) cómo funcionan cada una de las capas y cómo se traducen en el mundo Android:
· Conexión de una shell contra el Linux de Android para entender su organización real
· Ubicación de las librerías en el sistema operativo
· Visualización de los procesos corriendo en el sistema operativo
· Localización de las aplicaciones instaladas en el sistema operativo
· Primera aproximación a las aplicaciones Android
Bloque 4
Aplicaciones de ejemplo (6h): Laboratorio en el que se mostrará cómo comenzar el desarrollo sobre Android, desde la configuración del entorno, descarga de los elementos fundamentales, hasta el desarrollo propio de la aplicación en sí.
· Introducción al emulador Android
· Configuración del SDK
· Configuración del entorno de desarrollo (Eclipse)
· Archivo AndroidManifest.xml
· Aplicación de ejemplo: Hola, mundo!
· Ejemplos de aplicaciones más complejas
Prácticas y ejemplos
Este bloque contendrá una serie de prácticas enfocadas al entendimiento del entorno de trabajo enfocado a Android. Tratará de hacer entender al alumno los principios necesarios para conseguir desenvolverse de una manera autónoma dentro del entorno y realizar su primera aplicación Android:
· Práctica de interacción con el emulador de Android para que el alumno simule distintos eventos que se puede productir en el dispositivo
· Instalación desde cero del entorno de desarrollo para que el alumno adquiera los conocimientos de cómo instalar el IDE en cualquier entorno
· Configuración y parametrización básica del entorno de desarrollo
· Primera aplicación Android básica
· Realización de cambios sobre la aplicación Android inicial
· Ejemplo de aplicación Android con un mayor grado de complejidad para que el alumno entienda el potencial de las aplicaciones Android
Bloque 5
Arquitectura de las aplicaciones Android (4h): Se explicará cuales son los componentes lógicos que componen una aplicación Android, desde sus requerimientos, partes gráficas y partes funcionales, y los ciclos de vida de los distintos componentes de la aplicación.
· Componentes de aplicación
· Actividades (Activities)
· Vistas (Views)
· Gestor de notificaciones (Notification Managers)
· Proveedor de contenidos (Content Providers)
· Gestor de recursos (Resource Managers)
· Ciclo de vida de los componentes
Prácticas y ejemplos
Este bloque contendrá una serie de prácticas enfocadas a la programación en Android, en las que el alumno comenzará a familiarizarse con los componentes que forman la arquitectura software de Android
· Ejemplos visuales de en qué consiste cada uno de los componentes de aplicación
· Prácticas para la creación de cada componente de aplicación de una manera sencilla
· Modificaciones de las prácticas para que el alumno entienda de qué manera se estructuran las aplicaciones Android
· Prácticas de mayor complejidad donde los distintos componentes interactúen entre sí para crear una aplicación con mayor grado de realismo
Bloque 6
Interfaces de usuario (4h): Se mostrará de qué manera Android se comunica con el usuario utilizando los distintos elementos visuales de los que dispone, y de qué manera el usuario puede modificarlos o crear nuevos.
· Vistas (Views)
· Agrupación de vistas (ViewGroups)
· Elementos visuales (Widgets)
· Layouts
· Ejemplo completo con interfaces de usuario
· Adaptadores (Adapters)
Prácticas y ejemplos
Este bloque pretende transmitir al alumno los conocimientos para el desarrollo de aplicaciones de una mayor riqueza visual. En este punto el alumno ya debe haber adquirido los conocimientos necesarios para crear aplicaciones básicas, por lo que se enfocará en las maneras que dispone Android para presentar la información y la funcionalidad al usuario.
· Prácticas de creación de las primeras interfaces visuales para las aplicaciones
· Cambios en la manera que se puede presentar la información (colores de textos, imagenes, distribución de las vistas...)
· Prácticas con ejemplos de vistas con mayor complejidad funcional para que el alumno entienda los distintos mecanismos de que dispone para interactuar con el usuario final
Bloque 7
Eventos (4h): Se analizarán los distintos mecanismos de que dispone Android para comunicar a los distintos componentes entre sí, usando el sistema de Intents y receptores.
· Introducción a los Intents
· Intent Filters
· Broadcast Intents
· Broadcast Receivers
· Ejemplo con Intents y Broadcasters
Prácticas y ejemplos
Este bloque contendrá una serie de prácticas para que el alumno comience a especializarse en la manera en que Android puede comunicar los distintos componentes vistos con anterioridad.
· Creación de componentes elementales para crear una aplicación con un alto grado de complejidad
· Prácticas de comunicación entre esos componentes creados para que el alumno entienda el potencial de la comunicación bajo Android
· Uso del emulador para disparar eventos y creación de aplicaciones que proceses esos eventos (batería baja, llamada entrante...)
Bloque 8
Menus, diálogos, alertas (3h): Comunicación de Android con el usuario mediante distintos elementos visuales.
· Menús
· Diálogos
· Alertas
· Notificaciones
Prácticas y ejemplos
En este bloque el alumno comprenderá cómo funcionan las distintas maneras en la que el sistema puede presentar la información al usuario final o notificarle de los distintos eventos sucedidos en el sistema.
· Desarrollo de aplicaciones donde se le presente al usuario final la funcionalidad disponible
· Simulación de distintos eventos, tanto generados por las aplicaciones como por el emulador de Android
· Desarrollo de avisos utilizando el mecanismo de notificaciones de Android
Bloque 9
Almacenamiento de datos (6h): Se mostrarán los distintos mecanismos de que se dispone de cara a hacer persistir la información, almacenarla, consultarla y modificarla.
· Sistema de preferencias
· Sistema de ficheros locales
· SQLite (base de datos)
Prácticas y ejemplos
En este bloque el alumno realizará prácticas para el entendimiento de los distintos mecanismos para almacenar la información.
· Prácticas de creación de sistemas de preferencias
· Modificaciones para entender como Android almacena la información en caso de apagado de la aplicación
· Prácticas para interactúa con el sistema de ficheros locales
· Prácticas para la creación de conexiones con la base de datos, consultas y modificaciones típicas.
Bloque 10
Proveedores de contenidos (4h): Se analizarán los mecanismos que ofrece Android para que las distintas aplicaciones entre sí puedan compartir información, abstrayendo detalles de implementación entre ellas.
· Funcionamiento
· Consultas de datos
· Modificaciones de datos
· Proveedores de contenidos nativos de Android
Prácticas y ejemplos
Las prácticas de este bloque irán enfocadas a la recepción y consulta de información a través de los mecanismos Proveedores de Contenidos de Android, donde el alumno conocerá de qué manera y qué limitaciones tiene la compartición de información a través de estos:
· Creación de proveedores de contenidos
· Prácticas de inserción de información, consultas y modificaciones en los ContentProviders
Bloque 11
Servicios (6h): Se analizará cómo funciona este componente y cual es su utilidad de cara a la eficiencia de los recursos del dispositivo móvil.
· Funcionamiento
· Inicio y parada de servicios
· Control de servicios
· Ejemplo de servicio
Prácticas y ejemplos
En este bloque el alumno deberá comprender a un mayor nivel de detalle como funciona el componente Service, su utilidad y limitaciones:
· Prácticas de creación de servicios
· Creación de una aplicación (reproductor de música simple) para entender la utilidad del Service
· Prácticas para interacción y parametrización del Service
Bloque 12
Seguridad y permisos (2h): Visión genérica de los distintos sistemas de seguridad que ofrece Android para evitar desde su intrusión, corrupción de información, hasta permisos en el sistema de ficheros.
· Seguridad en el Kernel
· Permisos de ejecución de las aplicaciones
Prácticas y ejemplos
Este bloque pretende transmitir y concienciar al alumno de la importancia de la seguridad en las aplicaciones y los mecanimos que Android aporta para ello.
· Prácticas donde se intentará sobrepasar las barreras de seguridad de Android donde el alumno comprenderá cuales son estas barreras y cómo Android impide su paso.
· Creación de aplicaciones que definirán sus propios requerimientos de seguridad
Bloque 13
Sistemas basados en localización (8h): Se mostrarán las tecnologías más importantes que aporta Android para aprovechar las características de posicionamiento del dispositivo móvil.
· ¿Qué son los sistemas LBS?
· GPS en Android
· Tecnologías de localización (GPS, AGPS,...)
· Uso del emulador para simular la localización del dispositivo
· Ejemplos prácticos de uso de GPS (LocationProviders, LocationManagers, LocationListeners)
· Maps y geocoding
Prácticas y ejemplos
Este bloque contendrá una serie de prácticas enfocadas a la programación en sistemas de localización de Android. El alumno obtendrá unas nociones para entender como utilizar la información basada en el mundo real y adquirirá competencias para realizar sus propias aplicaciones basadas en localización:
· Prácticas para posicionar en mapas una serie de ubicaciones concretas
· Interacción con el emulador para simular las ubicaciones
· Prácticas con GoogleMaps donde se interactuará con los mapas y mecanismos para visualizar la información
Bloque 14
Librerías gráficas 2D/3D OpenGL (12h): Principales librerías gráficas open source para el desarrollo de aplicaciones visuales con un mayor grado de complejidad.
· Uso de la API de openGL
· Teoría sobre gráficos 2D
· Teoría sobre gráficos 3D
· OpenGL: modelo de cámara
· Desarrollo de ejemplos usando gráficos en 2D y 3D
Prácticas y ejemplos
En este bloque se profundizará en la manera en que se puede aportar una mayor calidad en la realización de gráficos con OpenGL, extendible no sólo para Android si no para multitud de plataformas que utilizan esta tecnología.
· Ejemplos de alcance de OpenGL para que el alumno entienda su potencial
· Creación de aplicaciones simples en 2D y 3D
· Creación de aplicaciones complejas en 2D y 3D
Bloque 15
Android como negocio (4h): Se explicará cuales son las distintas vías de explotación de las aplicaciones Android y de qué manera capitalizar el conocimiento en estas tecnologías.
· Licencias Android
· Versiones Android
· Android Market
· Android como modelo de negocio
· Competencia y futuro
Prácticas y ejemplos
Este bloque pretende hacer entender al alumno la manera en que Android crece en el mercado con respecto a su competencia y de que manera se puede explotar para la creación de beneficios económicos.
· Ejemplos de aplicaciones legales y no legales bajo la licencia
· Comparación de restricciones entre distintas versiones de Android
· Subir una aplicación a Android Market
El orden de estos bloques se ha establecido en base a que el alumno pueda adquirir los conocimientos de una forma progresiva y gradual pero sin ser abrumadora. Cada bloque con perfil práctico contendrá una serie de prácticas útiles y que despierten el interes del propio alumno, para conseguir transmitir la los conocimientos necesarios de manera óptima y duradera.