4. • Данные
• Нотификации
• Разрешение конфликтов
• Что передаем
• Модельные объекты
• Настройки приложения
• Текущее состояние приложения
Передача состояния
4
5. • Бесконечный объем данных
• Мгновенная синхронизация
• Всегда доступно
• Разрешение конфликтов так,
как хотел пользователь
Идеальная картина vs Реальность
5
6. • Ограничения часов
• Время взаимодействия
• Небольшая память
• Крохотный экран
• Маленькая батарейка
6
Parallels Access для Watch
7. 7
• Особенности
• Не может быть полностью автономным
• Передача нового состояния с iPhone в
любой момент времени
• Дельта изменения
• Невозможно использовать симулятор
Parallels Access для Watch
9. • Надежный механизм синхронизации iCloud:
• NSFileCoordinator
• NSFilePresenter
• Обертки файлов - NSFileWrapper
• NSCoding
Наш механизм синхронизации
9
10. • Инициализируется для каждой операции с
файлами
• Координирует чтение и запись в файл
• Не асинхронно
• Содержит список методов для координации
NSFileCoordinator
10
11. • Обязательные свойства
• presentedItemURL: NSURL
• presentedItemOperationQueue: NSOperationQueue
• Чтобы добавить или удалить файл презента
• NSFileCoordinator.addFilePresenter(…)
• NSFileCoordinator.removeFilePresenter(…)
NSFilePresenter Protocol
11
14. <host id>.paxhost
hostInfo.plist
img.png
• File Presenter может представлять
директорию
• Другие callbacks:
• presentedItem -> presentedSubitem
• Все callbacks в одном месте
• Автоматическое слияние
на уровне файлов
File Wrappers + File Presenter
14
18. • Размер - менее 1 МБ
• Кеш - must have
• например, в NSUserDefaults
• Уведомления - нотификация
• NSUbiquitousKeyValueStoreDidChangeExternallyNotification
• Конфликты - нет
• используя нотификацию и локальный кеш
• Сценарий - настройки, what is new
NSUbiquitousKeyValueStore
18
19. • Размер - весь объем iCloud
• Кеш - ubiquity item local version
• Уведомления - NS(UI)Documents callback method
• Конфликты - автоматически
• Сценарий - только формат документов
iCloud File Storage
NSDocument, UIDocument classes
19
20. • Размер - весь объем iCloud
• Кеш - ubiquity item local version
• Уведомления - есть
• NSFilePresenter’s callbacks
• Конфликты - есть
• NSFilePresenter's callbacks
• Сценарии - обширные
iCloud file storage
NSFileCoordinator + NSFilePresenter
20
21. • Размер - весь объем iCloud, объем девайса
• Кеш - ubiquity item local version
• Уведомления - есть
• notification
• Конфликты - автоматически
• Сценарии - обширные
iCloud file storage
CoreData
21
22. • Размер - весь объем iCloud + публичная часть
• Кеш - срез данных в локальном контейнере +
NSCoding
• Уведомления - есть
• push notifications
• Конфликты - есть
• CKRecordSavePolicy
• Сценарии - обширные + данные между
пользователями
CloudKit
22
23. Все технологии вместе
23
Размер,
лимит
Механизм
кеширования
Уведомления Конфликты
Ubiquity Key-
Value Storage
1 МБ must have нотификация нет
iCloud Documents iCloud есть
NS(UI)Docume
nts callbacks
автоматически
iCloud File
Storage
iCloud есть
NSFilePresent
er's callbacks
есть
Core Data in
iCloud
iCloud
Device
есть нотификация автоматически
CloudKit
iCloud + Big
Public
нет
Push
Notifications
есть
24. Расширяем горизонты с помощью iCloud
Artemiy Sobolev
asobolev@parallels.com
Software Developer, Parallels Inc. c
24