Formation Développer en Objective-COptimiser ses développements pour iPhone, iPad et iPod Touch
Cette formation, très opérationnelle, permet d'approfondir sa connaissance du langage Objective-C : objets Objective-C, classes, arguments, environnement d'exécution (Runtime) Objective-C.
Objectifs
Il y a déjà plus de 20 ans, NeXT donnait à Objective-C ses titres de noblesse en l'adoptant pour la réalisation de l'un des plus impressionnants systèmes 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.
Unique langage de programmation officiel pour les iPod Touch, iPhone et iPad, Objective-C enrichit le langage C d'une couche orientée objet, bien avant C++. D'une syntaxe largement inspirée et même empruntée à Smalltalk, l'un des modèles, sinon le modèle des langages objet, Objective-C a influencé à son tour les concepteurs de Java. Les participants à cette formation découvriront ce que peut être un langage C correctement orienté objet.
A qui s'adresse cette formation ?
Cette formation s'adresse à tout développeur souhaitant approfondir sa connaissance du langage Objective-C. Les programmeurs doivent connaître les bases du langage C pour assister à cette formation.
Programme
Programme détaillé en PDF
Premier jour
1. Introduction
- Pourquoi Objective-C ?
- L'environnement de développement
2. 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
- Typage 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é
Deuxième jour
1. Le langage Objective-C : objets Objective-C
- Le type générique id
- Typage dynamique
2. Envoi de message
- Accès aux variables d'instance du receveur
- Polymorphisme
- Résolution de lien dynamique
3. Classes
- Héritage
- Héritage des variables d'instance
- Héritage 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
4. 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
5. Fonctionnement des messages
- 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
6. Arguments cachés
7. Messages adressés à self et super
- Utilisation de super
- Redéfinition de self
8. 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 ?
9. 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
Troisième jour
1. 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
2. Fonctions et structures de données de l'environnement d'exécution
(Runtime)
3. Aspects annexes
- Types prédéfinis
- Directives du préprocesseur
- Directives de compilation
- Protocoles formels
- Conventions lexicales
4. Conclusion
- Discussion libre sur l'ensemble des thèmes abordés
- Webographie et bibliographie
Dates
-
> 13 - 15 juin 2012
Paris - de 9 h 00 à 17 h 30
S'inscrire
-
> 10 - 12 octobre 2012
Paris - de 9 h 00 à 17 h 30
S'inscrire