• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 2/1/19

Concevez vos premiers objets

Log in or subscribe for free to enjoy all this course has to offer!

Maintenant que vous avez une première idée du concept d'objet, nous allons pouvoir concevoir les objets de notre programme.

Découvrir le projet

Pour cela, je vous propose sans plus attendre de découvrir le projet sur lequel vous allez travailler. Le projet est disponible sur Github. Je vous invite à télécharger le projet sur votre Mac.

Une fois le projet téléchargé, vous pouvez ouvrir le fichier SchoolBusPlayground.playground. Et vous devriez arriver sur ceci :

Vous trouvez d'abord sur la droite une étendue de pelouse sur laquelle se trouve un bus. Cela c'est notre canevas. C'est sur ce canevas que nous allons dessiner notre route et déplacer notre bus.

Voyons maintenant ce qu'il se passe côté code. Tout d'abord nous avons quatre lignes de code que je vous invite à ignorer. Elles permettent seulement d'initialiser le canevas. Ensuite la documentation nous présente 5 fonctions réparties en 2 catégories :

  • 3 qui concernent la route, ces fonctions permettent de dessiner des sections de route.

  • 2 qui concernent le bus, ces fonctions permettent de faire avancer ou de faire marquer un stop au bus.

Je vous invite à essayer les fonctions proposées pour comprendre un peu leur fonctionnement. Par exemple, vous pouvez écrire :

canvas.createRoadSection()
canvas.createRoadSection()
canvas.createRoadSection()
canvas.createHomeRoadSection()
canvas.createRoadSection()
canvas.createSchoolRoadSection()

Dans ce code, nous créons sur le canevas trois sections de route normale puis une qui contient une maison, puis une normale et enfin une qui contient une école. Cet exemple couvre les trois exemples de création de route.

Le but de notre programme va être de déplacer le bus le long de la route en suivant 2 règles :

  • Il doit s’arrêter à chaque maison pour récupérer des enfants

  • Il doit s’arrêter à chaque école pour déposer tous les enfants dans le bus.

Le programme que nous allons construire doit pouvoir fonctionner, quelle que soit la route que nous allons dessiner.

Maintenant, à vous de jouer ! Essayer d'utiliser les deux fonctions restantes pour déplacer le bus. Il doit avancer jusqu'à l'école en marquant un arrêt à la maison pour récupérer les écoliers et à l'école pour les déposer.

// Ne regardez pas la correction !





















canvas.moveBusForward()
canvas.moveBusForward()
canvas.moveBusForward()
canvas.stopBus()
canvas.moveBusForward()
canvas.moveBusForward()
canva.stopBus()

Et voilà ! Vous savez utiliser toutes les fonctionnalités du canevas. Nous allons construire tout notre programme à partir de ces 5 fonctions. N'hésitez pas à jouer un peu avec pour bien vous familiariser avec son fonctionnement.

Comprendre notre Playground

Si vous avez suivi le cours précédent comme suggéré, vous êtes déjà à l'aise avec un certain nombre de fonctionnalités du Playground, mais dans ce cours nous poussons plus loin les capacités du Playground. Laissez-moi en quelques mots vous en présenter les fonctionnalités dont nous allons profiter dans ce cours.

La documentation

Il est possible que dans le texte, vous voyiez plutôt ceci :

Les commentaires en vert qui commencent par /*: sont un moyen d'écrire de la documentation dans le Playground. Cela est utile notamment pour agrémenter le code d'instructions facilement lisibles ce qui est bien pratique dans notre cas. Si vous voulez en savoir plus sur le format de la documentation, vous pouvez aller ici.

Pour afficher correctement la documentation, vous pouvez cliquer dans le menu en haut sur Editor puis Show Rendered Markup.

Les live view

Les live view, c'est ce que vous voyez sur la droite en mode assistant. C'est notre canevas. En effet, c'est un objet vue, tel qu'il existe sur iOS dans lequel on peut glisser ce que l'on souhaite.

Ces vues permettent d'avoir un rendu visuel animé ou non de ce que l'on souhaite montrer. Cela pourra vous être utile lorsque vous souhaiterez créer des composants customisés dans iOS (comme des boutons, des switch, des listes, etc.). Vous pourrez les créer en utilisant une live view pour voir instantanément le rendu. Et lorsqu'ils sont prêts, vous n'aurez plus qu'à copier le code dans votre application.

Les sources et ressources

Si vous ouvrez le navigateur - le panneau de droite, vous trouverez les sources et ressources du projet.

Les sources
Les sources d'un projet permettent de cacher une implémentation à l'utilisateur du Playground. Par exemple, ici, j'ai mis l'ensemble de ce qui concerne le canevas et ces animations dans les sources.

L'autre avantage d'écrire du code dans les sources, c'est qu'il n'est évalué qu'une fois au lancement du Playground et non à chaque fois que le code dans le Playground est modifié. Cela permet de gagner en performance. Le Playground ne doit pas tout recalculer à chaque fois.

Les ressources
Dessous, vous trouverez les ressources, c'est ici que l'on enregistre les fichiers dont le Playground va avoir besoin pour s'exécuter. Dans notre cas, on y trouve les images qui permettent de dessiner notre canevas. Mais on aurait pu y mettre des pistes audios, des vidéos, des données, bref tout ce qui n'est pas du code !

De la même manière, ces ressources ne sont chargées qu'au lancement du Playground.

Concevoir nos objets

Maintenant que le décor est bien planté, nous allons commencer à réfléchir un peu. Comment allons-nous organiser notre code ?

Reprenons le même genre de raisonnement que pour le jeu "Qui-est-ce ?" et essayons de découper en plusieurs objets notre code.

Les propriétés

Tout d'abord, commençons par le plus évident : le bus. Nous allons donc avoir un objet Bus qui va avoir quelques propriétés comme :

  • le nombre de sièges

  • le nombre de sièges occupés

  • le nom du chauffeur

Ensuite nous allons avoir la route. La route c'est un peu plus subtil. Si on regarde les méthodes proposées par le canevas, on crée la route par section. Donc la route c'est la combinaison de plusieurs sections de route qui s'enchaînent. Certaines ayant une maison, d'autres une école et enfin d'autres rien.

On a donc un objet Route qui a une propriété :

  • un tableau de section de routes

Enfin, il existe un dernier objet qui est la Section De Route. Cet objet a donc 3 types différents. Et nous verrons comment les différentier avec l'héritage en partie 3 de ce cours.

Les méthodes

Mais un objet, comme vous le savez désormais, a des propriétés qui décrivent ce qu'il est, mais aussi des méthodes qui décrivent ce qu'il fait.

À première vue, une route ou une section de route, ça ne fait pas grand-chose... En revanche, un bus ça en fait !

Donc nous allons a priori avoir au moins 2 méthodes :

  • avance

  • marque un arrêt

L'analyse que nous venons de faire s'appelle un diagramme de classe.

En résumé

  • Le projet contient un Playground dans lequel est présenté un canevas. Ce canevas a 5 fonctions qui nous permettent de :

    • créer une section de route avec ou sans école ou maison

    • faire avancer le bus

    • faire marquer un arrêt au bus

  • Dans ce cours, nous découvrons 3 fonctionnalités avancées du Playground :

    • Les live view

    • La documentation

    • Les sources et ressources

  • Dans notre diagramme de classes, nous avons identifié 3 objets que nous allons créer :

    • Bus

    • Road

    • RoadSection

Example of certificate of achievement
Example of certificate of achievement