SlideShare una empresa de Scribd logo
1 de 64
Descargar para leer sin conexión
Chp6 : Développement iOS
Cycle de Vie, Composants Principaux, Comportement…
Conception et Développement d’Applications Mobiles
GL4 (Option Mobile) - 2016
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
PLAN
1. Environnement de Développement iOS
2. Architecture de l’Environnement iOS
3. IHM Guidelines
4. Architecture d’une Application iOS
5. Cycle de Vie d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 2
Chp5 : Développement iOS
ENVIRONNEMENT DE DÉVELOPPEMENT IOS
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
1. Environnement de Développement iOS
2. Architecture iOS
3. IHM Guidelines
4. Architecture d’une Application
5. Cycle de Vie d’une Application
iOS
• Système d’exploitation présent sur les appareils iPhone, iPad
et iPod touch
• Gère le matériel de l’appareil et fournit les technologies
nécessaires pour implémenter des applications natives
• Est accompagné d’un ensemble d’applications
• Phone, Mail, Safari…
• Fournit des services systèmes standard pour l’utilisateur
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 4
Environnement de Développement iOS
iOS SDK
• Contient les outils et interfaces nécessaires pour développer,
installer, exécuter et tester les applications natives créées
pour un appareil iOS
• Les applications natives sont construites en utilisant
• Des frameworks iOS
• Un langage de programmation (Objective-C, et plus récemment Swift)
• Un environnement de développement Apple
• MacOSX: SE Apple
• Xcode: IDE de Apple
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 5
Environnement de Développement iOS
En quelques mots, iOS…
• Utilise une architecture en couches
• Offre des frameworks pour manipuler les interfaces système
• Répertoire contenant une bibliothèque partagée dynamique et les
ressources nécessaires pour la supporter (images, applications helpers,
fichiers headers…)
• Offre la bibliothèque du développeur
• À utiliser sans modération: http://developer.apple.com/iphone
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 6
Environnement de Développement iOS
Distribution des Versions (Mars 2016)
• 79% des appareils utilisent iOS 9.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 7
Environnement de Développement iOS
https://developer.apple.com/support/appstore/
ARCHITECTURE IOS
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
1. Environnement de Développement iOS
2. Architecture iOS
3. IHM Guidelines
4. Architecture d’une Application
5. Cycle de Vie d’une Application
Architecture en Couches
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Architecture iOS
Services et
Technologies
Fondamentales
Services et
Technologies
Sophistiquées
Architecture en Couches (1/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Architecture iOS
CocoaTouch
• Définit:
• L ’ apparencedel’application
• L ’ infrastructureetsupportpour les technologiesclef
• Contient les caractéristiques clés pour construire des applications iOS, par ex:
• Handoff:extension de laUX entreles appareils
• AirDrop:partagededocumentsentreappareilsproches
• Storyboards:permetdecréer vos interfacesetles visualiser au même endroit
• Notificationspush:alerter lesutilisateursdesinformations
• Autres frameworks
• GameKit:supportpour le GameCenter
• AddressBook UI: Interfacestandarddecréationetéditiondescontactsdutéléphone
• EventKit:contrôleurspour manipuler lesévènementsducalendrier
Architecture en Couches (2/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Architecture iOS
Media
• Contient les technologies graphiques, audio et vidéo pour implémenter les expériences multimédia
Architecture en Couches (3/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
Architecture iOS
Core Services
• Services systèmes fondamentaux pour les applications
• ServicesPeer-to-peer:P2PviaBluetooth
• iCloud:servicesde stockage sur le cloudapple
• Protectiondedonnées:encryption
• SQLite, In-AppPurchase,SupportXML…
• Frameworks:
• CoreFoundation etFoundation Frameworks: typesde base que toutes les applicationsutilisent
• Accounts:AccèsSSO pour les comptesutilisateurs
• AddressBook: Accèsà la base dedonnées des contactsde l’utilisateur
• CoreTelephonyFramework,CoreMedia Framework…
Architecture en Couches (4/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
Architecture iOS
Core OS
• Caractérisitiques bas niveaupour construire les technologies iOS
• Frameworks:
• CoreBluetooth: interactionavec lesaccessoiresbluetooth basseénergie
• ExternalAccessory:supportpour communiquer avec lesaccessoiresmatérielsattachésàunappareiliOS
• Local Authentication:permetd’utiliser TouchIDpour authentifier l’utilisateur
• System (Kernel),Security,support64-bit…
IHM GUIDELINES
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
1. Environnement de Développement iOS
2. Architecture iOS
3. IHM Guidelines
4. Architecture d’une Application
5. Cycle de Vie d’une Application
Concepts de Base pour Conception IHM iOS
• Déférence
• La UI doit aider à comprendre et interagir avec le
contenu, pas à l’envahir
• Clarté
• Le texte doit être lisible, les icônes précises et claires,
les ornements subtils
• Profondeur
• Mouvements réalistes et couches visibles
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 15
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Déférence
• Prendre avantage de tout l’écran
• Reconsidérer le réalisme
• Éviter les gradients, ombres…
• Laisser le focus sur le contenu
• Utiliser des éléments translucides
• Laisser deviner le contenu derrière
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 16
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Déférence
• Prendre avantage de tout l’écran
• Reconsidérer le réalisme
• Éviter les gradients, ombres…
• Laisser le focus sur le contenu
• Utiliser des éléments translucides
• Laisser deviner le contenu derrière
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 17
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Déférence
• Prendre avantage de tout l’écran
• Reconsidérer le réalisme
• Éviter les gradients, ombres…
• Laisser le focus sur le contenu
• Utiliser des éléments translucides
• Laisser deviner le contenu derrière
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 18
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Clarté
• Laisser beaucoup d’espace négatif
(Espace autours et entre les éléments
d’une image)
• Rendre le contenu plus perceptible et
compréhensible
• Laisser la couleur simplifier l’UI
• Utiliser une couleur pour souligner
les éléments importants
• Assurer la lisibilité en utilisant les
polices système
• Polices iOS ajustent leur espacement
au conteneur
• Utiliser les boutons sans bordure
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 19
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Clarté
• Laisser beaucoup d’espace négatif
(Espace autours et entre les éléments
d’une image)
• Rendre le contenu plus perceptible et
compréhensible
• Laisser la couleur simplifier l’UI
• Utiliser une couleur pour souligner les
éléments importants
• Assurer la lisibilité en utilisant les
polices système
• Polices iOS ajustent leur espacement
au conteneur
• Utiliser les boutons sans bordure
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 20
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Clarté
• Laisser beaucoup d’espace négatif
(Espace autours et entre les éléments
d’une image)
• Rendre le contenu plus perceptible et
compréhensible
• Laisser la couleur simplifier l’UI
• Utiliser une couleur pour souligner
les éléments importants
• Assurer la lisibilité en utilisant les
polices système
• Polices iOS ajustent leur espacement
au conteneur
• Utiliser les boutons sans bordure
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 21
IHM Guidelines
Concepts de Base pour Conception IHM iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 22
IHM Guidelines
• Clarté
• Laisser beaucoup d’espace négatif
(Espace autours et entre les éléments
d’une image)
• Rendre le contenu plus perceptible et
compréhensible
• Laisser la couleur simplifier l’UI
• Utiliser une couleur pour souligner
les éléments importants
• Assurer la lisibilité en utilisant les
polices système
• Polices iOS ajustent leur espacement
au conteneur
• Utiliser les boutons sans bordure
Concepts de Base pour Conception IHM iOS
• Profondeur
• Affichage du contenu sous forme de
couches distinctes
• Montrent la hiérarchie et relation
entre les objets
• Afficher les listes sous forme de
couches superposées
• Avoir une visibilité sur tous les
éléments
• Utiliser des transitions pour montrer
la hiérarchie
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 23
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Profondeur
• Affichage du contenu sous forme de
couches distinctes
• Montrent la hiérarchie et relation
entre les objets
• Afficher les listes sous forme de
couches superposées
• Avoir une visibilité sur tous les
éléments
• Utiliser des transitions pour montrer
la hiérarchie
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 24
IHM Guidelines
Concepts de Base pour Conception IHM iOS
• Profondeur
• Utiliser des transitions pour montrer la hiérarchie
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 25
IHM Guidelines
Anatomie d’une Application
Utilisation de UIKit Framework pour définir les composants de base de l’application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 26
IHM Guidelines
Anatomie d’une Application
• Quatre catégories de composants graphiques
• Barres
• Informations contextuelles pour indiquer l’emplacement de l’application,
permettre la navigation et initier des actions
• Content Views
• Vues portant un contenu spécifique à l’application, et qui permettent certains
comportements tels que le défilement, l’insertion, le réarrangement…
• Contrôles
• Éléments graphiques réalisant des actions ou affichant une information
• Vues temporaires
• Apparaissent brièvement pour donner aux utilisateurs une information
importante ou additionnelle
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 27
IHM Guidelines
ARCHITECTURE D’UNE APPLICATION
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 28
1. Environnement de Développement iOS
2. Architecture iOS
3. IHM Guidelines
4. Architecture d’une Application
5. Cycle de Vie d’une Application
Patrons de Conception
• MVC (?)
• Target-Action
• Delegation
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 29
Architecture d’une Application
La Vue
• Permet à l’utilisateur d’interagir avec l’application de la manière la plus
simple possible
• Scene : Écran de l’application
• Utilisation des storyboards pour la conception et l’implémentation de
l’interface dans un environnement graphique
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 30
Architecture d’une Application
Hiérarchie des Vues
Catégorie de Vue Objectif Exemples
Contenu Afficher un type particulier de contenu Image, étiquette de texte
Collection Afficher des collections ou groupes de vues Table, Collection
Contrôles Réaliser des actions ou afficher des
informations
Bouton, Slider, Switch
Barres Naviguer, ou réaliser des actions Toolbar, Nav Bar, TabBar
Entrées Recevoir untexte à partir de l’utilisateur Textview, barre de
recherche
Conteneurs Sert de conteneur pour d’autres vues Vue, scroll view
Modales Interrompt le flux régulier de l’application pour
permettre à l’utilisateur de faire une action
Alerte, action sheet
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 31
Architecture d’une Application
Hiérarchie des Vues (Exemple)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 32
Architecture d’une Application
Window
Navigation Controller
(Sous-classe de ViewController) View
Navigation Bar
(dessinée par le
Navigation Controller)
Slider
(Sous-classe de View)
Voir Exemple:
TODOList-ObjC -1
Les Contrôleurs
• iOS est basé sur la programmation évènementielle
• Le flux de l’application est déterminé par des évènements:
• Évènements Système
• Évènements Utilisateur
• La réponse de l’application à une action de l’utilisateur est reflétée par
l’interface
• C’est l’utilisateur qui doit avoir le contrôle, pas le développeur!
• La logique de gestion des évènements est définie dans le
ViewController
• Un ViewController pour chaque
ContentView (Scene)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 33
Architecture d’une Application
Les Contrôleurs : Rôles
• Coordination du flux d’information entre le modèle et les vues
• Gestion du cycle de vie des ContentViews
• Gestion des changements d’orientation de l’appareil
• Réponse aux interactions utilisateur
• Implémentation des transition d’un type de contenu à un autre
• Pour connecter entre le storyboard et le code, ils utilisent:
• Actions
• Outlets
• Contrôles
• Contrôleurs de Navigation
• Segues (Enchaînements)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 34
Architecture d’une Application
Actions
• Action:
• Un bout de code lié à un évènement qui peut survenir dans votre application
• Quand l’ évènement a lieu, le code est exécuté
• Une action peut :
• Manipuler une donnée
• Modifier l’interface utilisateur
• Déclencher un traitement
• Pour définir une action, il faut créer une méthode avec un type de retour
IBAction et un paramètre sender
• Sender: représente l’objet responsable du déclenchement de l’action
• IBAction: mot clef spécial, indiquant que la méthode est une action, appelée à
partir d’un élément de l’Interface Builder (IB)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 35
Architecture d’une Application
Outlets et Contrôles
• Outlet
• Permet de référencer les objets d’une interface à partir du code source
• Crée une propriété représentant cet objet dans le fichier ViewController cible
• La propriété est de type IBOutlet
• Mot clef indiquant que cette propriété est connectée à un élément du Interface Builder
• Contrôle
• Objet graphique avec lequel un utilisateur peut interagir
• bouton, slider, switch
• Création d’un évènement de contrôle quand un utilisateur interagir avec un
contrôle, faisant partie d’une de ces catégories:
• Toucher et glisser
• Edition
• Changement de valeur
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 36
Architecture d’une Application
Contrôleurs de Navigation
• View Controller particulier, permettant de gérer les transitions entre les
différentes Scenes de votre application
• Va créer une pile (LIFO) des différents ViewControllers entre lesquels il
navigue, appelée : Pile de Navigation
• Le premier élément de la pile (scene qui a déclenché la navigation), s’appelle
Root View Controller (il n’est jamais enlevé de la pile)
• Les autres View Controllers peuvent être ajoutés ou supprimés de la pile, selon
la navigation de l’utilisateur
• Un contrôleur de Navigation présente également un contenu propre à lui, en
particulier la Barre de Navigation
• Vue en haut de la scene, fournissant le contexte de navigation
• Montre l’emplacement de l’utilisateur dans la pile de navigation
• Définit un bouton Back par défaut, permettant de revenir au dernier élément de
la pile
• Peut contenir d’autres boutons, à configurer à votre guise
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 37
Architecture d’une Application
Segue
• Un Segue (ou enchaînement) représente une transition entre deux
ViewController: la source et la destination
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 38
Architecture d’une Application
Segue
• Plusieurs types de Segues:
• Show
• Fait appel à un nouveau contenu à empiler, au dessus du VC courant
• Show Detail
• Soit empile un nouveau contenu, soit remplace le VC courant dans la pile (selon
le layout utilisé)
• Present Modally
• Appelle une vue fille, qui cache la vue courante, pour permettre à l’utilisateur de
réaliser une action particulière
• Popover Presentation
• Appelle une vue ancrée à la vue courante, qui disparaît dès qu’on clique ailleurs
• Unwind
• Permet de naviguer vers une vue précédente dans la pile, pas nécessairement
• Custom
• Crée une transition personnalisée
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 39
Architecture d’une Application
Voir Exemple:
TODOList-ObjC -2
Types de View Controllers
• Content View Controller
• Gestion du contenu
• Créé en écrivant une sous-classe de UIViewController
• Permet de :
• Peupler la vue avec des données
• Répondre aux évènements utilisateur
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 40
Architecture d’une Application
Types de View Controllers
• Container View Controller
• Arrangent le contenu d’autres View Controllers, ses fils
• Peut être un parent d’autres contrôleurs, et un fils d’un autre container
• Création d’une hiérarchie
• Un conteneur
• Fournit sa propre API pour gérer ses fils
• Décide si ses fils communiquent ou sont reliés, et quels types de relations ils ont
• Peut gérer la hiérarchie des vues
• Peut imposer des contraintes de conception spécifiques à ses fils
• Plusieurs sous-types:
• Navigation Controller
• Tab Bar Controller
• Split View Controller
• Popover Controller
• Page View Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 41
Architecture d’une Application
Types de View Controllers
• Container View Controller
• Navigation Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 42
Architecture d’une Application
Types de View Controllers
• Container View Controller
• Tab Bar Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 43
Architecture d’une Application
Types de View Controllers
• Container View Controller
• Split View Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 44
Architecture d’une Application
Types de View Controllers
• Container View Controller
• Popover Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 45
Architecture d’une Application
Types de View Controllers
• Container View Controller
• Page View Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 46
Architecture d’une Application
Modèle
• Représente une structure de données et (optionnellement) une
logique métier pour la consistance de ces données
• Utilisation du Framework Foundation pour représenter les types
manipulés par l’application
• Deux catégories de types de données
• Value Classes: types basiques (NSString, NSNumber, NSDate…)
• Collection Classes: types composés (NSArray, NSSet et NSDictionary)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 47
Architecture d’une Application
Voir Exemple:
TODOList-ObjC -3
CYCLE DE VIE D’UNE APPLICATION
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 48
1. Environnement de Développement iOS
2. Architecture iOS
3. IHM Guidelines
4. Architecture d’une Application
5. Cycle de Vie d’une Application
Point d’Entrée d’une Application
• Comme toute application en C : la fonction main
• Fonction prédéfinie, créée automatiquement par xCode, et à ne pas modifier
• Permet de rendre le contrôle au framework UIKit grâce à la fonction
UIApplicationMain, qui permet de :
• Créer les objets principaux de l’application
• Charger la UI de l’application à partir du storyboard
• Appeler votre code pour une installation initiale
• Lancer le cycle d’exécution de l’application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 49
Cycle de Vie d’une Application
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 50
Cycle de Vie d’une Application
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 51
Cycle de Vie d’une Application
UIApplication:
• Faciliter l’interaction entre le
système et les autres
objetsde l’application
• Gère les évènements
• Transmet les transitions et
évènements à l’Application
Delegate
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 52
Cycle de Vie d’une Application
Application Delegate :
• Au cœurdevotrecode
• Leseul objetgaranti dese trouverdans
toutes les applications
• Travaille avec UIApplication pourgérer:
• L’initialisation de l’application
• Les états transitions
• Les évènements dehaut niveau
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 53
Cycle de Vie d’une Application
Objets Data Model
• Sauvegardent le contenude votre
application (base de données + objets
associés)
Objet Document
• Sous-classes de UIDocument
• Permet de chargerles données, se trouvant
dans plusieurs documents, in-memory,
pourpermettre leur manipulation sans que
l’application ne soit ANR
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 54
Cycle de Vie d’une Application
Objets View Controller
• Étend la classe UIViewController
• Gestion de la présentation du contenude
votreapplication à l’écran
• Un VCgère une view et ses sous-vues
• Utilisent le framework UIKit (entre autres)
pourdéfinir des VCparticuliers (tabBar,
image picker, navigation…)
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 55
Cycle de Vie d’une Application
UIWIndow
• Permet de coordonnerlaprésentation d’une ouplusieurs vues
sur la page
• Laplupart des applications ontun seul Window,présentant le
contenudans l’écran principal, mais certaines en définissent un
additionnel pourun affichage sur un écran externe
• Pour passer d’une vueà une autre, un contrôleurest utilisé. Un
windown’est jamais remplacé
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 56
Cycle de Vie d’une Application
Vues et Contrôles
• Représentation visuelle du contenu
• UIKit fournit des vues standards pourreprésenter plusieurs
types de contenus
Layer Objects
• Incorporentdescouches de CoreAnimation: infrastructure
d’animation graphique
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 57
Cycle de Vie d’une Application
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 58
Cycle de Vie d’une Application
L’application n’a pas été lancée ouétait en
exécution et aété terminée par le système
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 59
Cycle de Vie d’une Application
L’application est en exécution en avant-plan, mais
ne reçoitpas d’évènements. Elle peut cependant
être entrain d’exécuter un autre code
En général, c’est un état transitoire
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 60
Cycle de Vie d’une Application
L’application est en exécution en avant-plan, et
reçoit des évènements.
Mode normalpourles applications en avant-plan
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 61
Cycle de Vie d’une Application
L’application est en arrière-plan, et exécute du code.
En général, état transitoire avant la suspension
Mais, certaines applications entrent directement dans cet
état au lieu de inactive, si elles veulent exécuter du codeen
arrière plan au démarrage
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 62
Cycle de Vie d’une Application
L’application est en arrière-plan, mais n’ exécute pas decode.
L’application reste en mémoire
Lesystème fait passer les applications à cet état automatiquement, sans
les notifier
Si le système aproblème de mémoire,il peut purgerdes applications
suspendues sans les notifier pourlaisser de l’espace aux application en
premier plan
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 63
Cycle de Vie d’une Application
didFinishLaunchingWithOptions
applicationWillResignActive
applicationDidBecomeActive
applicationDidEnterBackgroundapplicationWillEnterForeground
applicationWillTerminate
Voir Exemple:
AppLifeCycle
Références
• Tutorial Getting Started:
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiO
S/index.html#//apple_ref/doc/uid/TP40011343-CH2-SW1
• IHM:
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptu
al/MobileHIG/index.html#//apple_ref/doc/uid/TP40006556-CH66-SW1
• Cycle de vie de
l’Applicationhttps://developer.apple.com/library/ios/documentation/iPhone/Conce
ptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html#//apple_r
ef/doc/uid/TP40007072-CH2-SW1
• Architecture iOS
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/i
PhoneOSTechOverview/Introduction/Introduction.html
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 64
Site du Développeur Apple: developer.apple.com

Más contenido relacionado

La actualidad más candente

Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Chp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications MobilesChp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications MobilesLilia Sfaxi
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsLilia Sfaxi
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartisHeithem Abbes
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à androidLilia Sfaxi
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesStéphane Di Cioccio
 
Développement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec FlutterDéveloppement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec Fluttererick G
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTtayebbousfiha1
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 

La actualidad más candente (20)

Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Chp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications MobilesChp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications Mobiles
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
P1 introduction à android
P1 introduction à androidP1 introduction à android
P1 introduction à android
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequences
 
Développement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec FlutterDéveloppement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec Flutter
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHT
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 

Destacado

Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJSLilia Sfaxi
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOALilia Sfaxi
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServicesLilia Sfaxi
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESBLilia Sfaxi
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScriptLilia Sfaxi
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++Lilia Sfaxi
 
Systèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueSystèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueLilia Sfaxi
 
Présentation de Thèse
Présentation de ThèsePrésentation de Thèse
Présentation de ThèseLilia Sfaxi
 
Mobile developement
Mobile developementMobile developement
Mobile developementLilia Sfaxi
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques androidLilia Sfaxi
 
Software Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesSoftware Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesLilia Sfaxi
 
Software Engineering - chp0- introduction
Software Engineering - chp0- introductionSoftware Engineering - chp0- introduction
Software Engineering - chp0- introductionLilia Sfaxi
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 

Destacado (20)

Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJS
 
eServices-Chp6: WOA
eServices-Chp6: WOAeServices-Chp6: WOA
eServices-Chp6: WOA
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
 
eServices-Chp4: ESB
eServices-Chp4: ESBeServices-Chp4: ESB
eServices-Chp4: ESB
 
Angular
AngularAngular
Angular
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScript
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Systèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disqueSystèmes d'Exploitation - chp4-gestion disque
Systèmes d'Exploitation - chp4-gestion disque
 
Thinking BIG
Thinking BIGThinking BIG
Thinking BIG
 
Présentation de Thèse
Présentation de ThèsePrésentation de Thèse
Présentation de Thèse
 
Mobile developement
Mobile developementMobile developement
Mobile developement
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
P2 éléments graphiques android
P2 éléments graphiques androidP2 éléments graphiques android
P2 éléments graphiques android
 
P5 stockage
P5 stockageP5 stockage
P5 stockage
 
Software Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologiesSoftware Engineering - chp1- software dev methodologies
Software Engineering - chp1- software dev methodologies
 
Software Engineering - chp0- introduction
Software Engineering - chp0- introductionSoftware Engineering - chp0- introduction
Software Engineering - chp0- introduction
 
Core JavaScript
Core JavaScriptCore JavaScript
Core JavaScript
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 

Similar a Chp6 - Développement iOS

IBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe BourgeoisIBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe BourgeoisFresche Solutions
 
Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.DocDoku
 
Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesMichael Laguerre
 
What is new in UIKit for iOS 13
What is new in UIKit for iOS 13What is new in UIKit for iOS 13
What is new in UIKit for iOS 13Thomas Besnehard
 
Développez des applications originales pour i phone et ipod touch {9782744041...
Développez des applications originales pour i phone et ipod touch {9782744041...Développez des applications originales pour i phone et ipod touch {9782744041...
Développez des applications originales pour i phone et ipod touch {9782744041...Islem Azzouz
 
Windows 8 applications
Windows 8 applicationsWindows 8 applications
Windows 8 applicationsYoussef Laziz
 
FOLIO_presentation_par_BibLibre
FOLIO_presentation_par_BibLibreFOLIO_presentation_par_BibLibre
FOLIO_presentation_par_BibLibreABES
 
Tk04 Iphone Vs Android Fr
Tk04 Iphone Vs Android FrTk04 Iphone Vs Android Fr
Tk04 Iphone Vs Android FrValtech
 
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Christophe Porteneuve
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Smile I.T is open
 
Conférence windows phone 7
Conférence windows phone 7Conférence windows phone 7
Conférence windows phone 7Arnaud Auroux
 
soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...
soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...
soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...soft-shake.ch
 
Mobile-Chp4 côté serveur
Mobile-Chp4 côté serveurMobile-Chp4 côté serveur
Mobile-Chp4 côté serveurLilia Sfaxi
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS DevelopmentNidhal Satouri
 
userADgents WWDC iOS 8 juin 2014
userADgents WWDC iOS 8 juin 2014userADgents WWDC iOS 8 juin 2014
userADgents WWDC iOS 8 juin 2014USERADGENTS
 

Similar a Chp6 - Développement iOS (20)

Apple - WWDC 2018
Apple - WWDC 2018Apple - WWDC 2018
Apple - WWDC 2018
 
IBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe BourgeoisIBM i: Built for Business - Philippe Bourgeois
IBM i: Built for Business - Philippe Bourgeois
 
Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.
 
Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobiles
 
What is new in UIKit for iOS 13
What is new in UIKit for iOS 13What is new in UIKit for iOS 13
What is new in UIKit for iOS 13
 
Développez des applications originales pour i phone et ipod touch {9782744041...
Développez des applications originales pour i phone et ipod touch {9782744041...Développez des applications originales pour i phone et ipod touch {9782744041...
Développez des applications originales pour i phone et ipod touch {9782744041...
 
Windows 8 applications
Windows 8 applicationsWindows 8 applications
Windows 8 applications
 
Windows 8 apps
Windows 8 appsWindows 8 apps
Windows 8 apps
 
FOLIO_presentation_par_BibLibre
FOLIO_presentation_par_BibLibreFOLIO_presentation_par_BibLibre
FOLIO_presentation_par_BibLibre
 
Windows 8 apps
Windows 8 appsWindows 8 apps
Windows 8 apps
 
Tk04 Iphone Vs Android Fr
Tk04 Iphone Vs Android FrTk04 Iphone Vs Android Fr
Tk04 Iphone Vs Android Fr
 
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
 
Conférence windows phone 7
Conférence windows phone 7Conférence windows phone 7
Conférence windows phone 7
 
soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...
soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...
soft-shake.ch - Distribution d'applications iPhone en Entreprise: Réalisation...
 
Mobile-Chp4 côté serveur
Mobile-Chp4 côté serveurMobile-Chp4 côté serveur
Mobile-Chp4 côté serveur
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Introduction to iOS Development
Introduction to iOS DevelopmentIntroduction to iOS Development
Introduction to iOS Development
 
userADgents WWDC iOS 8 juin 2014
userADgents WWDC iOS 8 juin 2014userADgents WWDC iOS 8 juin 2014
userADgents WWDC iOS 8 juin 2014
 

Más de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-CorrectionLilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 

Más de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

Chp6 - Développement iOS

  • 1. Chp6 : Développement iOS Cycle de Vie, Composants Principaux, Comportement… Conception et Développement d’Applications Mobiles GL4 (Option Mobile) - 2016 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1
  • 2. PLAN 1. Environnement de Développement iOS 2. Architecture de l’Environnement iOS 3. IHM Guidelines 4. Architecture d’une Application iOS 5. Cycle de Vie d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2 Chp5 : Développement iOS
  • 3. ENVIRONNEMENT DE DÉVELOPPEMENT IOS Chp5 : Développement iOS Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 3 1. Environnement de Développement iOS 2. Architecture iOS 3. IHM Guidelines 4. Architecture d’une Application 5. Cycle de Vie d’une Application
  • 4. iOS • Système d’exploitation présent sur les appareils iPhone, iPad et iPod touch • Gère le matériel de l’appareil et fournit les technologies nécessaires pour implémenter des applications natives • Est accompagné d’un ensemble d’applications • Phone, Mail, Safari… • Fournit des services systèmes standard pour l’utilisateur Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 4 Environnement de Développement iOS
  • 5. iOS SDK • Contient les outils et interfaces nécessaires pour développer, installer, exécuter et tester les applications natives créées pour un appareil iOS • Les applications natives sont construites en utilisant • Des frameworks iOS • Un langage de programmation (Objective-C, et plus récemment Swift) • Un environnement de développement Apple • MacOSX: SE Apple • Xcode: IDE de Apple Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 5 Environnement de Développement iOS
  • 6. En quelques mots, iOS… • Utilise une architecture en couches • Offre des frameworks pour manipuler les interfaces système • Répertoire contenant une bibliothèque partagée dynamique et les ressources nécessaires pour la supporter (images, applications helpers, fichiers headers…) • Offre la bibliothèque du développeur • À utiliser sans modération: http://developer.apple.com/iphone Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 6 Environnement de Développement iOS
  • 7. Distribution des Versions (Mars 2016) • 79% des appareils utilisent iOS 9. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 7 Environnement de Développement iOS https://developer.apple.com/support/appstore/
  • 8. ARCHITECTURE IOS Chp5 : Développement iOS Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 8 1. Environnement de Développement iOS 2. Architecture iOS 3. IHM Guidelines 4. Architecture d’une Application 5. Cycle de Vie d’une Application
  • 9. Architecture en Couches Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 9 Architecture iOS Services et Technologies Fondamentales Services et Technologies Sophistiquées
  • 10. Architecture en Couches (1/4) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10 Architecture iOS CocoaTouch • Définit: • L ’ apparencedel’application • L ’ infrastructureetsupportpour les technologiesclef • Contient les caractéristiques clés pour construire des applications iOS, par ex: • Handoff:extension de laUX entreles appareils • AirDrop:partagededocumentsentreappareilsproches • Storyboards:permetdecréer vos interfacesetles visualiser au même endroit • Notificationspush:alerter lesutilisateursdesinformations • Autres frameworks • GameKit:supportpour le GameCenter • AddressBook UI: Interfacestandarddecréationetéditiondescontactsdutéléphone • EventKit:contrôleurspour manipuler lesévènementsducalendrier
  • 11. Architecture en Couches (2/4) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 11 Architecture iOS Media • Contient les technologies graphiques, audio et vidéo pour implémenter les expériences multimédia
  • 12. Architecture en Couches (3/4) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 12 Architecture iOS Core Services • Services systèmes fondamentaux pour les applications • ServicesPeer-to-peer:P2PviaBluetooth • iCloud:servicesde stockage sur le cloudapple • Protectiondedonnées:encryption • SQLite, In-AppPurchase,SupportXML… • Frameworks: • CoreFoundation etFoundation Frameworks: typesde base que toutes les applicationsutilisent • Accounts:AccèsSSO pour les comptesutilisateurs • AddressBook: Accèsà la base dedonnées des contactsde l’utilisateur • CoreTelephonyFramework,CoreMedia Framework…
  • 13. Architecture en Couches (4/4) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 13 Architecture iOS Core OS • Caractérisitiques bas niveaupour construire les technologies iOS • Frameworks: • CoreBluetooth: interactionavec lesaccessoiresbluetooth basseénergie • ExternalAccessory:supportpour communiquer avec lesaccessoiresmatérielsattachésàunappareiliOS • Local Authentication:permetd’utiliser TouchIDpour authentifier l’utilisateur • System (Kernel),Security,support64-bit…
  • 14. IHM GUIDELINES Chp5 : Développement iOS Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 14 1. Environnement de Développement iOS 2. Architecture iOS 3. IHM Guidelines 4. Architecture d’une Application 5. Cycle de Vie d’une Application
  • 15. Concepts de Base pour Conception IHM iOS • Déférence • La UI doit aider à comprendre et interagir avec le contenu, pas à l’envahir • Clarté • Le texte doit être lisible, les icônes précises et claires, les ornements subtils • Profondeur • Mouvements réalistes et couches visibles Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 15 IHM Guidelines
  • 16. Concepts de Base pour Conception IHM iOS • Déférence • Prendre avantage de tout l’écran • Reconsidérer le réalisme • Éviter les gradients, ombres… • Laisser le focus sur le contenu • Utiliser des éléments translucides • Laisser deviner le contenu derrière Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 16 IHM Guidelines
  • 17. Concepts de Base pour Conception IHM iOS • Déférence • Prendre avantage de tout l’écran • Reconsidérer le réalisme • Éviter les gradients, ombres… • Laisser le focus sur le contenu • Utiliser des éléments translucides • Laisser deviner le contenu derrière Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17 IHM Guidelines
  • 18. Concepts de Base pour Conception IHM iOS • Déférence • Prendre avantage de tout l’écran • Reconsidérer le réalisme • Éviter les gradients, ombres… • Laisser le focus sur le contenu • Utiliser des éléments translucides • Laisser deviner le contenu derrière Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 18 IHM Guidelines
  • 19. Concepts de Base pour Conception IHM iOS • Clarté • Laisser beaucoup d’espace négatif (Espace autours et entre les éléments d’une image) • Rendre le contenu plus perceptible et compréhensible • Laisser la couleur simplifier l’UI • Utiliser une couleur pour souligner les éléments importants • Assurer la lisibilité en utilisant les polices système • Polices iOS ajustent leur espacement au conteneur • Utiliser les boutons sans bordure Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 19 IHM Guidelines
  • 20. Concepts de Base pour Conception IHM iOS • Clarté • Laisser beaucoup d’espace négatif (Espace autours et entre les éléments d’une image) • Rendre le contenu plus perceptible et compréhensible • Laisser la couleur simplifier l’UI • Utiliser une couleur pour souligner les éléments importants • Assurer la lisibilité en utilisant les polices système • Polices iOS ajustent leur espacement au conteneur • Utiliser les boutons sans bordure Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 20 IHM Guidelines
  • 21. Concepts de Base pour Conception IHM iOS • Clarté • Laisser beaucoup d’espace négatif (Espace autours et entre les éléments d’une image) • Rendre le contenu plus perceptible et compréhensible • Laisser la couleur simplifier l’UI • Utiliser une couleur pour souligner les éléments importants • Assurer la lisibilité en utilisant les polices système • Polices iOS ajustent leur espacement au conteneur • Utiliser les boutons sans bordure Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 21 IHM Guidelines
  • 22. Concepts de Base pour Conception IHM iOS Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 22 IHM Guidelines • Clarté • Laisser beaucoup d’espace négatif (Espace autours et entre les éléments d’une image) • Rendre le contenu plus perceptible et compréhensible • Laisser la couleur simplifier l’UI • Utiliser une couleur pour souligner les éléments importants • Assurer la lisibilité en utilisant les polices système • Polices iOS ajustent leur espacement au conteneur • Utiliser les boutons sans bordure
  • 23. Concepts de Base pour Conception IHM iOS • Profondeur • Affichage du contenu sous forme de couches distinctes • Montrent la hiérarchie et relation entre les objets • Afficher les listes sous forme de couches superposées • Avoir une visibilité sur tous les éléments • Utiliser des transitions pour montrer la hiérarchie Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 23 IHM Guidelines
  • 24. Concepts de Base pour Conception IHM iOS • Profondeur • Affichage du contenu sous forme de couches distinctes • Montrent la hiérarchie et relation entre les objets • Afficher les listes sous forme de couches superposées • Avoir une visibilité sur tous les éléments • Utiliser des transitions pour montrer la hiérarchie Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 24 IHM Guidelines
  • 25. Concepts de Base pour Conception IHM iOS • Profondeur • Utiliser des transitions pour montrer la hiérarchie Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 25 IHM Guidelines
  • 26. Anatomie d’une Application Utilisation de UIKit Framework pour définir les composants de base de l’application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 26 IHM Guidelines
  • 27. Anatomie d’une Application • Quatre catégories de composants graphiques • Barres • Informations contextuelles pour indiquer l’emplacement de l’application, permettre la navigation et initier des actions • Content Views • Vues portant un contenu spécifique à l’application, et qui permettent certains comportements tels que le défilement, l’insertion, le réarrangement… • Contrôles • Éléments graphiques réalisant des actions ou affichant une information • Vues temporaires • Apparaissent brièvement pour donner aux utilisateurs une information importante ou additionnelle Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 27 IHM Guidelines
  • 28. ARCHITECTURE D’UNE APPLICATION Chp5 : Développement iOS Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 28 1. Environnement de Développement iOS 2. Architecture iOS 3. IHM Guidelines 4. Architecture d’une Application 5. Cycle de Vie d’une Application
  • 29. Patrons de Conception • MVC (?) • Target-Action • Delegation Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 29 Architecture d’une Application
  • 30. La Vue • Permet à l’utilisateur d’interagir avec l’application de la manière la plus simple possible • Scene : Écran de l’application • Utilisation des storyboards pour la conception et l’implémentation de l’interface dans un environnement graphique Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 30 Architecture d’une Application
  • 31. Hiérarchie des Vues Catégorie de Vue Objectif Exemples Contenu Afficher un type particulier de contenu Image, étiquette de texte Collection Afficher des collections ou groupes de vues Table, Collection Contrôles Réaliser des actions ou afficher des informations Bouton, Slider, Switch Barres Naviguer, ou réaliser des actions Toolbar, Nav Bar, TabBar Entrées Recevoir untexte à partir de l’utilisateur Textview, barre de recherche Conteneurs Sert de conteneur pour d’autres vues Vue, scroll view Modales Interrompt le flux régulier de l’application pour permettre à l’utilisateur de faire une action Alerte, action sheet Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 31 Architecture d’une Application
  • 32. Hiérarchie des Vues (Exemple) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 32 Architecture d’une Application Window Navigation Controller (Sous-classe de ViewController) View Navigation Bar (dessinée par le Navigation Controller) Slider (Sous-classe de View) Voir Exemple: TODOList-ObjC -1
  • 33. Les Contrôleurs • iOS est basé sur la programmation évènementielle • Le flux de l’application est déterminé par des évènements: • Évènements Système • Évènements Utilisateur • La réponse de l’application à une action de l’utilisateur est reflétée par l’interface • C’est l’utilisateur qui doit avoir le contrôle, pas le développeur! • La logique de gestion des évènements est définie dans le ViewController • Un ViewController pour chaque ContentView (Scene) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 33 Architecture d’une Application
  • 34. Les Contrôleurs : Rôles • Coordination du flux d’information entre le modèle et les vues • Gestion du cycle de vie des ContentViews • Gestion des changements d’orientation de l’appareil • Réponse aux interactions utilisateur • Implémentation des transition d’un type de contenu à un autre • Pour connecter entre le storyboard et le code, ils utilisent: • Actions • Outlets • Contrôles • Contrôleurs de Navigation • Segues (Enchaînements) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 34 Architecture d’une Application
  • 35. Actions • Action: • Un bout de code lié à un évènement qui peut survenir dans votre application • Quand l’ évènement a lieu, le code est exécuté • Une action peut : • Manipuler une donnée • Modifier l’interface utilisateur • Déclencher un traitement • Pour définir une action, il faut créer une méthode avec un type de retour IBAction et un paramètre sender • Sender: représente l’objet responsable du déclenchement de l’action • IBAction: mot clef spécial, indiquant que la méthode est une action, appelée à partir d’un élément de l’Interface Builder (IB) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 35 Architecture d’une Application
  • 36. Outlets et Contrôles • Outlet • Permet de référencer les objets d’une interface à partir du code source • Crée une propriété représentant cet objet dans le fichier ViewController cible • La propriété est de type IBOutlet • Mot clef indiquant que cette propriété est connectée à un élément du Interface Builder • Contrôle • Objet graphique avec lequel un utilisateur peut interagir • bouton, slider, switch • Création d’un évènement de contrôle quand un utilisateur interagir avec un contrôle, faisant partie d’une de ces catégories: • Toucher et glisser • Edition • Changement de valeur Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 36 Architecture d’une Application
  • 37. Contrôleurs de Navigation • View Controller particulier, permettant de gérer les transitions entre les différentes Scenes de votre application • Va créer une pile (LIFO) des différents ViewControllers entre lesquels il navigue, appelée : Pile de Navigation • Le premier élément de la pile (scene qui a déclenché la navigation), s’appelle Root View Controller (il n’est jamais enlevé de la pile) • Les autres View Controllers peuvent être ajoutés ou supprimés de la pile, selon la navigation de l’utilisateur • Un contrôleur de Navigation présente également un contenu propre à lui, en particulier la Barre de Navigation • Vue en haut de la scene, fournissant le contexte de navigation • Montre l’emplacement de l’utilisateur dans la pile de navigation • Définit un bouton Back par défaut, permettant de revenir au dernier élément de la pile • Peut contenir d’autres boutons, à configurer à votre guise Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 37 Architecture d’une Application
  • 38. Segue • Un Segue (ou enchaînement) représente une transition entre deux ViewController: la source et la destination Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 38 Architecture d’une Application
  • 39. Segue • Plusieurs types de Segues: • Show • Fait appel à un nouveau contenu à empiler, au dessus du VC courant • Show Detail • Soit empile un nouveau contenu, soit remplace le VC courant dans la pile (selon le layout utilisé) • Present Modally • Appelle une vue fille, qui cache la vue courante, pour permettre à l’utilisateur de réaliser une action particulière • Popover Presentation • Appelle une vue ancrée à la vue courante, qui disparaît dès qu’on clique ailleurs • Unwind • Permet de naviguer vers une vue précédente dans la pile, pas nécessairement • Custom • Crée une transition personnalisée Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 39 Architecture d’une Application Voir Exemple: TODOList-ObjC -2
  • 40. Types de View Controllers • Content View Controller • Gestion du contenu • Créé en écrivant une sous-classe de UIViewController • Permet de : • Peupler la vue avec des données • Répondre aux évènements utilisateur Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 40 Architecture d’une Application
  • 41. Types de View Controllers • Container View Controller • Arrangent le contenu d’autres View Controllers, ses fils • Peut être un parent d’autres contrôleurs, et un fils d’un autre container • Création d’une hiérarchie • Un conteneur • Fournit sa propre API pour gérer ses fils • Décide si ses fils communiquent ou sont reliés, et quels types de relations ils ont • Peut gérer la hiérarchie des vues • Peut imposer des contraintes de conception spécifiques à ses fils • Plusieurs sous-types: • Navigation Controller • Tab Bar Controller • Split View Controller • Popover Controller • Page View Controller Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 41 Architecture d’une Application
  • 42. Types de View Controllers • Container View Controller • Navigation Controller Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 42 Architecture d’une Application
  • 43. Types de View Controllers • Container View Controller • Tab Bar Controller Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 43 Architecture d’une Application
  • 44. Types de View Controllers • Container View Controller • Split View Controller Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 44 Architecture d’une Application
  • 45. Types de View Controllers • Container View Controller • Popover Controller Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 45 Architecture d’une Application
  • 46. Types de View Controllers • Container View Controller • Page View Controller Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 46 Architecture d’une Application
  • 47. Modèle • Représente une structure de données et (optionnellement) une logique métier pour la consistance de ces données • Utilisation du Framework Foundation pour représenter les types manipulés par l’application • Deux catégories de types de données • Value Classes: types basiques (NSString, NSNumber, NSDate…) • Collection Classes: types composés (NSArray, NSSet et NSDictionary) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 47 Architecture d’une Application Voir Exemple: TODOList-ObjC -3
  • 48. CYCLE DE VIE D’UNE APPLICATION Chp5 : Développement iOS Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 48 1. Environnement de Développement iOS 2. Architecture iOS 3. IHM Guidelines 4. Architecture d’une Application 5. Cycle de Vie d’une Application
  • 49. Point d’Entrée d’une Application • Comme toute application en C : la fonction main • Fonction prédéfinie, créée automatiquement par xCode, et à ne pas modifier • Permet de rendre le contrôle au framework UIKit grâce à la fonction UIApplicationMain, qui permet de : • Créer les objets principaux de l’application • Charger la UI de l’application à partir du storyboard • Appeler votre code pour une installation initiale • Lancer le cycle d’exécution de l’application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 49 Cycle de Vie d’une Application
  • 50. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 50 Cycle de Vie d’une Application
  • 51. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 51 Cycle de Vie d’une Application UIApplication: • Faciliter l’interaction entre le système et les autres objetsde l’application • Gère les évènements • Transmet les transitions et évènements à l’Application Delegate
  • 52. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 52 Cycle de Vie d’une Application Application Delegate : • Au cœurdevotrecode • Leseul objetgaranti dese trouverdans toutes les applications • Travaille avec UIApplication pourgérer: • L’initialisation de l’application • Les états transitions • Les évènements dehaut niveau
  • 53. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 53 Cycle de Vie d’une Application Objets Data Model • Sauvegardent le contenude votre application (base de données + objets associés) Objet Document • Sous-classes de UIDocument • Permet de chargerles données, se trouvant dans plusieurs documents, in-memory, pourpermettre leur manipulation sans que l’application ne soit ANR
  • 54. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 54 Cycle de Vie d’une Application Objets View Controller • Étend la classe UIViewController • Gestion de la présentation du contenude votreapplication à l’écran • Un VCgère une view et ses sous-vues • Utilisent le framework UIKit (entre autres) pourdéfinir des VCparticuliers (tabBar, image picker, navigation…)
  • 55. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 55 Cycle de Vie d’une Application UIWIndow • Permet de coordonnerlaprésentation d’une ouplusieurs vues sur la page • Laplupart des applications ontun seul Window,présentant le contenudans l’écran principal, mais certaines en définissent un additionnel pourun affichage sur un écran externe • Pour passer d’une vueà une autre, un contrôleurest utilisé. Un windown’est jamais remplacé
  • 56. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 56 Cycle de Vie d’une Application Vues et Contrôles • Représentation visuelle du contenu • UIKit fournit des vues standards pourreprésenter plusieurs types de contenus Layer Objects • Incorporentdescouches de CoreAnimation: infrastructure d’animation graphique
  • 57. États d’Exécution d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 57 Cycle de Vie d’une Application
  • 58. États d’Exécution d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 58 Cycle de Vie d’une Application L’application n’a pas été lancée ouétait en exécution et aété terminée par le système
  • 59. États d’Exécution d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 59 Cycle de Vie d’une Application L’application est en exécution en avant-plan, mais ne reçoitpas d’évènements. Elle peut cependant être entrain d’exécuter un autre code En général, c’est un état transitoire
  • 60. États d’Exécution d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 60 Cycle de Vie d’une Application L’application est en exécution en avant-plan, et reçoit des évènements. Mode normalpourles applications en avant-plan
  • 61. États d’Exécution d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 61 Cycle de Vie d’une Application L’application est en arrière-plan, et exécute du code. En général, état transitoire avant la suspension Mais, certaines applications entrent directement dans cet état au lieu de inactive, si elles veulent exécuter du codeen arrière plan au démarrage
  • 62. États d’Exécution d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 62 Cycle de Vie d’une Application L’application est en arrière-plan, mais n’ exécute pas decode. L’application reste en mémoire Lesystème fait passer les applications à cet état automatiquement, sans les notifier Si le système aproblème de mémoire,il peut purgerdes applications suspendues sans les notifier pourlaisser de l’espace aux application en premier plan
  • 63. États d’Exécution d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 63 Cycle de Vie d’une Application didFinishLaunchingWithOptions applicationWillResignActive applicationDidBecomeActive applicationDidEnterBackgroundapplicationWillEnterForeground applicationWillTerminate Voir Exemple: AppLifeCycle
  • 64. Références • Tutorial Getting Started: https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiO S/index.html#//apple_ref/doc/uid/TP40011343-CH2-SW1 • IHM: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptu al/MobileHIG/index.html#//apple_ref/doc/uid/TP40006556-CH66-SW1 • Cycle de vie de l’Applicationhttps://developer.apple.com/library/ios/documentation/iPhone/Conce ptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html#//apple_r ef/doc/uid/TP40007072-CH2-SW1 • Architecture iOS https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/i PhoneOSTechOverview/Introduction/Introduction.html Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 64 Site du Développeur Apple: developer.apple.com