Swift 6.3 : SDK officiel pour Android et nouveaux attributs d’exportation
Swift 6.3 est sorti fin mars 2026. Le code source est disponible sur GitHub sous licence Apache 2.0. La version stable précédente était Swift 6.2 en octobre 2025, et Swift 6.0 avec prise en charge de Debian, Fedora et Ubuntu 24.04 est sortie en septembre 2024. Des builds officiels sont distribués pour Linux, Windows et macOS.
Cette mise à jour met l’accent sur l’élargissement des capacités multiplateformes et des outils du compilateur. Le langage Swift intègre des fonctionnalités de C et Objective-C tout en maintenant la compatibilité avec l’environnement d’exécution Objective-C. Le code Swift est interopérable avec C et Objective-C, utilise ARC pour la gestion de la mémoire, et prévient les débordements de tampon, l’accès à de la mémoire non initialisée ainsi que les erreurs use-after-free.
Swift prend en charge les génériques, les fermetures, les lambdas, les tuples, les types dictionnaire, les collections efficaces et les constructions fonctionnelles. La compilation en code machine via LLVM offre des performances supérieures de 30 % à celles d’Objective-C. Swift Package Manager gère les dépendances, la construction et le lien.
SDK Swift pour Android : sortie officielle
Le premier changement majeur est la sortie officielle du SDK Swift pour Android. Désormais, les développeurs de niveau intermédiaire et senior peuvent créer des applications Android natives entièrement en Swift ou intégrer des composants Swift dans des projets Java/Kotlin existants.
Le SDK est passé du statut expérimental grâce aux contributions du groupe de travail Android et de la communauté. Cela simplifie le développement multiplateforme en minimisant les barrières entre les écosystèmes iOS/macOS et Android.
// Example integration Swift in Android project
import Foundation
@objc public class SwiftBridge: NSObject {
@objc public func greet(name: String) -> String {
return "Hello, \(name)! From Swift on Android."
}
}
Ce code démontre l’interopérabilité de base : la classe est exportée pour JNI.
L’attribut @c et les exportations vers C
Le nouvel attribut @c exporte les fonctions Swift et les énumérations vers C. Le compilateur génère un fichier d’en-tête (.h) avec les déclarations.
@c
public enum ErrorCode: Int32 {
case none = 0
case invalidInput = 1
case networkFailure = 2
}
@c
public func processData(_ data: UnsafePointer<UInt8>, length: Int) -> ErrorCode {
// Obrabotka data
return .none
}
Le module.h généré :
enum ErrorCode : int32_t {
ErrorCode_none = 0,
ErrorCode_invalidInput = 1,
ErrorCode_networkFailure = 2
};
enum ErrorCode processData(const uint8_t *data, int length);
Cela est crucial pour FFI en programmation système et pour intégrer Swift dans des projets basés sur C.
Sélecteurs de modules et résolution de conflits
Les sélecteurs de modules ont été introduits pour résoudre les ambiguïtés lors de l’importation d’API portant les mêmes noms depuis plusieurs modules.
import ModuleA.SomeType
using module(ModuleB) SomeType // Yavno from ModuleB
let a: ModuleA.SomeType = ...
let b: ModuleB.SomeType = ...
Le sélecteur using module(ModuleB) spécifie la provenance, évitant les erreurs de linker dans les grands projets avec des dépendances chevauchantes.
Nouveaux attributs d’optimisation du compilateur
Les attributs d’optimisation ont été étendus pour un réglage fin :
@specialize: génère des spécialisations monomorphes des génériques pour les types chauds (par ex.,Array<Int>).@inline: force l’inlining des fonctions pour réduire le surcoût des appels.@export(implementation): exporte des implémentations stables ABI vers des bibliothèques.
@specialize(Array<Int>)
public func sum<T: Numeric>(_ array: [T]) -> T {
return array.reduce(0, +)
}
@inline(never)
public func debugLog(_ msg: String) {
print("DEBUG: \(msg)")
}
Intégration de Swift Build dans SwiftPM
Une implémentation précoce de Swift Build a été intégrée à Swift Package Manager. Cela accélère les builds incrémentaux, en particulier dans les monorepos avec des milliers de paquets.
Points clés :
- SDK officiel Swift pour Android : développement complet et intégration avec Java/Kotlin.
- Attribut
@c: génération automatique d’en-têtes C pour FFI. - Sélecteurs de modules : résolution des conflits de noms sans renommage.
- Attributs d’optimisation :
@specialize,@inline,@export(implementation)pour l’accordage des performances. - Swift Build dans SwiftPM : performances de build améliorées.
Cette mise à jour reflète les contributions de la communauté, en particulier du groupe Android. Swift 6.3 renforce la position du langage dans le développement multiplateforme pour les spécialistes seniors.
— Editorial Team
Aucun commentaire pour le moment.