WWDC 2021 : Les nouveautés pour les utilisateurs et les développeurs

iOS 9 juin 2021

Apple a lancé lundi sa semaine consacrée aux développeurs avec le keynote qui a présenté des nouveautés pour l'iPhone, l'iPad, le Mac et l'Apple Watch. Quelques heures plus tard, la session State of The Union a donné plus de détails aux développeurs sur la meilleure façon d'exploiter toutes ces nouveautés.

Pas envie de lire ? Profitez de ce contenu en vidéo :

iOS 15 : De nombreuses apps améliorées, particulièrement FaceTime (et SharePlay)

Les nouveautés sont nombreuses cette année à commencer par les apps que Apple a améliorées :

  • Maps continue d'enrichir les cartes de certaines villes et revoit sa présentation pour la rendre un peu plus fun.
  • Météo a été entièrement réécrite (en SwiftUI apparemment) et propose encore plus de fonctionnalités
  • Musique, Photos, etc.

Une attention particulière a été donnée à FaceTime qui gère 3 nouvelles fonctionnalités :

  • L'audio Spatial pour les possesseurs d'écouteurs Apple/Beats compatible
  • L'arrière plan de l'utilisateur qui peut être flouté ... pour cacher le bordel 😁
  • L'audio d'arrière plan qui peut être filtré en temps réel ... pour cacher la présence des enfants et autres chasses d'eau qui pourraient surprendre votre interlocuteur 😂

Mais pour moi la plus grande évolution de FaceTime est SharePlay : l'idée consiste à partager avec les autres membres de la conversation des expériences locales. Ainsi vous pouvez visionner des vidéos à plusieurs, les commenter, écouter de la musique ou collaborer en temps réel dans une app tierce compatible. Car il y a bien une API pour les développeurs qui pourront proposer des actions à plusieurs de façon synchronisée.

Focus : contrôlez plus finement vos interruptions

Les notifications sont de véritable freins à notre productivité, mais aussi à nos relations sociales non virtuelles. Tout est prétexte à abandonner ce que l'on est en train de faire pour saisir notre smartphone car une app nous a invoqué. Pour aider les utilisateurs à reprendre le contrôle, Apple propose de revoir l'organisation de votre smartphone en fonction de votre mode de concentration. Voici quelques exemples de modes :

  • vous êtes au travail : laissez uniquement vos emails et votre Slack accessibles
  • vous êtes entre amis : ne laissez passez que les notifications critiques pour gardez vos conversations vivantes
  • vous n'avez rien à faire de particulier ce soir : passez en mode open bar sur votre iPhone et soyez submergé d'informations 😁

Plus sérieusement, les utilisateurs pourront créer des modes et des configurations relatives à ces modes. Les développeurs eux, auront la responsabilité de classifier leurs notifications par ordre d'importance et d'urgence.

IA : de nouvelles fonctionnalités pour les utilisateurs et des API pour les développeurs

L'IA entre de plus en plus au coeur du système en proposant à l'utilisateur d'analyser ses données (photos, données d'apps, interactions, etc.) pour lui proposer des suggestions intelligentes.

Plusieurs nouveautés sont associées à cette montée en puissance des réseaux de neurones informatiques :

  • Live Text : qui permet d'extraire du texte de n'importe quelle image dans la plupart des apps système. Cela permet de faire du copier/coller, de faciliter la rechercher ou d'extraire des métadonnées depuis des photos. Des tas d'applications concrètes au quotidien pour cette nouvelle fonctionnalité.
  • Siri est enfin maintenant capable de traiter la parole en local ce qui apporte plusieurs avantages. D'abord la vie privée puisque l'audio n'est plus envoyé à Apple, mais aussi les performances puisque tout se fait directement sur le téléphone sans échanger des données avec les serveurs d'Apple.
Easter Egg : Craig Federighi affiche les notes d'une réunion à propos de la WWDC 2022 😁 Je suis fan des AirBuds, la version pour chien des AirPods 😂

Développeurs : des outils améliorés (Xcode 13, XcodeCloud, Swift, SwiftUI 3, etc.)

Une WWDC n'en serait pas vraiment une si les développeurs n'avaient pas droit à leurs petits cadeaux, à commencer par une nouvelle version de Xcode.

Cette version intègre plusieurs nouveautés utilisables au quotidien, mais surtout elle intègre l'utilisation d'un nouveau service pour les développeurs : XcodeCloud.

Ce service permet de faire de l'intégration continue, comme pourrait le proposer GitHub via ses GitHub Actions. Les serveurs d'Apple peuvent surveiller votre dépôt Git pour déclencher automatiquement des tests automatisés sur plusieurs types d'appareils dès qu'un membre de l'équipe envoie du nouveau code.

On peut configurer des notifications pour les membres de l'équipe en fonctions des résultats de ce test et préparer automatiquement une beta TestFlight si nécessaire.

Le principal avantage par rapport aux services similaires de CI, c'est l'intégration à Xcode ; le principal inconvénient c'est que cela ne fonctionne qu'avec les technos d'Apple (c'est une supposition, je n'ai pas encore accès à la beta de XcodeCloud).

La beta est limitée pour le moment, et on ne connaît pas encore la date de sortie de beta ni le coût qui sera associé à ce service, même si Apple a déjà suggéré que ce serait payant au delà de la beta.

Swift : gestion de la concurrence avec async, await, actor

Depuis de nombreuses années nous attendions cette fonctionnalité : Swift est une langage génial à plusieurs niveaux, et sa gestion du code asynchrone faisait partie de ses plus grandes faiblesses.

La notions de async await  existe dans plusieurs langages et rend l'enchaînement de tâches asynchrones beaucoup plus simple et naturel pour le développeur.

Swift étant un langage permettant le multithreading pour augmenter les performances, la question de la concurrence d'accès aux variables se pose forcément. C'est là qu'intervient le concept d' actor en Swift : il permet simplement de protéger des variables ou des fonctions d'une utilisation simultanées par plusieurs tâches de fond.

Je présenterai en détails ces concepts dans mon cours pour Apprendre à programmer (en Swift) en ajoutant des vidéos au cours de l'été.

Apprendre à programmer (en Swift)
Le guide parfait pour débuter rapidement dans le monde de la programmation

SwiftUI devient de plus en plus complet

Avec cette 3ème version de SwiftUI, Apple nous permet de nous écarter de plus en plus de UIKit pour simplifier la création d'interfaces graphiques sur iPhone, iPad, Mac et Apple Watch.

Le cours sur les nouveautés de SwiftUI sortira très bientôt sur Purple Giraffe et dès maintenant je peux vous dire que de nombreuses nouveautés ont été ajoutées : amélioration des listes (swipes, pull down to refresh, recherche, etc.), meilleure gestion des chargements asynchrones, etc.

Autres nouveautés

J'ai couvert les nouveautés qui me paraissaient essentielles mais il y a bien entendu d'autres annonces géniales que nous traiterons en temps voulu (Swift Playgrounds, VPN iCloud, etc.).

Et maintenant ?

La WWDC va durer toute la semaine et je vais étudier en détails chacune des nouveautés intéressantes pour vous. J'ai prévu plusieurs actions au cours des prochaines semaines :

  • Adapter le cours gratuit de 1H pour Xcode 13
  • Adapter le cours Apprendre à programmer (en Swift) pour y inclure le async / await /actor
  • Créer l'édition iOS 15 du cours Apprendre à créer des apps avec SwiftUI
  • Créer un nouveau cours sur les nouveautés de iOS 15 pour ceux qui savent déjà programmer avec SwiftUI et veulent aller à l'essentiel.

Je vous tiendrai au courant par email pour tous ceux qui sont inscrits sur Purple Giraffe et ont accepté de recevoir ce type d'emails.

J'espère que ce résumé vous a plus, et j'adorerais savoir quelle est la nouveauté que vous avez préféré parmi toutes ces annonces.

A très vite pour créer ensemble et surtout happy coding !

Maxime

Mots clés