Aujourd’hui moins de sessions, mais plus de discussions avec les ingénieurs Apple présents sur la WWDC. Un aspect que je n’avais pas encore exploré.

Les labs

Les Labs sont des espaces partagés, divisés par thématique :

  • Technology Lab
  • UIDesign Lab
  • AppStore Lab

On peut donc venir au Lab avec son propre projet et demander conseil aux ingénieurs Apple. 

Pour y accéder, il faut s’enregistrer au préalable car la session est individuelle et le nombre de demandes est assez conséquent.

Il est aussi possible d’y accéder sans problématique particulière, surtout pour le Technology Lab, juste pour discuter des nouvelles fonctionnalités présentées cette semaine. Personnellement, ça m’a permis de comprendre certains concepts plus techniques de SwiftUI qui ne sont pas présentés durant les sessions.

 

Les sessions

Swift Packages

C’est l’une des nouveautés que propose xCode 11 pour les Apps iOS, il intègre maintenant la gestion de package Swift.

C’est un sérieux concurrent pour CocoaPods, l’un des utilitaires les plus utilisés dans la gestion des dépendances.

La session n’est pas entrée dans le détails mais nous a permis de voir comment l’intégration se gère dans le projet xCode, la manière de gérer les versions ainsi que les updates.

Il me faudra un peu plus de pratique pour une idée plus précise de sa valeur.

 

Data flow in SwiftUI

Avec l’arrivée de SwiftUI, le process de liaison du model à ses view a été revue. Les nouveaux flows simplifient “Source of truth” et la mise à jour de l’UI par rapport à son model.

Pour ce faire de nouvelles propriétés existent :

  • @State : Ce sont les propriétés qui sont la source de vérité. Elles servent à être liées à la vue, et la mettent à jour quand leurs valeurs changent. Elles sont gérées pour la view de manière locale et sont managées par le framework.
  • @binding : Ce sont les propriétés qui dérivent d’une source. Elles sont utilisées pour propager une valeur d’un parent dans un enfant sans en modifier l’origine. Leur nom devront être suffixé d’un ‘$’
  • @ObjectBinding : Créer une dépendance direct entre une propriété externe et la view. Utile pour des propriétés externes à une classe ( la view et son modèle par exemple). Ce sont des références qui devront être managées par le développeur.
  • @Environment : Permet de créer une dépendance indirecte entre une variable et un observer. 

Chaque outils d’accès à la donnée a ses cas d’utilisations et pourront améliorer nos applications en rendant plus simple la compréhension et l’action qu’aura une propriété.

La bash

Pour clôturer cette belle journée d’apprentissage, je me rend au Bash. Kezako ?

C’est l’évènement hors conférence de la semaine organisé par Apple. Celui – ci à lieu le Jeudi soir (bon nombre de personnes reprennent l’avion le vendredi en cour de journée). Lors des dernières années on a pu y voir jouer des groupes comme Good Charlotte, Fall out boy. Cette année c’était Weezer

Quelques photos supplémentaires pour conclure cette quatrième journée au WWDC19 :