R2. Requeriments específics iOS
R2.1. Compatibilitat |
R2.2. Metainformació del projecte XCode |
R2.3. Estàndards de desenvolupament |
R2.4. Política de privacitat de l'app |
R2.1. Compatibilitat
S'entén per compatibilitat no només que l'aplicació es pugui instal·lar, sino que les funcionalitats principals de l'aplicació s'executin de forma correcta i sense presentar errors. En cas que una funcionalitat secundària no funcioni correctament en un conjunt de dispositius, aquesta funcionalitat no haurà de mostrar-se en aquests dispositius.
- R2.1.1. Les aplicacions amb el sistema operatiu iOS per a mòbil han de ser compatibles amb les darreres versions d'iOS, seguint la política de suport d’Apple. En concret, s’han de complir els següents requeriments:
- El desenvolupament ha de ser compatible amb iOS 17 o versions superiors. També ha de ser compatible amb les darreres versions iOS que Apple tingui publicades o en Beta.
- No es publicaran apps compatibles amb versions iOS 15 o inferiors.
- En el cas d’utilitzar Swift ha de ser l’última versió disponible.
- L'aplicació no ha de tenir cap error, ni cap problema funcional o de visualització, en mode fosc.
- R2.1.2. Les aplicacions han de ser compatibles i adaptar-se de manera 100% automàtica a qualsevol mida de dispositiu.
- R2.1.3. En el moment de publicació, el codi de l’aplicació es compilarà i es pujarà a App Store mitjançant la darrera versió disponible de XCode, així com amb la darrera versió del SDK disponible, per tant, el codi ha de ser compatible amb aquestes versions.
- R2.1.4. El framework de desenvolupament de l'Ajuntament és Flutter, i per tant el IDE oficial per compilar és Xcode. Si el proveïdor desenvolupa amb altres IDE com Titanium, Phonegap, entre d'altres, el proveïdor ha de proporcionar aquest codi de manera que pugui ser compilat amb XCode. En cas de no ser possible cal informar-ho i sol·licitar l’autorització a l’OSAM prèviament a l’inici del desenvolupament.
R2.2. Metainformació del projecte XCode
- En iOS el bundleid de l’aplicació ha de ser: cat.bcn.nom-aplicació
- En iOS cal que l’app tingui registrat un URL Scheme, per tal de poder ser oberta remotament des d’una altra app. L'URL Scheme ha de seguir el patró que marca el BundleID.
- Com a nomenclatura del camp Bundle Version del fitxer info.plist, s’utilitza la data de lliurament en format numèric i invers (yyyymmddhh).
- No serà vàlid deixar l'opció per defecte d'Universal si una aplicació és només compatible per iPhone o per iPad.
- Quan es genera un projecte nou, s’ha de marcar l’opció correcta de “supported destinations” a la informació general del projecte en XCode.
- Per a totes les apps que utilitzin localització, la geolocalització es limitarà a l’opció WhenInUse, és a dir, només quan l’app estigui en ús (foreground). A l’arxiu Info.plist del projecte cal afegir l’entrada NSLocationWhenInUseUsageDescription especificant un missatge d'alerta d'utilització d'aquest permís, perquè el sistema el mostri. En el cas que l'app sigui multi-idioma, s’ha d’indicar la variable i posar els strings als fitxers InfoPlist.strings del projecte.
- Els projectes han de venir sense certificats seleccionats (utilitzar els genèrics).
R2.3. Estàndards de desenvolupament
- R2.3.1. S’ha de garantir les guidelines de desenvolupament i qualitat especificades per l’Apple Store vigents en el moment de publicació. Les guidelines es poden trobar si fem clic a guidelines Apple. També és necessari revisar les noves notícies proporcionades per Apple, ja que poden contenir avisos importants i accions obligatòries relacionades amb les apps. L’enllaç és últimes notícies Apple.
- Recomanem no superar els límits establerts per Apple per a la descàrrega de l’app a través de la xarxa de dades mòbils. En cas de superar-la caldrà proporcionar una justificació.
- La splashcreen ha d'utilitzar els storyboards de Xcode.
- R2.3.2. També s'han de seguir els estàndards de desenvolupament exposats per l'OSAM:
- Si el codi del projecte té dependències amb altres projectes, cal que aquests altres estiguin inclosos dins el projecte principal com a llibreries. D’aquesta manera evitem possibles errors en accions manuals de compilació i referència. En qualsevol cas, recomanem la utilització del gestor de dependències CocoaPods. Si s’utilitza CocoaPods, s'ha d’afegir els binaris de les llibreries que s’especifiquin en el Podfile.
- Si el projecte utilitza CocoaPods, ha d'utilitzar l'última versió estable d'aquest. I les versions dels Pods incloses en aquest han de ser fixes (no utilitzar “~>”) perquè la validació que ens doni el proveïdor sigui real.
- En el cas que l’ OSAM necessiti una llicència per la compilació dels projectes amb el Framework multiplataforma (Titanium, Phonegap, ...) aquesta serà facilitada per la persona responsable de l'aplicació de l'Ajuntament o el seu proveïdor.
- Si el codi del projecte té dependències amb altres projectes, cal que aquests altres estiguin inclosos dins el projecte principal com a llibreries. D’aquesta manera evitem possibles errors en accions manuals de compilació i referència. En qualsevol cas, recomanem la utilització del gestor de dependències CocoaPods. Si s’utilitza CocoaPods, s'ha d’afegir els binaris de les llibreries que s’especifiquin en el Podfile.
R2.4. Política de privacitat de l'app
- R2.4.1. D'acord amb els requeriments sobre privacitat de les dades d'Apple a partir de la versió 14.5 d'iOS, totes aquelles aplicacions que utilitzin dades de la persona usuària per a fer tracking (rastreig) cal que demanin el permís explícit de la persona usuària a través del framework AppTrackingTransparency. Si aquesta no dona permís per habilitar el tracking, l'app no ha de recollir aquestes dades i, en concret, en el cas de l'identificador de publicitat que proporciona el propi sistema operatiu, aquest vindrà amb valor 0 i no es podrà utilitzar.
- Per tal de decidir si cal o no utilitzar aquest framework, per publicar qualsevol versió, cal omplir un formulari de privacitat de l'app on es defineix quines dades personals es recullen i quin ús es fa d'aquestes. Aquest formulari cal omplir-lo un sol cop per a cada app i caldrà contactar amb l'OSAM per a fer-ho. Per cada tipus de dada que es seleccioni, s’ha d’indicar com s’utilitzen les dades obtingudes per aquesta app.
- Per a consultar la definició de tracking, exemples, els diferents tipus de dades que cal declarar i altres consideracions es poden consultar aquí.