Pour devenir développeur iOS, tu as besoin de connaître le langage de programmation d’Apple. Swift est un langage moderne, puissant et open-source développé par Apple. Il est utilisé pour créer des applications pour iOS, macOS, watchOS et tvOS.
Dans cet article, nous allons explorer les bases. N’oublie pas, des bases solides sont importantes pour la construction de ton apprentissage, n’hésite pas à faire et refaire des exercices pour t’entraîner là dessus.
Les avantages de Swift
- C’est un langage « jeune ». Il est mis à jour régulièrement par la team Swift et s’améliore sans cesse.
- Rapide (c’est d’ailleurs ce que signifie « swift » en anglais), jusqu’à 8,4x plus rapide que Python 2.7, d’après le site officiel d’Apple.
- Langage typé. On va le voir dans cet article, on ne fait pas ce qu’on veut avec les variables (si tu connais un peu JavaScript, c’est moins freestyle et c’est pas plus mal !) et on peut, dès la création, les typer.
- Pas besoin de point virgule 🎉 Certains langage très restrictifs (coucou Java) t’imposent de finir ta ligne de code avec un point virgule. Ce n’est pas le cas avec Swift (et on l’aime aussi pour ça 🫶)
Commentaires
Avant de rentrer dans le vif du sujet, saches que tu vas être amené(e) à écrire des commentaires dans ton code.
Pourquoi ? Pour te laisser des notes, pour expliquer ton code à la personne qui le relira (ou à la version de toi dans le futur ! Tu risques d’en avoir besoin 🫠), pour expliquer le but d’une fonction, etc. Et même s’il ne faut pas en abuser, il est important de savoir comment les utiliser.
// pour commenter une ligne
/*
Pour commenter
un bloc de ligne
*/
Variables et constantes en Swift
Les variables et les constantes sont utilisées pour stocker des valeurs en Swift : un âge, un prénom, un objet. On peut les voir comme des boîtes dans lesquelles on met une information.
Dans le cas d’une variable, le contenu de cette boîte peut être modifié, tandis que le contenu de la boîte d’une constante sera toujours le même.
Pour déclarer une variable, on utilise le mot-clé <strong>var</strong>
, suivi du nom de la variable et de sa valeur initiale. Par exemple :
var name = "Pomme"
Pour déclarer une constante, on utilise le mot-clé <strong>let</strong>
:
let pi = 3.141592653589793
Typage
Les types de données définissent le type de valeur qu’une variable ou une constante peut stocker. Swift prend en charge plusieurs types de données, tels que les nombres, les chaînes de caractères, les booléens, les tableaux et les dictionnaires. Par exemple :
var score: Int = 100 //nombre
var name: String = "John Doe" //chaîne de caractères
let exclamationMark: Character = "!" //un seul caractère
var isOn: Bool = true //booléen (prend soit la valeur true, soit false)
var userFavoriteColorName: String? // nil (null) par défaut
Il est possible de spécifier le type de données dès la création de la variable. Notamment, si tu veux le ‘forcer’ à utiliser un type plutôt qu’un autre. Par exemple, pour écrire un nombre à virgule, il est possible de choisir entre un Float
et un Double
. Sans préciser le type, le compileur choisira le Double
par défaut.
let poids: Float = 25.5
// ou alors
let poids = Float(25.5)
Pourquoi utiliser un Double
plutôt qu’un Float
(ou l’inverse) ?
Le type <strong>Double</strong>
a une précision de 15 chiffres après la virgule alors que Float n’en a que 6. Tout dépend donc de l’usage que tu comptes en faire.
print(Double.pi) // 3.141592653589793
print(Float.pi) // 3.1415925
Chaînes de caractère en Swift
Une chaîne de caractères est un ensemble de caractères. Pour écrire un bloc de texte dans le code et avoir un code clair à lire (donc ne pas avoir une ligne de code trop longue), on utilise 3 double guillemets :
let singleLineString = "C'est la même chose qu'en dessous."
let multilineString = """
C'est la même chose qu'au dessus.
"""
Pour afficher un double guillemet, on utilise le caractère d’échappement \
.
let yodasQuote = "\"Fais le ou ne le fais pas, il n'y a pas d'essai.\""
// Affiche "Fais le ou ne le fais pas, il n'y a pas d'essai."
String interpolation
C’est un manière d’insérer le contenue d’une variable ou d’une constante dans une phrase :
let age = 18
let name = "Pomme"
let presentation = "Je m'appelle \(name) et j'ai \(age) ans."
// Affiche : Je m'appelle Pomme et j'ai 18 ans.
Soif d’en savoir plus ? Voici un peu de doc Apple plus approfondie.
Opérateurs
Ils sont utilisés pour effectuer des calculs et des comparaisons. Swift prend en charge différents types d’opérateurs :
- unaires : opèrent sur une seule cible comme
-a
ou encore!b
(signifie « différent de b ») - binaires : opèrent sur deux cibles comme
a + b
- ternaires : opèrent sur trois cibles comme
a ? b : c
. Celui-ci est un peu plus compliqué à comprendre mais on en parle juste en dessous ⤵️
Opérateurs arithmétiques
Les classiques addition, soustraction, multiplication et division.
1 + 2 // vaut 3
5 - 3 // vaut 2
2 * 3 // vaut 6
10.0 / 2.5 // vaut 4.0
Dans la programmation, on peut également « additionner » deux chaînes de caractères :
"hello, " + "world !" // "hello, world !"
//ou encore
let greetings = "hello, "
greetings += "world !" // équivaut à greetings = greetings + "world !"
Opérateurs de comparaison
Les classiques, toujours :
1 == 1 // donne true car 1 est égal à 1
2 != 1 // donne true car 2 n'est pas égal à 1
2 > 1 // donne true car 2 est plus grand que 1
1 < 2 // donne true car 1 est plus petit que 2
1 >= 1 // donne true car 1 est supérieur ou égal 1
2 <= 1 // donne false car 2 n'est pas inférieur ou égal à 1
Opérateurs logiques
Les 3 opérateurs logiques :
- NOT :
!a
(différent de) - AND :
a && b
(a ET b) - OR :
a || b
(a OU b)
let example = 2
let hasDoorKey = true
let knowsOverridePassword = true
if (example == 2 && !hasDoorKey) || (example == 2 && knowsOverridePassword) {
print("Welcome!")
} else {
print("ACCESS DENIED")
}
Opérateurs ternaires
L’opérateur ternaire est un opérateur spécial à trois parties, qui prend la forme question ? réponse1 : réponse2
.
var weather = "sunny"
var mood = weather == "sunny" ? "happy" : "sad"
// s'il fait ensoleillé, je suis content, sinon je suis triste
Il s’agit d’un raccourci permettant d’évaluer l’une des deux réponse à la question (vraie ou fausse). Si la question est vraie, il évalue la réponse 1 et renvoie sa valeur ; sinon, il évalue la réponse 2 et Renvoi sa valeur.
var userFavoriteColorName: String? // nil par défaut
var colorNameToUse = userDefinedColorName ?? "red"
// userDefinedColorName est nil, donc colorNameToUse est défini par défaut à "red"
Un peu de doc Apple plus approfondie.
Nil
Mais non, on a dit nil pas Nil !
L’opérateur nil
est utilisé pour représenter une valeur nulle ou absente. Cela signifie qu’une variable ou une constante qui contient l’opérateur nil
n’a pas de valeur. Il est souvent utilisé pour initialiser une variable ou une propriété à une valeur par défaut qui peut être modifiée plus tard dans le code.
Il est également utilisé en combinaison avec l’optionnel en Swift. Celui-ci est utilisé pour indiquer qu’une variable ou une constante peut avoir une valeur nulle ou absente, c’est à dire qu’elle contiendra soit une valeur, soit la valeur nulle (nil
).
var name: String? = "Pomme" // chaine de caractères optionnelle
name = nil // peut être par la suite assignée à nil
Attention, assigner une valeur nulle à une variable peut être source d’erreur si elle est mal utilisée. Il est donc important de prendre en compte les situations où une valeur nulle peut être retournée et de gérer ces situations correctement dans le code.
Merci d’avoir lu cet article jusqu’au bout. J’espère que cette courte introduction t’a plu. Je reviens très bientôt pour la suite. Nous parlerons de tableaux, dictionnaires, sets et enums. Tout un programme 👩💻
Si tu n’y tiens plus et que tu veux lire toute la doc de Swift, voici celle que nous avons abordé dans cet article et encore un peu de lecture avec la présentation de Xcode.