ИспользованиеCoreDataвiPhoneприложениях<br />
Что такое Core Data<br />Framework, появился в iPhone 3.0 SDK<br />“Полноценный”ORM<br />Поддерживает три вида хранилищ да...
     Еще немного о возможностях Core Data<br />Эффективная работа с графами объектов<br />Операции Undo/Redo на графе объе...
Основные части Core Data<br />PersistentStoreCoordinator<br />
Основные части Core Data<br />Отвечает за координацию Хранилищ данных (Persistence Stores)<br />PersistentStoreCoordinator...
Основные части Core Data<br />PersistentStoreCoordinator<br />PersistentStores<br />Binary<br />SQLite<br />
Основные части Core Data<br />PersistentStoreCoordinator<br />PersistentStores<br />Отвечают за хранение данных в определе...
Основные части Core Data<br />ManagedObjectModel<br />PersistentStoreCoordinator<br />PersistentStores<br />Binary<br />SQ...
Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />Хранит информацио о модели данных. О...
Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />ManagedObjectContext<br />Persistent...
Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />Содержит активные объекты<br />Persi...
Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />ManagedObjects<br />PersistentStores...
Как можно использовать?<br />Хранение данных<br /><ul><li>Локальный кеш
Полноценное хранилище</li></ul>Модель данных<br /><ul><li>Модели, состоящие из набора сущностей со сложными взаимосвязями
Редактируемая модель с возможностью сохранения состояний</li></li></ul><li>Использование Core Data<br />Хранение данных<br />
Пример модели данных из реального приложения<br />
Использование Core Data<br />модель данных для графического редактора<br />
модель данных для графического редактора<br />player<br />MODEL<br />VIEW<br />
модель данных для графического редактора<br />SAVE<br />player<br />MODEL<br />VIEW<br />
модель данных для графического редактора<br />hat<br />player<br />player<br />MODEL<br />shoes<br />EDIT<br />VIEW<br />
модель данных для графического редактора<br />hat<br />SAVE<br />player<br />player<br />MODEL<br />shoes<br />VIEW<br />
модель данных для графического редактора<br />hat<br />redo<br />player<br />player<br />MODEL<br />shoes<br />undo<br />V...
модель данных для графического редактора<br />hair<br />hat<br />redo<br />player<br />player<br />MODEL<br />player<br />...
модель данных для графического редактора<br />hair<br />hat<br />SAVE<br />redo<br />player<br />player<br />MODEL<br />pl...
модель данных для графического редактора<br />hair<br />hat<br />redo<br />redo<br />player<br />player<br />MODEL<br />pl...
Кроме Core Data что-то надо?<br />
Откуда приходят данные в приложение<br />С сервера<br />Результаты поиска<br />Состояние системы<br />Кеш<br />От пользова...
Откуда приходят данные в приложение<br />С сервера<br />Результаты поиска<br />Состояние системы<br />Кеш<br />От пользова...
Откуда приходят данные в приложение<br />С сервера<br />Результаты поиска<br />Состояние системы<br />Кеш<br />От пользова...
Лучше не так<br />Core Data<br />JSON<br />XML<br />Input<br />
Структурное решение<br />(конкретная реализация)<br />Core Data/SQLite/FMDB<br />Интерфейс<br />JSON<br />XML<br />Input<b...
Структура приложения<br />XML / JSON парсер<br />Протокол(Интерфейс) доступа к данным<br />Конкретная реализация доступа к...
Удобно. Просто.    <br />
Удобно. Просто.     <br />А что с производительностью?<br />
Core Data vsSQLite PO<br />
Core Data vsSQLite PO<br />Количество Объектов – 1000<br />Количество Запросов – 1000<br />17 полей<br />Индекс по полю ‘p...
Core Data vsSQLite PO<br />
Core Data vsSQLite PO<br />
Core Data vsSQLite PO<br />
Core Data vsSQLite PO<br />
Core Data vsSQLite PO<br />
Core Data немного быстрее<br />
Core Data немного быстрее<br />НО!<br />
У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />
У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />...
У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />...
У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />...
О чем не надо забывать<br />iPhone – это не Desktop<br />16 Гб места <br />128 МBRAM<br />40 MB RAM под приложение<br />di...
Спасибо за внимание!<br />Тайкало Павел<br />Email:tt.kilew@gmail.com<br />Skype:tt.kilew<br />
Upcoming SlideShare
Loading in...5
×

Павел Тайкало - Использование CoreData в iPhone приложения

5,098

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,098
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Павел Тайкало - Использование CoreData в iPhone приложения

  1. 1. ИспользованиеCoreDataвiPhoneприложениях<br />
  2. 2. Что такое Core Data<br />Framework, появился в iPhone 3.0 SDK<br />“Полноценный”ORM<br />Поддерживает три вида хранилищ данных(InMemory, SQLite, Binary)<br />Имеет графический интерфейс для редактирования модели данных в XCode<br />
  3. 3. Еще немного о возможностях Core Data<br />Эффективная работа с графами объектов<br />Операции Undo/Redo на графе объектов<br />Поддержка миграции между версиями моделей данных<br />Работа с несколькими хранилищами одновременно<br />
  4. 4. Основные части Core Data<br />PersistentStoreCoordinator<br />
  5. 5. Основные части Core Data<br />Отвечает за координацию Хранилищ данных (Persistence Stores)<br />PersistentStoreCoordinator<br />
  6. 6. Основные части Core Data<br />PersistentStoreCoordinator<br />PersistentStores<br />Binary<br />SQLite<br />
  7. 7. Основные части Core Data<br />PersistentStoreCoordinator<br />PersistentStores<br />Отвечают за хранение данных в определенном виде (SQLite, Binary, …)<br />Binary<br />SQLite<br />
  8. 8. Основные части Core Data<br />ManagedObjectModel<br />PersistentStoreCoordinator<br />PersistentStores<br />Binary<br />SQLite<br />
  9. 9. Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />Хранит информацио о модели данных. О сущностях, связях, зависимостях<br />PersistentStores<br />Binary<br />SQLite<br />
  10. 10. Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />ManagedObjectContext<br />PersistentStores<br />Binary<br />SQLite<br />
  11. 11. Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />Содержит активные объекты<br />PersistentStores<br />ManagedObjectContext<br />Binary<br />SQLite<br />
  12. 12. Основные части Core Data<br />PersistentStoreCoordinator<br />ManagedObjectModel<br />ManagedObjects<br />PersistentStores<br />ManagedObjectContext<br />Binary<br />SQLite<br />
  13. 13. Как можно использовать?<br />Хранение данных<br /><ul><li>Локальный кеш
  14. 14. Полноценное хранилище</li></ul>Модель данных<br /><ul><li>Модели, состоящие из набора сущностей со сложными взаимосвязями
  15. 15. Редактируемая модель с возможностью сохранения состояний</li></li></ul><li>Использование Core Data<br />Хранение данных<br />
  16. 16. Пример модели данных из реального приложения<br />
  17. 17. Использование Core Data<br />модель данных для графического редактора<br />
  18. 18. модель данных для графического редактора<br />player<br />MODEL<br />VIEW<br />
  19. 19. модель данных для графического редактора<br />SAVE<br />player<br />MODEL<br />VIEW<br />
  20. 20. модель данных для графического редактора<br />hat<br />player<br />player<br />MODEL<br />shoes<br />EDIT<br />VIEW<br />
  21. 21. модель данных для графического редактора<br />hat<br />SAVE<br />player<br />player<br />MODEL<br />shoes<br />VIEW<br />
  22. 22. модель данных для графического редактора<br />hat<br />redo<br />player<br />player<br />MODEL<br />shoes<br />undo<br />VIEW<br />
  23. 23. модель данных для графического редактора<br />hair<br />hat<br />redo<br />player<br />player<br />MODEL<br />player<br />shoes<br />shoes<br />undo<br />EDIT<br />VIEW<br />
  24. 24. модель данных для графического редактора<br />hair<br />hat<br />SAVE<br />redo<br />player<br />player<br />MODEL<br />player<br />shoes<br />shoes<br />undo<br />VIEW<br />
  25. 25. модель данных для графического редактора<br />hair<br />hat<br />redo<br />redo<br />player<br />player<br />MODEL<br />player<br />shoes<br />shoes<br />undo<br />undo<br />VIEW<br />
  26. 26. Кроме Core Data что-то надо?<br />
  27. 27. Откуда приходят данные в приложение<br />С сервера<br />Результаты поиска<br />Состояние системы<br />Кеш<br />От пользователя<br />Прямой ввод данных<br />
  28. 28. Откуда приходят данные в приложение<br />С сервера<br />Результаты поиска<br />Состояние системы<br />Кеш<br />От пользователя<br />Прямой ввод данных<br />Core Data<br />JSON<br />XML<br />Input<br />
  29. 29. Откуда приходят данные в приложение<br />С сервера<br />Результаты поиска<br />Состояние системы<br />Кеш<br />От пользователя<br />Прямой ввод данных<br />Core Data<br />JSON<br />XML<br />Input<br />
  30. 30. Лучше не так<br />Core Data<br />JSON<br />XML<br />Input<br />
  31. 31. Структурное решение<br />(конкретная реализация)<br />Core Data/SQLite/FMDB<br />Интерфейс<br />JSON<br />XML<br />Input<br />
  32. 32. Структура приложения<br />XML / JSON парсер<br />Протокол(Интерфейс) доступа к данным<br />Конкретная реализация доступа к данным (CoreData, SQLite PO, FMDB)<br />
  33. 33. Удобно. Просто. <br />
  34. 34. Удобно. Просто. <br />А что с производительностью?<br />
  35. 35. Core Data vsSQLite PO<br />
  36. 36. Core Data vsSQLite PO<br />Количество Объектов – 1000<br />Количество Запросов – 1000<br />17 полей<br />Индекс по полю ‘phone’<br />
  37. 37. Core Data vsSQLite PO<br />
  38. 38. Core Data vsSQLite PO<br />
  39. 39. Core Data vsSQLite PO<br />
  40. 40. Core Data vsSQLite PO<br />
  41. 41. Core Data vsSQLite PO<br />
  42. 42. Core Data немного быстрее<br />
  43. 43. Core Data немного быстрее<br />НО!<br />
  44. 44. У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />
  45. 45. У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />Недокументированные особенности работы<br />
  46. 46. У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />Недокументированные особенности работы<br />RTFM<br />
  47. 47. У Core Data тоже есть минусы<br />Не SQL формат запросов<br />Сырая документация (не полное портирование из MacOS X)<br />Недокументированные особенности работы<br />RTFM GIYF (&quot;Google Is Your Friend&quot;)<br />Сложно* создавать вложенные запросы<br />
  48. 48. О чем не надо забывать<br />iPhone – это не Desktop<br />16 Гб места <br />128 МBRAM<br />40 MB RAM под приложение<br />didReceiveMemoryWarningсразу, как только используется больше 3 MB<br />
  49. 49. Спасибо за внимание!<br />Тайкало Павел<br />Email:tt.kilew@gmail.com<br />Skype:tt.kilew<br />
  50. 50. Отдельное спасибо<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×