• Like
Павел Тайкало - Использование CoreData в iPhone приложения
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

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

  • 5,015 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
5,015
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
30
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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