Formation Développement d'applications pour macOS

Durée 5 jours
Niveau Intermédiaire
Classe à distance
Possible

Vous pouvez suivre cette formation en direct depuis votre domicile ou votre lieu de travail. Plus d'informations sur notre solution de classe à distance...

Référence UMAD
Éligible CPF Non

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.

Public :

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.

Introduction au développement Mac

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)

L'environnement de développement d'une application Mac

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 ?

Le langage Objective-C

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

La programmation objet avec Objective-C

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 »

Les API Cocoa du SDK macOS

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 ?

Les classes de base et la gestion des données avec le Framework Foundation

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

Le framework AppKit (fenêtre, bouton, menu, contrôles, etc. )

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

Les applications basées sur des documents

La classe NSDocument
NSDocument et NSMetadataQuery pour iCloud

Internationalisation des applications Mac

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

La persistance des données (Framework CoreData)

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

Les notifications externes et locales

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

Tuning et Debug des applications Mac

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

Sécuriser ses applications macOS

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 ?

Distribuer son application sur le Mac App Store

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

Présentation du développement iOS pour mobile (iPhone) et tablette (iPad)

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

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.

Date de mise à jour du programme : 13/11/2018

Dates et lieux

Du 27 au 31 mai 2024
Lieu
Distanciel
Durée
5 jrs
2695 € HT
Du 27 au 31 mai 2024
Lieu
Paris
Durée
5 jrs
2695 € HT
Du 29 juillet au 02 août 2024
Lieu
Distanciel
Durée
5 jrs
2695 € HT
Du 29 juillet au 02 août 2024
Lieu
Paris
Durée
5 jrs
2695 € HT
Du 30 septembre au 04 octobre 2024
Lieu
Distanciel
Durée
5 jrs
2695 € HT
Du 30 septembre au 04 octobre 2024
Lieu
Paris
Durée
5 jrs
2695 € HT
Du 25 au 29 novembre 2024
Lieu
Distanciel
Durée
5 jrs
2695 € HT
Du 25 au 29 novembre 2024
Lieu
Paris
Durée
5 jrs
2695 € HT


Formations Informatique
et Management
en ligne à ce jour

+
Stagiaires dans nos salles
de cours sur
l'année

%
De participants satisfaits
ou très satisfaits de nos
formations


Formateurs experts
validés par
PLB