أهداف الدورة التكوينية
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.
لمن تتوجه هذه الدورة؟
Cette formation Objective C s’adresse au programmeur ayant une première expérience.
المتطلبات المسبقة
Connaître au moins un langage de programmation.
البرنامج
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
المواضيع: iOS Développement Natif (iPhone - iPad)

