Syndiquer le contenu
Mis à jour : il y a 14 heures 46 min

Swift sous GNU/Linux - Introduction

9 mars, 2016 - 00:17

Swift est le nouveau langage de programmation d’Apple. Il a été rendu libre et open-source, sous licence Apache 2.0, 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.

Sommaire 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 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 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 :

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. 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 :

$ 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 :

$ vagrant ssh

La connexion établie, vous obtenez un prompt de ligne de commande :

vagrant@vagrant-ubuntu-trusty-64~$

Vérifiez que Swift est bien installé en tapant :

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 !

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 :

$ cat > helloworld.swift

Puis rentrez cette unique ligne de code :

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 :

$ 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 :

$ ./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.
  • 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 :

$ 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 :

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 :

$ 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) :

$ cd .. $ cat > Package.swift

Copiez ceci dedans puis tapez Entrée et enfin CTRL-D :

import PackageDescription let package = Package( name: "Chifoumi" )

Lancez la commande de build :

$ 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 :

$ 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 Télécharger ce contenu au format Epub

Lire les commentaires