Contenido del curso
Fundamentos de programación iOS
- 3

Variables, constantes y tipos de datos en Swift
18:55 min - 4

Condicionales en Swift con if y else
16:58 min - 5

Funciones en Swift con parámetros y return
10:37 min - 6

Variables opcionales en Swift
09:29 min - 7

Arrays en Swift: declara, accede e inserta
10:28 min - 8

Eliminar y buscar elementos en arrays Swift
05:41 min - 9

Sets en Swift: sin orden ni duplicados
07:14 min - 10

Operaciones entre sets en Swift
05:22 min - 11

Diccionarios en Swift para datos complejos
10:54 min - 12

Ciclo while en Swift desde cero
06:48 min - 13

Ciclo for en Swift para buscar datos
09:38 min - 14

Batalla Pokémon con while en Swift
10:45 min
POO en iOS
- 15

Qué es la programación orientada a objetos
06:56 min - 16

Creación de Structs en Swift para Gestión de Materias
11:16 min - 17

Herencia en Swift: class vs struct
13:27 min - 18

Uso de Enumerables (Enums) en Swift para Datos Limitados
09:27 min - 19

Protocolos en Swift como contratos de código
15:12 min - 20

map, filter y reduce con arreglos en Swift
10:53 min - 21

Prueba final del Students Manager en Swift
Viendo ahora
Manejo de errores y programación segura
Programación en el ecosistema de Apple
Prueba final del Students Manager en Swift
Resumen
Construir un sistema de gestión de estudiantes en Swift es la mejor forma de consolidar lo aprendido sobre programación orientada a objetos. Aquí verás cómo instanciar un Students Manager, insertar estudiantes, asignar materias y generar reportes completos desde el playground, una práctica clave para quienes aprenden desarrollo iOS.
¿Cómo se prepara el entorno antes de instanciar el Students Manager?
Antes de tocar la lógica del administrador, conviene dejar listo el escenario. La idea es simular un sistema real desde cero, sin datos precargados.
En el playground, llamado System Manager, se crean materias adicionales a Matemáticas y Español: Biología y Economía. Los estudiantes se inicializan sin materias inscritas ni notas, porque toda esa carga se hará desde el administrador.
- Crear las materias base: Matemáticas, Español, Biología y Economía.
- Definir estudiantes vacíos, sin materias ni notas asignadas.
- Compilar para confirmar que no haya errores antes de continuar.
¿Por qué iniciar con estudiantes vacíos? Porque la responsabilidad de asignar materias y notas vive en el Students Manager, no en la creación del estudiante. Eso mantiene la lógica encapsulada y limpia.
¿Cómo se insertan estudiantes y se asignan materias en Swift?
La instancia principal del programa es un objeto del tipo Students Manager, que en el código se llama service. Recibe una lista que arranca vacía, como un sistema recién instalado [01:30].
Desde ahí se agregan los estudiantes con service.insertStudent(S1) y service.insertStudent(S2). Luego se asignan materias con service.assignSubjectToStudent, indicando materia, puntaje y estudiante.
¿Qué notas se asignaron a cada estudiante?
El ejemplo deja ver cómo se distribuyen los puntajes para probar la lógica:
- Thiago (S1): Matemáticas 80, Español 70, Biología 90.
- María (S2): Matemáticas 90 y dos materias adicionales, una de ellas Economía.
Esta diferencia entre estudiantes es intencional. Permite verificar que el reporte refleje correctamente las materias únicas de cada uno.
¿Cómo generar un reporte de estudiantes y obtener promedios?
El Students Manager incluye una función dedicada a imprimir el estado completo del sistema. Se llama desde el playground con service.generateStudentsReport() [02:45].
El reporte muestra a Thiago como estudiante normal con sus tres materias y el puntaje mínimo para aprobar, y a María como estudiante avanzada, donde Economía aparece como su materia diferenciadora.
¿Qué hace generateStudentsReport? Recorre la lista de estudiantes y muestra en consola sus propiedades y materias inscritas. Es la vista resumida del sistema completo.
¿Cómo calcular promedios y materias cursadas?
El administrador también expone funciones de cálculo agregadas. Dos de las más útiles son getAverage y getCursedSubjects.
swift let average = service.getAverage() let subjects = service.getCursedSubjects()
El resultado del promedio fue 80 para el estudiante uno y 70 para el dos. Las materias cursadas se devolvieron como un set de structs: Español, Matemáticas, Biología y Economía, sin repeticiones.
¿Por qué un set y no un array? Porque un set garantiza que cada materia aparezca una sola vez, sin importar cuántos estudiantes la cursen. Es ideal cuando solo importa la unicidad.
¿Qué conceptos de POO en Swift quedaron aplicados en este reto?
Este ejercicio cierra el recorrido por los pilares de la programación orientada a objetos en Swift. Cada pieza del Students Manager puso en práctica algo distinto.
- Structs: para representar materias como tipos de valor.
- Clases: como en Students Manager, donde se necesita estado compartido y referencia.
- Herencia: visible en la diferencia entre estudiante normal y avanzado.
- Enumerables: útiles para categorizar tipos o estados dentro del sistema.
- Protocolos: para definir contratos comunes entre tipos.
- Funciones avanzadas con arreglos: aplicadas en cálculos como promedios y filtros.
La instancia service actúa como punto único de entrada al sistema, lo que se conoce como un patrón de fachada simple: una clase concentra las operaciones y oculta la complejidad interna.
¿Ya probaste extender tu Students Manager con nuevas funciones? Cuéntame en los comentarios qué cálculos agregarías y cómo los implementarías.