Nouvelle étape vers la stabilisation du langage universel d'Apple destinée à remplacer les langages basés sur C, la stabilité des modules de cette mise à niveau 5.1 de Swift va permettre aux développeurs Swift de créer des frameworks binaires qui fonctionneront avec les futures versions du langage. Swift 5.1 introduit un nouveau fichier d'interface à base de texte qui décrit l'API d'un framework binaire, permettant la compilation du code Swift en utilisant différentes versions de compilateurs. Ce qui n’était pas le cas auparavant : jusqu’à la version 5, le compilateur ne savait gérer que les frameworks de la version en cours. Swift 5.1 inclut également des « wrappers » de propriétés qui introduisent une syntaxe générale pour définir des modèles d'accès personnalisés pour les valeurs de propriétés, y compris le stockage spécifique aux threads, les opérations atomiques, les initialisateurs de retard et la stratégie d’optimisation copie-sur-écriture ou Copy-on-Write.

Parmi les autres fonctionnalités et améliorations de Swift 5.1, on peut signaler :

- la prise en charge d'un mode de construction de bibliothèque évolutif, qui permet aux développeurs d'apporter certains changements aux types sans casser l'ABI de la bibliothèque. Les développeurs peuvent opter ou non pour cette fonctionnalité sur une base par type.

- des mises à jour de la bibliothèque standard, y compris la prise en charge de la gestion et de la mise à jour des diffs sur les collections et les types appropriés, une plus grande flexibilité pour accéder à un tableau, et plus d'API pour travailler avec des chaînes de caractères Strings. Des améliorations ont été apportées à l'API pour travailler avec les types SIMD, notamment le support des vecteurs d'extension. La bibliothèque standard ajoute également un protocole identifiable pour les entités nécessitant des identificateurs uniques.

- Le mot-clé de retour n'est plus nécessaire pour les fonctions d'expression simple ou les accesseurs ou « Getters ».

- Les types de résultats opaques permettent d'utiliser un type générique pour prendre en charge différents types conformes au même protocole ou pour masquer les détails d'implémentation dans les API.

- Self peut être utilisé pour les valeurs de type et de classe.

- Le compilateur synthétise désormais les valeurs par défaut des propriétés avec les initialisateurs par défaut.

La mise à jour Swift 5.1 est téléchargeable sur swift.org.