Formation Objective C
3 JoursObjectifs de la formation Objective C
Il y a déjà plus de 10 ans, NeXT donnait à Objective-C ses titres de noblesse en l’adoptant pour la réalisation du système d’exploitation NEXTSTEP. Il persiste aujourd’hui comme langage de référence du système Mac OS X mais aussi comme choix de prédilection du projet GNUstep. C’est donc naturellement le langage utilisé aussi pour le développement d’application pour les incontournables produits Apple que sont l’iPhone et l’IPod Touch. Objective-C enrichit le C d’une couche orientée objet. Sa syntaxe est largement inspirée et même empruntée à Smalltalk que l’on peut considérer comme LE modèle des langages objet. Nous vous ferons découvrir son élégance et sa puissance. Cette formation Objective C vous permettra de savoir développer efficacement avec ce langage et vous familiarisera, si besoin, avec l’environnement de développement sous Mac Vous serez capable de développer des applications textes ou graphiques pour Cocoa/Mac OS X ou GNUstep/UNIX. Il s’agit également d’une très bonne préparation à la formation « iPhone/iPod Touch développement » qui traite plus rapidement le langage Objective C nécessaire au développement iPhone/iPod Touch.
À qui s’adresse cette formation ?
Public :
Cette formation Objective C s’adresse au programmeur ayant une première expérience.
Prérequis :
Connaître au moins un langage de programmation.
Contenu du cours Objective C
Introduction
Pourquoi Objective-C ?
L’environnement de développement
Programmation Orientée Objet (POO)
Interface et implémentation
Le modèle objet La métaphore de l’envoi de message
Classes
Modularité, réusabilité
Mécanismes d’abstraction
Encapsulation, polymorphisme, héritage
Hiérarchies des classes, définition de sous-classes
Usages
Dynamisme, tyypage dynamique
Résolution de lien dynamique
Chargement dynamique Structuration des programmes Points de connexions
Connexions intrinsèques et extrinsèques
Activation du réseau d’objets
Aggrégation et décomposition
Modèles et Frameworks Structurer la tâche de programmation Collaboration
Organiser les projets orientés objet
Concevoir à une grande échelle
Distinguer interface et implémentation
Modulariser le travail
Conserver l’interface simple
Réutiliser le code validé
Le langage Objective-C
Objets Objective-C Le type générique id
Typage dynamique Envoi de message Accès aux variables d’instance du receveur
Polymorphisme
Résolution de lien dynamique Classes Héritage
des variables d’instance
des méthodes
Surcharger une méthode
Classes abstraites
Types de classe
Typage statique
Détermination du type à l’exécution
Objets de type classe
Instanciation
Variables et objets de type classe (variables de classe)
Initialiser un objet de type classe
Méthodes de la classe racine
Apparition des noms des classes dans le code source Définition d’une classe L’interface
Importer une interface
Mention d’autres classes
Le rôle de l’interface
L’implémentation
Références aux variables d’instance
Portée des variables d’instance Comment les messages fonctionnent Sélecteurs
Méthodes et sélecteurs
Types des arguments et de la valeur de retour d’une méthode
Variation du message durant l’exécution
Paradigme Cible-Action (Target-Action)
Éviter les erreurs relatives aux envois de message Arguments cachés
Messages adressés à self et super Utilisation de super
Redéfinition de self Extension de classes Catégories – Ajout de méthodes à une classe existante
Ajouter à une classe
Comment sont employées les catégories
Catégories de la classe racine
Protocoles – Déclaration d’interfaces que d’autres implémenteront
À quels moments utiliser les protocoles Valider les comportements statiques Typage statique
Détermination de type
Types des arguments et de la valeur de retour
Obtention de l’adresse d’une méthode
Obtention de l’adresse de la structure de données d’un objet
L’environnement d’exécution (Runtime) Objective-C
Gestion de la mémoire Allocation et initialisation des objets
Objet retourné
Arguments
Coordonner les classes
Méthode d’initialisation désignée
Combiner allocation et initialisation
Rétention d’objets
Gestion des références cycliques
Libération
Libération d’objets partagés
Libération de variables d’instance
Marquer les objets pour une libération retardée
Propriétaire d’objet Suivi de message (forwarding) Suivi et héritage multiple
Objet substitut
Suivi et héritage Chargement dynamique
Envoi de message distant (remote messaging) Objets distribués
Messages synchrones et asynchrones
Arguments de types pointeurs
Mandataires (proxies) et copies
Codage des types Fonctions et structures de données de l’environnement d’exécution (Runtime)
Aspects annexes Types prédéfinis
Directives du préprocesseur
Directives de compilation
Protocoles formels
Conventions lexicales