Grado en Ingeniería Telemática (Redes y Tecnologías de Internet)

Grado en Ingeniería Telemática (Redes y Tecnologías de Internet)

Fórmate para ser un ingeniero experto en Redes y Tecnologías de Internet y adquiere a la vez las certificaciones oficiales de CCNA y CCNP

Programación de dispositivos móviles

Descripción
El objetivo de la asignatura es realizar una introducción completa al desarrollo de aplicaciones móviles para dispositivos iOS, proporcionando al estudiante una visión global de todo el proceso de creación de una app profesional. A lo largo del semestre, el alumno aprenderá a utilizar el lenguaje Swift y el entorno de desarrollo Xcode, comprendiendo cómo se estructura una aplicación moderna y cómo se integran sus distintos componentes. Se abordarán aspectos esenciales como la interacción con bases de datos, el uso del hardware y sensores del dispositivo, la geolocalización en tiempo real, el manejo de notificaciones y la implementación de Live Activities. Además, la asignatura fomenta la aplicación de patrones de diseño, el desarrollo de interfaces centradas en el usuario (UI/UX) y la comprensión del ciclo de vida completo de una aplicación, desde la ideación y prototipado hasta su publicación en los canales digitales. El enfoque práctico y el trabajo por proyectos permitirán al estudiante adquirir autonomía tecnológica, capacidad de trabajo en equipo y criterio técnico para afrontar con éxito desarrollos móviles reales en el entorno profesional.
Tipo asignatura
Optativa
Semestre
Primero
Créditos
4.00
Conocimientos previos

Para cursar Programación de Dispositivos Móviles se recomienda que el estudiante tenga:

- Conocimientos básicos de programación orientada a objetos (Java, C++ o Python).
- Familiaridad con estructuras de datos y algoritmos.
- Conocimientos básicos de arquitectura cliente-servidor y desarrollo web.
- Nociones básicas de bases de datos y acceso a datos desde aplicaciones.
- Conocimientos generales de diseño de interfaces de usuario (UI/UX) y usabilidad.

Objetivos

Los Resultados de Aprendizaje de esta asignatura son:

RA.01 (GI): Ser capaz de construir aplicaciones informáticas basadas en arquitecturas cliente/servidor y web, aplicando conocimientos de comunicación y gestión de datos remotos.
RA.02 (GI): Disponer de los conocimientos necesarios y básicos para la utilización de patrones de diseño y buenas prácticas en el desarrollo de aplicaciones móviles.
RA.03 (GI): Conocimientos para la programación de aplicaciones con acceso a bases de datos y manejo de persistencia local y remota.
RA.04 (GI): Conocimientos para la programación de aplicaciones para iOS con acceso al hardware y funcionalidades del dispositivo (geolocalización, sensores, notificaciones, etc.).
RA.05 (TG): Disponer de conocimientos de usabilidad e interacción hombre-máquina para la práctica del diseño centrado en el usuario (UI/UX).
RA.06 (TG): Capacidad para trabajar en equipo y gestionar proyectos tecnológicos bajo metodologías de Aprendizaje Basado en Proyectos (PBL).

Contenidos

La asignatura se estructura en cinco bloques de contenido, diseñados con una progresión lógica y práctica que permite al estudiante adquirir una visión completa del desarrollo de aplicaciones iOS:

1- Introducción al entorno de desarrollo iOS
Configuración de Xcode y del simulador.
Creación del primer proyecto.
Estructura básica de una aplicación iOS.

2- Lenguaje de programación Swift
Fundamentos del lenguaje: tipos, estructuras de control, funciones y clases.
Programación orientada a objetos y protocolos.
Manejo de colecciones, opcionales y closures.

3- Componentes fundamentales de la interfaz
Vistas y controladores.
Uso de UITableView, UICollectionView y navegación entre pantallas.
Principios de diseño y usabilidad (UI/UX).

4- Integración con el sistema y servicios
Permisos, MapKit, sensores y acceso al hardware.
Persistencia de datos (UserDefaults, Core Data, bases de datos externas).
Notificaciones locales y push.
Actividades en vivo y HealthKit.

5- Desarrollo avanzado y tendencias
Gestión de dependencias con Swift Package Manager.
Introducción a SwiftUI como alternativa moderna de desarrollo de interfaces.
Buenas prácticas, patrones de diseño y publicación en App Store.

Metodología

La asignatura combina clases magistrales, sesiones prácticas en laboratorio y trabajo autónomo del estudiante, siguiendo una metodología de Aprendizaje Basado en Proyectos (PBL).

A lo largo del semestre, el alumno participa en 14 sesiones presenciales de 3 horas cada una, distribuidas entre teoría, práctica guiada y desarrollo del proyecto final.

- En la primera hora de cada semana se introducen los contenidos mediante clases magistrales y casos de uso.

- Las dos horas siguientes se destinan a sesiones prácticas donde los estudiantes aplican los conocimientos adquiridos en ejercicios, hands-on labs y pequeñas actividades individuales.

- Se realizan proyectos individuales y en pareja, así como un proyecto final en grupo de dos personas, que consolida las competencias de desarrollo de una app completa para iOS.

- En determinados momentos del curso se aplica la metodología Self-Paced Learning, en la que el estudiante debe investigar y adquirir nuevos conocimientos de forma autónoma, guiado por el profesor.

El enfoque fomenta la autonomía tecnológica, el trabajo colaborativo y la aplicación práctica de los conceptos, reproduciendo el entorno real del desarrollo profesional de aplicaciones móviles.

Evaluación

La evaluación de la asignatura es continua y combina el trabajo práctico semanal con un proyecto final de desarrollo de una aplicación iOS.

La calificación final se calculará según la siguiente fórmula:

Nota final = 40% × (media de ejercicios prácticos) + 60% × nota del proyecto final

Para poder aplicar esta fórmula, es obligatorio entregar y aprobar todos los ejercicios individuales (hands-on labs) y la práctica final.
En caso contrario, la asignatura se considerará no superada.

- Ejercicios individuales (40%): pequeñas prácticas semanales destinadas a aplicar los conocimientos de cada bloque. Se evalúan la correcta funcionalidad, el estilo de código, la comprensión técnica y la capacidad de resolución de problemas.

- Proyecto final (60%): desarrollo en pareja de una aplicación iOS completa que integre los contenidos del curso (UI, datos, hardware, notificaciones, etc.). Se valoran la arquitectura, el diseño, la funcionalidad, la documentación y la presentación.

Convocatoria extraordinaria:

Si algún ejercicio o proyecto no se entrega o se suspende, el estudiante deberá reentregar un proyecto completo de iOS que cumpla con todos los requisitos semanales. En este caso, la nota máxima que podrá obtenerse será un 7.

La asignatura se rige por las normas de entrega y originalidad establecidas: los trabajos deben subirse a la plataforma eStudy, no se aceptan envíos por correo, y cualquier evidencia de plagio implica la suspensión automática.

Criterios evaluación

La evaluación se basa en la realización de ejercicios prácticos semanales y un proyecto final en grupo que integra todos los contenidos de la asignatura.

Se valoran principalmente:

- La correcta implementación funcional de las prácticas y del proyecto.
- La calidad del código, uso de buenas prácticas y estructuras adecuadas.
- El diseño de la interfaz (UI/UX) y la experiencia de usuario.
- La capacidad de resolver problemas de manera autónoma.
- La participación activa y el trabajo en equipo durante el desarrollo del proyecto.

Bibliografía básica

Apple Inc. (2024). Swift Resources - Apple Developer. Disponible en: https://developer.apple.com/swift/resources/
Apple Inc. (2024). Human Interface Guidelines - iOS Design Resources. Disponible en: https://developer.apple.com/design/human-interface-guidelines/
Neuburg, M. (2023). Programming iOS 16: Dive Deep into Views, View Controllers, and Frameworks. O'Reilly Media.
Ackerman, S. (2023). Swift for Absolute Beginners: Learn to Develop iOS Apps. Apress.

Material complementario

Apple Inc. (2024). Xcode Documentation. https://developer.apple.com/documentation/xcode/
Apple Inc. (2024). SwiftUI Tutorials and Documentation. https://developer.apple.com/tutorials/swiftui
Raywenderlich Team (2023). iOS Apprentice: Beginning iOS Development with Swift. Razeware LLC.