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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Павел Тайкало - Использование CoreData в iPhone приложения - Presentation 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. Использование Core Data
      Хранение данных
    15. Пример модели данных из реального приложения
    16. Использование Core Data
      модель данных для графического редактора
    17. модель данных для графического редактора
      player
      MODEL
      VIEW
    18. модель данных для графического редактора
      SAVE
      player
      MODEL
      VIEW
    19. модель данных для графического редактора
      hat
      player
      player
      MODEL
      shoes
      EDIT
      VIEW
    20. модель данных для графического редактора
      hat
      SAVE
      player
      player
      MODEL
      shoes
      VIEW
    21. модель данных для графического редактора
      hat
      redo
      player
      player
      MODEL
      shoes
      undo
      VIEW
    22. модель данных для графического редактора
      hair
      hat
      redo
      player
      player
      MODEL
      player
      shoes
      shoes
      undo
      EDIT
      VIEW
    23. модель данных для графического редактора
      hair
      hat
      SAVE
      redo
      player
      player
      MODEL
      player
      shoes
      shoes
      undo
      VIEW
    24. модель данных для графического редактора
      hair
      hat
      redo
      redo
      player
      player
      MODEL
      player
      shoes
      shoes
      undo
      undo
      VIEW
    25. Кроме Core Data что-то надо?
    26. Откуда приходят данные в приложение
      С сервера
      Результаты поиска
      Состояние системы
      Кеш
      От пользователя
      Прямой ввод данных
    27. Откуда приходят данные в приложение
      С сервера
      Результаты поиска
      Состояние системы
      Кеш
      От пользователя
      Прямой ввод данных
      Core Data
      JSON
      XML
      Input
    28. Откуда приходят данные в приложение
      С сервера
      Результаты поиска
      Состояние системы
      Кеш
      От пользователя
      Прямой ввод данных
      Core Data
      JSON
      XML
      Input
    29. Лучше не так
      Core Data
      JSON
      XML
      Input
    30. Структурное решение
      (конкретная реализация)
      Core Data/SQLite/FMDB
      Интерфейс
      JSON
      XML
      Input
    31. Структура приложения
      XML / JSON парсер
      Протокол(Интерфейс) доступа к данным
      Конкретная реализация доступа к данным (CoreData, SQLite PO, FMDB)
    32. Удобно. Просто.
    33. Удобно. Просто.
      А что с производительностью?
    34. Core Data vsSQLite PO
    35. Core Data vsSQLite PO
      Количество Объектов – 1000
      Количество Запросов – 1000
      17 полей
      Индекс по полю ‘phone’
    36. Core Data vsSQLite PO
    37. Core Data vsSQLite PO
    38. Core Data vsSQLite PO
    39. Core Data vsSQLite PO
    40. Core Data vsSQLite PO
    41. Core Data немного быстрее
    42. Core Data немного быстрее
      НО!
    43. У Core Data тоже есть минусы
      Не SQL формат запросов
      Сырая документация (не полное портирование из MacOS X)
    44. У Core Data тоже есть минусы
      Не SQL формат запросов
      Сырая документация (не полное портирование из MacOS X)
      Недокументированные особенности работы
    45. У Core Data тоже есть минусы
      Не SQL формат запросов
      Сырая документация (не полное портирование из MacOS X)
      Недокументированные особенности работы
      RTFM
    46. У Core Data тоже есть минусы
      Не SQL формат запросов
      Сырая документация (не полное портирование из MacOS X)
      Недокументированные особенности работы
      RTFM GIYF ("Google Is Your Friend")
      Сложно* создавать вложенные запросы
    47. О чем не надо забывать
      iPhone – это не Desktop
      16 Гб места
      128 МBRAM
      40 MB RAM под приложение
      didReceiveMemoryWarningсразу, как только используется больше 3 MB
    48. Спасибо за внимание!
      Тайкало Павел
      Email:tt.kilew@gmail.com
      Skype:tt.kilew
    49. Отдельное спасибо
    SlideShare Zeitgeist 2009

    + bexcitebexcite Nominate

    custom

    343 views, 0 favs, 1 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 343
      • 215 on SlideShare
      • 128 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds
    • 128 views on http://iphonedevcamp.com.ua

    more

    All embeds
    • 128 views on http://iphonedevcamp.com.ua

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories