Snapp’ décrypte pour vous les impacts iOS 13

Snapp’ décrypte pour vous les impacts iOS 13

Le 10 septembre dernier, Apple dévoilait lors de sa keynote annuelle la version finale d’iOS 13,  disponible dès aujourd’hui. La marque avait déjà mis à disposition une version Beta d’iOS 13, permettant à nos développeurs d’étudier les différents changements et évaluer les impacts sur notre utilisation de l’OS.  

Snapp’ vous présente ci-après un récapitulatif des principales nouvelles fonctionnalités qui seront présentes dans cette nouvelle version.

Le Dark Mode

Déjà en place sur les dernières versions d’Android, le “dark mode” (traduisez “mode sombre”) débarque sur iOS 13. Fini le thème clair par défaut des appareils iOS, vous pourrez désormais choisir de visualiser vos applications sur un thème foncé.
Optimisée pour l’affichage des écrans de nuit, cette option activable depuis le panneau de configuration du téléphone vous permettra surtout de faire des économies d’énergie.

Petit bémol : toutes les applications installées sur votre téléphone ne supporteront pas forcément ce nouveau thème ! 

Côté Technique : le support n’étant pas complètement automatique, voici notre TODO 

  • Utiliser des couleurs dynamiques : color.white > color.systemColor.  
  • Pour les effets floutés le principe est le même que pour les couleurs dynamique

A noter : 

Possibilité de bloquer un mode sur un écran, une vue…

Possibilité de créer ses propres couleurs dynamiques

Possibilité de créer des “images dynamiques”

Le Sign-in d’Apple, la génération d'alias

Là aussi, Apple s’est inspiré de son concurrent Google pour mettre en place cette nouvelle fonctionnalité. Vous l’utilisez probablement déjà sur vos applications mobiles… l’inscription ou la connexion via Facebook ou Google est devenue monnaie courante lorsque l’on ne veut pas s’embêter à retenir un énième mot de passe alors qu’en un clic, on est connecté ! Le sign-in d’Apple vous permettra de vous inscrire sur différentes applications grâce à votre Apple ID.

Petite nouveauté tout de même : si vous ne souhaitez pas transmettre votre véritable adresse email, Apple vous propose de générer un alias afin que vos données personnelles ne soient pas visibles. Les emails envoyés à cet alias transites ensuite par un serveur d’Apple, qui les transfère vers votre véritable adresse. 
On aime le côté RGPD friendly !

Côté Technique

Configuration du projet : capability, entitlements

Ajouter le bouton défini par Apple

Créer une “requête d'autorisation” (affiche l’UI de demande à l’utilisateur)

Gérer le retour de la requête d'autorisation (utilisateur Apple ou non)

Gérer les déconnections utilisateurs (l’utilisateur peut se délogger en dehors de l’application)

La géolocalisation, un nouveau mode de permission

Dans un contexte où le tracking est de plus en plus poussé et les utilisateurs de plus en plus réfractaires, Apple a décidé de revoir les autorisations concernant la géolocalisation. 

Après la mise en oeuvre de l’autorisation de tracking uniquement lorsque l’application est active, iOS 13 propose aujourd’hui à ses utilisateurs un nouveau mode de permission temporaire, leur permettant de mieux contrôler leurs données personnelles en acceptant une seule fois l’autorisation de géolocalisation. 

Ainsi, les applications basée sur la géolocalisation de leurs utilisateurs seront contraintes de leur demander l’autorisation autant de fois que nécessaire.

Côté Technique : 

corelocation1b

While in use “ : Lorsque l’application est au premier plan. Possibilité d’autoriser le travail en background avec une propriété “allowsBackgroundLocationUpdate” un indicateur est alors affiché dans la barre de status.

corelocation3

Allow once” comme un “While In Use” une seule fois, l’autorisation repasse ensuite dans un état “indéterminé” Redemander la permission la prochaine fois

Tout nouveau iPadOS : Quézaco ?

Dans la foulée d’iOS 13, Apple en profite et sort iPadOS, le nouveau système d’exploitation dédié à l’iPad.

Parmi les nouvelles fonctionnalités, retenez principalement que l’écran d’accueil de l’iPad tend à ressembler de plus en plus à celui du Mac, grâce à l’ajout d’onglets et de fenêtres. D’ailleurs, il est possible de l’utiliser comme un second écran de Mac.

Ce nouvel OS permettra aussi l’intégration de différents widgets à votre écran d’accueil (météo, rendez-vous, fréquences d’usage des applications etc…).

Vous l’aurez compris, Apple cherche à tendre vers une homogénéisation de ses différents OS afin d’assurer une meilleure fluidité dans le développement et par conséquent, dans l’usage de ses outils.

L’ objectif ?

Permet de « recompiler des applications iPad pour les exécuter nativement sur Mac« . Apple a unifié autant que possible toutes les couches de frameworks entre iOS et MacOS (à quelques exceptions prêts comme ARKit qui n’existe pas sur Mac).

Cela permet d’avoir une application Mac rapidement lorsque l’on a une application iPad. Les applications de type « iPhone only » ne sont pas compatibles.

AVANT
APRES : Notion de framework “jumeau”, c’est le compilateur qui selon la cible va choisir quel framework utiliser. Transparent pour le développeur.

L’avis de nos développeurs : Apple cherche à embrouiller un peu tout le monde 🙂

iOS sur iPad a été rebaptisé iPadOS mais en pratique peu de changement (pour le moment). Il n'y a qu'un seul OS : iOS.

Les nouvelles fonctionnalités sont en fait sur des APIs plutôt utilisées sur l'iPad.

iPad Apps for Mac

C’est dans cette logique d’homogénéisation que la marque a souhaité unifier autant que possible les frameworks (composants logiciels structurels) utilisés pour iOS et MacOS.

Créer une application Mac rapidement à partir d’une application iPad sera désormais possible, moyennant seulement quelques modifications dans le code !

Côté Technique : certains framworks ne sont pas supportés. Les frameworks dépréciés (utiliser leur version non dépréciée)

  • AssetsLibrary
  • OpenGLES
  • GLKit
  • AddressBookUI
  • AddressBook

Les frameworks spécifiques iOS : 

  • ClassKit
  • HealthKit
  • ARKit
  • CarPlay
  • HomeKit
  • VisionKit

Pour adopter le projet, pensez à : 

Nouveau scheme, bundle id, entitlements…

Attention à la taille des textes

Attention aux gestures

Attention à la taille des ressources

Attention aux accès au NSBundle (les fichiers ne vont pas au même endroit dans le bundle Mac)

Concernant le conditionnement : conditionnez le code pour éliminer le code non compatible Mac.

Framework tiers: favorisez un format spécifique xcframework

SF Symbols

Il est certain que si vous êtes un utilisateur d’iPhone confirmé, vous êtes plutôt familier à l’interface singulière de l’OS (univers blanc et gris, pictogrammes tracés au trait fin bleu, notification rouge…).

Bref, vous connaissez sur le bout des doigts les guidelines Apple en matière de design ! Mais préparez-vous, car iOS 13 débarque avec SFSymbols, une nouvelle bibliothèque d’icônes natives utilisables dans toutes les applications disponibles sur l’App Store.

Côté technique :

L’intégration dans une app passe par : 

UIImage(systemName:"xxx") où "xxx" est le nom de l'image trouvé dans SF Symbols

Pour un svg "maison", svg dans les assets puis UIImage(named:"xxx") où "xxx" le nom de l'assets.

API "SymbolConfiguration" qui permet de régler les propriété des symboles sur les ImageView.

Ces propriétés ne sont pas appliquées sur autre chose que des symboles.

Pour les UIButton, on peut faire la même chose que pour les UIImage

Pour créer son symbole :

Il faut partir d'un template : pour cela il est possible d'extraire le svg depuis un symbole dans l'application SFSymbol (sélectionner le symbole -> File -> Export Custom Symbole template)

Ensuite éditer ce template (avec des outils de dessins) pour le compléter comme on le souhaite puis sauvegarder le fichier

Il suffit ensuite d'intégrer ce svg dans les ressources de l'application dans Xcode

La double caméra

Ne serait-il pas sympa, lorsque vous filmez une scène avec votre caméra, de vous filmez également en selfie et d’accéder en live aux 2 prises de vue ? Vous en réviez, Apple l’a fait.

Dans la version d’iOS 13, les modes multi-caméra et multi-micros seront disponibles, couplés à une amélioration dans la détection des différents éléments du visage (les cheveux, la peau, les dents…).

Malheureusement, cette fonctionnalité est pour le moment limitée aux Iphones 10 et dernier iPad Pro. Pensez également à garder votre chargeur à proximité car cette feature est très coûteuse en énergie !

 

ARKIT 3, la réalité augmentée by Apple

Pour les non-connaisseurs, Arkit est un kit de développement qui permet “d’intégrer les fonctionnalités de caméra et de mouvement d’un appareil iOS pour créer des expériences de réalité augmentée dans une application ou un jeu vidéo.”

https://developer.apple.com/documentation/arkit

Dans sa nouvelle version, Arkit 3 capitalise principalement sur la simplification des prises de vue d’un environnement en réalité augmentée.

Cela passe notamment par l’amélioration du motion capture et de l’occlusion (plus de collègue qui semble passer à travers des objets !), mais aussi par la mise en place de sessions collaboratives de travail pour faciliter la détection des environnements.

C’est certain, la réalité augmentée nous réserve encore de belles surprises !