Programación multimedia y dispositivos móviles

Este curso 2013-2014 he impartido por primera vez el módulo “Programación Multimedia y Dispositivos Móviles” (PMDM) del Ciclo Formativo de Grado Superior de Informática "Desarrollo de Aplicaciones Multiplataforma" (DAM) y, como cada año que tengo que dar una materia nueva, antes de empezar las clases estuve consultando bibliografía y recursos varios en Internet. De forma que, el material consultado me sirvió para elaborar un guión de teoría/ejercicios que seguidamente comparto y espero pueda servir a otros profesores, estudiantes o cualquiera que quiera aprender de forma autodidacta.

CONTENIDOS DEL MÓDULO PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES

Los contenidos del módulo están enfocados principalmente al desarrollo de aplicaciones en Android, y están divididos en las siguientes cinco Unidades de Trabajo:
  1. Análisis de tecnologías para aplicaciones en dispositivos móviles.
  2. Programación de aplicaciones para dispositivos móviles.
  3. Utilización de librerías multimedia integradas.
  4. Análisis de motores de juegos.
  5. Desarrollo de juegos 2D y 3D.
Así pues, después de recopilar (de distintas fuentes) documentación relacionada con dichos contenidos, finalmente decidí seleccionar los materiales didácticos de este módulo en el Institut Obert de Catalunya, el Curso de Programación Android de Salvador Gómez Oliver y la siguiente bibliografía como recursos principales (que además de teoría, también proporcionan el código fuente de ejemplos y ejercicios resueltos):
  • [Libro 1] Android. ANAYA MULTIMEDIA. Ed Burnette. 2011. (Código fuente en Complementos).
  • [Libro 2] Android Guía para desarrolladores (Segunda Edición). Frank Ableson, Robi Sen, Chris King. ANAYA MULTIMEDIA. 2011. (Código fuente en Complementos).
  • [Libro 3] Desarrollo de aplicaciones para Android. Edición 2013. Joan Ribas Lequerica. ANAYA MULTIMEDIA. 2013. (Código fuente en Complementos).
  • [Libro 4] Android: programación de dispositivos móviles a través de ejemplos. Amaro Soriano, José Enrique. MARCOMBO. 2011. (Código fuente en Descargas).
  • [Libro 5] Programación multimedia y dispositivos móviles. Maximiliano Paredes , Liliana P. Santacruz, Francisco Domínguez. RA-MA. 2012. (Código fuente en Material Descargable).
  • [Libro 6] El gran libro de programación avanzada con Android. José Enrique Amaro Soriano. MARCOMBO. 2012. (Código fuente en Descargas).
  • [Libro 7] Desarrollo de juegos para Android. Mario Zechner. ANAYA MULTIMEDIA. 2011. (Código fuente en Complementos).

GUIÓN DE TEORÍA Y EJERCICIOS DE PMDM

Respecto al guión de teoría y actividades que elaboré y describo a continuación, hay que tener en cuenta que en la Comunidad Foral de Navarra, el currículo del Ciclo Formativo de Desarrollo de Aplicaciones Multiplataforma asigna 70 horas al módulo “Programación Multimedia y Dispositivos Móviles” (a razón de 3 semanales) y no 100 ó 120 como ocurre en otras comunidades. No obstante, en los recursos que he indicado anteriormente hay más teoría y ejercicios que pueden ser añadidos.

UT1. ANÁLISIS DE TECNOLOGÍAS PARA APLICACIONES EN DISPOSITIVOS MÓVILES

Para la primera UT me basé en el capítulo 1 del libro “Programación multimedia y dispositivos móviles” [Libro 5]. Aquí se puede descargar dicho capítulo en PDF en la web de RA-MA.

Para afianzar los contenidos de esta UT propuse a los alumnos realizar un trabajo que debía contener:
  • PORTADA (Nombre, fecha, título, imagen, módulo, clase, centro)
  • ÍNDICE DE CONTENIDOS
  • ÍNDICE DE FIGURAS (Capturas de pantalla, imágenes, gráficos, tablas...)
El índice de contenidos propuesto fue:

1. INTRODUCCIÓN (Descripción general del trabajo)

2. TIPOS DE DISPOSITIVOS MÓVILES (PDA, smartphone, tableta…)

3. FABRICANTES (Apple, Nokia, HTC…)

4. MODELOS (Galaxy, iPhone, Nexus…)

5. HISTORIA / EVOLUCIÓN

6. ENFOQUES DE DESARROLLO DE APLICACIONES MÓVILES

7. SISTEMAS OPERATIVOS (Android, iOS, BlackBerry OS, Symbian…)

8. TECNOLOGÍAS (WAP, UTMS, Bluetooth, 4G, Wi-Fi, GPS…)

9. TIPOS DE SERVICIOS O APLICACIONES (correo electrónico, SMS, navegador web…)

10. DESARROLLO DE APLICACIONES MÓVILES

10.1. LENGUAJES DE PROGRAMACIÓN

10.2. IDEs

10.3. EMULADORES

11. CONCLUSIONES (En relación a los contenidos de la UT y el trabajo realizado: beneficios que aportan las tecnologías estudiadas, dificultades encontradas en la elaboración del trabajo, opinión sobre cómo evolucionarán dichas tecnologías en el futuro...)

12. RECURSOS (Listado de sitios web consultados, blogs, vídeos, PDFs, PPTs,...)

13. GLOSARIO (Conceptos técnicos que aparezcan en la documentación del trabajo, tales como: arquitectura ARM, cloud computing, computación ubicua, renderización...)

14. BIBLIOGRAFÍA (Listado de libros consultados, indicando de cada uno su título, autor/es, editorial y año)

15. ANEXOS (Vídeos, PDFs, PPTs…)

UT2. PROGRAMACIÓN DE APLICACIONES PARA DISPOSITIVOS MÓVILES

  • [Actividad 1] - Instalación y configuración de Eclipse y Android. Siguiendo los pasos descritos en el apartado “Entorno de desarrollo Android” del Curso de Programación Android.
  • [Actividad 2] - Estructura de un proyecto Android (crear un proyecto y estudiar su estructura). Siguiendo los pasos descritos en el apartado “Estructura de un proyecto Android” del Curso de Programación Android.
  • [Actividad 3] - Desarrollo de una aplicación Android (codificación y ejecución del proyecto en un emulador). Siguiendo los pasos descritos en el apartado “Desarrollando una aplicación Android sencilla” del Curso de Programación Android.
  • [Actividad 4] - Depuración en el dispositivo móvil. Siguiendo las indicaciones de las páginas 77-78 del libro “Desarrollo de aplicaciones para Android” [Libro 3], depurar en el dispositivo móvil el proyecto HolaUsuario (realizado en la actividad 3).
  • [Actividad 5] - Creación de un archivo .apk Siguiendo las indicaciones de las páginas 78-82 del libro “Desarrollo de aplicaciones para Android” [Libro 3], crear un archivo .apk (Android Package, paquete Android) de la aplicación HolaUsuario y, a continuación, realizar las siguientes dos pruebas:
    • Copiarla en el dispositivo a través del puerto USB, instalarla y ejecutarla.
    • Enviarla por e-mail, descargarla, instalarla y ejecutarla.
  • [Actividad 6] - Uso de layouts (FrameLayout, LinearLayout, TableLayout, GridLayout, RelativeLayout). Siguiendo los pasos descritos en el apartado “Interfaz de usuario en Android: Layouts” del Curso de Programación Android.
  • [Actividad 7] - Creación de Layouts mediante programación. Siguiendo las indicaciones de las páginas 71-73 del libro “Programación multimedia y dispositivos móviles” [Libro 5]. Véase también el apartado “Creación de una interfaz de usuario por código” de AndroidCurso.com.
  • [Actividades 8-11] - Button, ToggleButton, ImageButton. Siguiendo los pasos descritos en el apartado “Interfaz de usuario en Android: Controles básicos (I)” del Curso de Programación Android.
  • [Actividades 12-17] - ImageView, TextView, EditText,  Interfaz Spanned. Siguiendo los pasos descritos en el apartado “Interfaz de usuario en Android: Controles básicos (II)” del Curso de Programación Android.
  • [Actividad 18-24] - Juego Sudoku. Siguiendo las indicaciones del capítulo 3 “Diseño de la interfaz de usuario” del libro “Android” [Libro 1], diseñar la interfaz de usuario del juego del Sudoku: pantalla inicial, retoques estéticos, utilizar recursos alternativos, implementar un cuadro About (Acerca de), settings (añadir un menú), juego nuevo (iniciar una partida nueva), salir del juego.

Juego del Sudoku en Android

UT3. UTILIZACIÓN DE LIBRERÍAS MULTIMEDIA INTEGRADAS

  • [Actividad 25] - Reproductor Audio. Ejemplo del libro “Android” [Libro 1] (páginas 103-108). Detectar posibles problemas que pueden surgir al intentar ejecutarlo, tanto en un AVD como en un dispositivo físico.
  • [Actividad 26] - Reproducción Audio. Ejemplo del libro “Android Guía para desarrolladores” [Libro 2] (páginas 299-301).
  • [Actividad 27] - Reproducir Sonidos. Ejemplos del libro “Android: programación de dispositivos móviles a través de ejemplos” [Libro 4] (páginas 116-120).
  • [Actividad 28] - Reproduciendo Audio. Ejemplo del libro “Programación multimedia y dispositivos móviles” [Libro 5] (páginas 104-109).
  • [Actividad 29] - Reproducción Vídeo. Ejemplo del libro “Android Guía para desarrolladores” [Libro 2] (páginas 301-303). El archivo del vídeo deberá estar ubicado en una tarjeta SD del emulador.
  • [Actividad 30] - Reproducción Vídeo. Ejemplo del libro “Programación multimedia y dispositivos móviles” [Libro 5] (páginas 109-112). El vídeo debe estar ubicado en la carpeta res/raw.
  • [Actividades 31-35] - Selección dinámica de imágenes. Galería de imágenes. Animaciones por interpolación. Animaciones por fotogramas. Dibujar en la pantalla. Siguiendo las explicaciones del apartado “Programació multimèdia” del material didáctico del Institut Obert de Catalunya.

Galería de Imágenes en Android

UT4. ANÁLISIS DE MOTORES DE JUEGOS

  • [Actividades 36-41] - Juego del Gerrero. Siguiendo las indicaciones del capítulo 4 “Análisis de motores de juegos” del libro “Programación multimedia y dispositivos móviles” [Libro 5], implementar el juego propuesto en el que un soldado se mueve por la pantalla en una dirección y a una velocidad concreta. El soldado rebotará con los lados de la pantalla y podrá arrastrarse con el dedo. (Iniciar juego Android, subproceso y cerrar aplicación, sprites, sprite básico, motor de físicas, detectores de colisiones). Ampliaciones propuestas:
    • Añadir otro/s soldado/s.
    • Añadir otro/s personaje/s.

Juego del Guerrero en Android

UT5. DESARROLLO DE JUEGOS 2D Y 3D

  • [Actividad 42] - Añadir gráficos al Sudoku. Siguiendo las indicaciones del capítulo 4 “Gráficos 2D” del libro “Android” [Libro 1], añadir gráficos al Sudoku y completar el juego para que sea funcional.
  • [Actividad 43] - Juego del Gerrero 2. Implementar el juego propuesto en el apartado “5.4 Desarrollo de un juego completo en 2D” del capítulo 5 “Desarrollo de juegos 2D y 3D” del libro “Programación multimedia y dispositivos móviles” [Libro 5].

También tenía previsto impartir los contenidos del capítulo 10 “Gráficos 3D en OpenGL” del libro “Android” [Libro 1], pero no nos dio tiempo.

ALGUNAS CONCLUSIONES

  • De todos los recursos mencionados, quiero destacar el Curso de Programación Android de Salvador Gómez Oliver, ya que, a mi modo de ver es excelente para quien quiera aprender de forma autodidacta y profundizar en más temas (bases de datos en Android, localización geográfica, acceso a servicios web, etc.) que podrían encajar en la UT2 del módulo, pero que por falta de horas no incluí.
  • De la bibliografía que seleccioné, finalmente no utilicé los libros 6 y 7. Pero, pueden venir bien si, como dije al principio, en vez de dedicar 70 horas al módulo, se dedican más horas.
  • Salvo para la UT1 que es teórica, recomiendo plantear clases muy prácticas con el mayor número de ejercicios posibles.

5 comentarios:

Raul Perez dijo...

Gracias por toda esta informacion tan valiosa. Soy un estudiante de DAM a distancia y te agradezco mucho todas tus recomendaciones, me seran de gran ayuda.

Carlos Pes dijo...

Raúl, me alegra que te sea de utilidad :)

Marta I. Sánchez Gázquez dijo...

Hola. Yo también voy a comenzar el curso próximo a impartir este módulo. En principio me parece muy bueno tu planteamiento y voy a hacer mucho caso de tus recomendaciones, pero como esto va tan deprisa, ¿podrías hacer alguna actualización del tema? ¿Sigues utilizando la misma estructura y, lo fundamental, los mismos materiales?

Muchas gracias.

Carlos Pes dijo...

Hola Marta: como bien dices esto va muy rápido. Pero, ese módulo únicamente lo impartí un año. Por lo que, no preparé más materiales. Ahora bien, si lo tuviese que dar de nuevo, utilizaría Android Studio (https://developer.android.com/studio/). Sobre ello, hay muchos materiales (libros, videotutoriales, etc.). Espero que lo impartas bien :-)

Un saludo.

estrella dijo...

¡Muchas gracias Carlos!