Image de NordWood Themes

Swift, développer des applications iOS (iPhone/iPad)

Objectifs

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. Une fois votre environnement de développement et le langage Swift maîtrisés, vous abordez les API du SDK iOS et les aspects essentiels du développement iOS comme l’architecture de vos applications (modèle, vue, etc.), la gestion des événements, le réseau et les web services et la gestion des données afin de disposer d'une bonne vue d'ensemble et de pouvoir développer vos premières applications mobiles. L'environnement de développement est Xcode (dernière version en cours).

Concrètement, cette formation Swift vous permettra de :

  • Comprendre l’éco système du développement pour les équipements mobiles d’Apple (vocabulaire, concepts, équipements, Xcode, Apple Store, etc.)

  • Connaître le langage Swift et ses principales bibliothèques

  • Maîtriser l’architecture d’une application mobile écrite en swift (modèle, vues, contrôleur, web services, etc.)

  • Savoir intercepter les événements utilisateurs (gesture)

  • Savoir gérer les Web Services de façon synchrone et asynchrone

  • Savoir manipuler les données (CoreData, JSON, LIST, etc.)

  • Mettre en œuvre la géolocalisation dans votre application

  • Comprendre les liens entre Swift et Objective-C

  • Comprendre l’apport de SwiftUI par rapport à Interface Builder

A qui s'adresse cette formation

Public :

Cette formation sur la programmation iPhone/iPad en langage Swift s'adresse aux ingénieurs logiciels, développeurs, analystes programmeurs, chefs de projets.

 

Prérequis :

De bonnes connaissances de la programmation et d'un langage orienté objet (Objective-C, C++, Java, C#, PHP5 objet, etc.) sont demandées pour suivre ce stage dans les meilleures conditions possibles.

Contenu du cours

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
Instruments
L'intégration continue (tests unitaires, etc.)
Apple Developer Program
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.

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

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

Modalités d’évaluation des acquis

L'évaluation des acquis se fait :

  • En cours de formation, par des études de cas (fil rouge) ou travaux pratiques,

  • Cette formation ne fait pas l’objet d’une évaluation des acquis en fin de formation.

TechnoWide

3 rue du Golf

Parc Innolin

CS 60073

33701 MERIGNAC CEDEX

Bordeaux

  • LinkedIn Social Icon
© 2020 TechnoWide - tous droits réservés