- Cours pratique
- Informatique
Formation macOS - Développement d'applications

- Durée
- 5 jours
- Niveau
- Intermédiaire
- Modalités
- Distanciel
Objectifs pédagogiques
Cette formation intensive au développement macOS vous permettra de disposer de solides bases pour développer des applications Mac professionnelles et grand public autour des incontournables MacBook Air, MacBook Pro, iMac, MacMini et MacPro.
Une fois votre environnement de développement et le langage Objective-C maîtrisés vous abordez les API du SDK OS X, comme la gestion des données et l'interface utilisateur afin de disposer d'une bonne vue d'ensemble et de pouvoir développer vos premières applications macOS.
Les nouveautés concernant Xcode, le SDK macOS, les API iCloud/NSDocument.
Enfin en conclusion, une présentation du développement pour iPhone et iPad vous permettra d'évaluer la réutilisabilité de vos compétences pour le développement d'application mobile.
Programme
Contenu du cours, module par module
15 modules
- Matériels concernés (MacBook Air, MacBook Pro, iMac, MacMini et MacPro)
- Tour d'horizon des applications Mac
- Différences entre les dernières versions de macOS
- Cocoa un framework complet
- Les objets non graphiques (framework Foundation)
- Les objets graphiques (framework AppKit)
- Configuration Mac nécessaire
- Présentation des outils et IDE disponibles
- Démarrer un nouveau projet avec Xcode
- Fenêtre Organizer
- Dans quels cas faut-il signer un package de distribution applicatif et le binaire applicatif ?
- Les pragma XCode / compilateurs ObjC
- Concevoir ses propres modèles (templates) de projet XCode
- Où trouver de l'aide pertinente ?
- Présentation générale et vocabulaire
- Comparatif langages orientés objet Objective-C, C++ et Java
- Philosophie des messages
- Les méthodes et les classes
- Création de classes et d'instances
- L'importance des conventions de nommage
- Différence entre classe et interface
- Accès et portée des variables d'instances
- Propagation des messages
- La directive @selector
- S'y retrouver dans la documentation officielle
- Catégories et extensions
- Les propriétés déclarées (@property)
- L'utilité des protocoles (@protocol)
- Déclarations des interfaces
- Une gestion de la mémoire performante
- Objective-C 2.0 runtime référence
- Comprendre et savoir utiliser le « runtime reference »
- Tour d'horizon des principaux Frameworks
- Les grandes lignes des méthodes de codage avec Cocoa
- Classes de base et hiérarchie
- Conventions de nommage et comportements attendus
- Héritage ou bien composition et connaissance ?
- Philosophie du framework foundation
- Les classes fondamentales communes à tous les traitements
- Utilité des collections
- String, Text & Fonts (NSCharacterSet)
- Dates, Times & Numbers (NSDate)
- La classe d'abstraction du filesystem NSFileManager
- Les règles de base de la gestion mémoire (semi-automatique et automatique), NSAutoReleasePool
- Vue générale des frameworks graphiques
- XCode (Interface Builder «built-in») : IBAction, IBOutlet et IBOutlet Collection
- Le framework centrale pour l'exécution (NSApplication)
- Les objets NSView et les événement souris/clavier
- La classe NSControl et ses sous-classes
- Afficher des tableaux d'enregistrement avec NSTableView
- Les protocoles de délégation les plus courants dans l'AppKit
- La classe NSDocument
- NSDocument et NSMetadataQuery pour iCloud
- L'internationalisation des ressources applicatives
- Rappels des bonnes pratiques à propos de l'internationalisation
- Ce qui se fait « tout seul » et ce que doit faire le développeur ?
- Cas des langues non occidentales et des variantes régionales
- Architecture de CoreData
- Représentation graphiques des relations entre les objets avec CoreData
- Impact de l'utilisation de CoreData pour les objets (context)
- Vocabulaire (managed objects, fetch request, ...)
- Méthodes et propriétés à utiliser pour sauvegarder/charger un objet
- Transaction et objet
- Recevoir des événements extérieurs et locaux (Apple Push Notification Service)
- Comprendre le circuit de notification (Notification Server, APN Service, équipement, certificat SSL, application)
- Contenu d'une notification APN au format JSON (liste de propriétés, token)
- Mise en oeuvre du push côté client (méthodes et API utilisées, certificat)
- Mise en oeuvre du push côté serveur (token, gestion des notifications, feedback service)
- Les notifications locales
- Vue d'ensemble des paramètres importants
- Observer les performances
- Adapter le code avec la compilation conditionnelle
- Exemples concrets de gains de performances
- Gestion de la mémoire par Cocoa (NSObject, retain, release, alloc, copy, ...)
- Comportement du ramasse-miettes automatique
- Quand faut-il décider de gérer soi même la mémoire ?
- De la bonne utilisation du système de fichiers
- Debugger efficacement avec gdb / LLDB
- Améliorer les performances avec l'outil de profiling Instruments
- La rapidité de SQLite
- Le sandboxing dans macOS (Lion via Mac AppStore) APIs Apple, isolation «Bac à Sable» en Entitlements associés, ...)
- Les « responsabilités » au niveau applicatuf
- Synthèse des attaques classiques
- Problèmes potentiels liés à l'injection de code
- Les failles liées à la lecture des vidéos
- Antivirus pour Mac ?
- Les « contraintes » imposées par Apple
- La sécurité des transactions
- A quoi sert le certificat de distribution (contexte Mac App Store) ?
- Du côté des équipements (réglages, déploiement), provisionning d'un parc sous macOS.
- Quels outils pour le versionning de l'application distribuée via le Mac AppStore ?
- Retrait ou mise à jour d'une application d'une application sur le Mac AppStore
- Quels sont les points communs entre une application Mac et une application mobile ?
- Tour d'horizon des classes dédiées au développement mobile
- Présentation d'une maquette de développement simple pour iPhone/iPad
Travaux pratiques
Beaucoup de pratique, autour des différents frameworks présentés, consolidée par la réalisation d'une application globale de bout en bout du cahier des charges jusqu'à sa commercialisation et son déploiement.
Programme mis à jour le 08/01/2026
Public concerné
Cette formation développement macOS s'adresse aux ingénieur logiciel, développeurs, analystes programmeurs, chefs de projet Contexte de développement pour une utilisation personnelle ou en entreprise.

Prérequis
Bonnes connaissances de la programmation et d'un langage orienté objet (C++, Java, C#, PHP5 objet, ...).
Si vous ne vous estimez pas complètement à l'aise en programmation nous vous conseillons de suivre au préalable le stage DOBC ("Objective C") qui vous permettra de vous concentrer sur la partie purement macOS/Cocoa du stage présenté ici tout en consolidant votre maîtrise du langage Objective C.
Prérequis technique : Disposer d'un Mac récent, processeur i7 ou mieux, 16 Go RAM minimum, macOS 13 ou supérieur (idéalement la dernière version). Pour les formations qui nécessitent le développement d'applications : Xcode version 15.X (disponible sur l'App Store). À installer avant le début du cours.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
Formations liées
- macOS - Prise en MainRéf. UMOP2 joursFondamentalProchaine session : 15 oct.1 590 €
- Mise en œuvre et exploitation des technologies de base des centres de données CiscoRéf. DCCOR5 joursIntermédiaireProchaine session : 19 oct.4 090 €
- Orchestrator : Administration System Center OrchestratorRéf. ORCH3 joursIntermédiaireProchaine session : 22 déc.2 290 €
- Power Systems pour AIX I - Planification et configuration des partitions (HMC) Réf. AN11G3 joursFondamental