Course objectives
Ce cours vous permettra de disposer de solides bases pour développer des applications professionnelles autour des incontournables phénomènes de société que sont devenus l’iPhone et l’iPad réunis sous la bannière iOS.
La formation est très orientée pratique avec de nombreux ateliers. Bien entendu nous prenons le temps d’exposer les concepts, les bases théoriques et les éléments d’architecture nécessaires au recul que doit posséder tout développeur Swift professionnel.
Les ateliers sont conçus de façon progressive pour constituer les solides bases de vos futurs développements. Concrètement cette formation Swift aborde toutes les notions nécessaires au développement de votre première application de bout en bout : composants graphiques, service web, stockage de données, interactions utilisateurs, debug, etc.
Vous profitez également de l’expérience du formateur et de sa solide connaissance de l’éco système Apple pour découvrir les bonnes pratiques d’utilisation de l’environnement de développement (Xcode, iOS dernières versions en cours). Les nouveautés Swift seront également présentées.
Who is this course for?
Cette formation sur la programmation iPhone/iPad en langage Swift s’adresse aux ingénieurs logiciels, développeurs, analystes programmeurs, chefs de projets.
Prerequisites
De bonnes connaissances de la programmation et d’un langage orienté objet (C++, Java, C#, PHP5 objet, etc.) sont demandées pour suivre ce stage dans les meilleures conditions possibles. La formation ne prévoit pas de revenir sur les fondamentaux de la programmation objet (classe, instance, héritage, etc.)
Programme
Introduction et première application iOS
- Xcode (IDE) Organisation d’un projet Interface Builder Storyboard, éléments basiques d’interface utilisateur UIViewController
Atelier 1 : création d’une interface utilisateur simple avec texte, image et bouton.
Nouveautés de Xcode
- Les changements au quotidien avec Xcode (mode foncé, multi-curseurs, bibliothèque « library », etc.) Intégration avec GitHub, Gitlab et Bitbucket Compilation et débogage accélérés Prise en charge des nouveautés par rapport aux dernières versions de iOS et MacOS Autres nouveautés…
Bases du langage Swift
- Types de base Variables et constantes Opérateurs, instructions de contrôle, fonctions, classes Optionals Collections Dates Parsing automatique de données json (Codable)
Atelier 2 : prise en main du langage Swift via le parsing de données json de films.
Composants graphiques d’une application et navigation entre écrans
- Composants graphiques (UIKit) Notion d’expérience utilisateur Onglets (UITabBarController) Transition entre écrans (UINavigationController et segue) Listes (UITableView, UITableViewController) et Grilles (UICollectionView) Patterns deleGust et datasource
Atelier 3 : organisation et navigation dans une application présentant une liste de films.
Mise en page avec Auto-Layout
- Tailles d’écran et appareils Types de contraintes de layout dans Interface Builder Notion de « intrinsic content size » Notion de « hugging » et de « compression resistance » Notion de « safe area » Texte de taille dynamique
Atelier 4 : prise en main du système de mise en page auto-layout avec l’app catalogue de films
Appel de services web
- Éléments plus avancés du langage Swift Closures et code asynchrone Cocoapods (système de gestion de dépendances) Alamofire : librairie de networking
Atelier 5 : appel d’un service web pour utiliser des vraies données de films dans l’app des ateliers.
Formulaire de connexion et compte utilisateur
- Formulaire de connexion (UIScrollView, UITextField) Gestion du clavier Persistance de données (Keychain, UserDefaults) Persistance de données plus avancées (Sqlite, CoreData, Realm, Firebase) Feedback utilisateur, indicateur d’activité Gestion des messages d’erreur (UIAlertController)
Atelier 6 : connexion à un compte utilisateur dans l’application catalogue (suite des ateliers 3, 4 et 5)
Debug
- Debugger, breakpoints Rapports de crash Cycle de vie d’une application Cycle de vie des UIViewControllers Instrument Notions de gestion mémoire (ARC) Notions de threading
Atelier 7 : prise en main des outils fournis par Xcode pour arriver à corriger des bugs dans une base de code existante.
Publication d’une application sur l’App Store
- Crashlytics Apple developer program Itunesconnect TestFlight Checklist avant la publication sur l’App Store App Store review
Objective-C et Swift dans un même projet
- Cartes Affichage d’une carte avec MapKit Affichage de points sur une carte Interaction utilisateur avec la carte Notion de régions
Atelier 8 : création d’une application qui affiche des lieux insolites repérés depuis Google Earth.
Géolocalisation et notifications
- Géolocalisation avec CoreLocation Position de l’utilisateur sur une carte Différentes options de géolocalisation proposées par iOS Notifications utilisateur Gestion des droits utilisateur sur iOS Simulation de position pour le debug de la géolocalisation
Atelier 9 : création d’une application qui prévient l’utilisateur quand il entre dans une zone
Travaux Pratiques
Le cours est constitué de 9 ateliers.
Le but est de couvrir les cas d’usages que l’on retrouve dans toutes les applications ou presque.
Chaque atelier est précédé des explications nécessaires (concepts et architecture) et se termine sous forme de synthèse en présentant les bonnes pratiques mises en œuvre dans les développements professionnels.

