Apple déploie beaucoup d’efforts autour du langage Swift, créé en 2010 par Chris Lattner puis lancé en 2014 avant de devenir open source l’année dernière.
L’objectif premier de Swift est de rendre plus accessible la programmation d’applications qu’en passant par l’apprentissage de l’Objective-C.

Dans les faits, le langage n’est certes pas aussi simple qu’un langage web comme le PHP ou le Javascript, mais il n’en reste pas moins accessible à condition d’avoir quelques bases et surtout de disposer des bonnes ressources d’apprentissage.

Alors que Swift 3.0 annonce une nouvelle version encore plus mature du langage, Apple semble plus déterminée que jamais à ouvrir la porte aux développeurs de tous horizons, et pourrait à terme reléguer l’Objective-C au placard.

Swift : pourquoi, pour qui ?

Swift, pourquoi un nouveau langage ?

Dans l’histoire de l’informatique, on ne compte plus les langages de programmation aussi géniaux qu’éphémères alors on peut se demander pourquoi Apple s’est engagée sur la voix d’un nouveau langage plutôt que de faire évoluer l’Objective-C.

Comme tout projet informatique, un langage peut difficilement évoluer indéfiniment, il faut parfois savoir bâtir une alternative hautement compatible pour mieux répondre aux défis de l’avenir.

swift-langage

Depuis quelques années, les App Store sont la clé du succès des terminaux modernes et apportent des rentrées d’argent dont la croissance ne faiblit pas. En créant un nouveau langage plus simple, Cupertino peut ainsi attirer plus de développeurs et décupler le potentiel de ses boutiques d’applications.

Le cahier des charges de Swift devait ressembler à peu de choses près à quelque chose comme cela :
– Un langage facile à prendre en main
– Un langage compilé pour une communication plus directe avec le matériel
– Un langage dynamique et offrant des passerelles natives avec Objective-C
– Un langage de programmation avec une forte orientation fonctionnelle

Swift n’est pas prêt à remplacer totalement Objective-C mais il compte déjà parmi les langages à la plus forte croissance dans l’histoire de l’informatique. L’index TIOBE montre que l’interêt de la communauté ne se dément pas : Swift talonne l’Objective-C et on a appris récemment que Google s’y intéresserait même pour Android.

swift-macbook

Il reste encore du chemin à parcourir pour Swift, mais avec Apple aux commandes et sa tendance à ne pas regarder dans le rétroviseur pour appliquer des changements (contrairement à Microsoft et son amour de la rétrocompatibilité maximale), c’est l’assurance d’un langage tourné vers l’avenir.

Swift sera le nouveau BASIC ?

Qui peut apprendre Swift ?

Dans l’absolu il n’y a de limite à l’apprentissage d’un langage que la motivation mais, pour se lancer dans Swift, avoir au minimum abordé la programmation orientée objet (POO) est un atout non négligeable.

Par exemple, de solides bases en PHP avec Classes et Méthodes (pas juste des assemblages de fonctions de base) vous permettront de vous consacrer plus efficacement aux spécificités de Swift. Idem si vous maîtrisez le Javascript (le vrai pas les imbroglios de commandes jQuery !).

Si vous venez de langages plus complexes que le PHP comme le C ou l’un de ses dérivés, vous ne devriez rencontrer d’autres difficultés que le changement de syntaxe.

Swift vs Objective-C

Le match est classique mais nous n’allons pas l’aborder du point de vue d’un développeur spécialiste en Objective-C mais plutôt de celui de quelqu’un qui souhaite se lancer, celui qu’Apple vise avec Swift.

Swift est plus simple à écrire et à relire : la syntaxe est incomparablement plus “évidente”, les fonctions les plus courantes d’un usage plus efficace.

swift-objective-c

Moins de code à écrire pour réaliser une action, c’est aussi une relecture rapide et plus facile pour trouver ses erreurs ou apporter des changements. Autre point important : Swift ne repose que sur “un seul” fichier et non plus les couples de fichiers .m et .c.

Swift est plus rapide : l’argument est discutable mais, dans la plupart des cas, une application écrite en Swift exécute certains algorithmes bien plus vite.

swift-vitesse-objective-c

Swift offre une programmation plus sûre : on ne parle pas ici de sécurité mais de sensibilité aux bugs (et aux crashs) lors du développement.
Swift, avec la notion d’Optionals, évite les “blocages silencieux” et assure une localisation plus rapide des erreurs.

Swift gère la mémoire, pas le développeur : fini la gestion de la mémoire lors de l’utilisation d’API de bas niveau, c’est Swift qui s’occupe de tout.

Les “Playgrounds” pour un Swift plus joueur : la création d’un “playground” dans Xcode permet de tester des bouts de code facilement et de visualiser l’évolution de variables avec l’exécution de l’algorithme. Idéal pour découvrir le langage !

swift-playground-exemple

Apprendre Swift : le grand tour des options

Sans l’anglais, point de salut. C’est un peu direct, mais même si Swift est largement mis en avant depuis presque deux ans, il n’existe presque rien en français pour apprendre !

Vous trouverez bien un livre “Swift pour les Nuls” chez Amazon ou dans iBooks mais cela ne va pas beaucoup plus loin. Du côté des formations en ligne, la pauvreté est également de mise avec quelques sessions chez Elephorm et une rapide découverte de Swift chez OpenClassrooms.

Il reste encore les forums mais cela sert plus souvent à se dépanner qu’à aborder les notions et comprendre les concepts d’un langage.

Seule solution : mettez-vous à l’anglais ! Il ne faut pas nécessairement le niveau pour s’attaquer à du Shakespeare pour s’en sortir.

Notez que tous les cours et livres que nous traitons ont été suivis et lus par votre serviteur, histoire de vous donner un avis plus réaliste !

Les cours interactifs sur Swift

Avec iTunes U, Apple met gratuitement à disposition de véritables cours universitaires, à suivre au fond du canapé.

itunes-u-swift

Si nous ne devions retenir qu’une seule ressource pour bien se lancer avec Swift, ce seraient les cours de Paul Hegarty dispensés à Stanford et délivrés gratuitement via iTunes U. Le cours est numéro un dans l’application et c’est largement mérité !

swift-itunes-u-stanford

Paul propose des cours très complets avec diapositives, textes et vidéos organisés autour d’une mise en pratique pour sauter dans le bain et apprendre en même temps. Encore une fois, il vous faudra quelques bases de programmation mais l’information distillée est claire et complète, avec de longues sessions de programmation et d’utilisation de Xcode en direct.

Developing iOS 9 Apps with Swift sur iTunes U.

Plymouth University propose un autre cours “iOS Development in Swift” qui s’attaque au gros morceau sous un autre angle. Vous n’aurez pas l’impression d’être assis sur les bancs d’une université prestigieuse, mais aurez devant vous près d’une centaine de démonstrations vidéo et quelques livres à installer dans iBooks.

swift-itunes-u-plymouth

Très complet également, le programme de Nicholas Outram est le complément parfait aux cours de Paul Hegarty.

iOS Development in Swift sur iTunes U.

Il y a quelques autres cours sur iTunes U mais moins récents et moins pertinents que ceux précédemment cités.

Les livres sur Swift

Le livre n’est pas mort surtout quand il est électronique et qu’on peut se balader avec un iPad qui pèse un dixième de la bibliothèque familiale !

ibooks-swift-livres

Apple propose gratuitement “The Swift Programming Language” sur iBooks mais cela reste un “livre” très théorique et trop aseptisé pour être agréable à lire, surtout pour un débutant.

ebook-swift-apple

The Swift Programming Language (Swift 2.2) (gratuit) sur iBooks.

Quand on débute, on pense assez vite à la collection “pour les Nuls”. Cela tombe bien, le bouquin de Jesse Feiler, “Swift pour les Nuls” est un des seuls traduits en français mais, à part surélever l’iMac ou caler une porte, il n’a pas grand intérêt. Nous l’avons lu en anglais, mais c’est surtout l’organisation de l’information qui pêche ; Xcode, syntaxe, exemples, théories et référence sont mélangés et embrouille vite l’esprit. Un comble pour l’apprentissage d’un langage structuré.

Swift pour les Nuls: 15,99€ sur iBooks ou 24,95€ chez Amazon.

Dans la même veine que “Swift pour les Nuls”, nous vous conseillons de vous tenir éloigné de “Swift in 24 hours” dont la promesse n’est autre qu’un mal de crâne longue durée. Nous avons tenté de tenir 200 pages sur les 737 qu’iBooks affiche au compteur. Perte de temps.

Swift in 24 Hours (20,99€) sur iBooks.

Si vous venez du web, “Migrating to Swift from Web Development” offre une approche intéressante avec de très nombreux parallèles entre le web et Swift, que ce soit au niveau de la syntaxe que des outils. Le livre s’intéresse à tous les aspects de la production d’une application, sans trop abuser des copies d’écran.

Migrating to Swift from Web Development (24,21€) chez Amazon.

Chez le même éditeur, “Swift 2 for Absolute Beginners” fait partie de nos préférés : très complet, très didactique, richement illustré et bardé d’exemples. Le livre va même jusqu’à aborder WatchKit et HealthKit.

Swift 2 for Absolute Beginners sur iBooks.

Kevin McNeish propose sur iBooks 3 livres dédiés à iOS et au développement avec Swift. Créés avec iBooks Author, ces livres sont de loin les plus agréables à consulter et offrent un apprentissage tout en douceur, détaillant tous les points importants à maîtriser, que ce soient les concepts d’iOS, le langage de programmation et ses subtilités ou Xcode et son interface relativement lourde à prendre en main. Bien illustré, bien expliqué, il n’y a rien à redire au vu de la diversité et la profondeur des sujets abordés (achats in-app, Core Data, etc).

Diving In iOS App Development for Non-Programmers (10,99€), Learn to Code in Swift (27,99€) et Mastering Xcode 7 and Swift (28,99€) conçus pour iBooks.

Dans une autre optique, un peu plus large encore que les 3 livres ci-dessus, MengTo vend sur son site Design+Code un ensemble de livres couvrant la création de maquettes sous Sketch, le développement avec Swift et livre de très nombreux exemples de code pour décortiquer le fonctionnement d’une application. On reprochera cependant à l’auteur la trop forte mise en avant des librairies qu’il a développées et qui créent des raccourcis trop rapides sur certaines notions essentielles.

designcode-swift

Un point intéressant de cette collection concerne la création de prototypes d’une application à partir de maquettes Sketch et de quelques bouts de code : de quoi donner facilement vie à des modèles statiques pour une présentation réussie.

Design + Code(50$) sur le designcode.io

Pour aller plus loin

Une fois que vous aurez les bases de Swift et un début de maîtrise de Xcode, il y a quelques autres ouvrages qui complètent efficacement le sujet.

Erica Sadun a, sur le sujet, deux livres importants à son actif :
– “Playground secrets and power tips” (13,99€ sur iBooks) qui jette un regard détaillé sur les “playgrounds” inaugurés récemment dans Xcode.
– “The Swift’s Developer Cookbook” (23,99€ sur iBooks) qui reprend le principe du livre “officiel” d’Apple mais aves des sources à télécharger et de nombreux trucs et astuces pour “coder efficace”.

Steven Lipton s’attache avec “Swift Swift View Controllers” à décortiquer tout ce qui contrôle l’affichage dynamique de vos applications. Les notions d’interface sont détaillées et bourrées d’informations pratiques.

Swift Swift View Controllers(22,99€) sur iBooks

Classique des éditions O’Reilly, le “Swift Pocket Reference” est à garder à portée de main pour des réponses rapides aux interrogations qui surviennent lors de la programmation.

Swift Pocket Reference(13,87€) chez Amazon.

Swift, faites comme l’oiseau !

Si vous avez un projet personnel d’application ou que vous souhaitez juste “voir ce que cela donne”, Swift est un langage intéressant et “facile” à prendre en main. Avec Swift, la création d’une application n’est plus réservée aux “dieux du code” et pourrait même être abordée à l’école si sa portée n’était pas limitée aux produits Apple !

On regrette fortement la pauvreté de l’offre en français en matière de ressources pour l’apprentissage, mais gageons que cela changera à l’avenir, avec la popularité croissante du langage.

Voici quelques sources qui nous ont été utiles à la rédaction de cet article :
Quora : pourquoi un nouveau langage
The New Stack : pourquoi Swift est meilleur qu’Objective-C
CodeNewbie : Objective-C vs Swift
Swift.org : le site officiel du projet open source
Infoworld : 10 raisons en faveur de Swift

Et bien entendu Amazon, iBooks et iTunes U pour identifier et acheter les ressources intéressantes !

3 COMMENTAIRES

À vous la parole !

Fermer
*
*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.