Nouveau standard Swift 6 : ce qui attend les développeurs iOS/macOS

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Nouveau standard Swift (iOS/macOS) : ce qui attend les développeurs



L'équipe d'Apple a officiellement annoncé la sortie de Swift 6 — une étape majeure dans l'évolution du langage de programmation pour les écosystèmes iOS, macOS, watchOS et tvOS. Cette nouvelle version apporte des changements fondamentaux dans la gestion de la mémoire, le parallélisme et la compatibilité avec C++. Voyons ce qui va changer pour les développeurs et comment se préparer à la migration.



Principales nouveautés de Swift 6



  • Mode strict de sécurité mémoire (Strict Concurrency Checking) — Swift 6 introduit une vérification obligatoire des conditions de concurrence (data races) à la compilation. Tous les types non-Sendable transmis entre les tâches généreront une erreur de build. Cela améliore considérablement la stabilité du code multithread.
  • Extension du support de Sendable — désormais, le protocole Sendable s'applique automatiquement à la plupart des types standards (Int, String, Array, Dictionary). Les développeurs devront marquer explicitement leurs classes personnalisées comme @unchecked Sendable si elles ne sont pas des value types.
  • Interopérabilité C++ améliorée — Swift 6 permet d'appeler des fonctions et classes C++ directement, sans wrappers en Objective-C. C'est particulièrement important pour les projets utilisant du code Legacy en C++ (par exemple, les moteurs de jeux ou les bibliothèques de vision par ordinateur).
  • Nouvelles fonctionnalités pour iOS/macOS — de nouvelles API ont été ajoutées pour travailler avec Core Data, SwiftUI et Combine. Les performances du compilateur sont améliorées : la compilation des grands projets est accélérée de 15 à 20 %.


Qu'est-ce que cela signifie pour les développeurs ?



Le passage à Swift 6 nécessitera un refactoring du code, surtout si vous utilisez activement des variables globales, des singletons ou des closures avec capture de données mutables. Voici les étapes clés :



  • Remplacez toutes les classes transmises entre les threads par des structures ou ajoutez le marqueur @unchecked Sendable.
  • Utilisez actor pour isoler l'état mutable. Swift 6 rend actor obligatoire pour un accès sécurisé aux ressources partagées.
  • Vérifiez toutes les closures transmises aux fonctions asynchrones — elles doivent être explicitement marquées comme @Sendable.
  • Pour les projets avec du code C++ — mettez à jour les bindings : Swift 6 convertit automatiquement std::string en String et std::vector en Array.


Quand mettre à jour ?



Swift 6 est déjà disponible dans Xcode 16. Il est recommandé de commencer les tests sur des branches secondaires, mais de ne pas forcer la migration des projets en production avant la sortie de Xcode 16.1 (prévue pour fin 2024). Pour des fins éducatives et les nouveaux projets — utilisez Swift 6 immédiatement pour vous habituer aux nouvelles règles.



Conseil de PythonLib



Si vous commencez tout juste à apprendre Swift, portez une attention particulière au module Concurrency — il est devenu obligatoire pour la certification Apple. Sur notre site, nous avons préparé une série de leçons sur Swift 6, incluant la migration depuis Swift 5.9 et l'analyse des erreurs liées à Sendable. Suivez les mises à jour !

Recommended Libraries