PLB CONSULTANT : 02. Swift, développer des applications pour iOS. iPhone/iPad
Organisme
92300 LEVALLOIS PERRETVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Travaux pratiques. Auto-évaluation en début et en fin de formation.
Prix
Public
Développeurs, chefs de projet, architectes…
Pré-requis
Avoir des connaissances pratiques de la programmation et d'un langage orienté objet (Objective-C, Java, C++, C#).
Objectifs pédagogiques
- Comprendre l’écosystème du développement pour les équipements mobiles d’Apple
- Utiliser le langage Swift et les différentes API
- Maîtriser l’architecture d’une application mobile écrite en Swift
- Optimiser, construire et déployer une application performante
- Concevoir une interface graphique
- Echanger des données avec un serveur
Programme détaillé
Avant de démarrer son application iOS en Swift
Le marché en chiffres
iOS dernière version, quoi de neuf ?
Les spécificités techniques du matériel
Différences entre les équipements Apple (iPad ,iPhone, Apple Watch, Apple TV)
Comprendre le fonctionnement de iOS pour mieux développer (priorité des process, background, consommation électrique, etc.)
Swift vs Objective-C la synthèse
Environnement et outils de développement
Matériel et configuration Mac nécessaire
Rôles de Xcode et Interface Builder
Les outils de mesure des performances (Instruments)
L'intégration continue (tests unitaires, etc.)
Documentations et ressources techniques
Atelier
Guidé par l’animateur, TP avec 1 bouton, 1 Label et 1 TextField pour présenter les différents sujets du chapitre. Tour d’horizon des possibilités de mesures avec Instruments (profiling, performances).
Architecture d'une application Swift
Vue d'ensemble des design patterns fondamentaux
Design pattern : Model View Controller (MVC)
Design pattern : Delegate
Design pattern : Protocol
Design pattern : Observer
Structure d'un projet Xcode
Swift, vue d'ensemble
Cohabitation avec Objective-C
Les constantes et variables
Opérateurs, instructions de contrôle, fonctions, boucles
Classes et interfaces
Tuples, Closures, Enumerations
Gestion des erreurs
Conseils de nommage
Atelier
Mise en œuvre d’un projet classique pour maîtriser son environnement de développement et les bases syntaxiques (erreurs de compilation, debugger, etc.)
Manipulation et stockage des données
Gestion de la mémoire
Ressources du projet (textes, images, sons, vidéos…)
Manipulation de fichiers
Introduction à CoreData (SQLite)
Stockage au format JSON et PLIST
NSKeyedArchiver/ NSKeyedUnarchiver, protocol Codable en Swift
Atelier
Intégration de JSON et PLIST au sein du projet préalable
Interface utilisateur avec UIKit
Design avec storyboard et segue
La classe UIView
Répondre à des évènements avec UIResponder et le mécanisme Target-Action
Interface simple avec UIButton, UIImage, UILabel et UITextField
Message bloquant avec UIAlertController
Enchaînement des écrans avec UITabBar, UINavigationBar et UIStoryboardSegue
Liste de données avec UITableView
Animation des UIViews
Expérience Utilisateur enrichie avec UIGestureRecognizer
Atelier
Mise en œuvre des différents composants graphiques présentés ici sous forme de synthèse dans plusieurs vues afin d’aborder également la navigation et le passage de données.
Géolocalisation
Recommandations générales sur la gestion de la géolocalisation dans les applications mobiles
Présentation du framework CoreLocation
Paramètrer le fichier info.plist pour les autorisations de l’utilisateur
Lancer et stopper la géolocalisation
Utiliser le GeoCoding
Lancer la map à partir des coordonnées géodésiques
Atelier
Création d’une application utilisant la géolocalisation par réseau et GPS, récupérant latitude et longitude, utilisant le géocoding et demandant les permissions à l’utilisateur
Applications connectées et Web Services en Swift
Introduction au réseau et iOS
Push notifications et protocoles disponibles sous iOS
Architecture GCD et asynchronisme (threading)
Flux JSON, le format
Bonnes pratiques pour accéder au réseau
Le non blocage du thread UI (main thread) avec GCD
Mise en oeuvre, les différentes apis utilisables
Eviter les références cycliques dans les closures d’appels
Contraintes imposées par Apple
Gestion des Web Services en JSON
Atelier
Mise en œuvre de Web Services, consommation de Web Services de façon synchrone et asynchrone. Téléchargement de photos d’un cloud sur internet
Distribuer ses applications
Vue d’ensemble du modèle prévu par Apple.
Les différentes modalités de distribution (AppStore, ...)
Le programme de développement Apple
Atelier
Dépôt d’une application sur AppStore
Présentation de Swift UI
Grandes différences entre SwiftUI et Interface Builder
Exemple de création de vues
Un petit mot sur la gestion des états et des données partagées
Comment gérer les listes en Swift UI ?
Gestures avec SwiftUI
Atelier
Ce chapitre n’est qu’une présentation rapide des concepts SwiftUI (ils font l’objet d’une formation dédiée) mais nous vous montrons les grandes lignes d’une interface simple rapidement développée en Swift UI