• 8 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 26/05/2023

Tirez le meilleur de ce cours

Bonjour et bienvenue dans ce cours sur la navigation et les formulaires en iOS ! Ensemble, nous allons découvrir comment créer plusieurs pages dans une application, et comment organiser la navigation et la communication entre elles. Vous apprendrez aussi à créer des formulaires en vous appuyant sur des composants comme les champs de texte, les boutons switch, les sélecteurs et d'autres encore. Nous verrons même comment gérer le clavier et présenter des alertes aux utilisateurs.

Et bien sûr, j'ai prévu quelques surprises et autres bonus en chemin !

Miawouf

Dans ce cours, nous allons développer une application de rencontre... pour chiens et chats ! Cette application est baptisée Miawouf. Et nous allons nous concentrer sur la phase d'inscription. Car elle nous suffit pour découvrir tout ce qui est prévu dans ce cours !

Miawouf est divisée en deux, une inscription pour les chiens et une pour les chats. Et l'inscription se fait en trois pages :

  • une page d'accueil ;

  • un formulaire d'inscription ;

  • une page de confirmation.

3 iPhones :  1 - Page d'accueil Miawouf avec le bouton Go ! 2 - Formulaire d'inscription avec des champs Nom, Sexe, numéro de téléphone, Toggle d'âge et menu déroulant pour la race. 3 - Page de confirmation avec un texte e bienvenue et un bouton d'in
Une inscription en 3 pages

Pour construire cette application avec moi, je vous ai préparé un petit dossier contenant les images dont vous allez avoir besoin pour le cours. Vous pouvez le télécharger ici.

Dans ce cours, il n'y a pas de projet Xcode à télécharger, donc je vous invite à créer un projet vide, en choisissant le template le plus simple : App

Menu des templates, l'icône app est mise en avant
Sélectionnez le template App

Vous pouvez déjà glisser les images et icônes dans les assets du projet, et le fichier Races.swift dans votre navigateur de fichier.

Et voilà, vous êtes fin prêt à suivre ce cours.

Rappel sur le MVC

Avant de nous lancer tête baissée dans nos différents sujets, je voudrais prendre un petit moment pour parler évidemment de MVC  !

Pour rappel, en MVC, le modèle et la vue n'ont pas connaissance de l'existence de l'autre, et le contrôleur est le seul à pouvoir s'adresser directement à l'un et l'autre.

Le modèle Vue Contrôleur : Le contrôleur envoie une flèche propriété vers la droite vers le modèle, et une flèche Outlet vers la gauche vers la vue. La vue est connectée à la datasource et vise la target sur le contrôleur
Ce schéma vous dit quelque chose ?

Le modèle utilise différents modes de communication, tels que les notifications, des closures ou encore un pattern delegate pour s'adresser au contrôleur, et la vue utilise des actions. Ces deux modes de communication sont aveugles pour que la vue et le modèle puissent rester complètement indépendants du contrôleur.

Plusieurs MVC

En iOS, un MVC correspond généralement à une page de l'application, ou en tout cas à un espace défini de l'écran. Donc pour chaque nouvelle page, on va avoir un nouveau MVC.

Mais du coup, comment communique-t-on entre MVC ?

Quelle question parfaite ! Vous commencez à saisir l'importance de l'architecture, c'est beau...

Je vais résumer cela en trois règles simples :

1/ Une vue communique toujours avec un seul contrôleur.

Des MVC qui communiquent avec une seule vue sont validés. Des MVC communiquant avec une vue commune sont invalidés.
La gestion d'une vue n'est jamais répartie entre deux contrôleurs différents.

2/ Un modèle peut être utilisé par plusieurs contrôleurs.

Des contrôleurs communiquant avec leur vue et modèle respectif sont validés, et des contrôleurs communiquant avec un seul modèle sont validés également
À l'inverse de la vue, deux contrôleurs peuvent faire appel aux mêmes données.

Par exemple, une classe du modèle peut gérer les utilisateurs, et les informations concernant l'utilisateur ont des chances d'être utiles dans plusieurs pages. Donc, ce modèle peut être partagé par plusieurs contrôleurs.

3/ Les MVC communiquent entre eux via le contrôleur.

Deux vues ne peuvent pas communiquer entre elles. De toute façon, il faut bien comprendre qu'une vue appartient à un contrôleur, et n’a de moyen de communication qu’avec ce dernier. Elle ne pourra donc jamais discuter avec une autre vue .

Deux MVC avec une flèche allant d'un contrôleur à l'autre contrôleur
Deux MVC communiquant entre eux

Pour vous souvenir de ces trois règles simples, il suffit de se souvenir de la logique du MVC :

  • Le modèle détient la logique, mais aussi les données de l'application. Donc ces informations doivent pouvoir être accessibles depuis plusieurs contrôleurs.

  • Le contrôleur a pour rôle principal la communication entre le modèle et la vue , il est donc logique qu'il soit aussi le centre de communication vers les autres MVC.

  • La vue a pour seul rôle d'afficher ce qu'on lui demande, elle ne réfléchit pas, et du coup n'est capable que de prendre les commandes d'un seul contrôleur. Il ne faut pas lui en demander plus !

Je pense que ça fait suffisamment de théorie pour le moment. Et si tout ça n'est pas parfaitement acquis, c'est normal. Tout va s'éclaircir lorsque vous verrez ce que ça donne concrètement dans le code. Et ce dès le prochain chapitre, où nous allons ajouter une barre de navigation dans notre application !

Exemple de certificat de réussite
Exemple de certificat de réussite