Grau en International Computer Engineering La Salle Campus Barcelona

Grau en International Computer Engineering

El Grau en Enginyeria Informàtica de La Salle és l'únic programa de grau a Barcelona que et proporcionarà les habilitats i el coneixement per donar resposta a les necessitats internacionals del sector de la informàtica i dels negocis.

Programació de dispositius mòbils

Descripció: 

Programació de Dispositius Mòbils introdueix el desenvolupament d'aplicacions natives per a iOS amb Swift, Xcode i UIKit. L'assignatura acompanya l'estudiant des de la creació del primer projecte i la construcció d'interfícies adaptables fins a la integració de dades, serveis de xarxa i funcionalitats pròpies del dispositiu.

El recorregut és eminentment pràctic: cada bloc es concreta en un exercici que amplia una aplicació de referència i prepara el projecte final. Es treballen l'arquitectura i el cicle de vida, la navegació, les llistes i col·leccions, els permisos, la geolocalització i els mapes, la concurrència, la persistència i la seguretat, la càmera i els sensors, la localització, les notificacions, les Live Activities i HealthKit. El curs es tanca amb una primera aproximació a SwiftUI i a la convivència entre tecnologies.

L'objectiu és que l'estudiant entengui el procés complet de construcció d'una app iOS robusta, usable i mantenible, i que sigui capaç de prendre decisions tècniques justificades en un context professional.

Tipus assignatura
Obligatoria no de Primer
Semestre
Primer
Curs
4
Crèdits
4.00

Professors Titulars

Professor/a

Professors Docents

Coneixements previs: 

Per seguir l'assignatura amb profit es recomana que l'estudiant tingui:

• Coneixements bàsics de programació orientada a objectes.

• Familiaritat amb estructures de dades, algorismes i gestió d'errors.

• Nocions d'arquitectura client-servidor, serveis web i accés a dades.

• Coneixements generals de disseny d'interfícies, usabilitat i experiència d'usuari.

No cal experiència prèvia amb Swift, Xcode ni desenvolupament per a iOS.

Objectius: 

Els objectius de l'assignatura són:

• Dominar els fonaments de Swift i utilitzar Xcode amb solvència per crear, depurar i provar aplicacions iOS.

• Dissenyar interfícies adaptables i accessibles amb UIKit, Storyboards, Auto Layout, UITableView i UICollectionView.

• Estructurar una aplicació mitjançant responsabilitats clares, patrons de disseny i mecanismes de navegació adequats.

• Consumir serveis remots, descodificar dades i gestionar operacions asíncrones i dependències de tercers.

• Persistir dades i tractar informació sensible amb els mecanismes adequats, inclosos Core Data i Keychain.

• Integrar permisos i capacitats del sistema de manera responsable: ubicació, mapes, càmera, sensors, notificacions, activitat en segon pla i dades de salut.

• Aplicar criteris d'UI/UX, localització, eficiència, privacitat i qualitat de codi al llarg de tot el desenvolupament.

• Planificar, documentar, presentar i defensar en equip una aplicació iOS completa.

Continguts: 

Els continguts s'organitzen en una seqüència progressiva:

• Fonaments d'iOS i entorn de treball. Ecosistema Apple, iOS i UIKit; Xcode, projectes, targets, schemes, simulador i dispositiu físic; Storyboards, connexions, Auto Layout, safe areas, stack views i adaptabilitat.

• Swift aplicat a UIKit. Tipus, opcionals, col·leccions, control de flux, funcions, closures, structs, classes, enums, protocols, extensions, errors, ARC i introducció a async/await.

• Arquitectura, cicle de vida i navegació. Responsabilitats de vistes i controladors, MVC i col·laboradors, app i scene lifecycle, navegació amb tabs, stacks, segues i presentacions modals, pas de dades i comunicació entre components.

• Interfícies basades en dades. UITableView i UICollectionView, cel·les reutilitzables, XIBs, self-sizing, data sources clàssics i diffable, snapshots, layout de flux i compositional layout.

• Privacitat, ubicació i mapes. Permisos i purpose strings, Core Location, qualitat de les dades de posició, consum responsable de bateria, MapKit, anotacions i proves en simulador i dispositiu.

• Xarxa i dependències. Swift Package Manager, resolució de versions, Alamofire, Codable, concurrència, gestió d'errors, models de transport i de domini, càrrega i memòria cau d'imatges.

• Persistència i seguretat. UserDefaults, fitxers i Codable, Core Data, consultes, migracions, repositoris i Keychain.

• Capacitats del dispositiu i internacionalització. Fotos, càmera, sensors, gestió de recursos, catàlegs de strings, formats locals, Dynamic Type i disseny adaptable a diferents idiomes.

• Notificacions i execució en segon pla. Notificacions locals i remotes, permisos, categories i accions, BackgroundTasks i Live Activities.

• Dades de salut. HealthKit, disponibilitat, autorització, tipus, unitats, consultes, estadístiques i estats sense dades.

• Introducció a SwiftUI. Programació declarativa, composició de vistes, estat, bindings, llistes i interoperabilitat amb UIKit.

Metodologia: 

L'assignatura combina explicació conceptual, demostracions, pràctica guiada i treball autònom dins d'un enfocament d'aprenentatge basat en projectes.

• Sessions presencials: 14 sessions de 3 hores. Cada sessió introdueix els conceptes essencials i dedica la major part del temps a aplicar-los amb Xcode.

• Exercicis progressius: els hands-on labs setmanals amplien una aplicació de referència i obliguen a provar els casos normals, els errors, els permisos denegats, els estats buits i diferents configuracions de dispositiu.

• Aprenentatge autònom: l'estudiant consulta documentació, contrasta alternatives i resol problemes amb l'orientació del professorat.

• Projecte final en parelles: es desenvolupa una app iOS completa. Abans de programar-la, l'equip valida el concepte, les API i SDK necessaris i un disseny integral de les pantalles. El seguiment es fa mitjançant punts de control i entrevistes breus.

La metodologia posa l'accent en la pràctica deliberada, la justificació de les decisions i la capacitat de transformar requisits en un producte funcional.

Avaluació: 

L'avaluació és contínua i combina l'adquisició de coneixements amb la seva aplicació en un projecte complet.

Nota final = 30 % coneixements i exercicis setmanals + 70 % treball pràctic i projecte final.

• Coneixements i exercicis setmanals (30 %): activitats individuals vinculades als blocs del temari. Es valoren la correcció funcional, la comprensió, la qualitat del codi, la capacitat de diagnosi i el lliurament en el termini i format establerts.

• Treball pràctic i projecte final (70 %): desenvolupament en parelles d'una app iOS funcional que integri, com a mínim, una API accessible per HTTP, autenticació d'usuaris, un SDK o capacitat del dispositiu i una interfície completa preparada per a un ús real. Inclou disseny previ, memòria, lliurament del codi i defensa del treball.

Cal lliurar totes les activitats obligatòries i el projecte final per superar l'assignatura. Els treballs s'han de presentar a través d'eStudy, seguint la nomenclatura i les normes d'originalitat indicades.

Ús d’intel·ligència artificial (escala AIAS)

  • Exercicis pràctics setmanals (hands-on) realitzats i avaluats íntegrament a l’aula o laboratori (40%): Nivell 1 (sense IA). S’hauran de completar sense l’ajuda d’eines d’intel·ligència artificial generativa.
  • Projecte final de desenvolupament d’una aplicació i projecte de recuperació (60%): Nivell 2 (planificació amb IA). La IA només es podrà utilitzar durant la ideació, l’exploració inicial, l’organització i la planificació del treball. No es podrà utilitzar per generar, completar, corregir o reescriure el codi, la documentació ni cap altra part del producte lliurat.
  • Demostració, presentació i defensa individual del projecte: Nivell 1 (sense IA).

Qualsevol ús permès de la IA s’haurà de declarar en el lliurament, indicant l’eina utilitzada, la seva finalitat i els prompts o instruccions introduïts. L’ús de la IA que excedeixi el nivell indicat, o la seva utilització sense declarar-la, es considerarà un incompliment de les normes d’honestedat acadèmica. L’alumnat serà responsable de l’autoria, l’exactitud i el funcionament de tot el material lliurat.

Criteris avaluació: 

Les evidències d'avaluació es valoren segons els criteris següents:

• Funcionament i robustesa: l'aplicació compleix els requisits, gestiona errors i estats alternatius i es pot executar en el dispositiu objectiu.

• Swift i qualitat del codi: ús correcte de tipus, opcionals, col·leccions, concurrència, gestió d'errors i memòria; codi llegible i coherent.

• Arquitectura: responsabilitats ben separades, navegació comprensible, models adequats i dependències encapsulades.

• Dades i serveis: integració correcta de l'API, descodificació, persistència i protecció de la informació sensible.

• Integració amb iOS: permisos contextuals, ús justificat de frameworks i capacitats, i comportament correcte davant canvis de disponibilitat o autorització.

• UI/UX: interfície completa, adaptable, localitzable, accessible i coherent amb les convencions de la plataforma.

• Procés i comunicació: compliment dels punts de control, proves, documentació, presentació, capacitat de justificar les decisions i contribució equilibrada de l'equip.

Bibliografia bàsica: 

• Apple. Xcode Documentation. https://developer.apple.com/documentation/xcode

• Apple. UIKit Documentation. https://developer.apple.com/documentation/uikit

• Apple. Human Interface Guidelines. https://developer.apple.com/design/human-interface-guidelines/

• The Swift Project. The Swift Programming Language. https://docs.swift.org/swift-book/documentation/the-swift-programming-language/

Material complementari: 

• Apple. SwiftUI Documentation. https://developer.apple.com/documentation/swiftui

• Apple. URL Loading System. https://developer.apple.com/documentation/foundation/url-loading-system

• Apple. Core Data. https://developer.apple.com/documentation/coredata

• Apple. MapKit. https://developer.apple.com/documentation/mapkit

• Apple. UserNotifications. https://developer.apple.com/documentation/usernotifications

• Apple. HealthKit. https://developer.apple.com/documentation/healthkit