Quoi de neuf dans Swift 3?

introduction

En septembre dernier, Apple a officiellement publié la dernière version de son nouveau langage de programmation, Swift 3. Tout comme Swift 2 l'année dernière, cette version contient de nombreuses nouvelles fonctionnalités et améliorations qui rendent la programmation encore meilleure.!

Swift 3 est inclus avec Xcode depuis la version 8.0 et peut également être téléchargé à partir du site Web swift.org.

1. Utiliser Swift 3

Si vous souhaitez utiliser Swift 3 dans vos projets actuels ou futurs, Xcode constitue un excellent outil de migration pour vous permettre de le faire facilement..

Pour les nouveaux projets Swift créés avec Xcode 8, Swift 3 sera utilisé automatiquement. Lorsque vous ouvrez un projet Swift 1 ou 2 dans Xcode 8 pour la première fois, une alerte vous sera présentée pour convertir votre code en code Swift 3 ou Swift 2.3.. 

Si vous choisissez Swift 2.3, vous aurez accès à toutes les nouvelles API iOS 10, macOS Sierra, tvOS 10 et watchOS 3, tout en utilisant la syntaxe Swift 2. Sinon, vous pouvez choisir de ne pas convertir votre code immédiatement et de continuer à utiliser une version plus ancienne de Swift. Lorsque vous êtes prêt, vous pouvez alors aller à Édition> Convertir> Vers la syntaxe Swift actuelle…  dans la barre de menu Xcode pour convertir tout votre code.

L'outil de migration prend en charge toutes les modifications à apporter à votre code pour adopter Swift 3 à partir de Swift 2. Cela inclut le changement de noms de méthodes et de propriétés, la syntaxe modifiée si nécessaire et de nombreuses autres choses. Avant de terminer la conversion, Xcode vous montrera les modifications en attente pour chacun de vos fichiers de code Swift. Cela signifie que vous pouvez vérifier toutes les modifications avant de les effectuer, juste pour vous assurer que l'outil de migration n'introduit pas de bogues dans votre projet..

2. Fondation

Une partie importante de la version 3 de Swift était la nouvelle bibliothèque open source Foundation. Alors que les développeurs Mac OS et iOS expérimentés seraient familiarisés avec le framework Foundation, cette bibliothèque apporte quelques nouvelles fonctionnalités aux programmeurs Swift.. 

Le premier changement immédiat que vous remarquerez lors de l’utilisation des nouvelles API Foundation est l’absence de NS préfixe. Cela signifie que des classes telles que NSDate, NSTimer et NSURL sont maintenant juste Rendez-vous amoureux, Minuteur et URL dans le code Swift. L'outil de migration de code dans Xcode 8 renommera automatiquement toutes ces classes pour vous, mais il s'agit d'un changement que tous les développeurs de Swift doivent prendre en compte lors de l'écriture de nouveau code..

Ensuite, en tant que bibliothèque principale de Swift, toutes les API Foundation sont désormais compatibles avec les systèmes d'exploitation basés sur Linux. Swift étant compatible avec d'autres plates-formes, la bibliothèque Foundation le sera également. Cela signifie que les fonctionnalités de base fournies par Foundation, telles que la gestion de la date / l'heure et la mise en réseau, peuvent être utilisées partout où Swift peut être utilisé. Cette interopérabilité multiplate-forme a été l’une des principales motivations à la suppression de la NS préfixe des API Foundation.

Enfin, de nombreuses API Foundation ont été remodelées pour mieux s’intégrer au code Swift. Par exemple, en fonction de l'API, cette refonte signifie que Foundation peut désormais tirer un meilleur parti des avantages suivants:

  • La gestion améliorée des erreurs en utilisant essayer et capture blocs qui ont été introduits avec Swift 2.
  • Types facultatifs, contrairement à tous les types facultatifs implicitement non créés qui ont été créés lors de l'importation de la structure Objective-C Foundation dans Swift.
  • Des algorithmes plus modernes et optimisés.
  • Meilleure performance globale grâce à l'écriture pure Swift, elle-même hautement optimisée.

Dans l’ensemble, l’utilisation de la nouvelle bibliothèque Swift Foundation est une bien meilleure expérience que l’utilisation de l’ancien framework Foundation dans votre propre code Swift. Si vous voulez en savoir plus sur la bibliothèque open-source Swift Foundation, vous pouvez la découvrir sur GitHub.

3. Directives de dénomination des API

Swift 3 introduit également de nouvelles directives de conception d’API. Celles-ci ont été créées dans le but de simplifier toutes les API Swift en plus de les rendre cohérentes.. 

Omettre les mots inutiles

La première modification de Swift 3 pour améliorer les API consistait à supprimer les mots inutiles des déclarations de méthode et de propriété. Cette modification agit à la fois comme une fonctionnalité de langage lors de l'importation des API Objective-C et affecte également les instructions pour les développeurs écrivant leur propre code Swift. Le code suivant contient des exemples de code Swift 2 par rapport au code Swift 3 fonctionnellement identique.

let color = UIColor.redColor () // Swift 2 let color = UIColor.red // Swift 3 "Bonjour tout le monde!". capitalizedString // Swift 2 "Bonjour tout le monde!" en majuscule // Swift 3 // Swift 2 si une corde .containsString ("a")  // Swift 3 si someString.contains ("a") 

Vous verrez que les versions de Swift 3 sont plus lisibles. le si déclarations en particulier ont un meilleur flux et ressemblent plus à une phrase anglaise serait.

Étiquettes de paramètres de fonction

Swift 3 annule en fait l’une des modifications apportées à Swift 2: l’étiquetage du premier paramètre d’une fonction. Dans Swift 2, l’étiquette du premier paramètre était automatiquement ignorée lors de l’appel de la fonction. Par exemple, une fonction déclarée comme:

func addObject (objet: AnyObject)

serait appelé dans Swift 2 par le suivant:

addObject (someObject)

Swift 3 annule cette modification et n'ignore plus automatiquement le premier libellé de paramètre. Cela signifie que la fonction ci-dessus serait appelée avec les éléments suivants:

addObject (object: someObject)

Cette utilisation de la fonction va cependant à l’encontre de la omettre les mots inutiles objectif de Swift 3. Pour suivre les nouvelles directives de conception de l'API Swift, la déclaration de fonction doit être remplacée par:

func add (objet: AnyObject)

Cette nouvelle déclaration serait alors utilisée avec le code suivant:

add (object: someObject)

Ce nouveau format de nommage de fonction et le format Swift 2 présentent l’avantage supplémentaire de fournir une étiquette clairement liée au premier paramètre de la fonction..

Veuillez noter que vous pouvez toujours spécifier que le premier paramètre de votre fonction Swift 3 doit être ignoré. Ceci est réalisé en utilisant un _ puis un nom de paramètre à utiliser dans la définition de la fonction, par exemple:

// Définition func add (_ object: AnyObject) // Paramètre d'accès via les variables 'object' // Usage add (someObject)

Bien que ce soit un exemple très simple, ce nouveau format de déclaration de fonctions devient extrêmement bénéfique avec des noms plus compliqués. Par exemple, le code suivant montre comment certains éléments de Swift Chaîne les méthodes ont maintenant changé de Swift 2 à Swift 3.

let replace = une chaîne de caractères ("a", withString: "A") // Swift 2 une chaîne de remplacement = une chaîne de caractères ("a", withString: "A") // une demi-chaîne = listString.componentsByString (",") // Swift 2 let array = listString.components (séparésPar: ",") // Swift 3

Lower Chameau Case pour Enums et propriétés

Cette modification a pour but d’assurer la cohérence de toutes les propriétés de Swift 3, ainsi que des énumérations. Il a été décidé que, les valeurs d’énumération étant plus proches des propriétés que des classes, elles devraient suivre le même format de nommage.. 

Il s’agit d’un changement relativement mineur auquel l’outil de migration Xcode s’occupera complètement lors de la conversion du code Swift 2. C’est quelque chose que tous les développeurs devraient connaître, cependant, lors de l’écriture de nouveau code.. 

Voici quelques exemples de l'impact de cette modification sur des API particulières..

let color = UIColor.redColor (). CGColor // Swift 2 let color = UIColor.red.cgColor // Swift 3 let align = NSTextAlignment.Center // Swift 2 let align = NSTextAlignment.center // Swift 3

4. Grand Central Dispatch

Outre Swift 3, la version open source Swift de la bibliothèque principale Grand Central Dispatch (GCD) a également été publiée. GCD est la structure d’Apple pour permettre l’exécution simultanée de code sur des systèmes multicœurs. Les principaux objectifs de la réécriture de cette bibliothèque sont les suivants:

  • Fournit les mêmes fonctionnalités que les fonctions GCD existantes basées sur C avec des API conçues pour fonctionner correctement et lire correctement avec d'autres codes Swift.  
  • Fournir un ensemble d'API multiplates-formes qui, comme la bibliothèque principale de Foundation, pourront être utilisées partout où Swift est compatible..

Pour les développeurs expérimentés avec les API GCD sur les plates-formes Apple, cette nouvelle version de Swift sera facile à comprendre. Il suit les mêmes concepts. Le code suivant montre comment certaines tâches GCD courantes peuvent maintenant être effectuées avec le code Swift 3:

// Effectuer un travail sur un thread d'arrière-plan let let queue = DispatchQueue (label: "threadName") queue.async // Exécuter un travail // Exécuter un travail sur le fil principal DispatchQueue.main.async // Exécuter un travail // travailler avec une «qualité de service» spécifiée let quality = DispatchQoS.background queue.async (qos: quality) // Exécuter un travail // Exécuter un travail après un certain temps let delay = DispatchTime.now () + .seconds ( 10) DispatchQueue.main.after (when: delay) // Exécuter le travail

Si vous souhaitez en savoir plus sur la programmation simultanée et GCD dans Swift 3, vous pouvez consulter la session WWDC d’Apple de cette année et la version Swift de la référence du cadre Dispatch..

5. Avantages de l'open source

Bien que n'étant pas exactement une nouvelle fonctionnalité ou un changement, Swift 3 est la première version depuis qu'Apple a ouvert le langage de programmation en décembre 2015. Le fait d'être complètement open source apporte de nombreux avantages, qui deviendront encore plus évidents dans les futures versions de Swift..

Premièrement, rendre Swift et ses bibliothèques principales complètement open source signifie que les développeurs peuvent utiliser Swift pour qu'il fonctionne sur d'autres plates-formes et systèmes d'exploitation. Actuellement, Swift est compatible avec toutes les plates-formes Apple, en plus des versions modernes d'Ubuntu. Cependant, avec le temps, Swift peut être porté sur d'autres systèmes d'exploitation, notamment Android et Windows. Cela pourrait faire de Swift un langage véritablement multiplateforme et être davantage utilisé par les développeurs non Apple..

Ensuite, avoir tous les rouages ​​de Swift visibles pour le public signifie que les employés autres qu'Apple peuvent contribuer à la langue. Outre les nouvelles fonctionnalités, les développeurs experts peuvent également contribuer aux corrections de bogues, aux améliorations et aux optimisations au sein de Swift..

Globalement, la création de Swift Open Source apportera des améliorations et des fonctionnalités à la langue dans un délai plus court, car cela permettra à davantage de personnes d'y contribuer. Si vous souhaitez en savoir plus sur la nature open-source de Swift, vous pouvez consulter l'article suivant:

  • Swift est Open Source

    Le 3 décembre, Apple a pris une décision audacieuse en faisant de l’un des logiciels open source l’un des langages les plus populaires et à la croissance la plus rapide du secteur. Découvrez ce que cela signifie pour le…
    Jordan Morgan
    Rapide

Conclusion

Je vous ai montré certains des changements les plus importants apportés au langage Swift dans la version 3. Il s'agit d'une version importante car, en plus de toutes les nouvelles fonctionnalités et des API de bibliothèques principales, elle fournit une vision claire de l'évolution de Swift. dans les années à venir. Si les changements dans Swift 3 sont une indication, la langue sera de plus en plus agréable à utiliser pour les développeurs.

Comme toujours, veillez à laisser vos commentaires et remarques dans la section des commentaires ci-dessous. Et découvrez certains de nos autres cours et tutoriels sur la langue Swift!