В Лекции 15 на сцену выходят в главной роли файл AppDelegate, который до сих пор Полом Хэгерти прятал во вспомогательную папку Supporting Files, и CloudKit, этот реальный Mobile Backend as a Service (MBaaS) с авторизацией пользователей, с private и public базами данных, структурированным хранением больших файлов и push уведомлениями. CloudKit — замечательный, очень простой, надежный и практически бесплатный (до 1PB бесплатного public хранилища). Это прекрасная замена Parse, который недавно прекратил свое существование.
В результате в Лекции 15 освещаются три основные темы:
- “Жизненный цикл” приложения (Notifications, AppDelegate, Info.plist, Capabilities)
- Alerts и Action Sheets
- Cloud Kit
NSNotification
Это действительно важная часть MVC шаблона конструирования. Она нужна для передачи информации от Model к Controller или от Глобального контекста к Controller. Иногда в приложении происходят глобальные вещи, и нам нужно транслировать эту информацию специальным View Controllers, заинтересованным в ней. View Controllers подписываются на слушание определенных «радиостанций» и, таким образом, узнают о глобальных событиях в приложении. В лекции рассказывается о том, как в iOS организован механизм передачи уведомлений, описываемых классом NSNotification: как создать «радиостанцию» и послать уведомление, как получить уведомление путем слушания вещания определенной «радиостанции».
Application Lifecycle
Приложение имеет 4 состояния:
- режим Foreground, в котором приложение может находится либо в состоянии Inactive (запущено, но нет UI событий) либо в состоянии Active (запущено, получает и обрабатывает UI события).
- режим Background, в котором код может работать только ограниченное время и нет UI событий.
- режим Suspended, в котором код не работает и приложение может быть «убито» в любой момент времени.
В лекции рассказывается о том, как осуществляется переход между этими состояниями и какие возникают уведомления на уровне приложения. Рассматриваются различные варианты задания установок для приложения, в том числе с помощью Info.plist.
Некоторые режимы в вашем приложении редко бывают активны, поэтому они требуют явного “включения” для их использования. И вы можете это сделать в Закладке Сapabilities в установках вашего проекта Project Setting .
Alerts and Action Sheets
В iOS существуют два типа механизмов, которые позволяют с помощью “всплывающего окна” что-то спросить у пользователя. Один называется Alert (экстренное сообщение), а другой — Action Sheets (список действий).
Они используют один и тот же API. Имеется некоторая разница между этими двумя механизмами. Наиболее легкий способ увидеть разницу между Alert и Action Sheets — это посмотреть пример, представленный на слайдах. В качестве такого примера Пол Хагерти взял уже знакомое нам приложение Cassini и на нем продемонстрировал все возможности Alert и Action Sheets. Особое внимание уделяется появлению Action Sheets в Popover «окошке» как на iPhone, так и на iPad.
Cloud Kit
Cloud Kit — это технология передачи структурированных и бинарных (нестуктурированных данных) между вашим приложением и Apple серверами iCloud. Данные организованы в виде Записей, хранящихся в public и private базах данных. По существу это базы данных в «облаках». Но вам не нужно знать ни PHP, ни SQL, так как все организовано на очень простом интуитивном уровне. Фундаментальными объектами, с которыми работает Cloud Kit, являются Container и Database. В Cloud Kit есть все основные операции “баз данных”. Все происходит в реальном времени и, естественно, полностью асинхронно, что требует вдумчивого программирования, но у Cloud Kit есть так называемый convenience API (удобный API), который сильно облегчает взаимодействие разработчика с Cloud Kit.
Профессор показывает все этапы работы с удаленной базой данных через Cloud Kit — создание Записей, изменение их Полей, Выборка Записей, Постоянные Запросы (Standing Queries) c подпиской (Subscription) и Push Notifications. Показано как продвинуть Push Notification дальше от AppDelegate, в котором они получаются, к реальным потребителям View Controllers, которые работают с полученной информацией. Это делается с помощью локальных Notification, о которых шла речь в начале Лекции 15. В режиме разработки Схема базы данных создается Cloud Kit «на лету», и вам не нужно делать изнурительную работу по созданию Схемы базы данных вручную.
На Лекции 16 будет представлен большой демонстрационный пример, в котором все три раздела Лекции 15 будет показаны в действии.
Лекция и слайды на английском языке представлены в iTunes название “15. Application Lifecycle, Alerts, Cloud Kit”.
Русскоязычный неавторизованный конспект Лекции 15, хронометрированный через каждые 5 минут, и представленный в виде PDF-файла, который можно скачать и использовать offline, а также Google Doc доступны на платной основе.