A la découverte de Swift

De Steven Marie dans Technique

12 mar 2017

Logo_Apple_Swift.png

Swift, mais qu’est-ce que c’est ?

 

Swift, comme son nom ne l’indique pas forcément, est un langage de programmation créé par Apple et destiné au développement d’applications pour les différents systèmes de la marque (MacOS, iOS, WatchOS et tvOS).

Le développement de ce langage a commencé en 2010 sous la direction de Chris Lattner. Le langage n’est cependant dévoilé au public que quatre ans plus tard, à la WWDC de 2014. Depuis sa sortie en 2014, le langage a déjà connu plusieurs versions. La dernière version stable étant la 3.0 mais la version 3.1 est déjà en cours de développement.

S’il est possible de développer des applications 100% en Swift, le langage est nativement prévu pour co-exister avec l’autre langage de programmation d’Apple : l’Objective-C.

Malgré sa relative jeunesse, le Swift s’est rapidement imposé parmi les langages de développement les plus populaires selon le classement TIOBE, se payant même le luxe de dépasser son aîné en se classant 10è contre 15è pour l’Objective-C (cf. http://www.tiobe.com/tiobe-index/ ).

Swift, pourquoi faire ?

Comme j’ai pu le dire le Swift est langage destiné au développement d’applications pour l’écosystème d’Apple. Il permet donc de développer des applications pour chacun des systèmes d’exploitation du-dit écosystème.

Pour tout développement, Swift peut être utilisé seul ou conjointement avec Objective-C, C et/ou C++. Le développeur n’aura aucune action à faire, Xcode (l’environnement de développement d’Apple) étant capable de détecter le type de fichier ajouté au projet afin de générer automatiquement les possibles éléments manquants.

ex : A l’import d’un fichier Objective-C dans un projet Swift, Xcode affichera la popup ci-dessous et s’occupera automatiquement de créer les fichiers nécessaires au projet.

bridgingheader_2x.png

 

D’accord, mais pourquoi utiliser Swift alors qu’il y a déjà Objective-C ?

La réponse est simple : tout ce que permet Objective-C, Swift le permet aussi et le fait mieux ! De plus, comme Apple s’est assuré que les deux langages soient compatibles de façon quasiment transparente (car rien n’est parfait), il est possible de profiter des librairies Objective-C en Swift et inversement. De quoi pouvoir se lancer sereinement en Swift, ou assurer une transition en douceur d’Objective-C vers Swift.

Mais ce n’est pas tout.

Swift est plus rapide

C’est évident que Swift n’allait pas être plus lent qu’Objective-C, cependant il est vraiment plus rapide. Apple parle sur son site officiel d’un gain de vitesse allant jusqu’à 2.6 fois.

Swift est plus facile à apprendre, coder, lire et maintenir.

l’Objective-C est un langage datant de 1983 et s’il a su évoluer, sa syntaxe reste très particulière. Bien loin des standards que l’on connaît de nos jours avec C#, Java, Python, etc.

ex : Déclaration et appel d’une méthode en Objective-C puis avec Swift

 

Autre point important, la manipulation de chaînes de caractère se trouve grandement simplifiée.

ex : Concaténation de deux chaînes de caractère

On remarquera qu’à l’instar du Python, le Swift ne nécessite pas de “;” à la fin de instruction, tout est question d’indentation. Cela oblige les développeurs à conserver une certaine rigueur dans l’organisation de leur code.

Tout est parfait alors ?

Eh bien… Non. Comme tout “nouveau” langage, Swift est sujet à de nombreuses modifications et d’une version à l’autre la syntaxe peut totalement changer, ce qui impose aux développeurs de faire migrer leurs applications d’une version à la suivante s’ils veulent profiter de toutes les nouvelles fonctionnalités.

Dans le cas de Swift, 2 migrations ont déjà été nécessaires aux développeurs d’applications : le passage de la version 1.0 à la 2.0 et de la version 2.3 à la 3.0. Ce billet : https://mozilla-mobile.github.io/ios/firefox/swift/core/2017/02/22/migrating-to-swift-3.0.html retrace l’expérience vécue par l’équipe de développement de firefox iOS lors de la migration vers Swift 3.

La version 4.0 de Swift devrait cependant être la première version majeure du langage à assurer la stabilité du code, comme l’explique ce billet ; https://swift.org/blog/swift-4-0-release-process/

Et alors Swift on valide ou pas ?

Pour faire simple : oui !

Swift est un langage encore jeune mais avec l’arrivée de la version 4.0 et l’annonce de la stabilité du code, on sent que la maturité est proche. Côté développement, aucun manque n’est à déplorer puisque la plupart des librairies et outils existants sont d’ores et déjà passées au Swift et celles qui ne le sont pas encore peuvent quand même être utilisée en s’appuyant sur la compatibilité entre Objective-C et Swift.

Commentaire

+ un = 8