Quoi de neuf dans le langage Swift 4.2 d'Apple

Avant la sortie prévue pour 2019 de Swift 5, Apple a publié la version intermédiaire Swift 4.2.

Version actuelle: Quoi de neuf dans Swift 4.2 d'Apple

La version 4.2 du langage de programmation Swift d'Apple rapproche le langage d'une interface binaire d'application stabilisée (ABI) et permet la compatibilité binaire pour les versions futures. La stabilité ABI permet une compatibilité binaire entre les bibliothèques et les applications compilées avec différentes versions du langage.

Bien que l'objectif d'Apple soit la stabilité, Swift 4.2 n'est pas compatible binaire avec les versions précédentes. La compatibilité de la source, cependant, est fournie. La plupart du code source construit avec le compilateur Swift 4.0 doit être compilé avec les compilateurs Swift 4.2 et Swift 4.1.

Les autres nouvelles fonctionnalités de Swift 4.2 sont:

  • Améliorations génériques, ancrées par l'achèvement du support de conformité conditionnelle, réduisant la quantité de code standard et rendant plus de code réutilisable.
  • Les fonctionnalités standard de la bibliothèque incluent des améliorations du protocole Hashable et un ensemble unifié de fonctions et de protocoles de randomisation.
  • Prise en charge de la compilation en mode batch, ce qui améliore les temps de construction.
  • Une modification de la convention d'appel pour le cycle de conservation / libération, pour réduire la taille du code et améliorer les performances.
  • Prise en charge des métadonnées récursives.
  • Métadonnées de réflexion plus compactes.
  • Arguments de déviation intégrés aux sites d'appel.
  • Diverses corrections de bogues, comme pour l'héritage des initialiseurs génériques.
  • La compilerdirective qui est syntaxiquement équivalente à la #if swiftvérification de version mais qui vérifie par rapport à la version du compilateur, quel que soit le mode de compatibilité en cours d'exécution.
  • Nouvelles fonctionnalités du gestionnaire de packages Swift, y compris la prise en charge du mode batch, avec des cibles désormais compilées en utilisant ce mode; amélioration de la logique de génération de schémas; et la génération automatique de projets Xcode.

Où télécharger Swift 4.2

Vous pouvez télécharger Swift 4.2 en téléchargeant l'IDE Xcode 10.0 d'Apple.

Les autres plans pour Swift 4.2 incluent:

  • Améliorations des performances au moment de la compilation.
  • Les chaînes font désormais 16 octets au lieu de 24 octets. Apple voit cela comme un bon compromis entre l'utilisation de la mémoire et les performances, tout en étant suffisamment grand pour effectuer de petites optimisations de chaînes.
  • Des API sont proposées pour faciliter la génération de nombres aléatoires.
  • La has importdirective de configuration de construction exprime mieux l'intention lors du partage de code entre iOS et MacOS.

Version précédente: Quoi de neuf dans Swift 4.1

Sorti fin mars 2018, Swift 4.1 ajoute plus de génériques au langage ainsi que des améliorations de build. La version 4.1 est compatible avec Swift 4.0.

Les propositions liées aux génériques implémentées dans la version 4.1 incluent des conformités conditionnelles, exprimant la notion qu'un type générique se conformera à un protocole particulier uniquement lorsque les arguments de type satisfont à des exigences spécifiques. Cette fonctionnalité devrait avoir un impact important sur la bibliothèque standard Swift. Les autres améliorations génériques comprennent:

  • Faire en sorte que le compilateur synthétise Equatableet se Hashableconforme, pour réduire le passe-partout et la complexité.
  • Création de types d'index de bibliothèque standard Hashable.
  • L' élimination du type associé, IndexDistance, à partir de Collection et modifier utilise pour le type de béton, Intau lieu.

Swift 4.1 propose également d'autres façons de configurer les versions, telles qu'une optimisation de la taille du code et des mécanismes plus faciles pour cibler la prise en charge de la plate-forme et de l'environnement.

Des modifications sous le capot de la version 4.1 ont été apportées dans le cadre d'un plan de stabilisation de l'ABI (application binary interace) dans Swift 5, qui doit être effectué à la fin de cette année. Ces changements sous le capot incluent l'utilisation d'un champ de taille de mot dans l'en-tête d'objet natif pour le comptage des références et les audits des fonctions d'exécution. En outre, divers wrappers de collection sont réduits grâce à l'utilisation de la conformité conditionnelle.

Swift 4.1 améliore le gestionnaire de packages Swift. Il résout désormais les dépendances dans les graphiques de package qui utilisent des schémas d'URL tels que sshet http. En outre, les performances ont été améliorées pour les graphiques de packages avec des dépendances partagées.

La mise à niveau 4.1 comprend également des propositions d'évolution Swift, y compris la suppression des mots-clés de propriété weaket unowned, pour les déclarations de propriété dans un protocole. Ceci est fait pour plus de clarté. De plus, les initialiseurs de structure inter-modules sont restreints. Cela correspond à une restriction existante pour les classes.

Où télécharger Swift 4.1

Vous pouvez télécharger la mise à jour de Swift 4.1 depuis la page Web de téléchargement de Swift. De plus, Swift 4.1 est disponible avec l'EDI Xcode 9.3, qui dispose d'un migrateur de code pour gérer de nombreux changements de source.

Version précédente: Quoi de neuf dans Swift 4.0

Swift 4.0 est une mise à niveau majeure de Swift d'Apple, le successeur de trois ans du langage Objective-C utilisé pour le développement d'applications MacOS et iOS.

La mise à niveau de Swift 4 améliore le gestionnaire de paquets Swift et offre de nouveaux modes de compatibilité pour les développeurs. Apple a déclaré que Swift 4 rend également Swift plus stable et améliore sa bibliothèque standard. Swift 4 est en grande partie compatible avec les sources avec Swift 3 et est livré avec l'IDE Xcode 9 d'Apple.

Quoi de neuf dans le gestionnaire de paquets de Swift 4

Swift Package Manager, qui a fait ses débuts dans Swift 3, est un outil de distribution de code. Il est intégré au système de build Swift pour automatiser les processus, y compris le téléchargement, la compilation et la liaison des dépendances. Les améliorations apportées au gestionnaire de packages de Swift 4 incluent:

  • Une API de package plus propre qui permet aux packages de spécifier de nouveaux paramètres. Ces paramètres donnent aux développeurs plus de contrôle sur la création de packages et l'organisation des sources sur disque.
  • Le développement de plusieurs packages en tandem a été facilité.
  • Formalisation des produits de package, permettant de contrôler les bibliothèques qu'un package publie sur les clients.
  • Les builds de packages sur MacOS se produisent désormais dans un bac à sable, empêchant l'accès au réseau et la modification du système de fichiers, afin de réduire la portée des manifestes malveillants.

Nouveaux modes de compatibilité dans la migration de l'aide Swift 4

Les nouveaux modes de compatibilité de Swift 4 pourraient vous éviter d'avoir à modifier le code pour pouvoir utiliser la nouvelle version du compilateur. Deux modes sont pris en charge, y compris le mode Swift 3.2, qui accepte la plupart des fichiers source créés avec les compilateurs Swift 3.x, et le mode Swift 4.0, qui inclut Swift 4 et les modifications d'API.

Apple a déclaré qu'une certaine migration de source sera nécessaire pour de nombreux projets, mais le nombre de changements de source est «assez modeste» par rapport à de nombreux changements majeurs précédents entre les versions de Swift. L'introduction des modes de compatibilité dans Swift 4 donne aux développeurs plus de contrôle sur le rythme de la migration.

Les améliorations linguistiques abondent dans Swift 4

Swift 4 introduit plusieurs améliorations linguistiques, notamment:

  • Une Stringimplémentation plus rapide et plus facile à utiliser qui conserve l'exactitude Unicode et prend en charge le développement et l'utilisation de sous-chaînes
  • Utilisation et gestion améliorées des types de collections.
  • Application de l'accès exclusif à la mémoire, dans lequel les modifications potentielles des variables doivent être exclusives à tout autre accès à cette variable.
  • Capacité d'archiver structet de enumtypes.
  • Sérialisation de type sécurisé vers des formats externes tels que JSON.
  • Entiers orientés protocole, qui nettoie les API Integer et les rend plus utiles pour la programmation générique.
  • Prise en charge des whereclauses pour contraindre les types associés. Auparavant, les types associés ne pouvaient exprimer que des contraintes d'héritage simples et non des contraintes plus sophistiquées disponibles pour les types génériques avec la where clause.
  • Inclusion de la swift runcommande pour construire et exécuter un exécutable défini dans le package actuel.
  • Suppression de la final prise en charge des mots clés lors de la déclaration de fonctions dans les extensions de protocole.
  • Amélioration de l'interaction entre les privatedéclarations et les extensions, avec privateun contrôle d'accès étendu afin que les membres définis dans une extension d'un type aient le même accès que les membres définis sur le type lui-même, tant que le type et l'extension sont dans le même fichier source.