Swift
Swift
Swift
Découvrez le lANGAGe
wift
ce livre a été rédigé pour permettre à n’importe qui d’apprendre le langage de programmation
couvre
SWIFT 2
Swift, conçu pour développer des applications iPhone, iPad, iPod Touch ou encore Mac oS X.
De ce fait, aucune connaissance préalable n’est nécessaire. un parfait débutant saura très bien
à la fin de ce livre programmer dans ce langage. Deux TP sont également proposés pour mettre
en pratique vos nouvelles connaissances.
rudy de visscher
SWIFT
Les bases de la programmation Swift
d’une licence informatique, Rudy de Visscher
• Installation des outils de développement est actuellement étudiant en première année
• Les variables et opérateurs de master informatique, sur un parcours
ISIDIS (Ingénierie des systèmes informatiques
• Les conditions et les boucles
distribués). Depuis son plus jeune âge, il est
• Les tableaux et les dictionnaires passionné de nouvelles technologies et c’est
• Les fonctions et les closures au collège qu’il a commencé à apprendre en
SWIFT
autodidacte la programmation (principalement
• TP : une mini-calculette web), en créant ses premiers sites. C’est
également à partir de là qu’il a décidé de faire
La programmation orientée objet de sa passion son métier.
E
en Swift
• Programmation orientée objet
L’esprit d’OpenClassrooms
• Les classes et les structures
Des cours ouverts, riches et vivants, conçus
• L’héritage et les protocoles
pour tous les niveaux et accessibles à
• Les énumérations tous gratuitement sur notre plate-forme
• Retour sur les types et variables d’e-éducation : www.openclassrooms.com.
Vous y vivrez une véritable expérience
• Les extensions
communautaire de l’apprentissage, permettant à
• TP – Un jeu de combat (RPG) chacun d’apprendre avec le soutien et l’aide des
autres étudiants sur les forums. Vous profiterez
des cours disponibles partout, tout le temps : sur
le Web, en PDF, en eBook, en vidéo…
ISBN : 978-2-212-14397-3
Code éditeur : G14397
19,90 E
wift
ce livre a été rédigé pour permettre à n’importe qui d’apprendre le langage de programmation
couvre
SWIFT 2
Swift, conçu pour développer des applications iPhone, iPad, iPod Touch ou encore Mac oS X.
De ce fait, aucune connaissance préalable n’est nécessaire. un parfait débutant saura très bien
à la fin de ce livre programmer dans ce langage. Deux TP sont également proposés pour mettre
en pratique vos nouvelles connaissances.
rudy de visscher
SWIFT
Les bases de la programmation Swift
d’une licence informatique, Rudy de Visscher
• Installation des outils de développement est actuellement étudiant en première année
• Les variables et opérateurs de master informatique, sur un parcours
ISIDIS (Ingénierie des systèmes informatiques
• Les conditions et les boucles
distribués). Depuis son plus jeune âge, il est
• Les tableaux et les dictionnaires passionné de nouvelles technologies et c’est
• Les fonctions et les closures au collège qu’il a commencé à apprendre en
SWIFT
autodidacte la programmation (principalement
• TP : une mini-calculette web), en créant ses premiers sites. C’est
également à partir de là qu’il a décidé de faire
La programmation orientée objet de sa passion son métier.
E
en Swift
• Programmation orientée objet
L’esprit d’OpenClassrooms
• Les classes et les structures
Des cours ouverts, riches et vivants, conçus
• L’héritage et les protocoles
pour tous les niveaux et accessibles à
• Les énumérations tous gratuitement sur notre plate-forme
• Retour sur les types et variables d’e-éducation : www.openclassrooms.com.
Vous y vivrez une véritable expérience
• Les extensions
communautaire de l’apprentissage, permettant à
• TP – Un jeu de combat (RPG) chacun d’apprendre avec le soutien et l’aide des
autres étudiants sur les forums. Vous profiterez
des cours disponibles partout, tout le temps : sur
le Web, en PDF, en eBook, en vidéo…
SWIFT
Découvrez le LANGAGE
SWIFT
Ce livre a été rédigé pour permettre à n’importe qui d’apprendre le langage de pro-
grammation Swift. De ce fait, aucune connaissance préalable n’est nécessaire. Un parfait
débutant saura très bien à la fin de ce livre programmer dans ce langage.
Le livre se scinde en deux grandes parties. La première partie vous enseignera les bases
de la programmation Swift : vous y apprendrez tous les éléments nécessaires pour
n’importe quel langage de programmation : comment gérer des cas différents, comment
stocker l’information de façon intelligente et la traiter simplement, et enfin, comment
automatiser certaines tâches. La seconde partie vous expliquera la « programmation
orientée objet » en Swift. Tout en réutilisant les notions de la première partie, vous y
découvrirez cette méthode de programmation efficace et incontournable.
L’auteur conseille vivement aux débutants comme aux lecteurs ayant de l’expérience
en programmation de lire le livre dans l’ordre chronologique. Les chapitres sont en effet
dépendants les uns des autres. À chaque chapitre, les notions traitées dans les chapitres
précédents ont été mises en pratique et de nouvelles ont été introduites. Cela permet
de mieux apprendre et, surtout, en douceur. En outre, de nombreuses précisions et
astuces de la première partie aideront les lecteurs lorsqu’ils aborderont la deuxième
partie de l’ouvrage, un peu plus pointue.
Découvrez le langage Swift
À chaque fin de partie, un TP vous est proposé afin de mettre en pratique vos nouvelles
connaissances. À la fin de la première partie, vous saurez créer une mini-calculatrice
sans interface graphique. À la fin de la seconde, vous réaliserez un jeu de combat (RPG)
sans interface graphique.
Ce cours est conçu de façon à permettre de s’approprier le langage Swift. De ce fait,
vous ne saurez pas encore concevoir des applications iOS ou OS X. En revanche, vous
aurez assez de connaissances pour apprendre aisément à le faire. Cet ouvrage vous y
prépare en douceur.
À propos de l’auteur
Déjà titulaire d’un DUT informatique ainsi que d’une licence informatique, Rudy de
Visscher est actuellement étudiant en première année de master informatique, sur un
parcours ISIDIS (Ingénierie des systèmes informatiques distribués). Depuis son plus
jeune âge, il est passionné de nouvelles technologies et c’est au collège qu’il a com-
mencé à apprendre en autodidacte la programmation (principalement web), en créant
ses premiers sites. C’est également à partir de là qu’il a décidé de faire de sa passion
son métier.
Table des matières
Introduction 1
1 Présentation de Swift 5
Swift, qu’est-ce que c’est ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Les tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Les opérations de base : addition, soustraction, multiplication et division . . . . . . . . 22
Le modulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
D’autres opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Concaténer des variables et convertir un type . . . . . . . . . . . . . . . . . . . . . . . . . 24
Concaténer deux variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Convertir un type de variable en String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Pour résumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4 Les conditions 27
Condition : if...else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Condition avec uniquement un if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Condition if...else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Condition if...else if...else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Les conditions multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Les booléens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Combiner des conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Switch : quand il y a beaucoup de conditions . . . . . . . . . . . . . . . . . . . . . . . . . 34
Les conditions ternaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Pour résumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5 Les boucles 39
Qu’est-ce qu’une boucle ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
La boucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
La boucle repeat...while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
La boucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
En incrémentant de 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
En incrémentant d’un nombre différent de 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Pour résumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
VIII
Table des matières
IX
Découvrez le langage Swift
Créer un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Déclarer un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Utiliser un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
La surcharge de méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Le constructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Les structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Pour résumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
11 L’héritage 89
Réaliser un héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Le polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Pour résumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
12 Les protocoles 95
Créer un protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Utiliser un protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
L’héritage et les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Pour résumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
13 Les énumérations 99
Avant les énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
L’énumération avec enum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Utiliser un enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Traiter les cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Valeurs associées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Après l’énumération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Pour résumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
X
Table des matières
Index 127
XI
Introduction
Bienvenue dans ce cours qui vous fera découvrir le nouveau langage qu’est Swift.
Pourquoi êtes-vous à l’instant même en train de lire ces lignes ? Par simple curio-
sité, peut-être : vous avez entendu parler du nouveau langage de programmation
proposé par Apple et vous voulez en savoir un peu plus. Ou, tout simplement, vous
souhaitez apprendre ce langage afin de vous familiariser avec et faciliter vos futurs
développements.
C’est le lundi 2 juin 2014, lors la conférence WWDC 2014 (Apple Worldwide Developers
Conference) qu’a été annoncé le nouveau langage Swift. Il s’agit de la conférence
annuelle la plus importante pour les développeurs iOS. Swift est principalement dédié
à la réalisation d’applications iPhone, iPad, iPod Touch ou encore Mac OS X. Apple
présente ce langage comme rapide, moderne, simple, performant et facile d’utilisation.
De ce fait, son apprentissage par un débutant se fera beaucoup plus facilement qu’avec,
par exemple, le C, C++, Java, PHP, etc.
Vous souhaitez apprendre ce langage ? Vous envisagez par la suite de vous mettre au
développement OS X ou iOS ? Vous voulez mettre vos vieilles applications à jour sous
Swift, mais vous ne connaissez pas la syntaxe du langage ? Découvrez comment faire
dans ce cours !
Sachez que, dans ce livre, je pars de zéro ! Vous comprendrez de façon progressive et
sûre. Et, je vous le garantis, le cours sera très simple si vous avez la volonté d’apprendre.
Je vous souhaite bon courage et bonne lecture !
Première Partie
Les bases
de la programmation Swift
1 Présentation
de Swift
Pour ce premier chapitre, je ne vais pas attaquer directement l’apprentissage du lan-
gage, mais je vous propose plutôt de le découvrir. Comment est-il arrivé là et pourquoi ?
Dans quel but ? C’est ici que je répondrai à toutes ces questions.
Historique
Tout a commencé avec Chris Lattner, informaticien américain chez Apple depuis 2005.
Il supervise le département Developer Tools.
Le développement de Swift commence en juillet 2010. Chris Lattner implémente alors
la structure basique du langage et prend ses sources dans de nombreux langages de
programmation tels que Objective-C, mais encore Haskell, Ruby, Python ou C#.
La première version publique de ce langage a été présentée le 2 juin 2014 lors de
la WWDC.
Selon Apple, la version 3.0 de Swift devrait voir le jour en fin d’année 2016. Cette nouvelle
mise à jour majeure est l’occasion pour la firme à la pomme de réaliser une refonte d’une
partie de ce langage. Apple précise néanmoins que la version 3.0 ne sera pas « source
compatible » avec les versions antérieures de Swift. Cela signifie qu’il faudra modifier le
code de vos applications pour le rendre compatible avec Swift 3.
2
Installation
des outils
de développement
Vous souhaitez maintenant passer à quelque chose de plus intéressant : l’apprentissage
du langage. Toutefois, une question devrait vous traverser l’esprit : « De quoi a-t-on
besoin pour programmer en Swift ? »
C’est justement le sujet de ce chapitre. Je vais vous présenter Xcode, le logiciel néces-
saire pour programmer en Swift, et vous indiquer comment l’utiliser.
Je vais sûrement en décevoir quelques-uns mais... oui ! Xcode est pour le moment un des
seuls logiciels permettant la programmation en Swift, pour la simple et bonne raison que
Swift est prévu pour développer des applications iOS et OS X. De ce fait – et je vais peut-être
encore perdre des lecteurs ! –, il faut obligatoirement une machine tournant sous Mac OS X.
Il existe d’autres logiciels permettant de développer sous Swift, mais je ne les présenterai
pas ici, car Xcode est bien plus complet et est pleinement opérationnel pour ce langage.
Il offre de plus de quoi grandement vous aider lors de l’écriture de votre programme.
Swift étant arrivé très récemment (et plus particulièrement la deuxième version), il
vous faudra disposer d’une des dernières versions de Xcode (la 7 ou plus) prenant en
compte le langage Swift dans sa version 2 et, pour installer Xcode 7 ou plus, il vous
faudra disposer de la version OS X Mavericks 10.10.4 minimum ou Yosemite.
Pour ceux n’ayant pas ces versions, rien ne vous empêche de suivre le cours et de le
comprendre. Qui sait ?
Première Partie – Les bases de la programmation Swift
Installer Xcode
N’ayez pas peur si vous avez une version supérieure à la 7.0, les changements ne seront
que minimes. En revanche, il faut obligatoirement la 7.0 ou plus.
Une fois dans l’App Store, trouvez la barre de recherche et tapez-y xcode (indiqué
par l’annotation (1) sur la figure 2-2). Vous aurez alors plusieurs choix. L’application
qui nous intéresse est bien évidemment Xcode ; il ne vous reste plus qu’à cliquer sur
Installer ((2) sur la figure 1-2).
8
Chapitre 2. Installation des outils de développement
Xcode pèse 3,59 Go dans sa version 7.0. Armez-vous de patience, prenez un café,
regardez un film, bref le téléchargement prendra un peu de temps. L’installation en
elle-même est toute simple puisqu’elle va s’effectuer toute seule sans intervention de
votre part.
Utiliser Xcode
Maintenant que nous avons installé Xcode, il est temps de le lancer et de voir de plus
près à quoi il ressemble. Allez dans le Finder, partie Applications et lancez Xcode.
9
Première Partie – Les bases de la programmation Swift
Petit détail : Xcode est en anglais. Rien de bien méchant, suivez bien ce cours et même
les anglophobes n’auront pas trop de soucis.
Pour l’exemple, nous allons créer un projet qui contiendra un programme basique
affichant un simple « Hello World ! » à l’écran. Notre seule interface pour la
programmation sera... une console ! Vous allez voir ça tout de suite.
Cliquez sur Create a new Xcode project. Une nouvelle fenêtre apparaît. Sur le
côté gauche, partie OS X, cliquez sur Application. Sur la partie droite, cliquez sur
Command Line Tool.
10
Chapitre 2. Installation des outils de développement
Cliquez sur Next, tout en bas, et vous devrez remplir quelques champs.
Figure 2-8
Product Name est le nom de votre projet. Ici, nous allons l’appeler HelloWorld.
Organization Name est le nom de votre organisation. Mettez-y tout simplement votre
nom de compte ou votre prénom ou encore votre pseudo.
Organization Identifier est un numéro identifiant votre organisation. Saisissez ce
que vous voulez.
11
Première Partie – Les bases de la programmation Swift
Language est le langage que vous souhaitez utiliser pour votre programme. Sélectionnez
donc Swift dans la liste déroulante.
Cliquez sur Finish et vous voilà arrivé dans l’interface de Xcode !
Vous apercevez maintenant deux menus (un de chaque côté) et une fenêtre principale
(au centre). Sachez que le menu de droite vous servira uniquement pour développer
des applications iOS ou OS X, nous ne l’utiliserons donc pas dans ce cours. Je vous
propose donc de le cacher afin de gagner de l’espace et de la visibilité. Cliquez sur
l’icône située tout en haut à droite.
Par convention, main est le fichier principal... C’est là qu’à peu près tout doit se passer ;
vous comprendrez de vous-même en continuant ce cours. Pour accéder à ce fichier,
rendez-vous dans le menu de gauche et cliquez sur main.swift.
12
Chapitre 2. Installation des outils de développement
Je ne vais pas vous expliquer tout ce code tout de suite, mais juste la ligne principale :
Cette ligne va tout simplement afficher dans votre console la phrase Hello, World !.
print est ce qu’on appelle une fonction. Je ne vais pas définir ici ce que c’est, mais
un chapitre y sera entièrement consacré. Retenez que tout ce que vous placerez entre
les parenthèses sera affiché dans votre console.
Mais qu’est-ce que la console ? Je vous propose d’exécuter ce programme et de voir
ce qui se passe. Cliquez sur le bouton d’exécution , au-dessus du menu de gauche.
Que s’est-il passé ? Si vous observez bien, dans la fenêtre principale qui est au centre,
vous constatez que quelque chose s’est affiché en bas !
Vous venez de réaliser votre tout premier programme en Swift. Bon d’accord, cela n’a
rien de bien exceptionnel pour le moment, mais rendez-vous au chapitre suivant pour
en apprendre davantage !
13