Павел Тайкало - Использование CoreData в iPhone приложения - Presentation Transcript
ИспользованиеCoreDataвiPhoneприложениях
Что такое Core Data Framework, появился в iPhone 3.0 SDK “Полноценный”ORM Поддерживает три вида хранилищ данных(InMemory, SQLite, Binary) Имеет графический интерфейс для редактирования модели данных в XCode
Еще немного о возможностях Core Data Эффективная работа с графами объектов Операции Undo/Redo на графе объектов Поддержка миграции между версиями моделей данных Работа с несколькими хранилищами одновременно
Основные части Core Data PersistentStoreCoordinator
Основные части Core Data Отвечает за координацию Хранилищ данных (Persistence Stores) PersistentStoreCoordinator
Основные части Core Data PersistentStoreCoordinator PersistentStores Binary SQLite
Основные части Core Data PersistentStoreCoordinator PersistentStores Отвечают за хранение данных в определенном виде (SQLite, Binary, …) Binary SQLite
Основные части Core Data ManagedObjectModel PersistentStoreCoordinator PersistentStores Binary SQLite
Основные части Core Data PersistentStoreCoordinator ManagedObjectModel Хранит информацио о модели данных. О сущностях, связях, зависимостях PersistentStores Binary SQLite
Основные части Core Data PersistentStoreCoordinator ManagedObjectModel ManagedObjectContext PersistentStores Binary SQLite
Основные части Core Data PersistentStoreCoordinator ManagedObjectModel Содержит активные объекты PersistentStores ManagedObjectContext Binary SQLite
Основные части Core Data PersistentStoreCoordinator ManagedObjectModel ManagedObjects PersistentStores ManagedObjectContext Binary SQLite
Как можно использовать? Хранение данных
Локальный кеш
Полноценное хранилище
Модель данных
Модели, состоящие из набора сущностей со сложными взаимосвязями
Редактируемая модель с возможностью сохранения состояний
Использование Core Data Хранение данных
Пример модели данных из реального приложения
Использование Core Data модель данных для графического редактора
модель данных для графического редактора player MODEL VIEW
модель данных для графического редактора SAVE player MODEL VIEW
модель данных для графического редактора hat player player MODEL shoes EDIT VIEW
модель данных для графического редактора hat SAVE player player MODEL shoes VIEW
модель данных для графического редактора hat redo player player MODEL shoes undo VIEW
модель данных для графического редактора hair hat redo player player MODEL player shoes shoes undo EDIT VIEW
модель данных для графического редактора hair hat SAVE redo player player MODEL player shoes shoes undo VIEW
модель данных для графического редактора hair hat redo redo player player MODEL player shoes shoes undo undo VIEW
Кроме Core Data что-то надо?
Откуда приходят данные в приложение С сервера Результаты поиска Состояние системы Кеш От пользователя Прямой ввод данных
Откуда приходят данные в приложение С сервера Результаты поиска Состояние системы Кеш От пользователя Прямой ввод данных Core Data JSON XML Input
Откуда приходят данные в приложение С сервера Результаты поиска Состояние системы Кеш От пользователя Прямой ввод данных Core Data JSON XML Input
Лучше не так Core Data JSON XML Input
Структурное решение (конкретная реализация) Core Data/SQLite/FMDB Интерфейс JSON XML Input
Структура приложения XML / JSON парсер Протокол(Интерфейс) доступа к данным Конкретная реализация доступа к данным (CoreData, SQLite PO, FMDB)
Удобно. Просто.
Удобно. Просто. А что с производительностью?
Core Data vsSQLite PO
Core Data vsSQLite PO Количество Объектов – 1000 Количество Запросов – 1000 17 полей Индекс по полю ‘phone’
Core Data vsSQLite PO
Core Data vsSQLite PO
Core Data vsSQLite PO
Core Data vsSQLite PO
Core Data vsSQLite PO
Core Data немного быстрее
Core Data немного быстрее НО!
У Core Data тоже есть минусы Не SQL формат запросов Сырая документация (не полное портирование из MacOS X)
У Core Data тоже есть минусы Не SQL формат запросов Сырая документация (не полное портирование из MacOS X) Недокументированные особенности работы
У Core Data тоже есть минусы Не SQL формат запросов Сырая документация (не полное портирование из MacOS X) Недокументированные особенности работы RTFM
У Core Data тоже есть минусы Не SQL формат запросов Сырая документация (не полное портирование из MacOS X) Недокументированные особенности работы RTFM GIYF ("Google Is Your Friend") Сложно* создавать вложенные запросы
О чем не надо забывать iPhone – это не Desktop 16 Гб места 128 МBRAM 40 MB RAM под приложение didReceiveMemoryWarningсразу, как только используется больше 3 MB
Спасибо за внимание! Тайкало Павел Email:tt.kilew@gmail.com Skype:tt.kilew
0 comments
Post a comment