18. 2. Création d’un projet Frameworks Comme son nom l'indique, cette partie contient les "includes" des Frameworks utilisés dans le projet. Par défaut, vous avez les 3 principaux: UIKit, Foundation et CoreGraphics. Products Contient le fichier généré par la compilation, à savoir l’application
19.
20. 2. Création d’un projet MainWindow.xib Ce fichier permet de créer les instances de «Application Delegate», de la fenêtre principale et du «View Controller» lors de la compilation Instance de Button_FunAppDelegate Instance de Button_FunViewController Fenêtre unique de l’application
27. 3. Programmation Les pointeurs Déclaration : Les fonctions Déclaration : Eviter de devoir définir les accesseurs et les mutateurs Options de création des accesseurs et mutateurs par le compilateur Les accesseurs Identiques
28. 3. Programmation Les types de données : NSString NSNumber NSArray NSMutableArray NSDictionary NSMutableDictionary NSDate int BOOL Exemple : .h : NSNumber * my_number ; @property ( nonatomic , retain ) NSNumber * my_number ; .m : @synthesize my_number;
34. 3. Programmation Connecter des pointeurs 1. Relier le File’s Owner au Label pour créer la connexion 2. Choisir le pointeur
35. 3. Programmation Spécifier les actions 1. Choisir l’action 2. Choisir l’évènement et glisser à partir du cercle à droite jusqu’au File’s Owner 3. Sélectionner dans la pop-up la méthode à exécuter
39. 4. Interface utilisateur Liste des images disponibles Paramètres de Image View : Permet de définir comment l’image se trouve par rapport à la vue dans laquelle elle se situe Appliquer un effet de transparence à l’image Pas d’impact sur une image Assigner un identifiant à cette image Permet de modifier la manière dont l’image est dessinée Permet à l’utilisateur d’effectuer des interactions Permet de recevoir plusieurs évènement de multi touche
40. 4. Interface utilisateur Valeur par défaut Paramètres de Text Field : Afficher une légende dans le champs Alignement Modifier l’apparence Type de valeurs possibles dans un Text Field Attributs hérités de UIControl (Peu sont utiles à ce contrôle)
46. 4. Interface utilisateur Valeurs minimum et maximum du slider Paramètres du Slider : Valeur initiale Propriétés habituelles Images du début et de la fin
51. 4. Interface utilisateur Implémentation du Switches, des Buttons et du Segmented Control .m Permet de cacher les boutons ou les switches en fonction de la valeur du segmentedControl
54. 4. Interface utilisateur .m Implémentation de l’AlertView Méthode déléguée Créer une alerte L’AlerteView possède aussi des méthodes déléguées (Il faut donc les déclarer en protocole dans le .h) mais ici, on ne s’en sert pas donc pas de déclaration
63. 6. Applications à vues multiples Navigation Bar Tab Bar et Navigation Bar Classe : UINavigationController Classe : UITabBarController
64.
65.
66.
67.
68. 6. Applications à vues multiples Exercice 4 : Modification de l’App Delegate View_SwitcherAppDelegate.m
69.
70.
71. 6. Applications à vues multiples Exercice 4 : Implémentation de SwitchViewController.m Allocation de la vue bleue On l’insère dans le contrôleur On alloue la vue jaune Si le contrôleur jaune existe mais sa vue n’est pas au premier plan ou si le contrôleur n’a pas encore été instancié On retire la vue bleue et on la remplace par la vue jaune Si la vue jaune n’est pas allouée
72. 6. Applications à vues multiples Exercice 4 : Implémentation de SwitchViewController.m On alloue la vue bleue Sinon le contrôle bleu existe mais sa vue n’est pas au premier plan ou si le contrôleur n’a pas été instancié On retire la vue jaune et on la remplace par la vue bleue Si la vue bleue n’est pas allouée Ne pas oublier de désallouer
73.
74. 6. Applications à vues multiples Exercice 4 : Appliquer une transition ... ... Timming de transition Durée Déclaration Type de transition A utiliser si on a surchargé ces méthodes dans les contrôleurs A utiliser si on surcharge ces méthodes dans les contrôleurs Permet d’enregistrer les animations et de lancer les transitions
77. 7. Tab Bars et Pickers Exercice 5 : Ajout du Root View Controller .h .m
78.
79.
80.
81. 7. Tab Bars et Pickers Exercice 5 : Implémentation de Date Picker
82.
83. 7. Tab Bars et Pickers Exercice 5 : Single Compenent Picker Initialisation d’un array
84. 7. Tab Bars et Pickers Exercice 5 : Single Compenent Picker Instructions pour le compilateur Fournir au Picker, la valeur à mettre dans un champ donné pour un composant donné
91. 7. Tab Bars et Pickers Exercice 5 : Depedent Components Permet de récupérer les ressources que l’on a importé dans le projet Permet de récupérer toutes les clés du dictionnaire Permet de trier par ordre alphabétique l’array
98. 8. Table Views Exercice 6 : Une simple Table View Nombre de lignes par sections Pour afficher une ligne donnée indexPath contient la section et la ligne Pour créer une cellule en réutilisant l’id défini précédemment Identifiant unique d’une cellule Si la tableView ne possède pas de cellule partagée On retourne la cellule
99. 8. Table Views Exercice 6 : Ajout d’une image dans chaque ligne propriété imageView
100. 8. Table Views Style des lignes ■ Image: permet d’afficher une image à gauche de la ligne ■ Text Label: correspondant au texte principal de la ligne ■ Detail Text Label: permet d’ajouter une note, un label à ligne en dessous du texte principal Indentation des lignes
101. 8. Table Views Sélection d’une ligne ■ Avant de sélectionner une ligne ■ Après sélection d’une ligne
104. 8. Table Views Exercice 7 : Créer ses propres cellules, exemple 1 Déclaration de nos sources de données
105. 8. Table Views Exercice 7 : Créer ses propres cellules, exemple 1 Création manuelle de la cellule : ajout du label «Name»
106. 8. Table Views Exercice 7 : Créer ses propres cellules, exemple 1 Création manuelle de la cellule : ajout du label «Color» Création manuelle de la cellule : ajout du label «nameValue» Création manuelle de la cellule : ajout du label «colorValue»
107. 8. Table Views Exercice 7 : Créer ses propres cellules, exemple 1 Ajout les valeurs aux deux champs
108.
109.
110.
111.
112.
113. 8. Table Views Points importants Ajouter un index Implémentation d’un barre de recherche Principe Créer un dictionnaire immutable qui contient tout les données ainsi qu’un dictionnaire mutable qui contiendra tous les résultats lors d’une recherche Problème : mutableCopy ne copie pas en profondeur les array et copie uniquement les références Solution : Créer soit meme une fonction qui copie en profondeur
114. 8. Table Views Implémentation d’un barre de recherche Deep Mutable Copy .h .m Parcours du dictionnaire original On essaye de copier l’objet via mutable deep copy Si l’objet ne répond pas au message, on tente une mutable copy Si l’objet ne répond pas au message, on tente une simple copie
127. 11. Persistance des données Méthode 1 : Property List Lecture des données Ecriture des données
128.
129.
130. 11. Persistance des données Méthode 2 : Archiver les objets Persistance du «Data Object» Archiver les objets dans un NSMutableData Contiendra l’objet encodé Création d’une clé pour encoder n’importe quel objet dans l’archive Désallocation On prévient l’archive que l’on a fini d’encoder nos objets On enregistre l’archive
131. 11. Persistance des données Méthode 2 : Archiver les objets Persistance du «Data Object» Décoder l’archive Contiendra l’objet décodé Lecture des objets désarchivés avec la clé définie précédemment Désallocation Explorer l’exemple «11 Persistence Archiving»
132. 11. Persistance des données Méthode 3 : SQLite 3 Ouverture de la base de données Importer le frameworks «libsqlite3.dylib» Fermer la base de données Créer une table
134. 11. Persistance des données Méthode 3 : SQLite 3 Bind Variables pour insérer des champs Explorer l’exemple «11 Persistence SQLite»
135. 11. Persistance des données Méthode 4 : Core Data Classes permettant de gérer facilement la persistance des données Principe de Core Data basé sur la description des données Pour se faire : création d’entités et d’attributs (un peu comme en UML) 1. Déclaration de l’entité 2. Déclaration d’un attributs 3. Modification des propriétés de l’attribut
136. 11. Persistance des données Méthode 4 : Core Data Etablir des relations entre les entités Explorer l’exemple «11 Core Data Persistence»
Other Sources : source code qui n’est pas de l’Objective C (.pch : en-tête précompilée) Ressources : toutes les fichiers qui seront utilisables par l’application