Diseño y programación orientada a objetos.
Televisión Digital: Recomendable, pero no imprescindible.
Bases de datos: Recomendable, pero no imprescindible.
La asignatura tiene dos objetivos bien diferenciados:
1. Guiar al alumnado en el aprendizaje de dos de las tecnologías de programación multimedia más utilizadas: iOS + Android
2. La adquisición por parte del alumnado de una autonomía suficiente desarrollar un sistema robusto y estable como para poder ponerse en producción.
La asignatura avanzará de forma progresiva, entorno al desarrollo de los proyectos prácticos. La ejecución completa de los proyectos se plantea en un conjunto de catorce sesiones, durante las cuales el alumno, guiado por el profesor, adquirirá los conceptos técnicos y metodológicos necesarios para completar una aplicación funcional tanto en Android (React Native) como en iOS (SwiftUI).
Sesión 1 : Explicación de la asignatura e instalación del entorno Android
La primera sesión sirve para introducir la asignatura, presentar los objetivos generales y explicar la metodología de trabajo basada en el desarrollo progresivo de un proyecto práctico. Los estudiantes configuran el entorno de trabajo necesario para el desarrollo en Android, instalando Android Studio y comprobando el funcionamiento del emulador. Se hace una primera presa de contacto con el proyecto baso y con su estructura interna.
Sesión 2 : Introducción a los elementos básicos de React Native
Durante esta sesión se explican los conceptos fundamentales de React Native: componentes, estilización, jerarquía de elementos y gestión básica del estado. Los estudiantes crean las primeras pantallas de prueba y aprenden a estructurar un proyecto siguiendo buenas prácticas. Se refuerza la comprensión del flujo de datos y la modularització del código.
Sesión 3 : Hooks
En esta sesión se profundiza en los React Hooks, como por ejemplo useState, useEffect y otras utilidades para gestionar el estado y los ciclos de vida de los componentes funcionales. Los estudiantes aplican estos conceptos a su proyecto para mejorar la gestión de datos y la reactividad de la interfaz.
Sesión 4 : Comunicación con el API y visualización de los videos
Se introducen las técnicas de comunicación con Apios externas mediante fetch o librerías específicas. Se trabaja la descarga de datos y su representación visual dentro de la aplicación. Además, se habilita la funcionalidad de reproducción de video, entendiendo la diferencia entre descarga progresiva y reproducción en tiempo real (streaming). Esta sesión consolida la integración entre la capa de datos y la capa de presentación.
Sesión 5 : Testing y trabajo del proyecto
Esta sesión combina una introducción a las técnicas básicas de testing con una parte práctica dedicada al desarrollo del proyecto. Los alumnos aprenden a verificar el funcionamiento correcto de los componentes y a detectar errores en su aplicación. Se inicia también el trabajo en base a datos remota y la interacción entre dispositivos.
Sesión 6 : Trabajo del proyecto
Sesión completamente práctica dedicada al desarrollo y consolidación del proyecto Android. Los estudiantes continúan implementando funcionalidades, ajustando la interfaz y preparando la versión preliminar de la aplicación para la presentación. Se fomenta la colaboración en equipo y la gestión de incidencias.
Sesión 7 : Presentación de la aplicación Android
Cada grupo presenta su aplicación Android ante la clase, explicando el proceso de desarrollo, las funcionalidades implementadas y las decisiones técnicas presas. Se valoran aspectos como la usabilidad, el diseño visual y la estabilidad del producto. Esta sesión marca el cierre del bloque dedicado a React Native y Android.
Sesión 8 : Introducción a Xcode y cimientos de Swift
Se inicia el bloque dedicado al desarrollo para iOS. Se presenta el nuevo proyecto que se desarrollará y se exponen los criterios de evaluación. Los estudiantes instalan y configuran Xcode, conocen su interfaz y exploran los recursos disponibles. También se introducen los cimientos del lenguaje Swift y se proponen actividades prácticas guiadas para familiarizarse con la sintaxis y las estructuras básicas.
Sesión 9 : SwiftUI (I), Estructuras básicas y componentes visuales
Primera sesión dedicada a SwiftUI. Se trabajan los cimientos del framework declarativo para la creación de interfaces: estructuras básicas, declaración de vistas, modificadores y composición visual. Se presentan ejemplos prácticos y los estudiantes reproducen pequeñas interfaces para comprender como funciona la relación entre código y resultado visual.
Sesión 10 : SwiftUI (II), MVVM, Lists y navegación entre pantallas
Segunda sesión dedicada a profundizar en SwiftUI. Se presenta el patrón arquitectónico MVVM para separar la lógica y la interfaz, se introducen las Lists y se aprende a crear flujos de navegación entre pantallas. Los alumnos hacen actividades prácticas para consolidar los conocimientos y preparar la estructura base de su proyecto iOS.
Sesión 11 : Conexión con el API y trabajo del proyecto
Se explica cómo obtener datos externos mediante una API, analizando como hacer solicitudes HTTP y decodificar la información en formato JSON. Los estudiantes implementan estas funcionalidades dentro de su proyecto iOS, integrando la información real con la interfaz gráfica. La sesión finaliza con trabajo práctico orientado a consolidar la comunicación con servicios web.
Sesión 12 : Gestión de errores y trabajo del proyecto
La sesión se centra en el manejo de errores en Swift y SwiftUI. Se trabajan conceptos como el do-catch, lanzamiento de excepciones y gestión de errores de red. Los alumnos aplican estas técnicas a su proyecto y continúan avanzando en la implementación de funcionalidades personalizadas.
Sesión 13 : Trabajo del proyecto
Sesión práctica de cierre dedicada a pulir la versión final de la aplicación y prepararla para la presentación. Los estudiantes revisan la usabilidad, corrigen incidencias y aseguran la coherencia entre todas las pantallas y funcionalidades. También se evalúan posibles mejoras derivadas de las pruebas de usuario.
Sesión 14 : Presentación de la aplicación iOS
Sesión final del curso dedicada a la presentación de las aplicaciones iOS desarrolladas por los diferentes grupos. Cada equipo expone sus soluciones, los retos encontrados y las funcionalidades diferenciales que han implementado. Se valora la calidad técnica, la originalidad y la capacidad de explicar el proceso completo de desarrollo y testing.
La asignatura combina diferentes estrategias de aprendizaje activo con el objetivo de fomentar la autonomía, la participación y la aplicación práctica de los contenidos. A continuación se describen las principales dinámicas de trabajo que se utilizarán a lo largo del curso:
D1. Clases teóricas
Las clases teóricas servirán para consolidar y profundizar en los conceptos que los alumnos habrán trabajado previamente mediante la metodología Flipped Classroom. Durante estas sesiones, el profesorado reforzará los aspectos más relevantes, aclarará dudas y establecerá conexiones entre los diferentes contenidos, promoviendo la participación y la reflexión crítica.
D2. Clases de problemas y ejercicios
A lo largo de la asignatura se propondrán ejercicios individuales con la finalidad de que el estudiante pueda aplicar de manera práctica los conocimientos adquiridos. Estos ejercicios permitirán detectar posibles dificultades de comprensión y profundizar en los conceptos técnicos trabajados en clase.
D3. Flipped Classroom
Parte de los contenidos de la asignatura serán aprendidos de forma autónoma por el estudiante, siguiendo las orientaciones y recursos facilitados por el profesorado. Esta metodología fomenta la responsabilidad individual y la preparación previa antes de las sesiones presenciales, las cuales se destinarán principalmente a resolver dudas, validar los conocimientos y ampliar la información mediante ejemplos prácticos.
D4. Peer Instruction
Con el objetivo de favorecer una comprensión profunda de los contenidos y promover el aprendizaje colaborativo, los estudiantes deberán explicarse entre ellos los conceptos trabajados, exponiendo su propia interpretación y contrastándola con la de sus compañeros. Esta dinámica permite detectar errores conceptuales, reforzar el razonamiento propio y consolidar los conocimientos de manera activa.
D5. Aprendizaje Basado en Proyectos (ABP)
Como eje central de la asignatura, los estudiantes desarrollarán un proyecto práctico que les permitirá aplicar todos los conceptos aprendidos y descubrir otros nuevos de manera aplicada. El proyecto se llevará a cabo por fases, siguiendo una progresión guiada por el profesorado, y culminará con la presentación de una aplicación funcional. Esta metodología integra la teoría con la práctica y potencia competencias como el trabajo en equipo, la resolución de problemas y la creatividad.
La evaluación de la asignatura se basa en un sistema continuo orientado al desarrollo práctico y a la demostración de competencias técnicas y metodológicas. El estudiante deberá completar con éxito las diferentes actividades de aprendizaje y los proyectos finales para superar la asignatura.
SA1. Proyecto final
La asignatura consta de dos proyectos finales, uno correspondiente a cada bloque del curso:
1.-Proyecto Android, desarrollado mediante la tecnología React Native.
2.-Proyecto iOS, desarrollado con Swift y SwiftUI.
La entrega de ambos proyectos es obligatoria para poder aprobar la asignatura.Cada proyecto deberá demostrar el dominio de los contenidos trabajados, la capacidad de aplicación práctica y la integración de las diferentes funcionalidades requeridas.
SA2. Entrevistas y presentaciones de validación
Se realizarán dos sesiones presenciales de validación, una para cada proyecto final (Android e iOS), en las que los estudiantes presentarán y explicarán el desarrollo de su proyecto ante el profesorado. Estas sesiones servirán para evaluar la comprensión global del trabajo realizado, la justificación de las decisiones técnicas y la capacidad comunicativa del alumno o del equipo.
Además, podrán programarse entrevistas individuales en función de las dinámicas de trabajo de los equipos o en convocatorias extraordinarias, con el fin de verificar la autoría y el grado de implicación en el proyecto.
SA3. Ejercicios individuales
A lo largo del curso, los estudiantes realizarán diversos ejercicios individuales y actividades en el aula orientados a reforzar y aplicar los conceptos teóricos y prácticos.Estos ejercicios contribuirán a la evaluación continua y servirán para medir el progreso y la comprensión de los contenidos.
Cálculo de la calificación final
Convocatoria ordinaria: Nota final = 50% Nota parte Android + 50% Nota parte iOS
Importante: Para superar la asignatura, es necesario obtener una nota mínima de 5 tanto en la parte de Android como en la de iOS.
En caso de no alcanzar esta calificación mínima en alguna de las partes, el estudiante deberá presentarse a la convocatoria extraordinaria correspondiente a la parte suspendida.
Nota parte Android / iOS = 60% Proyecto + 40% Evaluación continua del alumno
Evaluación continua del alumno = 90% Ejercicios y trabajos en el aula + 10% Asistencia
Convocatoria extraordinaria: Nota final = 50% Nota parte Android + 50% Nota parte iOS
Nota parte Android / iOS (máximo 5) = 100% Entrega del proyecto
En la convocatoria extraordinaria, la nota máxima posible por parte será 5, y solo se evaluará la nueva entrega del proyecto.
- Uso correcto de las herramientas ofimáticas.
- Uso correcto de los entornos y APIs de programación, tanto de alto como de bajo nivel.
- Uso de las metodologías ágiles de gestión de proyectos.
- Se han adquirido los conocimientos mínimos sobre los conceptos y tecnologías de televisión interactiva vistos en las clases teóricas.
- El alumno sabe trabajar en grupo.
- El alumno sabe hacer presentaciones en público.
- El alumno sabe aplicar los conceptos teóricos al desarrollo práctica de una aplicación de televisión interactiva.
Introducción a Android studio : https://developer.android.com/studio/intro?hl=es-419
React documentation : https://react.dev/learn
React native documentation : https://reactnative.dev/
Swift documentation : www.swift.org
SwiftUI documentation: https://developer.apple.com/documentation/SwiftUI
Apple developers documentation : https://developer.apple.com/