IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apple publie Swift 6.3, la dernière version de son langage de programmation open source, avec le premier SDK Android officiel, une interopérabilité améliorée avec le langage C et bien plus encore

Le , par Anthony

39PARTAGES

9  0 
La version 6.3 de Swift vient d'être publiée, marquant une expansion significative du langage de programmation d'Apple vers de nouveaux domaines. Cette mise à jour apporte le premier SDK Android officiel, permettant aux développeurs de créer des applications Android natives en Swift et d'intégrer du code Swift dans des projets Kotlin ou Java. Elle renforce également l'interopérabilité avec le langage C et améliore les outils multiplateformes, la prise en charge des environnements embarqués et l'optimisation de la compilation.

Swift est un langage de programmation compilé de haut niveau, polyvalent et multi-paradigme, créé par Chris Lattner en 2010 pour Apple Inc. et maintenu par la communauté open source. Swift se compile en code machine et utilise un compilateur basé sur LLVM. Swift a été lancé pour la première fois en juin 2014 et la chaîne d'outils Swift est intégrée à Xcode depuis la version 6 de ce dernier, sortie en septembre 2014.

La version 6.3 de Swift vient d'être publiée, apportant le premier SDK officiel Swift pour Android. Cela permet aux développeurs de créer des applications Android natives en Swift, d'adapter des paquets Swift pour Android et d'intégrer du code Swift dans des projets Kotlin ou Java. Cette version étend également la portée de Swift dans les environnements embarqués et les systèmes à grande échelle grâce à une prise en charge plus large des plateformes et à des améliorations au niveau de la compilation.


L'une des principales nouveautés du langage est le nouvel attribut @c, qui permet d'exposer des fonctions et des énumérations Swift au code C au sein d'un même projet. Les développeurs peuvent attribuer des noms de symboles C personnalisés et, en combinaison avec @implementation, relier des fonctions Swift à des déclarations C existantes afin d'améliorer l'interopérabilité dans les bases de code multi-langages. Swift 6.3 introduit également les sélecteurs de modules, ce qui facilite la résolution des conflits de nommage lorsque plusieurs modules importés exposent des API portant le même nom.

En matière d'outils, Swift 6.3 propose un aperçu de l'intégration de Swift Build dans Swift Package Manager, pour une expérience de compilation multiplateforme plus homogène. Il ajoute également de nouveaux contrôles d'optimisation tels que @specialize et @inline(always), ainsi que des améliorations concernant la prise en charge des bibliothèques de macros, la documentation des paquets et les tests. DocC prend désormais en charge la sortie au format Markdown et propose de nouvelles améliorations axées sur l'accessibilité pour la documentation.

Langage et bibliothèque standard

Interopérabilité avec le langage C

Swift 6.3 introduit l'attribut @c, qui permet d'exposer des fonctions et des énumérations Swift au code C au sein d'un même projet. En annotant une fonction ou une énumération avec @c, les développeurs peuvent demandez à Swift d'inclure une déclaration correspondante dans l'en-tête C généré, qu'ils pourront ensuite inclure dans leurs fichiers C/C++ :

Code Swift : Sélectionner tout
1
2
@c 
func callFromC() { ... }


Code C : Sélectionner tout
1
2
3
// Generated C header 
  
void callFromC(void);


Les développeurs peuvent définir un nom personnalisé à utiliser pour la déclaration C générée :

Code Swift : Sélectionner tout
1
2
@c(MyLibrary_callFromC) 
func callFromC() { ... }


Code C : Sélectionner tout
1
2
3
// Generated C header 
  
void MyLibrary_callFromC(void);


@c fonctionne également en association avec @implementation. Cela permet aux développeurs de fournir une implémentation Swift pour une fonction déclarée dans un en-tête C :

Code C : Sélectionner tout
1
2
3
// C header 
  
void callFromC(void);


Code Swift : Sélectionner tout
1
2
3
4
// Implementation written in Swift 
  
@c @implementation 
func callFromC() { ... }


Lorsque l'on utilise @c avec @implementation, Swift vérifie que la fonction Swift correspond à une déclaration préexistante dans un en-tête C, plutôt que d'inclure une déclaration C dans l'en-tête généré.

Sélecteurs de modules

Swift 6.3 introduit les sélecteurs de modules afin de préciser dans quel module importé Swift doit rechercher une API utilisée dans le code. Si un développeur importe plusieurs modules fournissant une API portant le même nom, les sélecteurs de modules permettent de déterminer clairement quelle API utiliser :

Code Swift : Sélectionner tout
1
2
3
4
5
import ModuleA 
import ModuleB 
  
let x = ModuleA::getValue() // Call 'getValue' from ModuleA 
let y = ModuleB::getValue() // Call 'getValue' from ModuleB


Swift 6.3 permet également d'utiliser le nom de module Swift pour accéder aux API des bibliothèques de concurrence et de traitement des chaînes de caractères :

Code Swift : Sélectionner tout
1
2
3
let task = Swift::Task { 
  // async work 
}


Contrôle des performances pour les API de bibliothèques

Swift 6.3 introduit de nouveaux attributs qui permettent aux auteurs de bibliothèques de contrôler plus finement les optimisations du compilateur pour les clients de leurs API :

[LIST][*] Spécialisation des fonctions : fournit des implémentations pré-spécialisées d'une API générique pour des types concrets courants à l'aide de @specialize.[*] Inlining : garantit l...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !