Développer des Apps iOS 8 avec Swift

Partie 1 : Introduction, application basique Hello World

Jameson Quave

Traducteur

Mishulyna

Ce tutoriel a été complètement remis à jour pour refléter les changements dans Xcode 6.3 à partir du 16 avril 2015.

Apple a annoncé lors de la WWDC(1) 2014 un changement assez majeur de la façon dont les applications iOS sont développées : un langage de programmation tout à fait différent appelé Swift qui remplace Objective-C. Comme je me suis lancé dans l'apprentissage de ce langage, j'ai décidé de poster régulièrement mes découvertes pour les partager. Cet article est le premier d'un grand nombre sur le sujet, et j'espère que vous allez les suivre !

Dans ce tutoriel, nous allons développer une application iOS qui téléchargera des chansons iTunes à partir de l'API iTunes, affichera cette information sur l'iPhone en utilisant un contrôle commun, appelé Table View, et nous permettra de regrouper ces morceaux dans un album et d'en jouer quelques-unes des pistes.

Si vous n'êtes pas encore familiarisé avec Xcode, je vous invite à consulter préalablement le tutoriel interactif qui vous apprendra à développer les applications les plus simples pour Apple Watch. Essayez le tutoriel WatchKit et revenez suivre ce tutoriel après. Xcode est source de confusion et WatchKit est beaucoup plus simplifié, il représente donc le bon moyen d'acquérir les notions nécessaires au développement iOS.

Les commentaires et les suggestions d'amélioration sont les bienvenus, alors après votre lecture, n'hésitez pas. Commentez .

Retrouvez toute la série "Développer des Apps iOS 8 avec Swift"

- Titre : Développer des Apps iOS 8 avec Swift

- Auteur : Jameson Quave

- Traducteur : Mishulyna

- Parution : 18 septembre 2014

- Mise à jour : 22 novembre 2015

- Public visé :

- Licence : Copyright ® 2014 Jameson Quave. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Voir également :

- Partie 2 : affichage des résultats d'une requête

- Partie 3 : les bonnes pratiques

- Partie 4 : ajouter les interactions

- Partie 5 : chargement asynchrone d'images et mise en cache

- Partie 6 : interaction avec des vues multiples

- Partie 7 : animations, audio et cellules Table View personnalisées

- Apprendre Swift à partir d'Objective-C

- Comprendre les optionnelles : quand et comment les utiliser ?

Sommaire

- Introduction

- I. Les bases

- II. Hello World

- III. Ajoutez une Table View

- IV. Vous avez une question ou un problème ?

- V. Remerciements Developpez

Introduction

- Le développement iOS se déplace à Swift

Apple a annoncé lors de la WWDC 2014 un changement assez majeur à la façon dont les applications iOS sont développées : un langage de programmation tout à fait différent appelé Swift qui remplace Objective-C. Comme je me suis lancé dans l'apprentissage de ce langage, j'ai décidé de poster régulièrement mes découvertes pour les partager. Cet article est le premier d'un grand nombre sur le sujet, et j'espère que vous allez les suivre !

Dans ce tutoriel, nous allons développer une application iOS qui téléchargera des chansons iTunes à partir de l'API iTunes, affichera cette information sur l'iPhone en utilisant un contrôle commun, appelé Table View, et nous permettra de regrouper ces morceaux dans un album et d'en jouer quelques-unes des pistes.

Donc, je vais commencer avec une application assez basique et expliquer comment le code fonctionne. Prêt ? Et c'est parti...

I - Les bases

Swift supprime le principe de déclaration des variables en commençant par leurs noms de type, et choisit à la place d'utiliser un mot clé JavaScript comme var pour définir une variable.

Par exemple, là où en Objective-C vous avez ceci :

1. NSString *maChaine = @"C'est ma chaîne.";

vous avez maintenant ceci :

1. var maChaine = "C'est ma chaîne."

En même temps, les constantes sont exprimées avec le mot-clé let :

1. let kUneConstante = 40

Dans ce cas, kUneConstante est définie de façon implicite comme un entier. Si vous voulez être plus précis, vous pouvez spécifier son type comme ceci :

1. let kUneConstante: Int = 40

Tant les tableaux que les dictionnaires sont décrits en utilisant les crochets [] :

1. var tableauCouleurs = ["Bleu", "Rouge", "Vert", "Jaune"]

1. var dictionnaireCouleurs = ["CouleurPrimaire":"Vert", "CouleurSecondaire":"Rouge"]

Il y a beaucoup plus à passer en revue, mais je pense que ces bases sont importantes pour entamer le tutoriel. Sur ce, passons à « Hello World ».

II - Hello World

D'abord, nous allons écrire l'application la plus simple que l'on peut imaginer, « Hello World ». Ce segment vient directement de mon prochain livre sur le développement Swift, mais il est si important et fondamental pour commencer que j'ai pensé qu'il serait bien de le publier gratuitement ici.

Notre application va faire une seule chose : afficher « Hello World » dans la console. Pour continuer, vous aurez besoin d'une version de Xcode pour développeur, ce qui nécessite un compte développeur. Si vous en avez un, allez à l'adresse https://developer.apple.com/ pour vous procurer cette version avant de commencer.

Alors, maintenant vous avez votre IDE en place. Écrivez donc « Hello World » dans la console. Cet exemple vous permet de construire la plus simple des applications et surtout voir comment configurer correctement votre environnement.

Créez un projet Xcode en utilisant le template « Single View Application » et assurez-vous de sélectionner Swift comme langage.

Choisissez un template pour votre nouveau projet

Choisissez les options pour votre nouveau projet

Vous devriez trouver maintenant un fichier AppDelegate.swift dans la hiérarchie du projet. À l'intérieur de ce fichier, trouvez la ligne :

1. "// Override point for customization after application launch."

Remplacez-la par notre code extraordinaire « Hello World » :

1. println("Hello World")

Maintenant, cliquez sur « run » et vous devriez voir démarrer une application vierge, et les mots « Hello World » affichés dans la console.

Notez que ce ne sera pas affiché dans le simulateur iPhone. Regardez en bas de votre fenêtre de Xcode et vous verrez « Hello World » dans une console.

Félicitations, vous venez d'écrire votre première application Swift ! Cette application ne gagnera probablement aucun prix, essayez de faire quelque chose d'un peu plus poussé...

Note : si ce tutoriel avance trop vite pour vous, jetez un œil à mon eBook Swift. J'y ai passé beaucoup plus de temps sur les bases du langage. Si vous n'êtes pas encore prêt à franchir le pas, je vous propose en échantillon gratuit un chapitre qui couvre certaines des bases de la syntaxe Swift, juste en échange d'une inscription pour être informé de la sortie du livre. Intéressé ? Inscrivez-vous !

Si vous n'êtes pas encore familiarisé avec Xcode, je vous invite à consulter préalablement le tutoriel interactif qui vous apprendra à développer les applications les plus simples pour Apple Watch. Essayez le tutoriel WatchKit et revenez suivre ce tutoriel après. Xcode est source de confusion et WatchKit est beaucoup plus simplifié, il représente donc le bon moyen d'acquérir les notions nécessaires au développement iOS.

III - Ajoutez une Table View

Dans cette section, nous allons effectivement mettre quelque chose sur l'écran.

Ouvrez votre fichier Main.storyboard dans Xcode et glissez dedans un objet « Table View » de la bibliothèque d'objets (ne pas utiliser un TableViewController.) Positionnez ce plein écran dans la fenêtre de votre application et assurez-vous qu'il s'aligne avec les bords. Puis redimensionnez la hauteur en faisant glisser vers le bas le bord supérieur et en laissant un peu d'espace (ce qui laisse de la place à la barre d'état en haut du téléphone.) Si vous exécutez l'application à ce stade, vous devriez voir une vue de tableau vide dans le simulateur.

Maintenant, nous devons mettre en place un délégué et une source de données pour l'affichage du tableau. C'est facile à faire dans Interface Builder. Il suffit de maintenir la touche Contrôle enfoncée, puis cliquez et faites glisser depuis votre tableview vers l'objet View Controller dans la hiérarchie de votre storyboard, et sélectionnez « data source ». Répétez l'opération avec les options « delegate ».

Note : j'ai reçu une tonne de questions à ce sujet, et beaucoup de gens se plaignent des erreurs concernant la vue de la table qui n'est pas configurée. Alors, afin de rendre les choses un peu plus faciles, j'ai fait une petite vidéo montrant comment fonctionne la connexion reliant des objets « Storyboard » à votre code. Jetez-y un œil. Lorsque vous regardez, assurez-vous de passer en mode plein écran et sélectionnez l'option 720p pour vous assurer que vous pouvez voir ce qui se passe. Ce sera légèrement différent de l'interface de Xcode 6, mais du point de vue fonctionnel, tout cela se passe de la même façon.

Animation en format "youtube" non supportée.
Contenu uniquement consultable en ligne à cette adresse :
https://www.youtube.com/watch?v=AiKOvoRFOCM

Bon, maintenant nous allons creuser dans les méthodes de protocole des « Table Views ». Parce que nous utilisons UITableViewDataSource et UITableViewDelegate dans notre ViewController, nous devons modifier la définition de la classe.

Ouvrez donc ViewController.swift et modifiez cette ligne :

1. class ViewController: UIViewController {

comme ceci :

1. class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

Cela entraînera l'apparition de quelques erreurs, mais ne vous inquiétez pas, c'est normal. En fait, les erreurs sont le but premier de l'inclusion de ces protocoles dans notre classe. Elles nous permettent de savoir que nous n'avons pas encore effectivement mis en œuvre UITableViewDataSource ou UITableViewDelegate.

Commande + clic sur l'un de ces protocoles montrera les fonctions requises au plus haut niveau. Dans le cas d'une table view, nous avons besoin au moins de ces deux :

1. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int

1. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

Modifions donc notre classe ViewController par l'ajout de ces deux fonctions :

1. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

2. return 10

3. }

4. func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

5. let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MaCelluleDeTest")

7. cell.textLabel?.text = "Ligne #\(indexPath.row)"

8. cell.detailTextLabel?.text = "Sous-titre #\(indexPath.row)"

10. return cell

11. }

La première méthode demande le nombre de lignes de notre section. Dans ce tutoriel, nous allons coder en dur 10, mais normalement ce serait la longueur d'un contrôleur de tableau. Cet exemple est volontairement simple.

La seconde méthode est l'endroit où la magie se produit. Ici, nous créons une nouvelle instance d'une UITableViewCell appelée cell en utilisant le style de cellule Subtitle.
Ensuite, nous assignons la valeur du texte de cette cellule à la chaîne "Ligne #\(indexPath.row)".

C'est ainsi que les variables sont intégrées dans une chaîne en Swift. Ce que nous faisons, c'est de récupérer la valeur de indexPath.row en insérant \(indexPath.row) dans notre chaîne et de la remplacer dynamiquement par le numéro de ligne de la cellule. Cela permet des résultats tels que « Ligne #1 », « Ligne #2 », etc.

Le libellé de détail est disponible uniquement dans la classe de la cellule Subtitle que nous utilisons ici. Nous l'avons configuré de façon similaire à « Sous-titre #1 », « Sous-titre #2 », et ainsi de suite.

Allez-y, exécutez votre application et vous verrez alors une liste incroyable de cellules avec des titres et des sous-titres indiquant leurs numéros de ligne. C'est l'une des façons les plus courantes d'afficher des données dans iOS, et assurez-vous de bien vous en servir. Pour le code complet de mon fichier ViewController, jetez un œil à : ViewController.swift.

Dans mon prochain livre, nous passerons plus de temps à réviser les principes de base, ainsi qu'à plonger plus profondément dans les détails avancés.

Dans la deuxième partie, nous allons explorer la boutique iTunes en utilisant l'API de recherche d'iTunes, afin de créer une application capable de trouver et d'afficher les albums qui s'y trouvent.

Aller à la partie 2 maintenant ->

IV - Vous avez une question ou un problème ?

Rejoignez-nous sur nos nouveaux forums.

V - Remerciements Developpez

Nous remercions Jameson Quave de nous avoir aimablement autorisés à publier son article, dont le texte original peut être trouvé sur jamesonquave.com. Nous remercions aussi Mishulyna pour sa traduction, LeBzul pour sa relecture technique ainsi que Milkoseck et jacques_jean pour la relecture orthographique.

Retrouvez toute la série « Développer des Apps iOS 8 avec Swift »

(1)WWDC (Wordwide Developers Conference) est la conférence annuelle des développeurs du monde entier tenue par Apple à San Francisco, en Californie.