64
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

Chp5 - Développement iOS

Embed Size (px)

Citation preview

Page 1: Chp5 - Développement iOS

Chp6 : Développement iOSCycle de Vie, Composants Principaux, Comportement…

Conception et Développement d’Applications MobilesGL4 (Opt ion Mobi le) - 2016

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 1

Page 2: Chp5 - Développement iOS

PLAN

1. Environnement de Développement iOS2. Architecture de l’Environnement iOS3. IHM Guidelines

4. Architecture d’une Application iOS5. Cycle de Vie d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 2

Chp5 : Développement iOS

Page 3: Chp5 - Développement iOS

ENVIRONNEMENT DE DÉVELOPPEMENT IOSChp5 : Développement iOS

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 3

1. Environnement de Développement iOS

2. Architecture iOS

3. IHM Guidelines

4. Architecture d’une Application

5. Cycle de V ie d’une Application

Page 4: Chp5 - Développement iOS

iOS

• Système d’exploitation présent sur les appareils iPhone, iPadet 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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 4

Environnement de Développement iOS

Page 5: Chp5 - 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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 5

Environnement de Développement iOS

Page 6: Chp5 - 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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 6

Environnement de Développement iOS

Page 7: Chp5 - Développement iOS

Distribution des Versions (Mars 2016)

• 79% des appareils utilisent iOS 9.

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 7

Environnement de Développement iOS

https://developer.apple.com/support/appstore/

Page 8: Chp5 - Développement iOS

ARCHITECTURE IOSChp5 : Développement iOS

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 8

1. Environnement de Développement iOS

2. Architecture iOS

3. IHM Guidelines

4. Architecture d’une Application

5. Cycle de V ie d’une Application

Page 9: Chp5 - Développement iOS

Architecture en Couches

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 9

Architecture iOS

Services et Technologies

Fondamentales

Services et Technologies

Sophistiquées

Page 10: Chp5 - Développement iOS

Architecture en Couches (1/4)

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 10

Architecture iOS

Cocoa Touch• Définit:

• L ’ apparence de l’application• L ’ infrastructure et support pour les technologies clef

• Contient les caractéristiques clés pour construire des applications iOS, par ex:• Handoff: extension de la UX entre les appareils• AirDrop: partage de documents entre appareils proches• Storyboards: permet de créer vos interfaces et les visualiser au même endroit• Notifications push: alerter les utilisateurs des informations

• Autres frameworks• GameKit: support pour le Game Center• Address Book UI: Interface standard de création et édition des contacts du téléphone• EventKit: contrôleurs pour manipuler les évènements du calendrier

Page 11: Chp5 - Développement iOS

Architecture en Couches (2/4)

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 11

Architecture iOS

Media• Contient les technologies graphiques, audio et vidéo pour implémenter les expériences multimédia

Page 12: Chp5 - Développement iOS

Architecture en Couches (3/4)

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 12

Architecture iOSCore Services• Services systèmes fondamentaux pour les applications

• Services Peer-to-peer: P2P via Bluetooth• iCloud: services de stockage sur le cloud apple• Protection de données: encryption• SQLite, In-App Purchase, Support XML…

• Frameworks:• Core Foundation et Foundation Frameworks: types de base que toutes les applications utilisent• Accounts: Accès SSO pour les comptes utilisateurs• Address Book: Accès à la base de données des contacts de l’utilisateur• Core Telephony Framework, Core Media Framework…

Page 13: Chp5 - Développement iOS

Architecture en Couches (4/4)

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 13

Architecture iOS

Core OS• Caractérisitiques bas niveau pour construire les technologies iOS• Frameworks:

• Core Bluetooth: interaction avec les accessoires bluetooth basse énergie• External Accessory: support pour communiquer avec les accessoires matériels attachés à un appareil iOS• Local Authentication: permet d’utiliser TouchID pour authentifier l’utilisateur• System (Kernel), Security, support 64-bit…

Page 14: Chp5 - Développement iOS

IHM GUIDELINESChp5 : Développement iOS

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 14

1. Environnement de Développement iOS

2. Architecture iOS

3. IHM Guidelines

4. Architecture d’une Application

5. Cycle de V ie d’une Application

Page 15: Chp5 - Développement iOS

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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 15

IHM Guidelines

Page 16: Chp5 - Développement iOS

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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 16

IHM Guidelines

Page 17: Chp5 - Développement iOS

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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 17

IHM Guidelines

Page 18: Chp5 - Développement iOS

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 derr ière

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 18

IHM Guidelines

Page 19: Chp5 - Développement iOS

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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 19

IHM Guidelines

Page 20: Chp5 - Développement iOS

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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 20

IHM Guidelines

Page 21: Chp5 - Développement iOS

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. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 21

IHM Guidelines

Page 22: Chp5 - Développement iOS

Concepts de Base pour Conception IHM iOS

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 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

Page 23: Chp5 - Développement iOS

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 visibil ité sur tous les

éléments

• Utiliser des transitions pour montrer la hiérarchie

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 23

IHM Guidelines

Page 24: Chp5 - Développement iOS

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 visibil ité sur tous les

éléments

• Utiliser des transitions pour montrer la hiérarchie

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 24

IHM Guidelines

Page 25: Chp5 - Développement iOS

Concepts de Base pour Conception IHM iOS

• Profondeur• Utiliser des transitions pour montrer la hiérarchie

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 25

IHM Guidelines

Page 26: Chp5 - Développement iOS

Anatomie d’une Application

Utilisation de UIKit Framework pour définir les composants de base de l’application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 26

IHM Guidelines

Page 27: Chp5 - Développement iOS

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 certa ins

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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 27

IHM Guidelines

Page 28: Chp5 - Développement iOS

ARCHITECTURE D’UNE APPLICATIONChp5 : Développement iOS

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 28

1. Environnement de Développement iOS

2. Architecture iOS

3. IHM Guidelines

4. Architecture d’une Application

5. Cycle de V ie d’une Application

Page 29: Chp5 - Développement iOS

Patrons de Conception

• MVC (?)

• Target-Action

• Delegation

Dr. L i l ia SFAXIw w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 29

Architecture d’une Application

Page 30: Chp5 - Développement iOS

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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 30

Architecture d’une Application

Page 31: Chp5 - Développement iOS

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, Tab Bar

Entrées Recevoir un texte à 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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 31

Architecture d’une Application

Page 32: Chp5 - Développement iOS

Hiérarchie des Vues (Exemple)

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 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

Page 33: Chp5 - Développement iOS

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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 33

Architecture d’une Application

Page 34: Chp5 - Développement iOS

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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 34

Architecture d’une Application

Page 35: Chp5 - Développement iOS

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 util isateur

• Déclencher un traitement

• Pour définir une action, i l 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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 35

Architecture d’une Application

Page 36: Chp5 - Développement iOS

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 V iewController cible• La propriété est de type IBOutlet

• Mot clef indiq uant q ue cette propriété est connectée à un élément du Interface Bu i lder

• Contrôle• Objet graphique avec lequel un utilisateur peut interagir

• bouton, s lider, switch

• Création d’un évènement de contrôle quand un utilisateur interagir avec un contrôle, fa isant partie d’une de ces catégories:• Toucher et glisser • Edition • Changement de va leur

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 36

Architecture d’une Application

Page 37: Chp5 - Développement iOS

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, à conf igurer à votre guise

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 37

Architecture d’une Application

Page 38: Chp5 - Développement iOS

Segue

• Un Segue (ou enchaînement) représente une transition entre deux ViewController: la source et la destination

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 38

Architecture d’une Application

Page 39: Chp5 - Développement iOS

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éa liser une action particulière

• Popover Presentation• Appelle une vue ancrée à la vue courante, qui disparaît dès qu’on clique a illeurs

• Unwind• Permet de naviguer vers une vue précédente dans la pile, pas nécessairement

• Custom• Crée une transition personnalisée

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 39

Architecture d’une Application

Voir Exemple :TODOList-ObjC - 2

Page 40: Chp5 - Développement iOS

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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 40

Architecture d’une Application

Page 41: Chp5 - Développement iOS

Types de View Controllers

• Container View Controller• Arrangent le contenu d’autres View Controllers, ses f ils• Peut être un parent d’autres contrôleurs, et un f ils d’un autre container

• Créatio n d’une hiérarchie

• Un conteneur• Fo urnit sa pro pre API po ur gérer ses fi ls

• Déc ide si ses fi ls co mmuniquent o u so nt rel iés, et quels types de relatio ns i ls o nt• Peut gérer la h iérarchie des vues

• Peut impo ser des co ntraintes de co nceptio n spéc ifiques à ses fi ls

• Plusieurs sous-types:• Navigatio n Co ntro l ler

• Tab Bar Co ntro l ler• Split View Co ntro l ler

• Po po ver Co ntro l ler• Page View Co ntro l ler

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 41

Architecture d’une Application

Page 42: Chp5 - Développement iOS

Types de View Controllers

• Container View Controller• Navigation Controller

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 42

Architecture d’une Application

Page 43: Chp5 - Développement iOS

Types de View Controllers

• Container View Controller• Tab Bar Controller

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 43

Architecture d’une Application

Page 44: Chp5 - Développement iOS

Types de View Controllers

• Container View Controller• Split View Controller

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 44

Architecture d’une Application

Page 45: Chp5 - Développement iOS

Types de View Controllers

• Container View Controller• Popover Controller

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 45

Architecture d’une Application

Page 46: Chp5 - Développement iOS

Types de View Controllers

• Container View Controller• Page View Controller

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 46

Architecture d’une Application

Page 47: Chp5 - Développement iOS

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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 47

Architecture d’une Application

Voir Exemple :TODOList-ObjC - 3

Page 48: Chp5 - Développement iOS

CYCLE DE VIE D’UNE APPLICATIONChp5 : Développement iOS

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 48

1. Environnement de Développement iOS

2. Architecture iOS

3. IHM Guidelines

4. Architecture d’une Application

5. Cycle de V ie d’une Application

Page 49: Chp5 - Développement iOS

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. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 49

Cycle de Vie d’une Application

Page 50: Chp5 - Développement iOS

Structure d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 50

Cycle de Vie d’une Application

Page 51: Chp5 - Développement iOS

Structure d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 51

Cycle de Vie d’une Application

UIApplication: • Faciliter l’interaction entre le

système et les autres objets de l’application

• Gère les évènements• Transmet les transitions et

évènements à l’Application Delegate

Page 52: Chp5 - Développement iOS

Structure d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 52

Cycle de Vie d’une Application

Application Delegate : • Au cœur de votre code • Le seul objet garanti de se trouver dans

toutes les applications• Travaille avec UIApplication pour gérer:

• L’initialisation de l’application• Les états transitions• Les évènements de haut niveau

Page 53: Chp5 - Développement iOS

Structure d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 53

Cycle de Vie d’une Application

Objets Data Model• Sauvegardent le contenu de votre

application (base de données + objets associés)

Objet Document• Sous-classes de UIDocument• Permet de charger les données, se trouvant

dans plusieurs documents, in-memory, pour permettre leur manipulation sans que l’application ne soit ANR

Page 54: Chp5 - Développement iOS

Structure d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 54

Cycle de Vie d’une Application

Objets View Controller• Étend la classe UIViewController• Gestion de la présentation du contenu de

votre application à l’écran• Un VC gère une view et ses sous-vues• Utilisent le framework UIKit (entre autres)

pour définir des VC particuliers (tabBar, image picker, navigation…)

Page 55: Chp5 - Développement iOS

Structure d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 55

Cycle de Vie d’une Application

UIWIndow• Permet de coordonner la présentation d’une ou plusieurs vues

sur la page• La plupart des applications ont un seul Window, présentant le

contenu dans l’écran principal, mais certaines en définissent un additionnel pour un affichage sur un écran externe

• Pour passer d’une vue à une autre, un contrôleur est utilisé. Un window n’est jamais remplacé

Page 56: Chp5 - Développement iOS

Structure d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 56

Cycle de Vie d’une Application

Vues et Contrôles• Représentation visuelle du contenu• UIKit fournit des vues standards pour représenter plusieurs

types de contenusLayer Objects• Incorporent des couches de Core Animation: infrastructure

d’animation graphique

Page 57: Chp5 - Développement iOS

États d’Exécution d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 57

Cycle de Vie d’une Application

Page 58: Chp5 - Développement iOS

États d’Exécution d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 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

Page 59: Chp5 - Développement iOS

États d’Exécution d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 59

Cycle de Vie d’une Application

L’ application est en exécution en avant-plan, mais ne reçoit pas d’évènements. Elle peut cependant être entrain d’exécuter un autre codeEn général, c’est un état transitoire

Page 60: Chp5 - Développement iOS

États d’Exécution d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 60

Cycle de Vie d’une Application

L’ application est en exécution en avant-plan, et reçoit des évènements. Mode normal pour les applications en avant-plan

Page 61: Chp5 - Développement iOS

États d’Exécution d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 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 suspensionMais, certaines applications entrent directement dans cet état au lieu de inactive, si elles veulent exécuter du code en arrière plan au démarrage

Page 62: Chp5 - Développement iOS

États d’Exécution d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 62

Cycle de Vie d’une Application

L’ application est en arrière-plan, mais n’ exécute pas de code. L’ application reste en mémoireLe système fait passer les applications à cet état automatiquement, sans les notifierSi le système a problème de mémoire, il peut purger des applications suspendues sans les notifier pour laisser de l’espace aux application en premier plan

Page 63: Chp5 - Développement iOS

États d’Exécution d’une Application

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 63

Cycle de Vie d’une Application

didFinishLaunchingWithOptions

applicationWillResignActive

applicationDidBecomeActive

applicationDidEnterBackgroundapplicationWillEnterForeground

applicationWillTerminate

Voir Exemple :AppLifeCycle

Page 64: Chp5 - Développement iOS

Références

• Tutorial Getting Started: https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/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/Conceptual/iPhoneOSProgrammingGuide/ TheAppLifeCycle/ TheAppLifeCycle .html#//apple_ref/doc/uid/ TP40007072-CH2-SW1

• Architecture iOShttps://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/Introduction/Introduction.html

Dr. L i l ia SFAXI w w w.l i l iasfaxi .w ix.co m/ l i l iasfaxi

Sl id e 64

Site du Développeur Apple: developer.apple.com