Grau en Enginyeria Telemàtica (Xarxes i Tecnologies d'Internet)

Grau en Enginyeria Telemàtica (Xarxes i Tecnologies d'Internet)

Forma't per ser un enginyer expert en Xarxes i Tecnologies d'Internet i assoleix alhora les certificacions oficials de CCNA i CCNP

Programació de dispositius mòbils

Descripció
L'objectiu de l'assignatura és oferir una introducció completa al desenvolupament d'aplicacions mòbils per a dispositius iOS, proporcionant a l'estudiant una visió global de tot el procés de creació d'una app professional. Al llarg del semestre, l'alumne aprendrà a utilitzar el llenguatge Swift i l'entorn de desenvolupament Xcode, entenent com s'estructura una aplicació moderna i com s'integren els seus diferents components. Es treballaran aspectes essencials com l'accés a bases de dades, l'ús del maquinari i sensors del dispositiu, la geolocalització en temps real, la gestió de notificacions i les Live Activities. A més, l'assignatura promou l'aplicació de patrons de disseny, el desenvolupament d'interfícies centrades en l'usuari (UI/UX) i la comprensió del cicle de vida complet d'una aplicació, des de la idea i el prototipat fins a la seva publicació als canals digitals. Mitjançant un enfocament basat en projectes, l'estudiant adquirirà autonomia tecnològica, capacitat de treball en equip i criteri tècnic per afrontar amb èxit projectes de desenvolupament mòbil en entorns professionals.
Tipus assignatura
Optativa
Semestre
Primer
Crèdits
4.00
Coneixements previs

Per cursar Programació de Dispositius Mòbils es recomana que l'estudiant tingui:

- Coneixements bàsics de programació orientada a objectes (Java, C++ o Python).
- Familiaritat amb estructures de dades i algorismes.
- Coneixements bàsics d'arquitectura client-servidor i desenvolupament web.
- Nocions bàsiques de bases de dades i accés a dades des d'aplicacions.
- Coneixements generals de disseny d'interfícies d'usuari (UI/UX) i usabilitat.

Objectius

Els Resultats d'Aprenentatge d'aquesta assignatura són:

RA.01 (GI): Es poden construir aplicacions informàtiques basades en arquitectures client/servidor i web, aplicant coneixements de comunicació entre serveis i gestió de dades remotes.
RA.02 (GI): Es disposa dels coneixements necessaris i bàsics per a la utilització de patrons de disseny i bones pràctiques en el desenvolupament d'aplicacions mòbils.
RA.03 (GI): Coneixements per a la programació d'aplicacions amb accés a bases de dades i gestió de persistència local i remota.
RA.04 (GI): Coneixements per a la programació d'aplicacions per iOS amb accés al hardware i funcionalitats del dispositiu (geolocalització, sensors, notificacions, etc.).
RA.05 (TG): Es disposa de coneixements d'usabilitat i interacció home-màquina per a la pràctica del disseny centrat en l'usuari (UI/UX) i la seva aplicació en projectes pràctics.
RA.06 (TG): Capacitat per treballar en equip i gestionar projectes tecnològics sota metodologies d'Aprenentatge Basat en Projectes (PBL).

Continguts

L'assignatura s'estructura en cinc blocs de contingut, amb una progressió lògica i pràctica que permet a l'estudiant adquirir una visió completa del desenvolupament d'aplicacions iOS:

1- Introducció a l'entorn de desenvolupament iOS
Configuració de Xcode i del simulador.
Creació del primer projecte.
Estructura bàsica d'una aplicació iOS.

2- Llenguatge de programació Swift
Fonaments del llenguatge: tipus, estructures de control, funcions i classes.
Programació orientada a objectes i protocols.
Gestió de col·leccions, opcionals i closures.

3- Components fonamentals de la interfície
Vistes i controladors.
Ús de UITableView, UICollectionView i navegació entre pantalles.
Principis de disseny i usabilitat (UI/UX).

4- Integració amb el sistema i serveis
Permisos, MapKit, sensors i accés al maquinari.
Persistència de dades (UserDefaults, Core Data, bases de dades externes).
Notificacions locals i push.
Activitats en viu i HealthKit.

5- Desenvolupament avançat i tendències actuals
Gestió de dependències amb Swift Package Manager.
Introducció a SwiftUI com a alternativa moderna de desenvolupament d'interfícies.
Bones pràctiques, patrons de disseny i publicació a l'App Store.

Metodologia

L'assignatura combina classes magistrals, sessions pràctiques de laboratori i treball autònom de l'estudiant, sota una metodologia d'Aprenentatge Basat en Projectes (PBL).

Durant el semestre, l'estudiant participa en 14 sessions presencials de 3 hores cadascuna, que combinen teoria, pràctica guiada i desenvolupament del projecte final.

- La primera hora de cada setmana es dedica a classes magistrals i casos d'ús per introduir els nous conceptes.

- Les dues hores següents es destinen a sessions pràctiques, on els estudiants apliquen els coneixements adquirits mitjançant exercicis, hands-on labs i petits projectes individuals.

- Es realitzen projectes individuals i en parella, així com un projecte final en grup de dues persones, que consolida totes les competències en el desenvolupament d'una aplicació completa per a iOS.

- En alguns moments del curs s'aplica la metodologia Self-Paced Learning, en què l'estudiant ha de cercar i aprendre nous continguts de manera autònoma amb l'orientació del professor.

Aquesta metodologia promou l'autonomia tecnològica, el treball col·laboratiu i l'aplicació pràctica dels conceptes, reproduint l'entorn real del desenvolupament professional d'aplicacions mòbils.

Avaluació

L'avaluació de l'assignatura és contínua i combina el treball pràctic setmanal amb un projecte final de desenvolupament d'una aplicació iOS.
La nota final es calcularà segons la fórmula següent:

Nota final = 40% × (mitjana d'exercicis pràctics) + 60% × nota del projecte final

Per poder aplicar aquesta fórmula, és obligatori lliurar i aprovar tots els exercicis individuals (hands-on labs) i la pràctica final.

En cas contrari, l'assignatura es considerarà no superada.

- Exercicis individuals (40%): petites pràctiques setmanals per aplicar els coneixements de cada bloc. Es valoren la funcionalitat, l'estil del codi, la comprensió tècnica i la capacitat de resolució de problemes.

- Projecte final (60%): desenvolupament en parelles d'una aplicació iOS completa que integri els continguts del curs (UI, dades, hardware, notificacions, etc.). Es valora l'arquitectura, el disseny, la funcionalitat, la documentació i la presentació.

Convocatòria extraordinària:

En cas de no haver lliurat o d'haver suspès algun exercici o projecte, l'estudiant haurà de reentregar un projecte complet d'iOS que compleixi amb tots els requisits setmanals. En aquest cas, la nota màxima que es podrà obtenir serà un 7.

Els treballs s'han de lliurar segons les normes de presentació i originalitat establertes: s'han de pujar a eStudy, no s'accepten entregues per correu electrònic i qualsevol indici de plagi comportarà la suspensió automàtica.

Criteris avaluació

L'avaluació es basa en la realització d'exercicis pràctics setmanals i un projecte final en grup que integra tots els continguts de l'assignatura.

Es valorarà especialment:

- La correcció funcional de les pràctiques i del projecte final.
- La qualitat del codi, les bones pràctiques i l'estructura del projecte.
- El disseny d'interfície (UI/UX) i l'experiència d'usuari.
- La capacitat de resolució de problemes i autonomia tècnica.
- La participació activa i el treball en equip durant el desenvolupament del projecte.

Bibliografia bàsica

Apple Inc. (2024). Swift Resources - Apple Developer. Disponible a: https://developer.apple.com/swift/resources/
Apple Inc. (2024). Human Interface Guidelines - Recursos de disseny per a iOS. Disponible a: 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 complementari

Apple Inc. (2024). Documentació d'Xcode. https://developer.apple.com/documentation/xcode/
Apple Inc. (2024). Tutorials i documentació de SwiftUI. https://developer.apple.com/tutorials/swiftui
Equip Raywenderlich (2023). iOS Apprentice: Beginning iOS Development with Swift. Razeware LLC.