Presentation2 IOS 2020 Détaillée

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 172

IOS14

Youssef Signature numérique de

BALOUKI GI 2020 BALOUKI BALOUKI


Date : 2021.05.25 23:02:42
+01'00'
Introduction
Qu’est-ce que l’iPhone ?
IPhone est une gamme de smartphones commercialisée par
Apple depuis le 29 juin 2007.
Processeur
Système d’exploitation : iOS
Support réseau : EDGE/CDMA/3G/LTE/4G, Wifi,
Bluetooth
Ecran tactile capacitif multipoint
Appareil photo qui fonctionne également comme une
caméra,
Système de géolocalisation intégré
iPod intégré qui permet bite d'écouter et de télécharger
de la musique
Gyroscope
Accéléromètre
Capteur de luminosité ambiante
Etc….
Introduction

iOS
Le système d'exploitation développé par Apple
pour ses appareils mobiles : l'iPhone, de l'iPad, ainsi
que de l'iPod Touch.
Il est dérivé de OS X
 Anciennement iPhone OS, Ce nom a été changé le
7 juin 2010 pour iOS
Introduction
Xcode
 Les modules
 StoryBoard
Simulateur/Debugger
 Instrument Profiler
 Analyse statistique
 Gestionnaire de versions intégrés
 Git, Subversion
Accès directe à la documentation
Construction des interfaces
Deux approches

Une approche basée sur storyboard


Par dessin comme
On ne me maitrise pas totalement la construction de
l’interface
 Une approche par pure programmation
On fait tout à la main
Maitrise complet du design de l’interface
Mais plus compliqué (réservé aux experts)
Les bases de Storyboard
Interface graphique
Dessiner ses écrans
Positionnement par contraintes
Scénariser l’application
Lier les éléments de l’interface au code métier
Génération de code “AutoLayout”
 Introduit avec iOS 6 (2012)
 Positionnement relatif des éléments de l’interface
•Relations entre les éléments
•Contraintes par rapport à l’écran
Modèles de iPhone

• iPhone iPhone 7 et 7 Plus


• iPhone 3G iPhone 8 et 8 Plus
• iPhone 3GS
iPhone X
• iPhone 4 iPhone XS et XS Max
• iPhone 4s iPhone12
• iPhone 5 iPhone XR
• iPhone 5c iPhone11, 11 Pro et
• iPhone 5s 11 Pro Max
• iPhone 6 iPhone SE - 2de gen
• iPhone 6Plus
• iPhone 6s
• iPhone 6s Plus
• iPhone SE
Version iOS
• Juin 2007 v 1.x
• Juillet 2008 v 2.x
• Juin 2009 v 3.x
• Juin 2010 v 4.x
• Oct 2011 v 5.x Sept 2020

• Sept 2012 v6.x


• Juin 2013 v7.x 4
• Juin 2014 v8.x
• juin 2015 v9.x
• Sept 2016 v10.x
• Juin 2017 v11.x
• Juin 2018 v12.x
• juin 2019 v13.x
Les tailles des écrans
Rejoindre le programme développeur
Apple

¨ Inscription gratuite
• Vous donne votre identifiant développeur Apple
(AppleID).
• Vous donne accès aux outils logiciels de base
(comme Xcode et iOS SDK) dont vous avez besoin
pour développer des applications pour iOS.
• Vous permet de tester vos applications iOS en
utilisant des simulateurs dans Xcode et devices
• Vous fournit la documentation Apple relative au
développement iOS.
• Vous permet de signaler les bugs et de participer
aux événements Apple
Rejoindre le programme développeur
Apple

¨ Inscription payée (nécessite un paiement annuel de


99 $ à Apple)
• Vous permet d'accéder aux outils développeur,
aux logiciels pré-release et au support technique.
• Vous permet de placer vos applications iOS
achevées dans l'App Store.
• Vous permet d'accéder au portail par le biais
duquel vous créez le profil d'approvisionnement
de développement, qui est nécessaire à
l'exécution de vos applications sur des
périphériques iOS de développement.
Structure de l’iOS

Interactions
UIKit, Événements tactiles

Multimédia
Traitement images, Audio, Vidéo,
Animations, 2D, 3D

Expose les fonctionnalités du système


Réseau, Fichiers, SQLite, Threads, GPS

Noyau Unix
Fonctionnalités primaire du système
d’exploitation Sécurité, Alimentation,
Sockets
Cycle de vie de l'application iOS

1.application:willFinishLaunchingWithOptions:
1
6 2.application:didFinishLaunchingWithOptions:
4
3. applicationDidBecomeActive:
2
3 4. applicationWillResignActive:

5. applicationDidEnterBackground:
5
6. applicationWillEnterForeground:

7. applicationWillTerminate: si != suspended
7
Interface Graphique

Dans
• l’iOS en utilise le MVC.
Modèle , view, controlleur
• Modèle:
Quellques sont vos données?
• Vue: UIView (storyboard)
Où sont presentées les données?
• Controlleur UIViewController
Comment sont presentées les données?
Interface Graphique
Interface Graphique
UViews
• Une UIView : est une surface rectangulaire dans laquelle on
peut dessiner et gerer les evènements.
• Hierarchie : une vue a une superview et des sous- views.
Interface Graphique
Storyboard
• Storyboard un fichier qui contient tous les ecrans de
l'application et les liens etablis entre chaque ecran.
Interface Graphique

Widgets

• UIButton
• UITableView
• UITextView
• UIImageView
• UIWebView
• UIScrollView
• UILabel
• UITextField
• ....
Interface Graphique

• Les outlets: proprietes du code sources lie à un


element de l’interface
Exemple: button, label ....
• Actions: Les messages quand un évenement se
produit
Exemple: “une touche sur le button ”
LE SIMULATEUR IOS

• Le simulateur est une application Mac permet de simuler


le fonctionnement d'un iPhone, d'un iPod Touch,iPad…
LE SIMULATEUR IOS
Si vous voulez utiliser le simulateur iOS, vous pouvez à
tout moment changer de device en utilisant la liste
deroulante “Scheme”
LE SIMULATEUR IOS
Simuler les gestuelles de l'utilisateur
vous pouvez utiliser des commandes dans le menu Matériel du simulateur iOS,
ou les raccourcis clavier equivalents, pour simuler les actions dans le simulateur
iOS
Mode Visuel

1. Choisir une vue à partir du bibliothèque


2. L’ajouter dans le storyBoard
3. La mise en forme de la nouvelle vue dans le
4. Story board en respectant les # device et #
orientations
Label, TextField & Button

 UITextField, UIButton et UILabel héritent de UIView.


Label, TextField & Button

Les contrôles
UILabel
• Les contrôles Label sont utilises
pour afficher des textes sur une ou
plusieurs lignes. Leur contenu ne
peut pas être modifie par
l'utilisateur.
• Les caracteristiques d'un Label
peuvent être definies dans Interface
Builder ou bien avec le code.
Label, TextField & Button

Exemple :
monLabel.text = "Un court texte affiché dans le
contrôle Label sur deux lignes"
monLabel.numberOfLines = 2
monLabel.font = UIFont( name:"Courier", size : 14)
monLabel.textAlignment = .center

monLabel.textColor = UIColor (red: 1.0/255.0,


green: 0.0/255.0 blue: 0.0/255.0 alpha: 1.0)
Label, TextField & Button

Les contrôles
UITextField
• Les Text Field sont des
zones de texte monoligne.
• Ils sont utilises pour saisir
des donnees textuelles
courtes, comme un nom ou
un mot de passe
• Tout comme pour les
Labels, vous pouvez choisir
l'alignement, la police et la
couleur du texte, dans
Interface Builder ou avec du
code
Label, TextField & Button

Exemple :
monTextField.text = Un court texte affiché dans le
contrôle Label sur deux lignes"
monTextField.placeholder = "Entrez votre nom"
Label, TextField & Button

Les contrôles
UITextView
• Les Text View sont
des zones de texte
multiligne.
• Ce contrôle peut
être affiche en
lecture seule ou en
lecture/ecriture.
UILabel, UITextField & UIButton
Application : UIButton & UITextField
Alerte & Actions
Application : Devinette avec alertes et actions
Slider, Stiper & Segmented
UISlider, UIStiper & UISegmented
Le slider : (de classe UISlider)
la vue qui vous permet de choisir une valeur entre 0 et 99. Bien sûr, vous pouvez choisir les
valeurs que vous voulez.
UISlider, UISteper & UISegmented
Le steper : (de classe UISteper)
Un "+" et un "-" qui incrémente ou décrémente une valeur. Valeurs comprises entre 0 et 99
également avec un pas de 1.
Application : UISlider & UISegment
FENÊTRES, VUES ET CONTRÔLES

Les contrôles
UIImageView
• Le contrôle Image
View permet
d'afficher une image.
• Les images sont
chargees via des
objets UIImage.
FENÊTRES, VUES ET CONTRÔLES
Exemple :
Image dans Assets.xcassets

@Iboutlet image : UIImage!


image.image = UIImage(named : ’’monImage ’’)

Image dans bundle


let path = Bundle.main.path(forResource : ‘’imageName’’, ofType : ‘’jpg’’)
image.image = UIImage(contentsOfFile : path)

*(Allow Arbitrary Loads key to YES under App Transport Security Settings
dictionary in your .plist file)
Navigation Bar & Toolbar

Icône Nom du contrôle Fonction

Navigation Bar Barre de navigation, affichée juste en dessous de la


barre d'état

Navigation Item Elément affiché dans un contrôle Navigation Bar

Toolbar Barre d'outils contenant un ou plusieurs boutons

Flexible Space Bar Espace qui s'ajuste automatiquement en fonction de


Button Item la place disponible dans un contrôle Toolbar
Navigation Bar - Tool Bar
LES INFORMATIONS TABULAIRES
Les applications iOS ont souvent recours à des vues
tabulaires pour présenter des listes de données. Ces listes
permettent de :
 présenter un ensemble d'options sélectionnables par
l'utilisateur ;
 naviguer dans un ensemble de données structurées
hiérarchiquement ;
 présenter une liste d'éléments triés selon un ou plusieurs
critères ;
 définir plusieurs niveaux de détail pour faciliter l'affichage
des informations sur des devices de petite taille.
LES INFORMATIONS TABULAIRES

 Table View :affiche des listes d'informations sur une colonne ;

 Picker View :affiche des informations sur une ou plusieurs colonnes,


sous la forme d'une roulette 3D

 Date Picker : similaire au deuxième, il est spécialisé dans 'affichage


des dates et d'heures.

Youssef
BALOUKI
Sélection parmi des choix multiples
UIPickerView
Objectif : permettre aux utilisateurs de votre application de
sélectionner à partir d'une liste de valeurs.

1. Ouvrir StoryBoarad, glisser un UIPickerView & UITextField


2. Créer un IBOutlet pour UIPickerView & UITextField
3. Lier UIPickerView & UITextField puis lier le UIPickerView
à une dataSource & delegate
1. Importer les fonctions datasource et delegate requises
2. Définir les fonctions datasource et tester
3. Créer un tableau de données puis afficher les données en utilisant
ce tableau.
sélection parmi des choix multiples
UIPickerView

Youssef
BALOUKI
Sélection parmi des choix multiples
UIPickerView

Youssef
BALOUKI
Sélection d'une date dans un contrôle
spécialisé :UIDatePicker
* Le contrôle Date Picker est très proche du contrôle Picker View,

Youssef
BALOUKI
Sélection d'une date dans un contrôle
spécialisé :UIDatePicker

p_dpk.datePickerMode = .date

Youssef
BALOUKI
Sélection d'une date dans un contrôle
spécialisé :UIDatePicker

Youssef
BALOUKI
Sélection d'une date dans un contrôle
spécialisé :UIDatePicker

Youssef
BALOUKI
Recognizer Gesture
Recognizer Gesture
Sélection d’une image:
UIImagePickerController
Sélection d'une image :UIImagePickerController

Youssef
BALOUKI
Configurer Info.plist.

 une erreur peut se produire lorsque vous tentez


de présenter le sélecteur d'image :

Le système doit demander à l'utilisateur


l'autorisation avant d'accéder à sa photothèque.
Dans iOS 10 et versions ultérieures, vous devez
fournir une description d'utilisation de la
bibliothèque photo. Cette description explique
pourquoi votre application souhaite accéder à la
bibliothèque photo.
Configurer info.plist

 Pour ajouter une description d'utilisation de la


bibliothèque photo :

1. Dans le navigateur du projet, sélectionnez Info.plist.


2. Pour ajouter un nouvel élément, passez le dessus du
dernier élément dans la liste des propriétés et cliquez sur
le bouton Ajouter lorsqu'il apparaît (ou sélectionnez
Éditeur> Ajouter un élément).
3. Dans le menu contextuel, faites défiler vers le bas et
choisissez Privacy - Photo Library Usage Description.
4. Dans la nouvelle ligne, assurez-vous que Type est défini
String. Ensuite, double-cliquez sur la section Valeur et
saisissez un message
TableView & TableView Cell
Table View

Youssef
BALOUKI
Table view

Youssef
BALOUKI
La réutilisation des cellules de table

Problème : Créer trop cellules

Youssef
BALOUKI
La réutilisation des cellules de table

Solution : Réutiliser les cellules

Youssef
BALOUKI
Loading a list into a Table View
Personnaliser Table View

Youssef
BALOUKI
Loading a list into a Table View

Youssef
BALOUKI
Personnaliser Table View
Personnaliser Table View

Youssef
BALOUKI
TP :
Navigation : Segue
Segue Personnalisé
Segue Personnalisé
Segue Personnalisé : Sélection dans TableView
Segue Personnalisé : Sélection dans TableView
Segue Personnalisé : Sélection dans TableView
Tab Application
Une vue secondaire pour l’ajout
Une vue secondaire pour l’ajout
Loading a list & Delete Row

Youssef
BALOUKI
Stockage Permanent :UserDefaults :

 UserDefaults est un excellent moyen d'enregistrer


rapidement et facilement des données persistantes
pendant la durée de vie de l'application.
 Ces variables sont enregistrées tant que l'application
n'a pas été supprimée.
 Exemple, vous pouvez demander le nom d'un
utilisateur, puis le sauvegarder, chaque fois qu'ils
ouvrent l'application, le nom apparaît.
Stockage Permanent:UserDefaults
 un dictionnaire de de type [String : Any] qui persiste
Vous définissez des clefs de type String et vous pouvez y
stocker des valeurs. Pour récupérer la valeur, vous utilisez
la clef.
 Les valeurs peut être une combinaison des types suivants
:
 Array
 Dictionnary
 String
 Date
 Data
 Nombre (Int, Double, Float)
Stockage Permanent :UserDefaults :

// Fonction pour écrire des données


set(Any? , forKey: String)

*** Any doit être une Property List, sinon crash.

// fonction pour lire des données


object(forKey: String) -> Any?
Stockage Permanent
Stockage Permanent
Premier Contrôleur : UserDefaults
Deuxième Contrôleur
Loading a list into a Table View

Youssef
BALOUKI
Costomized Cell
Image Picker
Image Picker
TableView avec UiImagePicker
Mode Programmation

1. Ajouter des # vues par programmation


2. Mettre en forme des # vues par programation
3. Creation des actions sur les # vues par
programmation
Ajout de boutons à l'interface utilisateur
avec UIButton
 Objectifs :
 afficher un bouton sur une interface utilisateur
 gérer les événements tactiles pour ce bouton.

 Solution
Utilisation de la classe :UIButton.

Youssef
BALOUKI
Ajout de boutons à l'interface utilisateur
avec UIButton

Youssef
BALOUKI
 Définir le bouton dans le view controller

Youssef
BALOUKI
 Définir le bouton dans le view controller

Youssef
BALOUKI
Youssef
BALOUKI
Personnaliser un UIButton
Création, utilisation et Personnalisation
de commutateurs avec : UISwitch
Objectif : la possibilité d'activer ou désactiver une option.
: la clasee UISwich

Youssef
BALOUKI
Création, utilisation et Personnalisation
de commutateurs avec : UISwitch
Objectif : la possibilité d'activer ou désactiver une option.
: la clasee UISwich

Youssef
BALOUKI
Affichage des alerts et des actions
(action sheet)
Objectif : afficher des vues d'alerte et / ou des actions à l'utilisateur.
- UIAlertController
Affichage des alerts et des actions
(action sheet)
les étapes pour créer une vue d'alerte simple ou une action:

 1. Créez une instance de la classe UIAlertController et spécifier


si vous voulez une vue d'alerte ou une action.
 2.Pour chaque action que vous souhaitez ajouter à votre view
d'alerte ou à une action (actions sont généralement représentés
par un bouton), créer une instance de la classe UIAlertAction.
 3.Ajouter vos actions UIAlertAction à votre contrôleur d'alerte
en utilisant addAction: la méthode de votre contrôleur d'alerte.
 4.Afficher votre contrôleur d'alerte en utilisant le
presentViewController: animation: réalisation: méthode
Ajouter des champs texts dans Alert View

Youssef
BALOUKI
Ajouter des actions sheets

Youssef
BALOUKI
Slider

Youssef
BALOUKI
Slider
Slider

Youssef
BALOUKI
Regroupement d'options avec
UISegmentedControl

Youssef
BALOUKI
Regroupement d'options avec
UISegmentedControl

Youssef
BALOUKI
Regroupement d'options avec
UISegmentedControl

Youssef
BALOUKI
les options de partage avec
UIActivityViewController
les options de partage avec
UIActivityViewController
Ajout d’une image au navigation Bar

Objectif :Vous souhaitez afficher une image au lieu de texte comme titre du
contrôleur de vue en cours sur le contrôleur de navigation.
Ajout du bouton au navigation Bar
avec UIBarButtonItem

Youssef
BALOUKI
Ajout du bouton + au navigation Bar
avec UIBarButtonItem
Ajout switch au navigation Bar
avec UIBarButtonItem
Ajout du segment au navigation Bar
avec UIBarButtonItem
Ajout du segment au navigation Bar
avec UIBarButtonItem
Rating Contrôle
Step 1: Création d’un Horizontal Stack view
Rating Contrôle
Step 2 : Création d’une classe de type StackView
Rating Contrôle
Step 3 : Définir une fonction qui pose des boutons étoiles dans le StackView
Rating Contrôle
Step4 : Définr l’action de vote (choisir le nombre des étoiles)
Rating Contrôle
Step 6 : Lier le StackView sur storyBoard avec la classe MaEvaluation
Stockage persistants : CoreData
 Core Data est une base de données locale, munie
d'une API orientée objet.
 les données sont stockées dans une base de données
SQLite.
 les données sont stockées sur le téléphone et pas sur un
serveur distant, cloud ou ….
 Core Data transforme tout en objets Swift, puis les
stocke en SQLite.
Core Data
 Complex/Offline
 Enregistrer et Annuler(undo)
 Tri et Filtrage
 Réduction du code
 Gestion optimale de la mémoire
 Affichage facile des données
 Data GUI (prend en charge les types de stokage persitants :XML &
SQLite)
Core Data
Core Data est considéré comme :
 Un graph d'objets conçu pour gérer les objets de
données.
 Un cadre de mapping objet-relationnel

Core Data a deux fonctions principal :


 gérer le graphe d'objets.

 La persistance des données sur le disque est une


fonction secondaire, bien que vitale.
La structure d’ API Core Data

L'API de base de données, ou pile telle qu'elle est


communément appelée, se compose de trois parties principales:
NSManagedObjectModel, NSPersistentStoreCoordinator
et NSManagedObjectContext,
Core Data
 Classes :
 NSManagedObjectModel
 NSPersistentStoreCoordinator
 NSManagedObjectContext
 NSManagedObject
 NSPersistentContainer

 Fichiers
 DataModel.xcdatamodeld
 DataModel.momd
 DataModel.sqlite
Collection de descriptions d’entités
S’initialiser avec

ModelDonnees.momd Créé par le


développeur

Compilé en.

ModelDonnees.xcdatamodled
Stockage persistants : CoreData
 Une instance de NSManagedObjectContext
représente un seul "espace objet" dans une
application. Sa principale responsabilité est de
gérer une collection d'objets. Ces objets forment un
groupe d'objets de modèle apparentés qui
représentent une vue cohérente en interne d'un ou
plusieurs stockage persistants. Une seule instance
d'objet (géré) existe dans un seul et même contexte,
mais plusieurs copies d'un objet peuvent exister
dans différents contextes. Ainsi, l'élimination des
objets est portée dans un contexte particulier.
ModelDonnees.sqlite
NSManagedObjectContext

Fournir les objets


Stocker/récupérer les données

S’initialiser avec se sert du modèle pour convertir les


données stockées dans la base en
NSManaged ModelObject objets.
Collection de descriptions d’entités
ModelDonnees.momd

Créé par le
déveoppeur

Compilé en.

ModelDonnees.xcdatamodled
NSManagedObject
NSManagedObject
NSManagedObject manipule

ModelDonnees.sqlite
Fournir les objets

Passer les objets manipulés

Stocker/récupérer les données

NSPersistentStoreCoordinator
S’initialiser avec
NSManaged ModelObject se sert du modèle pour convertir les
données stockées dans la base en
objets.

ModelDonnees.momd Créé par le


déveoppeur

Compilé en.

ModelDonnees.xcdatamodled
NSPersistentCoordinator-iOS10

1) Créer un fichier DataModel.xcdatamodeld.

2) Récupérer la version compilée DataModel.momd.

3) Initialiser une instance de NSManagedModel à partir de cette version


compilée.

4) Créer un fichier pour notre base de données DataModel.sqlite

5) Initialiser une instance de NSPersistentStoreCoordinator à partir de notre


fichier DataModel.sqlite et de notre instance de NSManagedModel.

6) Récupérer un contexte de notre NSPersistentStoreCoordinator avec lequel


on va pouvoir travailler.
NSManagedObject
NSManagedObject
NSManagedObject
manipule

NSManagedObjectContext Passer les objets manipulés


Fournir les objets

ModelDonnees.sqlite
Stocker/récupérer les données

S’initialiser avec
se sert du modèle pour convertir les données en objets.
ModelDonnees.momd

NSPersistentContainer

Compilé en.
Créé par le
déveoppeur

ModelDonnees.xcdatamodled
NSPersistentContainer
Permet de réduire l'installation de Core Data à seulement
trois étapes :

1. Créer un fichier DataModel.xcdatamodeld.


2. Instancier NSPersistentContainer en lui passant : le nom
du fichier "DataModel" .
3. Récupérer un contexte à partir de l’instance
de NSPersistantContainer
App : qui gère l’ensemble des étudiants d’une classe donnée
Récupération du contexte des objets de gestion
Stockage persistants : CoreData
1 : Créer un projet avec l’option CoreData
2 : importer le frameWork CoreData dans le code
3 : Créer une entité Etudiant avec les champs : Nom ,Age et photo
Stockage persistants : CoreData
1 : Créer un projet avec l’option CoreData
2 : importer le frameWork CoreData dans le code
3 : Créer une entité Etudiant avec les champs : Nom ,Age et photo
Stockage persistants : Sauvgarde
 Récupérer le contexte de l’ application par :
• let appDel : AppDelegate = UIApplication.shared.delegate as! AppDelegate
• let context : NSManagedObjectContext = appDel.persistentContainer.viewContext

Récupérer la discription de l’entité à traiter :


let newEtudiant = Etudiant(context)
Inserer un Etudiant :
 let v = UIImagePNGRepresentation(UIImage(named: "cloud_small")!)
 newEtudiant.nom = ”Farah”
 newEtudiant.date_naiss = formater.date(from : ”12-01-1978”)
 newEtudiant.photo = v
 Sauvgarder le contexte avec traitement des exceptions:
do {
try context.save()
}
Stockage persistants : Sauvgarde
 Récupérer le contexte de l’ application par :
• let appDel : AppDelegate = UIApplication.shared.delegate as! AppDelegate
• let context : NSManagedObjectContext = appDel.persistentContainer.viewContext

 Récupérer la discription de l’entité à traiter :


let newEtudiant = NSEntityDescription.insertNewObject(forEntityName: "Etudiant", into: context)

Inserer un Etudiant :
Deuxième
• let v = UIImagePNGRepresentation(UIImage(named: "cloud_small")!) façon pour
• newEtudiant.setValue("farah", forKey: "nom") insérer un
newEtudiant.setValue(293, forKey: "age")

étudiant
• newEtudiant.setValue(v, forKey: "photo”)

 Sauvgarder le contexte avec traitement des exceptions:


do {
try context.save()
}
Fonction : Sauvgarde
Stockage persistants : Affichage
 Récupérer le contexte de l’ application par :
• let appDel : AppDelegate = UIApplication.shared.delegate as! AppDelegate
• let context : NSManagedObjectContext = appDel.persistentContainer.viewContext

 Chercher l’étudiants “balouki” par la requête:


let request = NSFetchRequest<Etudiant>(entityName: "Etudiant")
request.predicate = NSPredicate(format: "nom = %@", nom_text.text")

 Afficher l’étudiants “balouki” :


let resultat = try context.fetch(request)
if !resultat.isEmpty {
for itm in resultat {
nom_txt.text = itm.nom!
prenom_txt.text = itm.prenom
formater.dateFormat = "MM-dd-YYYY"
date_naiss_text.text = formater.string(from: itm.date_naiss!)
photo.image = UIImage(data : itm.photo as! Data)
}
Foncion : Afficher
Stockage persistants : Modifier
 Récupérer le contexte de l’ application par :
• let appDel : AppDelegate = UIApplication.shared.delegate as! AppDelegate
• let context : NSManagedObjectContext = appDel.persistentContainer.viewContext

 Chercher l’étudiants “balouki” par la requête:


let request = NSFetchRequest<Etudiant>(entityName: "Etudiant")
request.predicate = NSPredicate(format: "nom = %@", »nom_text.text")

 Modifier l’étudiants “balouki” :


let rsl = try context.fetch(request)
for itm in rsl {
itm.setValue(nom_txt.text, forKey: "nom")
itm.setValue(prenom_txt.text, forKey: "prenom")
formater.dateFormat = "MM-dd-YYYY"
itm.setValue(formater.date(from: date_naiss_text.text!), forKey: "date_naiss")
itm.setValue(UIImagePNGRepresentation(photo.image! ), forKey: "photo")
Fonction : Modification
Stockage persistants : Supprission
 Récupérer le contexte de l’ application par :
• let appDel : AppDelegate = UIApplication.shared.delegate as! AppDelegate
• let context : NSManagedObjectContext = appDel.persistentContainer.viewContext

 Récupérer l’ensemble des étudiants par la requete:


let request = NSFetchRequest<Etudiant>(entityName: "Etudiant”)

Suprimer l’étudiant portant le nom balouki:


• context.delete(rst as NSManagedObject)

 Sauvgarder le contexte avec traitement des exceptions:


do {
try context.save()
}
Fonction : Supprimer
Stockage persistants : CoreData
TP :
Une application qui permet de défiller les belles vues de chaque ville avec Contrôle de
vote.

1. Création d’un nouveau projet de type CoreData


2. Ajouter ds la vue principale une ListView
3. Création d’une classe de type :UITableViewCell
4. Etablir le lien entre la nouvelle classe et la cellule de ListView
5. Ajouter une vue Secondaire qui contient :
Label : Nom ville,
Image : belle Vue (PickerImage + reconnaissance de geste) réalisé précédemment
HorizontalStackView : Zone d’évalutation réalisé précédemment
6. Etablir des segues entre la vue principale et secondaire
• Segue pour ajouter une nouveau enregistrement
• Segue pour modifier un enregistrement
• segue pour terminer
• Gérer les M-à-J des données d’une manière permanente : CoreData
TP : Structure de projet
TP : Création de l’Entité Nature
TP : Definition de la classe :
MycelTableViewCell
TP : Structure de la Vue Principale
TP : Vue Principale
TP : Vue Principale
TP : Structure de la Vue Secondaire
TP : Vue Secondaire
TP : Vue Secondaire
Géolocalisation : CoreLocation
1: option “Build Phases” permet de loader le framework : CoreLocation
Géolocalisation : CoreLocation
2 : définir un message d’erreur dans la prpriété : Location when use usage description
Géolocalisation : CoreLocation
Géolocalisation : CoreLocation
Géolocalisation : CoreLocation
Maps : Utilisation de MapKit

Build phases/Link Binary With Libraries/+/cherche map


Youssef
BALOUKI
Maps : Utilisation de MapKit
Youssef
BALOUKI
A jout des annotations aux Maps
A jout des annotations aux Maps

Youssef
BALOUKI
TP : Map + Géolocalisation

 Tracer le parcours réaliser par un cycliste en indicant sa position courante par


des annotation
sur la carte.
 1: importer les deux framework : CoreLocation, MapKit.
 2: définir les proprièties de infoList
 3: les Labels necessaires pour afficher latitude, longitude, altitude et distance
 4: ajouter un MapView
 5: ècrire le code pour chaque actions
 6: ètablir le lien entre les vues de storyBoard et le code .
TP : Map + Géolocalisation
TP : Map + Géolocalisation
TP : Map + Géolocalisation

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy