Rédiger des programmes en Objective-C pour les environnements graphiques (tels que Cocoa/Mac OS X ou GNUstep/UNIX) aussi bien que pour le mode texte.
Description
Il y a déjà plus de 10 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.
Objective-C enrichit le 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.
Nous vous ferons découvrir ce que peut être un langage C correctement orienté objet.
Prérequis
Connaître les bases du langage C.
Public
Programmeur ayant une première expérience.
Sujets abordés
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
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é
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
Tarifs
2000 € H.T. / personne (comprend les déjeuners).
Supplément prise en charge complète (hébergement, petits déjeuners et dîners, divertissements) : 640 € H.T. / personne.
Forfait 3-5 personnes : 5000 € H.T. (déjeuners compris).
Forfait 6-8 personnes : 7000 € H.T. (déjeuners compris).
Intervention en intra (maximum 10 personnes) : 7550 € H.T. (tous les frais sont inclus).