Le 3 décembre 2015, Apple a officiellement ouvert le code de programmation Swift. En ouvrant le sourcing à l'ensemble du langage de programmation, Apple a désormais permis aux développeurs du monde entier de contribuer au langage et de l'aider à se développer et à évoluer. De plus, le langage de programmation Swift peut désormais être utilisé dans des environnements extérieurs aux plateformes Apple, tels que Linux..
Dans cet article, je vais vous parler de certains des projets les plus populaires et les plus intéressants qui utilisent Swift et qui, avec le temps, évolueront parallèlement au langage lui-même..
Si vous avez déjà programmé sur iOS, en particulier avec Objective-C, vous connaissez probablement des classes telles que NSDate
, NSArray
, NSString
, et NSURL
. Ces cours font tous partie de la Fondation framework, disponible sur toutes les plateformes Apple (iOS, OS X, tvOS et watchOS).
Les fonctionnalités de base fournies par les API Foundation sont toutefois également réimplémentées par Apple en tant que bibliothèque Swift Core pour être portables sur toutes les plates-formes. Ce projet est disponible sur le dépôt Apple swift-corelibs-foundation sur GitHub..
De nombreux autres développeurs travaillent activement à l'intégration des API Foundation à Swift de manière portable et multiplate-forme. Le plus populaire de ces projets est SwiftFoundation qui, au moment de la rédaction de cet article, présente de nombreux différenciateurs clés de la mise en œuvre d’Apple..
Il fournit plus de fonctionnalités. Comme le note le fichier README du projet, de nombreuses méthodes du projet Fondation d’Apple sont marquées avec NSUnimplemented ()
, ce qui signifie que seules les fonctionnalités de base sont actuellement disponibles.
Dès le début, il a été conçu pour la portabilité. Contrairement à la bibliothèque principale d'Apple Foundation, SwiftFoundation ne s'appuie pas sur les API CoreFoundation écrites en C. Cela permet à SwiftFoundation de prendre en charge plus facilement un plus grand nombre de plates-formes à l'avenir..
SwiftFoundation a été entièrement conçu et développé en utilisant une structure orientée protocole plutôt que le style de programmation orienté objet plus traditionnel. Faire ainsi offre une gamme d'avantages, dont vous pouvez apprendre plus dans ce tutoriel.
Plus important encore, il modernise complètement les API Foundation âgées de plus de 20 ans. Apple pourrait éventuellement faire quelque chose comme cela avec sa bibliothèque principale Foundation, mais le fichier README de son référentiel indique ce qui suit:.
Au cours de notre première année, nous ne cherchons pas à apporter de modifications majeures à la bibliothèque dans les API. Nous pensons que cela entravera l'objectif principal [de la portabilité en dehors des plateformes Apple].
Ces deux projets sont activement mis à jour et vont certainement devenir cruciaux dans le développement futur de Swift, car ils permettent des fonctions de base, telles que la mise en réseau, l'obtention / la manipulation de dates / heures et le stockage local persistant sur toute plate-forme prise en charge par Swift Language..
Outre Foundation, Apple réaménage de fond en comble deux autres grandes bibliothèques à utiliser avec Swift sur d'autres plates-formes: XCTest et libdispatch (également connu sous le nom de Grand Central Dispatch). Bien que ces projets ne soient pas aussi populaires ou aient la même ampleur que Foundation, ils restent très importants pour le développement de Swift..
Le projet XCTest est conçu pour permettre aux développeurs de créer des tests unitaires pour leur code Swift. Si vous n'êtes pas familier avec les tests unitaires, consultez cet article pour en savoir plus à leur sujet. Bien qu'à ses débuts, avec uniquement des tests de base pris en charge, le projet XCTest deviendra, avec le temps, très important pour tous les développeurs Swift lors du test et du débogage de leur code..
Le projet libdispatch autorise les flux de travaux simultanés (multithread) lors de l'exécution sur du matériel pris en charge. Ceci est particulièrement important pour les actions, telles que les requêtes réseau, afin que le thread principal ne soit pas bloqué par d'autres opérations..
Alors que ces deux pensions sont détenues et gérées par Apple, à l'instar de Swift, elles ont été à source ouverte pour encourager les développeurs à participer. Je vous encourage à les consulter, même s’il n’est pas intéressant de regarder l’implémentation des API. Il y a beaucoup à apprendre en parcourant le code source.
L'une des possibilités les plus intéressantes de l'open source Swift est la possibilité de l'utiliser comme principal langage de programmation pour les serveurs et les sites Web. Tandis que HTML et CSS resteront les standards du Web en termes de présentation de contenu à l'utilisateur, une fois que Swift et ses bibliothèques seront suffisamment développés et fonctionnels, Swift pourrait être utilisé dans presque toutes les situations où actuellement d'autres langages, tels que PHP et JavaScript, sont utilisés.
Ceci est particulièrement excitant pour les développeurs Cocoa car les compétences et les connaissances qu’ils ont déjà acquises en utilisant Swift pour le développement en amont les aideront énormément s’ils souhaitent faire du développement backend..
De nombreux projets travaillent tous pour amener Swift sur le Web, notamment Vapor, Zewo et Caramel. Le plus avancé et le plus complet de ces projets est cependant parfait.
Parfait englobe de nombreux composants Swift différents, qui ont chacun leur propre objectif.
Lorsqu'ils sont combinés, ces composants permettent de créer un serveur Web entièrement fonctionnel, qui fonctionnerait exactement comme un serveur traditionnel fonctionnant avec PHP ou JavaScript. Les possibilités offertes par les serveurs Web exécutant Swift sont très intéressantes et des projets tels que Perfect ouvrent la voie à la journée. Swift peut être utilisé pour pratiquement chaque élément d’un projet..
Si vous consultez les référentiels mentionnés plus haut dans cet article, vous remarquerez que certains d’entre eux, dans leur répertoire racine, ont un fichier appelé Package.swift. Les projets contenant ce fichier le font pour pouvoir être utilisés avec Swift Package Manager..
Swift Package Manager est un système de gestion des dépendances similaire à CocoaPods et Carthage. Il permet aux développeurs de se connecter à des bibliothèques tierces et de les utiliser dans leurs propres projets..
Ce gestionnaire de paquets est en cours de développement afin que toute plate-forme utilisant Swift puisse lier et importer du code exactement de la même manière, plutôt que de compter sur une solution spécifique à la plate-forme. Le gestionnaire de paquets Swift en est encore à ses premiers stades de développement et de nombreuses spécifications sont susceptibles de changer. Mais il est prévu d’être finalisé et publié aux côtés de Swift 3..
Si vous souhaitez examiner de plus près ce projet et apprendre à l'utiliser dans votre propre code, je vous recommande de visiter la page du projet sur Swift.org ou le référentiel sur GitHub..
Outre les projets Swift open source susmentionnés, il en existe de nombreux autres qui sont très intéressants et uniques..
Ce projet est destiné à la journalisation. Il permet aux développeurs d’imprimer beaucoup plus de détails sur la console système sans avoir à écrire beaucoup de code supplémentaire. Cet utilitaire de journalisation vous permet de journaliser automatiquement divers attributs, notamment le nom du fil, le nom du fichier de code source, le numéro de ligne et la méthode de portée actuelle..
L'objectif de ce projet est de créer des applications en ligne de commande avec Swift. Ces applications prennent en charge l’interaction de l’utilisateur sous la forme d’une saisie au clavier classique ainsi que de choix multiples..
Swiftline serait particulièrement utile dans un environnement éducatif, car les étudiants pourraient l'utiliser pour développer une application entièrement fonctionnelle et interactive sans avoir à se soucier de l'interface utilisateur..
Ce référentiel contient un large éventail d’algorithmes utiles, tous utilisables dans le code Swift. Cela inclut des éléments tels que les tableaux de taille fixe, les tables de hachage et le brassage. Le référentiel contient la liste complète de tous les algorithmes actuellement supportés..
Swift AI est un projet d'intelligence artificielle axé sur l'apprentissage automatique. L'exemple de projet inclus dans le référentiel montre comment le système d'intelligence artificielle peut apprendre à reproduire une fonction sinus de base.
Notez que ce projet n'est actuellement pris en charge que sur iOS et OS X en raison de sa dépendance à l'infrastructure Accelerate d'Apple, ce qui permet d'améliorer les performances lors de l'exécution de calculs volumineux..
Il y a tellement de nouveaux et passionnants projets open source Swift qui, avec le temps, vont développer et influencer la carrière de nombreux développeurs. Comme vous pouvez le constater, en ouvrant le sourcing à Swift, Apple a non seulement permis à la langue de s’améliorer grâce aux contributions de la communauté, mais aussi de devenir utile lors du développement de plates-formes autres que celle d’Apple..
Je vous encourage à consulter certains des projets mentionnés dans cet article et à voir ce qu’ils essaient de réaliser. Si vous voulez regarder encore plus de projets, alors je vous recommande de parcourir GitHub pour les référentiels Swift les plus populaires et les plus en vogue.
Comme toujours, laissez vos commentaires dans les commentaires ci-dessous.