Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Les différents design patterns pour CoreData par Emmanuel Furnon

1 821 vues

Publié le

Les différents design patterns pour CoreData par Emmanuel Furnon lors de la CocoaHeads de Septembre 2016 chez Keyrus.

Publié dans : Ingénierie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Les différents design patterns pour CoreData par Emmanuel Furnon

  1. 1. Les différents design patterns pour CoreData Par Emmanuel Furnon, Développeur mobile chez Keyrus
  2. 2. Sommaire • CoreData • Architecture • Stack • Context • Les différents designs patterns • Pattern DAO • Pattern Active Record
  3. 3. Rappels sur CoreData • Ce n’est pas : • Une base de données relationnelle • Un ORM • Gestion de graphes d’objets • Stockage des données : • XML • SQLite • En mémoire
  4. 4. CoreData Architecture
  5. 5. CoreData Model Définition de la structure du graphe d’objets Les entités Les attributs Les relations
  6. 6. CoreData Context Object A Object B Object C Object D Main Thread Private Thread NSPrivateQueueConcurrencyType NSMainQueueConcurrencyType
  7. 7. CoreData Store Store Coordinator SQLite File In Memory A B C D F E B
  8. 8. CoreData Stack ?
  9. 9. Core Data Nested Context • Thread-safe • Découpage des tâches • Synchronisation automatique • Perte de performance sur de larges données
  10. 10. Core Data Multiple Stacks • Découpage des tâches • Performant sur de larges données • Complexe à mettre en place • Difficulté à débugger
  11. 11. Les différents design patterns • Comment encapsuler la couche de persistance/stockage ? • Comment requêter une source de données ? • Comment lier la logique métier à une base de données ? • Comment assurer un requêtage optimisé et performant ?
  12. 12. Couche DAO Pattern DAO • Data Access Object Source de données Requêtage Résultats Objets métiers
  13. 13. Pattern DAO ? ! DAOs Impl. DAO Factory
  14. 14. Pattern DAO
  15. 15. Pattern DAO
  16. 16. Pattern DAO • Flexibilité/Maintenabilité • Séparation de la logique métier • Testabilité • Beaucoup de fichiers • Peu adapté aux petits projets
  17. 17. Couche Active Record Pattern Active Record Source de données Requêtage Résultats Objets métiers
  18. 18. Pattern Active Record
  19. 19. Pattern Active Record • Facilité d’utilisation • Lien direct avec la base • Flexibilité • Mise en place de requêtes complexes
  20. 20. Lien utiles • MagicRecord : https://github.com/magicalpanda/MagicalRecord • Realm : https://realm.io • Projet d’exemple : https://github.com/efurnon/CoreData-Test

×