Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Prendre en charge le langage de programmation Swift sur Windows,
Grâce au compilateur, la bibliothèque standard et les bibliothèques de base telles que Dispatch

Le , par Stan Adkens

90PARTAGES

7  0 
Apple avait promis dans la feuille de route de la version 5.3 de son langage de programmation Swift que cette version allait apporter de profondes améliorations de performances, dont l’ajout de la prise en charge sur Windows. Swift 5.3 est sorti la semaine dernière et Apple a confirmé que la nouvelle mouture du langage intègre effectivement des outils nécessaires pour porter le langage sur Windows, d’après un billet de blog publié sur Swift.org par Saleem Abdulrasool, membre de la Swift Core Team et ingénieur logiciel chez Google Brain.

« Le projet Swift introduit de nouvelles images téléchargeables de la chaîne d'outils Swift pour Windows ! Ces images contiennent les composants de développement nécessaires pour construire et exécuter le code Swift sous Windows », lit-on dans le billet.


Apple a annoncé en 2015 que Swift est offert en code source ouvert. « Maintenant que le code source de Swift est ouvert, toute la communauté de développeurs peut contribuer au langage de programmation et à sa diffusion sur de nouvelles plateformes (…) ils pourront développer leurs idées partout, que ce soit sur un appareil mobile ou dans le Cloud », avait alors déclaré Craig Federighi, vice-président principal de la division Software Engineering d’Apple. Depuis lors, il existe déjà un support non officiel pour Windows, Debian et Fedora.

Mais pour la sortie officielle du portage sur Windows, Abdulrasool a écrit que la Swift Core Team travaille depuis plus d'un an maintenant en collaboration avec la communauté des développeurs de swift.org. L’équipe annonce maintenant que le support de Windows est à un point où les premiers utilisateurs peuvent commencer à utiliser Swift pour construire des expériences réelles sur cette plateforme.

Selon Abdulrasool, prendre en charge Swift sur Windows ne consiste pas simplement à porter le compilateur, mais plutôt à s'assurer que tout l'écosystème est disponible sur la plateforme. « Cela inclut le compilateur, la bibliothèque standard et les bibliothèques de base (Dispatch, Foundation, XCTest). Ces bibliothèques font partie de ce qui permet aux développeurs d'écrire des applications puissantes avec facilité et sans avoir à se soucier de nombreux détails du système sous-jacent », a écrit Abdulrasool.

« Grâce à ces bibliothèques de base et à l'interopérabilité flexible de Swift avec le C, il est possible de développer des applications sur Windows uniquement dans Swift tout en profitant du corpus de bibliothèques existant sur les plateformes Windows », lit-on.

Abdulrasool a publié un exemple d'application, une calculatrice de démonstration, entièrement écrite en Swift :


La calculatrice a été créée en utilisant, d’une part, la chaîne d'outils Swift sur Windows et, d’autre part, une installation de Visual Studio 2019 qui fournit les autres pièces nécessaires sous la forme de CMake, Ninja, et le SDK Windows. Selon le billet, bien que l'application de démonstration soit construite avec CMake, le support du gestionnaire de paquets Swift sous Windows est en cours. Ce qui veut dire qu’il sera bientôt possible d'obtenir la construction de l'application en utilisant "swift build" sans avoir besoin de CMake ou de Ninja.

Applications multiplateformes en Swift

Comme l’a mentionné le billet de blog, les premiers adeptes du langage comme Readdle expérimentent déjà des applications multiplateformes écrites en Swift, ce qui permet d'intégrer facilement de nombreuses bibliothèques Swift existantes à Windows pour prendre en charge leurs applications. Readdle est une société ukrainienne de développement d'applications mobiles.

Alexander Smarus, responsable de l'ingénierie produit dans Spark Team chez Readdle Inc, a partagé l’expérience Swift sur Windows de son équipe avec Abdulrasool :

Nous, à Readdle, avons commencé à expérimenter Swift sur Windows il y a plus d'un an, au deuxième trimestre 2019. À cette époque, nous avions déjà publié Spark pour Android qui utilise Swift pour partager le code de base avec iOS/macOS, et l'opportunité d'étendre à une autre plateforme était vraiment tentante.

Bien que certaines fonctionnalités ne soient pas encore prêtes, Swift sous Windows s'est avéré répondre pleinement à nos besoins. En fait, certaines dépendances C/C++ tierces nous ont donné plus de maux de tête que Swift lui-même. Toute la logique commerciale de Spark se trouve dans un module Core séparé. Un ensemble de modules, en fait, mais nous les appelons "Core". Cela nous permet d'utiliser n'importe quel framework d'interface utilisateur sur la plateforme cible : AppKit sur macOS, UIKit sur iOS, UI Toolkit natif sur Android. En gros, nous avons donc dû porter Spark Core sur Windows. Après que tous les concepts initiaux aient été prouvés, il s'agissait surtout d'un travail de routine au quotidien pour le rendre vivant sur Windows.


Après tout ce temps, l’équipe de Smarus dispose maintenant des éléments suivants : 9 modules Swift (255 739 SLOC, 2 133 fichiers sources) ; 3 modules Swift tiers ; 1 452 tests (alimentés par XCTest) ; l’environnement CI basée sur Windows pour les tests et un système de construction hétérogène, partiellement CMake, partiellement des scripts personnalisés.

Selon Smarus, des modules Swift purs comme CryptoSwift et OAuthSwift ont presque fonctionné dès le départ. L’équipe de Smarus a dû procéder « à un ajustement trivial des importations, exclure quelques références AppKit/UIKit et voilà ! » Un autre défi dont l’équipe de Smarus a dû faire face était de décider comment mettre en œuvre l'interface utilisateur. Elle a fini par opter pour Electron comme interface du futur Spark for Windows, après de longues discussions. Ce qui signifiait que l’équipe devait non seulement pouvoir construire Spark Core sur Windows mais aussi l'utiliser comme un addon chargeable pour Node.js.

L'addon de Node.js en pur Swift ? Cela a semblé étonnamment facile. Swift importe parfaitement les en-têtes N-API. Nous avons toujours besoin de trois lignes de code C plus un petit en-tête C pour définir le point d'entrée de l'addon, mais toute la logique est dans Swift. Grâce à la nature multiplateforme de Node.js, nous avons pu utiliser macOS comme plateforme de développement avec Xcode comme IDE, puis utiliser l'agilité de CMake pour construire le même code sous Windows.

Dès le premier jour, Swift sous Windows a fait un pas de géant en termes de support et de stabilité de la plateforme. Je dirais que si vous envisagez d'étendre la base de code de votre application existante à des plateformes autres que macOS/iOS, vous pouvez absolument le faire avec Swift maintenant, ou du moins bientôt. Si vous maintenez une petite bibliothèque Swift - vous pourriez facilement ajouter le support de Windows déjà !


Selon Saleem Abdulrasool, l'ajout du support de Windows à Swift n’est que le début d'un long voyage. Le support actuel pose le premier jalon où le langage est utilisable. Mais une autre partie encore plus large de l'écosystème comme lldb et le gestionnaire de paquets Swift ont encore besoin de plus de travail pour être aussi complets dans leur support de la plateforme Windows.

L’équipe Swift invite ceux qui souhaitent contribuer à faire avancer Swift sur Windows à publier de nouvelles bibliothèques et de nouveaux paquets pour Swift sur Windows ou à porter des paquets existants sur la nouvelle plateforme. Pour ceux qui souhaitent travailler sur les outils de base, l’équipe demande qu’ils commencent par améliorer le débogueur et le support de Windows dans le gestionnaire de paquets Swift.

Source : Swift.org

Et vous ?

Que pensez-vous de la prise en charge de Swift sur Windows ?
Allez-vous contribuer à faire prendre en charge Swift sur Windows ?

Voir aussi :

Swift 5.3 est disponible avec de meilleures performances et axée sur une meilleure productivité, et améliore l'ergonomie de l'écriture du code Swift
En route vers Swift 6 : l'équipe en charge du développement de Swift dévoile la nouvelle feuille de route du projet
Swift 5.2 est disponible avec une nouvelle architecture de diagnostic, qui vise à améliorer la qualité et la précision des messages d'erreur
Swift 5.3 sera officiellement disponible et pris en charge sur Windows, ainsi que sur d'autres distributions Linux

Une erreur dans cette actualité ? Signalez-le nous !