В начале Лекции 14 кратко рассматривается класс приложения UIApplication. У нашего приложения есть свойство, называемое delegate, которое устанавливается для вас автоматически, и вы получаете объект Application Delegаte, с помощью которого мы можем делать многие глобальные вещи.
Далее изучается одно специальное свойство UIApplication, а именно визуальный индикатором “сетевой” активности — Network Actity Indicator, который является глобальным и булевским. И именно эти две характеристики делают его использование проблематичным в среде с множеством перекрывающихся потоков, использующих сетевые запросы в одно и то же время.
Затем комментируются особенности демонстрационного примера с прошлой лекции, связанного с выборкой данных в фоновом режиме, и продолжает демонстрационный пример Photomania, обеспечивая работу приложения на iPad. Кроме того, добавляется Popover segue и особенности его работы в Split View. Демонстрируется, как легко можно заимствовать UI из другого приложения путем прямого копирования и вставки элементов пользовательского интерфейса непосредственно на storyboard.
Но здесь начались трудности, потому что Пол Хэгерти все демонстрирует для iOS 7 и активно использует класс UIPopoverController, который упразднен в iOS 9. Вместо него в iOS 9 используется UIPopoverPresentationController, который доступен с iOS 8.
Концепция Popover осталась той же самой: нам необходим View Controller, как содержимое, которое показывается внутри Popover, который сам по себе является другим объектом (теперь он называется Popover Presentation Controller).
С учетом вышеизложенного в конспекте Лекции 14 мною сделаны необходимые пометки, связанные с изменением кода для текущей версии iOS 9. Однако основное изменение, которое должно быть сделано для iOS 9 — это использование адаптивного интерфейса с одной storyboard для всех мыслимых приборов и их размеров. Адаптивный интерфейс позволяет также получить Popover небольшого размера и на всех iPhone. Но это уже совсем другое приложение и вы можете посмотреть, как его построить в Дополнении к Лекции 14. Адаптивные SplitViewController и Popover в iOS 9. Код Photomania URL Universal с адаптивным интерфейсом в iOS 9 представлен на Github. В результате с помощью одной storyboard для универсального приложения, мы получаем работающий Split View и Popover виде маленького «окошка» как на iPhone, так и на iPad. Причем в ландшафтном режиме для iPhone 6 Plus и iPhone 6s Plus (оба имеют горизонтальный Regular size class) работает полноценный Master — Detail режим:
Особенно великолепна часть демонстрационного примера, связанная с применением принципа полиморфизма объектно-ориентированного программирования и настройкой класса СoreDataTableViewControllers для выборки нужных данных из Core Data.
Заключительная часть лекции посвящена тому, как ваш iPhone может определять, где вы находитесь в этом мире, на этой планете. К этому имеют отношение два компонента: Core Location и MapKit. Core Location — это “внутренность” программного обеспечения по определению местоположения, не-UI часть, а MapKit — это наоборот пользовательский интерфейс (UI), то есть как мы представляем пользователю информацию о том, где мы находимся на карте.
Основным объектом, который представляет ваше местоположение, является CLLocation, CL — это сокращение для Core Location. Объект CLLocation, описывающий местоположение, имеет свойства: координаты, высота, горизонтальная и вертикальная точность измерения местоположения, временная отметка, скорость, курс, указывающий направление. Но главным в местоположении, конечно, являются широта latitude и долгота longitude. Высота — это отдельная переменная altitude.
Важным показателем определения координат и высоты является точность, которая не похожа на обычную точность в %. В действительности, это один из заранее определенных терминов. Пол Хэгарти подробно рассказывает об этом в лекции. Но всегда большая точность требует большой энергии.
В Лекции 14 подробно освещаются различные типы мониторинга вашего местоположения: непрерывное, основанное на «значительных изменениях» и основанное на регионах.
Лекция и слайды на английском языке находятся на iTunes название “14. UIApplication, Network Activity Indicator and MapKIt.”
Код для демонстрационных примеров Photomania URL Universal можно найти для iOS 9 здесь. Photomania Split Popover с адаптивные интерфейсом а для iOS 9 и Xcode 9 на Github.
Русский неавторизованный конспект лекции , хронометрированный через каждые 5 минут, представлен в PDF — файле