URL: https://linuxfr.org/news/swift-sous-gnu-linux-introduction Title: Swift sous GNU/Linux - Introduction Authors: Lucas RyDroid, Nÿco, Anonyme, NeoX, Ontologia et esdeem Date: 2016年02月03日T17:40:20+01:00 License: CC By-SA Tags: apple, objective-c, ubuntu et swift Score: 29 Swift est le nouveau langage de programmation d’Apple. Il a été rendu libre et open-source, sous [licence Apache 2.0](https://swift.org/community/#license), le 3 décembre 2015. Nous allons voir à travers cet article comment l’installer et l’utiliser sur GNU/Linux. Vous n’avez pas besoin d’avoir de connaissance avancée de GNU/Linux, ni de machine avec GNU/Linux installée pour suivre ce tutoriel. ![Swift](https://upload.wikimedia.org/wikipedia/commons/thumb/2/20/Swift_logo_with_text.svg/200px-Swift_logo_with_text.svg.png) ---- [Article original sur le blog d'Itelios](http://blog.itelios.com/blog/2016/02/02/swift-sous-linux-introduction/) [Site officiel de Swift](https://swift.org) [Annonce de Swift sur LinuxFr.org](https://linuxfr.org/users/spack/journaux/apple-annonce-swift-son-nouveau-langage-de-programmation) ---- # Installation de Swift sur GNU/Linux Si vous avez déjà Ubuntu 14.04 LTS ou Ubuntu 15.10, en machine physique ou virtuelle, vous pouvez simplement suivre les instructions sur le site swift.org pour télécharger et installer Swift pour Linux. Vous pouvez alors vous rendre directement à la section suivante. La suite vous décrit les étapes pour installer simplement une machine virtuelle Ubuntu dotée du nouveau langage Swift. ## Installation de VirtualBox [VirtualBox](https://www.virtualbox.org/) est un logiciel libre vous permettant de configurer et faire tourner des machines virtuelles. Si ce n’est déjà fait, installez-le en vous rendant à la page de téléchargement du site. ## Installation de Vagrant [Vagrant](https://www.vagrantup.com/) est un logiciel en ligne de commande qui permet d’installer et configurer des machines virtuelles à l’aide de scripts. Rendez-vous à la page de téléchargement du site, téléchargez et lancez l’installeur du système d’exploitation de votre machine hôte. À l’aide du script suivant, vous allez pouvoir télécharger et configurer votre machine virtuelle en une ligne de commande ! Créez un dossier `vagrant-swift`, puis créez dans ce dossier, un fichier nommé `Vagrantfile` contenant le code suivant : ```ruby Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.provision "shell", inline: <<-shell sudo apt-get --assume-yes install clang curl -O https://swift.org/builds/ubuntu1404/swift-2.2-SNAPSHOT-2015-12-01-b/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz tar zxf swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz echo "export PATH=/home/vagrant/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/bin:\"${PATH}\"">> .profile echo "Swift has successfully installed on Linux" SHELL end ``` Pour les utilisateurs Windows, il vous faudra un terminal qui permet d’exécuter des commandes Unix. Je vous recommande _Git Bash_ de la [suite Git for Windows](https://git-for-windows.github.io/). Durant l’installation, vous pouvez laisser toutes les options de configuration par défaut. Une fois installée, vous devez lancer _Git Bash_. Ouvrez un terminal si ce n’est déjà fait (_Git Bash_ si vous êtes sous Windows). Placez-vous dans le répertoire `vagrant-swift` et lancez la commande suivante : ```sh $ vagrant up ``` Allez boire une bière le temps que Vagrant procède aux étapes suivantes : Téléchargement d’Ubuntu 14.04 LTS Lancement de la machine virtuelle Installation du compilateur clang Téléchargement et décompression de Swift Configuration de la variable PATH de l’utilisateur Vous aurez peut-être des messages affichés en rouge, vous pouvez les ignorer. Si tout s’est déroulé correctement, le dernier message indique : ==> default: Swift has successfully installed on Linux La machine virtuelle est prête, connectez-vous en ssh en lançant cette commande : ```sh $ vagrant ssh ``` La connexion établie, vous obtenez un prompt de ligne de commande : ```sh vagrant@vagrant-ubuntu-trusty-64~$ ``` Vérifiez que Swift est bien installé en tapant : ```sh vagrant@vagrant-ubuntu-trusty-64:~$ swift --version Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift 778f82939c) Target: x86_64-unknown-linux-gnu ``` # Premier programme ## Live Les développeurs iOS ou OS X le savent déjà grâce au playground d’Xcode, Swift est un langage pouvant être exécuté en live grâce au REPL (_Read-Eval-Print-Loop_). Lancez la commande swift, un prompt apparaît, entrez alors votre première ligne de code Swift sur Linux ! ```sh vagrant@vagrant-ubuntu-trusty-64:~$ swift Welcome to Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift 778f82939c). Type :help for assistance. 1> print("Hello, Swift!") Hello, Swift! 2> ``` Pour quitter votre session Swift REPL, entrez la commande `:q`. ## Compiler un programme Pour compiler un programme écrit en Swift, créez un fichier source, par exemple de la manière suivante : ```sh $ cat> helloworld.swift ``` Puis rentrez cette unique ligne de code : ```swift print("Hello World !") ``` Appuyez une fois sur _Entrée_ suivi de _CTRL-D_ pour créer le fichier. Listez le répertoire courant pour vous assurer de la présence du fichier fraîchement créé en tapant la commande `ls`. Compilez maintenant votre programme en tapant : ```sh $ swiftc helloworld.swift ``` Si vous listez le répertoire courant, vous verrez qu’un nouveau fichier exécutable nommé `helloworld` a été créé. Votre programme est prêt à être lancé, tapez : ```sh $ ./helloworld ``` Vous devriez voir en sortie : Hello World ! # Ce qu’Apple a rendu open source Seulement une partie de la technologie est disponible en open source pour le moment. Les composants sont : * **Compilateur Swift, sources et exécutables, débogueur, REPL**. C’est le coeur du langage lui-même. Apple a rendu open les sources du programme swiftc, le même compilateur utilisé pour compiler les applications iOS et OS X. * **Bibliothèque standard Swift**. Presque la même bibliothèque standard utilisée depuis la sortie de Swift, elle comprend la définition des collections, protocoles et autres fondamentaux. Si par curiosité, vous voulez voir comment est définie la classe (plus précisément la structure) String, rendez-vous sur le github [ici](https://github.com/apple/swift). * **Bibliothèques Swift core**. Elles font peau neuve aux bibliothèques existantes d’Apple écrites en Objective-C. Elles fournissent des fonctionnalités et des outils de haut niveau tels que ceux pour la communication web, l’interaction avec le système de fichiers, les calculs de date et heure. * **Swift Package Manager**. C’est le maître de cérémonie de l’assemblage de chaque brique qui forme une application. Il va télécharger les dépendances, les compiler et les lier entre-elles pour créer des bibilothèques ou des exécutables. * **Mais encore...** Si vous parcourez la page Github d’Apple, vous trouverez d’autres composants tels qu’une encapsulation de libdispatch (Grand Central Dispatch), des informations sur Swift 3.0, ou même un parseur du langage Markdown... # Ce qui n’est pas (encore) disponible Il manque à l’appel la plupart des frameworks qui rendent les applications iOS et OS X aussi belles. Pour n’en citer que quelques-uns : AppKit, UIKit, Core Graphics, Core Animation, AVFoundation... Vous ne trouverez pas non plus l’environnement de développement intégré Xcode. Mais ce qu’Apple a rendu open source est plutôt significatif. En effet, le fait que les bibliothèques Swift Core ne reposent plus sur l’environnement d’exécution Objective-C montre qu’Apple est en train de créer les fondements de Swift pour, à long terme, remplacer Objective-C. De plus, le fait que Swift soit _cross-platform_ suggère qu’Apple espère voir les développeurs l’utiliser pour le développement d’applications Linux entre autres. Si ce n’est pour des applications GUI, au moins pour des applications serveurs. # Swift Package Manager Voyons en pratique l’utilisation du package manager sur un exemple simple, un petit jeu de « pierre, feuille, ciseaux ». Créez un dossier `helloswift` puis un dossier sources à l’intérieur du premier en exécutant les commandes suivantes : ```sh $ mkdir helloswift $ cd helloswift $ mkdir sources $ cd sources ``` Créez ensuite un fichier nommé main.swift, (le nom main est important pour la suite), dans le répertoire sources en exécutant : ``` $ cat> main.swift ``` Copiez le programme suivant : ```swift import Foundation import Glibc let player = ["pierre", "feuille", "ciseaux"] srandom(UInt32(NSDate().timeIntervalSince1970)) for count in 1...3 { print(count) sleep(1) } print(player[random() % player.count]); ``` Tapez Entrée puis CTRL-D. Vous pouvez d’ores et déjà exécuter votre programme avec la commande : ```sh $ swift main.swift ``` Génial ! Il faut que j’en parle aux copains ! Arf... il n’auront pas la commande swift... C’est ici que le Swift Package Manager entre en jeu ! Grâce à lui, vous allez pouvoir distribuer un exécutable de ce formidable programme. Créez un fichier `Package.swift` dans le dossier parent (`helloswift`) : ```sh $ cd .. $ cat> Package.swift ``` Copiez ceci dedans puis tapez _Entrée_ et enfin _CTRL-D_ : ```swift import PackageDescription let package = Package( name: "Chifoumi" ) ``` Lancez la commande de build : ```sh $ swift build ``` Swift détecte automatiquement le point d’entrée du programme car nous avons nommé notre fichier `main.swift`. Si vous renommez ce fichier, vous aurez des erreurs de compilation. En revanche le changement de nom du dossier sources n’affecte pas la compilation mais l’exécutable créé portera le nom du dossier et non le nom donné dans le fichier `Package.swift`. Si la compilation réussit, le package manager crée un dossier `.build` contenant un dossier `debug` dans lequel se trouve l’exécutable `Chifoumi`. Vous pouvez alors le distribuer et quiconque ayant une machine Linux pourra l’exécuter en tapant la commande suivante dans le répertoire où se trouve l’exécutable : ```sh $ cd .build/debug/ $ ./Chifoumi ``` Le Swift package manager possède évidemment beaucoup de fonctionnalités que nous n’avons pas explorées. Un guide d’utilisation plus avancée fera peut-être l’objet d’un nouvel article, qui sait ? Stay tuned ! # Références / Sources - [Site officiel](https://swift.org) - [GitHub](https://github.com/apple/swift) - http://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux - https://www.twilio.com/blog/2015/12/getting-started-with-swift-on-linux.html - [Page sur Wikipedia (en)](https://en.wikipedia.org/wiki/Swift_(programming_language))

AltStyle によって変換されたページ (->オリジナル) /