Chp6 : Développement iOS
Cycle de Vie, Composants Principaux, Comportement…
Conception et Développement d’Applications Mob...
PLAN
1. Environnement de Développement iOS
2. Architecture de l’Environnement iOS
3. IHM Guidelines
4. Architecture d’une ...
ENVIRONNEMENT DE DÉVELOPPEMENT IOS
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 3
1. E...
iOS
• Système d’exploitation présent sur les appareils iPhone, iPad
et iPod touch
• Gère le matériel de l’appareil et four...
iOS SDK
• Contient les outils et interfaces nécessaires pour développer,
installer, exécuter et tester les applications na...
En quelques mots, iOS…
• Utilise une architecture en couches
• Offre des frameworks pour manipuler les interfaces système
...
Distribution des Versions (Mars 2016)
• 79% des appareils utilisent iOS 9.
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfa...
ARCHITECTURE IOS
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 8
1. Environnement de Dé...
Architecture en Couches
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 9
Architecture iOS
Services et
Technologie...
Architecture en Couches (1/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 10
Architecture iOS
CocoaTouch
• Déf...
Architecture en Couches (2/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 11
Architecture iOS
Media
• Contient...
Architecture en Couches (3/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 12
Architecture iOS
Core Services
• ...
Architecture en Couches (4/4)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 13
Architecture iOS
Core OS
• Caract...
IHM GUIDELINES
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 14
1. Environnement de Dév...
Concepts de Base pour Conception IHM iOS
• Déférence
• La UI doit aider à comprendre et interagir avec le
contenu, pas à l...
Concepts de Base pour Conception IHM iOS
• Déférence
• Prendre avantage de tout l’écran
• Reconsidérer le réalisme
• Évite...
Concepts de Base pour Conception IHM iOS
• Déférence
• Prendre avantage de tout l’écran
• Reconsidérer le réalisme
• Évite...
Concepts de Base pour Conception IHM iOS
• Déférence
• Prendre avantage de tout l’écran
• Reconsidérer le réalisme
• Évite...
Concepts de Base pour Conception IHM iOS
• Clarté
• Laisser beaucoup d’espace négatif
(Espace autours et entre les élément...
Concepts de Base pour Conception IHM iOS
• Clarté
• Laisser beaucoup d’espace négatif
(Espace autours et entre les élément...
Concepts de Base pour Conception IHM iOS
• Clarté
• Laisser beaucoup d’espace négatif
(Espace autours et entre les élément...
Concepts de Base pour Conception IHM iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 22
IHM Guidelines
• Clart...
Concepts de Base pour Conception IHM iOS
• Profondeur
• Affichage du contenu sous forme de
couches distinctes
• Montrent l...
Concepts de Base pour Conception IHM iOS
• Profondeur
• Affichage du contenu sous forme de
couches distinctes
• Montrent l...
Concepts de Base pour Conception IHM iOS
• Profondeur
• Utiliser des transitions pour montrer la hiérarchie
Dr. Lilia SFAX...
Anatomie d’une Application
Utilisation de UIKit Framework pour définir les composants de base de l’application
Dr. Lilia S...
Anatomie d’une Application
• Quatre catégories de composants graphiques
• Barres
• Informations contextuelles pour indique...
ARCHITECTURE D’UNE APPLICATION
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 28
1. Envi...
Patrons de Conception
• MVC (?)
• Target-Action
• Delegation
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 29
Ar...
La Vue
• Permet à l’utilisateur d’interagir avec l’application de la manière la plus
simple possible
• Scene : Écran de l’...
Hiérarchie des Vues
Catégorie de Vue Objectif Exemples
Contenu Afficher un type particulier de contenu Image, étiquette de...
Hiérarchie des Vues (Exemple)
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 32
Architecture d’une Application
Wi...
Les Contrôleurs
• iOS est basé sur la programmation évènementielle
• Le flux de l’application est déterminé par des évènem...
Les Contrôleurs : Rôles
• Coordination du flux d’information entre le modèle et les vues
• Gestion du cycle de vie des Con...
Actions
• Action:
• Un bout de code lié à un évènement qui peut survenir dans votre application
• Quand l’ évènement a lie...
Outlets et Contrôles
• Outlet
• Permet de référencer les objets d’une interface à partir du code source
• Crée une proprié...
Contrôleurs de Navigation
• View Controller particulier, permettant de gérer les transitions entre les
différentes Scenes ...
Segue
• Un Segue (ou enchaînement) représente une transition entre deux
ViewController: la source et la destination
Dr. Li...
Segue
• Plusieurs types de Segues:
• Show
• Fait appel à un nouveau contenu à empiler, au dessus du VC courant
• Show Deta...
Types de View Controllers
• Content View Controller
• Gestion du contenu
• Créé en écrivant une sous-classe de UIViewContr...
Types de View Controllers
• Container View Controller
• Arrangent le contenu d’autres View Controllers, ses fils
• Peut êt...
Types de View Controllers
• Container View Controller
• Navigation Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/lilia...
Types de View Controllers
• Container View Controller
• Tab Bar Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfa...
Types de View Controllers
• Container View Controller
• Split View Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/lilia...
Types de View Controllers
• Container View Controller
• Popover Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfa...
Types de View Controllers
• Container View Controller
• Page View Controller
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/lilias...
Modèle
• Représente une structure de données et (optionnellement) une
logique métier pour la consistance de ces données
• ...
CYCLE DE VIE D’UNE APPLICATION
Chp5 : Développement iOS
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 48
1. Envi...
Point d’Entrée d’une Application
• Comme toute application en C : la fonction main
• Fonction prédéfinie, créée automatiqu...
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
UIAp...
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 52
Cycle de Vie d’une Application
Appl...
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 53
Cycle de Vie d’une Application
Obje...
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 54
Cycle de Vie d’une Application
Obje...
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 55
Cycle de Vie d’une Application
UIWI...
Structure d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 56
Cycle de Vie d’une Application
Vues...
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 57
Cycle de Vie d’une Applicat...
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 58
Cycle de Vie d’une Applicat...
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 59
Cycle de Vie d’une Applicat...
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 60
Cycle de Vie d’une Applicat...
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 61
Cycle de Vie d’une Applicat...
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 62
Cycle de Vie d’une Applicat...
États d’Exécution d’une Application
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 63
Cycle de Vie d’une Applicat...
Références
• Tutorial Getting Started:
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiO
S...
Prochain SlideShare
Chargement dans…5
×

Chp6 - Développement iOS

2 198 vues

Publié le

Visitez http://liliasfaxi.wix.com/liliasfaxi !

Publié dans : Technologie
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 198
Sur SlideShare
0
Issues des intégrations
0
Intégrations
834
Actions
Partages
0
Téléchargements
162
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Chp6 - Développement iOS

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 29. Patrons de Conception • MVC (?) • Target-Action • Delegation Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 29 Architecture d’une Application
  30. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 50. Structure d’une Application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 50 Cycle de Vie d’une Application
  51. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×