Miam des pommes...
09-10
2019

TP n°1 - Programmation Mac

Première partie : une prise en main (pas de code à écrire, enfin!?)

  1. Lancer xcode (qui se trouve normalement dans le répertoire /Applications) et créer une application de type Cocoa Application (langage Swift de préférence, sans StoryBoard, ni tests unitaires, ni Core Data). Compiler et tester le modèle par défaut afin de vérifier que l’environnement de développement est correctement installé et configuré.
  2. Explorer le projet afin d’en anaylser la structure (fichiers sources, ressources, frameworks, etc).
  3. Revenir à la sélection du premier élément représentant le projet et observer les différentes options de configuration du projet et de la cible (métadonnées, options de compilation, etc). Attention à ne rien changer que vous ne sauriez remettre en l’état…
  4. Sélectionner le fichier MainMenu.xib et éditer l’interface de sorte que lui soit rajoutée un objet permettant de visualiser une image (piste : NSImageView).
  5. Configurer ce visualiseur d’image de sorte qu’une image de votre choix y soit présente au lancement de l’application. Attention, cela nécessitera sans doute d’ajouter cette image dans le projet lui-même… Tester.
  6. Modifier les caractéristiques de cet objet visualiseur d’image de sorte qu’il soit autorisé de déposer une image quelconque depuis l’extérieur de l’application (piste : propriété Editable). Tester.

Seconde partie : un peu de code… (ah… Enfin!)

  1. Créer un nouveau projet vierge de type Cocoa Application (langage Swift de préférence). Le configurer.
  2. Y ajouter une nouvelle classe à l’aide du menu File > New > File.... Observer l’instanciation d’un modèle de source de classe Swift.
  3. Ajouter, dans la classe une action de nom click:. La signature devra en être @IBAction func click(sender: AnyObject?). Faire en sorte qu’un message soit affiché (via Swift.print) lorsque cette méthode est appelée.
  4. Éditer MainMenu.xib afin d’ajouter à l’interface un simple bouton.
  5. Dans la partie Objects de l’interface, rajouter une instance d’objet (NSObject). Modifier la classe de cet objet en choisissant la classe précédemment créée.
  6. En tenant le bouton droit de la souris, tirer un trait du bouton vers l’objet instancié. Dans le menu contextuel qui apparaît choisir l’action adéquate… Observer le lien créé via l’inspecteur du bouton et/ou de l’objet : onglet Connections inspector en partie droite de la fenêtre principale.
  7. Compiler et tester votre première application Mac.

Troisième partie : le monde est vaste… (internationalisation)

  1. Reprendre l’application précédente et modifier le projet de sorte qu’il soit localisable (aller sur le projet et modifier sa configuration générale pour obtenir des localisations)
  2. Ajouter un fichier de ressources de type Strings File de nom Localizable.
  3. Revenir sur le fichier de localisation créé précédemment et le rendre localisable (via l’inspecteur) en choisissant une langue parmi celles offertes.
  4. Une entrée d’un tel fichier est toujour au format "clé" = "valeur";. Modifier les fichiers de localisation de sorte qu’à la clé "clic" soit associé un texte particulier pour chaque langue.
  5. Modifier le source de la classe de sorte que Swift.print affiche un message localisée selon l’environnement. Pour cela, on peut utiliser la méthode NSLocalizedString (consulter la documentation pour en connaître les détails).
  6. Compiler et tester que le message s’affiche correctement.
  7. Modifier la langue de l’environnement (via les Préférences Systèmes…) et relancer l’application pour constater que la localisation fonctionne.

Quatrième partie : une image vaut mieux que cent discours…

Si ce n’est pas déjà récupéré depuis la première question:

  1. Ajouter dans le projet une image
  2. Dans l’interface, ajouter une ImageView
  3. Modifier les propriétés de l’Image View pour qu’elle affiche l’image contenue dans le projet.
  4. Compiler, tester.

Cinquième partie : qu’est-ce qu’il y a au menu aujourd’hui ?

  1. Vérifier qu’à l’exécution l’option Open du menu est désactivée.
  2. Observer les liaisons du FirstResponder et de l’option de menu Open
  3. Créer une sous-classe Swift de NSImageView
  4. Modifier la classe de l’instance précédente de l’Image View de votre interface
  5. Ajouter à cette classe une méthode de signature @IBAction func openDocument:(sender: AnyObject?) qui affiche un message simple sur la console (Swift.print you know?)
  6. Faire une liaison de l’option de menu vers l’instance de la classe
  7. Compiler et vérifier que l’option du menu est active!
  8. Implanter de quoi sélectionner un fichier image (NSOpenPanel) et qu’il s’affiche dans l’Image View
  9. Compiler, tester

Sixième partie :

  1. Livrer le code à l’enseignant. Code expurgé de tout exécutable, etc. Vérifier que votre livraison est correcte (par exemple en testant sur une autre machine et avec le compte d’un camarade, celui-ci devrait pouvoir compiler et tester sans erreur aucune!). Pour les détails de la livraison, s’adresser à l’enseignant.