Opcions d'impressió

Mida
Compacta · 9 pt Normal · 10,5 pt Gran · 12,5 pt
Els meus apunts
No imprimir-los Incloure'ls a cada paràgraf

El navegador numera les pàgines des del seu propi quadre d'imprimir: activa-ho allà si les vols.

Els requadres grisos només surten si deixes marcada la casella «Gràfics de fons» del quadre d'imprimir.

opos

Desenvolupament d'aplicacions mòbils

Desenvolupament d'aplicacions mòbils

Elaboració pròpia: la font és de pagament i no es reprodueix

Sense esquema, expressament

Enunciat oficial. Desenvolupament d'Aplicacions Mòbils. (APPS).


1. Tipus d'aplicació mòbil

Abans de començar un projecte cal escollir el tipus d'aplicació, en comparació amb les alternatives, segons els criteris principals que segueixen la taula.

Tipus Com es fa Avantatges Inconvenients
Nativa llenguatge i SDK (Software Development Kit) de la plataforma: Swift/SwiftUI + Xcode per a iOS, Kotlin/Java + Android Studio per a Android millor rendiment, accés complet al maquinari i a les API (Application Programming Interface, interfície de programació d'aplicacions) del sistema, millor UX (User eXperience, experiència d'usuari) i integració amb el sistema operatiu, funcionament fora de línia complet cal desenvolupar i mantenir una base de codi per plataforma: més cost i més temps
Web (web app) web responsiu executat al navegador una sola base de codi, desplegament immediat sense botigues, cap instal·lació accés limitat o nul al maquinari del dispositiu (sensors, contactes, Bluetooth, notificacions natives), rendiment inferior, dependència de la connexió i experiència d'usuari menys integrada
PWA (Progressive Web App, aplicació web progressiva) web + service worker + manifest instal·lable, funcionament fora de línia, notificacions push (limitades a iOS), sense botiga encara amb límits d'accés al maquinari, especialment a iOS
Híbrida web empaquetat en un contenidor natiu (Cordova, Ionic, Capacitor) una base de codi, accés al maquinari via connectors rendiment intermedi, sensació «no nativa»
Multiplataforma compilada Flutter (Dart), React Native (JS, JavaScript/TS, TypeScript), .NET MAUI (Multi-platform App UI), Kotlin Multiplatform una base de codi amb rendiment gairebé natiu, UI (User Interface, interfície d'usuari) consistent dependència del marc, retard en adoptar novetats del sistema, mida de l'aplicació

PWA: és la tendència recent de les aplicacions web que aprofiten funcions modernes del navegador per oferir experiències semblants a les de les aplicacions natives; així es coneixen les aplicacions web progressives.

Desavantatge clau de les WebApps davant les natives (pregunta literal): l'accés limitat a les funcionalitats i al maquinari del dispositiu —càmera, GPS d'alta precisió, biometria, NFC (Near Field Communication), Bluetooth, notificacions natives, treball en segon pla— i el rendiment i l'experiència d'usuari inferiors, especialment en interaccions gràfiques intensives.

Criteris de decisió: pressupost i equip disponible, necessitat d'accés al maquinari, exigència de rendiment, previsió de vida de l'aplicació, necessitat de funcionament fora de línia, i estratègia de distribució. Exemple: una app només per a Android que, accedint al micròfon del telèfon, ha de mesurar els decibels i dona prioritat al rendiment per proporcionar una experiència ràpida i bona és un cas clar de nativa: la tecnologia amb l'accés més directe al maquinari.

1.1 Llenguatges de programació

Compilats (C, Java, Swift): el codi font es tradueix sencer a codi màquina abans d'executar-se. Interpretats (Python, JavaScript): un intèrpret llegeix i executa el codi font línia a línia en temps d'execució, sense fase de compilació prèvia; és l'avantatge principal dels interpretats respecte als compilats —a canvi solen ser més lents en execució.

Els llenguatges que es fan servir depenen de la plataforma; el llenguatge tradicionalment més utilitzat a Android va ser Java, encara que avui Kotlin és el recomanat:

Plataforma Llenguatge
Android natiu Kotlin (recomanat) i Java
iOS natiu Swift i Objective-C
Multiplataforma Dart (Flutter), JavaScript/TypeScript (React Native)

2. Cicle de vida i metodologia

Metodologia àgil aplicada a les APP — la característica que la defineix principalment: el desenvolupament es fa en iteracions curtes que lliuren versions funcionals i utilitzables de l'aplicació de manera freqüent, incorporant la retroalimentació de l'usuari a cada cicle i acceptant els canvis de requisits. Això encaixa especialment bé amb el mòbil, on el retorn d'ús real (analítica, valoracions a les botigues, proves A/B) és immediat i abundant.

Fases: descobriment i definició de l'usuari → disseny UX/UI i prototipatge → desenvolupament iteratiu → proves → publicació → analítica i evolució.

Disseny mòbil: els conceptes clau per millorar l'experiència de les persones usuàries són la usabilitat —facilitat d'ús, navegació clara, poques passes per completar una tasca— i l'accessibilitat, i cal prioritzar-les per davant de l'acumulació de funcions o de l'estètica per si sola. mobile first, disseny responsiu i adaptatiu, guies de plataforma (Material Design d'Android, Human Interface Guidelines d'Apple), accessibilitat (WCAG (Web Content Accessibility Guidelines) 2.1 AA, lectors de pantalla VoiceOver i TalkBack, mida de text dinàmica, contrast), i suport de mode fosc i d'orientacions.

Proves: unitàries, d'interfície (Espresso, XCUITest, Appium), en dispositius reals i granges de dispositius (Firebase Test Lab, BrowserStack), i distribució beta (TestFlight, Google Play Internal Testing, Firebase App Distribution).

Publicació: App Store i Google Play, amb els seus processos de revisió, requisits de privadesa (privacy nutrition labels, formulari de seguretat de dades), signatura de l'aplicació i gestió de versions. Per a distribució interna: MDM (Mobile Device Management)/UEM (Unified Endpoint Management) i botigues corporatives → tema 52.

CI/CD mòbil: compilació automàtica, signatura, distribució i publicació (Fastlane, Bitrise, GitHub Actions) → tema 41.


3. Arquitectura i interoperabilitat

Aspecte fonamental per garantir la interoperabilitat d'una APP empresarial o municipal amb altres sistemes: exposar i consumir les dades mitjançant API estàndard, obertes i ben documentades —típicament REST (REpresentational State Transfer, transferència d'estat representacional) amb JSON (JavaScript Object Notation) i especificació OpenAPI—, amb formats de dades i vocabularis estàndard i amb un mecanisme d'autenticació i autorització també estàndard (OAuth 2.0 / OpenID Connect). L'aplicació mòbil ha de ser un client prim sobre serveis reutilitzables, no una integració punt a punt amb la base de dades de cada sistema.

Elements de l'arquitectura:


4. Seguretat mòbil

OWASP (Open Web Application Security Project) Mobile Top 10 (2024): ús indegut de credencials · cadena de subministrament insegura · autenticació i autorització insegures · validació d'entrada i sortida insuficient · comunicació insegura · controls de privadesa inadequats · proteccions binàries insuficients · configuració incorrecta de seguretat · emmagatzematge de dades insegur · criptografia insuficient.

Mesures:


5. Aplicacions mòbils al sector públic

Requisits específics:

Exemples municipals: Barcelona a la butxaca, apps de mobilitat i aparcament, Decidim (participació), i les apps de la Generalitat i de l'AOC (Administració Oberta de Catalunya).


6. Desplegament massiu a l'organització

Quan l'app és per als empleats i cal desplegar-la a tots els dispositius, la via correcta és el MDM/UEM: Microsoft Intune, Jamf, Workspace ONE, SOTI MobiControl. Permet distribució silenciosa, configuració remota, botiga corporativa, contenidorització del perfil de treball, polítiques de compliment i esborrat remot selectiu. → tema 52.

Programes de les plataformes: Apple Business Manager / Volume Purchase Program i Android Enterprise / Managed Google Play per a la distribució privada d'aplicacions.


Claus d'examen

Per recordar

Fonts d'aquest tema