- Le langage, la bibliothèque standard, le système de build et la prise en charge des plateformes s’enrichissent, avec une meilleure expérience développeur
- Interopérabilité renforcée avec C, ajout d’un SDK officiel pour Android, améliorations pour l’embarqué et extension de l’outil de documentation DocC figurent parmi les principaux changements
- Swift Package Manager améliore la cohérence des builds multiplateformes grâce à un moteur de build unifié et à la prise en charge de Swift Syntax précompilé
- Swift Testing ajoute de nouvelles fonctionnalités comme l’enregistrement de problèmes au niveau avertissement, l’annulation de tests et les pièces jointes d’images, pour plus de flexibilité dans les tests
- Le lancement officiel du SDK Android élargit le champ du développement multiplateforme de Swift et permet l’intégration avec des apps Kotlin/Java
Principales mises à jour de Swift 6.3
- Swift 6.3 apporte des fonctionnalités étendues dans le langage, la bibliothèque standard, le système de build et la prise en charge des plateformes
- Interopérabilité renforcée avec C, ajout d’un SDK officiel pour Android, améliorations pour l’embarqué et extension de l’outil de documentation DocC sont les changements clés
- L’objectif est d’améliorer l’expérience développeur et de renforcer l’intégration du développement multiplateforme
Langage et bibliothèque standard
-
Interopérabilité C
- Le nouvel attribut
@c permet d’exposer des fonctions Swift ou des enum à du code C
- La forme
@c(MyLibrary_callFromC) permet de définir un nom de déclaration C personnalisé
- L’utilisation conjointe de
@c et @implementation permet d’implémenter en Swift des fonctions déclarées dans des en-têtes C
- Dans cette configuration, Swift vérifie la correspondance avec les déclarations C existantes
-
Sélecteurs de nom de module (Module Name Selectors)
- Lors de l’import d’API portant le même nom depuis plusieurs modules, il est possible d’effectuer un appel qualifié par module sous la forme
ModuleA::getValue()
- La syntaxe
Swift::Task permet d’accéder aux API de concurrency et de traitement des chaînes
-
Contrôle des performances des API de bibliothèque
- @specialize : fournit une implémentation spécialisée à l’avance pour des types spécifiques d’une API générique
- @inline(always) : force l’inlining afin d’étendre le corps de la fonction au point d’appel
- @export(implementation) : expose l’implémentation de la fonction dans les bibliothèques stables ABI pour autoriser des optimisations supplémentaires
- Les propositions associées sont consultables sur le tableau de bord Swift Evolution
Améliorations des packages et du build
- Swift Package Manager inclut un aperçu de l’intégration de Swift Build, offrant une expérience de build cohérente sur toutes les plateformes
- Le moteur de build unifié renforce la cohérence du développement multiplateforme
- Les utilisateurs peuvent tester directement avec leurs packages et signaler les problèmes
- Principales améliorations de SwiftPM 6.3
- Prise en charge de Swift Syntax précompilé : les bibliothèques dédiées aux macros peuvent utiliser des binaires
swift-syntax précompilés
- Contrôle flexible de l’héritage de documentation : les plugins impératifs qui génèrent des graphes de symboles peuvent contrôler l’inclusion ou non de la documentation héritée
- Fonction d’exploration des caractéristiques du package : la commande
swift package show-traits permet de vérifier les caractéristiques prises en charge par un package
- Davantage de détails figurent dans les notes de version de SwiftPM 6.3
Mises à jour des bibliothèques cœur
-
Swift Testing
- Enregistrement de problèmes au niveau avertissement :
Issue.record(..., severity: .warning) affiche uniquement un avertissement sans faire échouer le test
- Fonction d’annulation de test :
try Test.cancel() permet d’interrompre un test en cours et ses sous-tâches
- Prise en charge des pièces jointes d’images : il est possible de joindre des images pendant les tests sur les plateformes Apple et Windows
- Propositions associées : ST-0012, ST-0013, ST-0014, ST-0015, ST-0016, ST-0017, ST-0020
-
DocC
- Prise en charge de la sortie Markdown : l’option
--enable-experimental-markdown-output permet de générer des documents Markdown
- Contenu HTML statique par page : l’insertion d’un résumé HTML dans `` améliore le référencement et l’accessibilité
- Extension des annotations de blocs de code : de nouvelles options de format comme
nocopy, highlight, showLineNumbers, wrap sont ajoutées
- Activation possible via l’option
--enable-experimental-code-block-annotations
Plateformes et environnements
-
Embedded Swift
- Comprend de nombreuses améliorations, dont une interopérabilité C renforcée, un meilleur débogage et des avancées vers l’aboutissement du modèle de linkage
- Les détails sont disponibles dans le blog “Embedded Swift Improvements coming in Swift 6.3”
-
Android
- Première sortie du SDK officiel Swift pour Android
- Permet le développement d’apps Android natives en Swift et la prise en charge du build Android pour les packages Swift
- L’intégration avec des apps Kotlin/Java est possible via Swift Java et Swift Java JNI Core
- Cette sortie est considérée comme une étape importante dans l’extension du développement multiplateforme de Swift
- Le guide de démarrage est fourni dans le document “Getting Started with the Swift SDK for Android”
Étapes suivantes
- La toolchain Swift 6.3 peut être installée depuis la page Install Swift
- Les développeurs peuvent dès maintenant expérimenter les nouvelles fonctionnalités et envoyer leurs retours
Aucun commentaire pour le moment.