Swift
- Pourquoi un nouveau langage ?
- Ses apports et nouveautés.
- Les playgrounds : terrains de jeu.
- Intégration aux outils existants.
- Swift système ouvert.
XCode l'environnement de développement
- Présentation de l'outil et ses addons.
- L'utilisation de XCode.
- Interface Builder et les divers outils disponibles.
- Le débogueur.
- Les outils de mesure : instruments.
- Les portail du développeur Apple.
Travaux pratiques
Mise en place de l'environnement de développement et premier exercice avec XCode et Swift. Utilisation du débogueur.
Les bases du langage Swift
- Les fonctionnements du compilateur et l'architecture.
- Les bases : variables, constantes et tuples, les chaînes de caractères.
- L'optional et sa gestion, l'unwrapped.
- Les opérateurs et la surcharge.
- Les structures de contrôle.
- Les closures et les fonctions.
- Classes, structures, énumérations, propriétés.
- L'héritage et les protocoles.
Travaux pratiques
Réalisation de plusieurs applications sur le langage et ses basiques.
La bibliothèque Swift
- Que contient la Swift Standard Library ?
- Gestion des tableaux, dictionnaires et Set.
- Les protocoles Equatable et Comparable : utilisation.
- Autres classes et structures disponibles.
Travaux pratiques
Mise en oeuvre des protocoles Comparable et Equatable.
Concepts avancés en Swift
- Les Subscripts : concept et implémentation.
- La gestion des erreurs et exceptions : try, catch, throw, throws, try, defer.
- La gestion de l'asynchronisme avec Grand Central Dispatch.
- La classe Thread, endormir un thread, annuler un thread, notification.
- Les références strong, weak et unowned.
- Le Lazy Loading.
- Créer des extensions en Swift.
- La généricité et les génériques.
Travaux pratiques
Mise en oeuvre de la généricité et des extensions.
Interaction Swift et Objective-C
- Comparaison des syntaxes entre Objective-C et Swift.
- Comparaison des types de données.
- Mixing and matching.
- Héritage entre Swift et Objective-C.
- Points particuliers et limitations.
Travaux pratiques
Mise en oeuvre du mix and matching avec XCode.