-
Labo de groupe Swift
Plongez au cœur de la WWDC26 en compagnie des équipes d'ingénierie et de design Apple. Rejoignez-nous en ligne pour poser des questions, obtenir des conseils et suivre les discussions sur les principales annonces de la semaine concernant Swift. Séance présentée en anglais.
Chapitres
- 0:00:00 - Introduction
- 0:04:33 - Quelle est la meilleure approche pour transférer la « propriété » de données non Sendable entre domaines d’isolation sans effectuer de copie, par exemple, lorsqu’un acteur transmet de grandes quantités de données à un autre acteur ?
- 0:06:05 - Quels conseils et bonnes pratiques recommandez-vous, et quels pièges suggérez-vous d’éviter pour l’utilisation de la concurrence structurée dans Swift ?
- 0:11:56 - Y a-t-il un coût de performance ou de surcharge lié à des conformances inutiles ou superflues (Sendable, Equatable, Hashable, etc.) ajoutées à chaque structure par simple habitude ? Que se passe-t-il en arrière-plan ?
- 0:14:29 - Par ailleurs, l’application de l’attribut @MainActor déclenche une réaction en chaîne massive de refactorisation asynchrone à travers toute une base de code historique. Quel est le modèle d’architecture (pattern) le plus propre pour stopper cette « contagion de la concurrence » sans pour autant sacrifier la sécurité offerte par Swift 6 ?
- 0:17:19 - Quelles sont les fonctionnalités modernes de Swift ou les ressources officielles les plus essentielles à adopter en priorité pour obtenir une efficacité maximale et d’excellentes performances ?
- 0:19:48 - Après une migration manuelle complète vers la concurrence stricte de Swift 6, faut-il supprimer les annotations devenues redondantes avec le nouveau modèle d’isolation, ou vaut-il mieux les laisser en tant qu’opérations sans effet ?
- 0:23:08 - Pourquoi UserDefaults n’est-il pas conforme à Sendable alors que la documentation indique qu’il est thread-safe ? S’agit-il d’une étape préliminaire ?
- 0:25:24 - Est-ce une bonne pratique de migrer complètement vers l’utilisation de « borrow/mutate » à la place de « get/set », et dans quels cas ne le recommanderiez-vous pas ?
- 0:27:06 - Avec l’arrivée de nouveautés telles que Mutex, InlineArray, Span, les throws typés et les types non copiables, comment les développeurs d’apps peuvent-ils faire la part des choses entre ce qui leur est destiné et ce qui relève du développement système ou embarqué, et comment rester à jour ?
- 0:31:57 - Par ailleurs, notre projet souffre de builds incrémentiels extrêmement lents, l’étape Swift Emit Module prenant plusieurs minutes, et le découpage en modules n’a rien arrangé. Est-ce que des fonctionnalités comme l’inférence de types ou les génériques peuvent impacter ces performances, et comment pouvons-nous diagnostiquer ce problème ?
- 0:33:39 - Maintenant que la concurrence de Swift 6 est largement adoptée, y a-t-il des aspects que l’équipe aborderait différemment si elle devait la concevoir aujourd’hui ?
- 0:37:31 - Quels sont les changements notables apportés à Swift Package Manager dans la dernière version, en particulier concernant les performances de build et de résolution des dépendances pour les grands projets multipackages ?
- 0:39:20 - Quelle est la fonctionnalité de Swift que la plupart des développeurs ignorent, mais qu’ils devraient absolument connaître ?
- 0:48:15 - Que reste-t-il à accomplir dans l’évolution du langage pour que les tuples puissent enfin se conformer de manière conditionnelle à Equatable, Hashable ou Comparable ?
- 0:50:05 - Avec la concurrence stricte de Swift 6, quel est le pattern recommandé pour ingérer des données de capteurs à haute fréquence sur un acteur d’arrière-plan et diffuser les mises à jour sous forme de flux vers un modèle @Observable sur le MainActor sans bloquer l’UI ?
- 0:53:03 - Concernant les performances, pourquoi un tuple est-il plus coûteux qu’une structure lorsqu’il est renvoyé par une méthode, ou est-ce que cela dépend du contexte ?
- 0:54:17 - Quelle est votre fonctionnalité préférée en matière de confort de développement ou de qualité de code dans Swift ? Nous ne parlons pas des options évidentes, mais des petites astuces méconnues qui rendent Swift si agréable à écrire.
Ressources
-
Rechercher dans cette vidéo…
-