Расширения позволяют добавлять функциональность к уже определенному типу. Вы можете использовать расширения для создания новых свойств или методов для стандартных типов Swift, таких как Int, String, Bool и Array, а также для пользовательских типов, которые вы определили для вашего приложения. Расширения также полезны для организации кода в логические блоки, такие как код, необходимый для того, чтобы тип соответствовал протоколу.
Взгляните на самые популярные iOS-приложения, и вы увидите элегантные, ненавязчивые анимации, которые создают связь с контентом на экране. Когда анимация реализована в нужных местах и в нужные моменты, она может предоставлять обратную связь, усиливать ощущение прямого манипулирования или помогать пользователям визуализировать результаты своих действий. В этом уроке вы узнаете, как использовать класс UIView и замыкания для добавления анимаций, которые улучшают презентацию и функциональность ваших приложений.
До этого момента в курсе вы создавали приложения, которые позволяют пользователю создавать данные или использовать данные с их устройства. Но в интернете существует целый мир информации. Как вы можете позволить пользователям получить к ней доступ или отправлять информацию через интернет прямо из вашего приложения?
В прошлом уроке вы узнали, как создавать и отправлять сетевые запросы, используя класс URLSession. Вы также узнали, как формируются URL-адреса и как они могут передавать запросы на веб-сервер. Вы запросили данные у API NASA Astronomy Picture of the Day (APOD), загрузили и распечатали ответ сервера.
Но в каком формате пришел ответ? Многие современные веб-сервисы возвращают данные в формате JavaScript Object Notation (JSON).
В предыдущем уроке вы узнали, как декодировать JSON в родные типы Swift и пользовательские модельные объекты, как написать свой обработчик завершения для обработки асинхронного кода, и немного о том, как можно добавить код в проект Xcode.
В этом уроке вы возьмете данные, полученные из сетевого запроса, декодируете их и отобразите в своем приложении. Вы также скачаете и установите первое изображение для отображения. Чтобы все это заработало, вы узнаете о системе параллелизма в iOS и как убедиться, что код, обновляющий пользовательский интерфейс, выполняется в правильном месте.
В этом модуле вы узнали о новых инструментах Swift и как отправлять и получать информацию с использованием веб-сервиса API. В этом руководящем проекте вы проверите свои знания на практике. Вы разработаете интерактивное меню для ресторана, которое позволит клиенту просматривать список предложений, добавлять элементы в заказ и отправлять заказ в ресторан. Используя сервер, который вы запустите на своем компьютере, у вас будет возможность изменить опции, описания и изображения, которые возвращаются с API.
Вы используете приложения, которые каждый день просматривают коллекции информации. Когда iOS была впервые представлена, табличные представления были основным интерфейсом для просмотра таких данных. Но с тех первых дней многое изменилось.
Одним из важных принципов дизайна языка программирования Swift является постепенное раскрытие — практика постепенного введения понятий по мере роста опыта и уверенности пользователя, а не сразу. Например, вы можете использовать Swift как новичок, не понимая ничего о протоколах, хотя используете их каждый раз, когда работаете с базовыми типами, такими как Int или String.
Теперь, когда вы понимаете, как работают обобщения, вы готовы использовать их на практике. Многие API UIKit не используют обобщения, так как они были написаны до того, как Swift стал доминирующим языком в разработке iOS. Некоторые современные API, предназначенные только для Swift, используют обобщения. Они добавляют дополнительный уровень элегантности вашему коду и позволяют реализовать функции, которые были бы сложными или невозможными ранее.
Вы уже использовали компоновочные макеты с collection views в предыдущих уроках, но еще не исследовали все их возможности. Компоновочные макеты для collection views являются мощными инструментами. Они позволяют разбивать дизайн на небольшие компоненты и собирать их в более крупные группы с помощью простого набора правил, а их API достаточно универсален, чтобы охватывать широкий спектр пользовательских интерфейсов для отображения больших коллекций данных.
Вы узнали, что collection views являются гибким инструментом для отображения коллекций данных различными способами, и научились создавать базовые списки и сетки с использованием компоновочных макетов. Это отличный старт, но вы можете сделать гораздо больше. В этом уроке вы узнаете, как воспользоваться всеми возможностями компоновочных макетов для создания более богатых интерфейсов, обеспечивающих отличный пользовательский опыт.
Уведомления — это отличный способ взаимодействовать с пользователями, даже когда они не используют ваше приложение. Используя фреймворк UserNotifications, вы можете уведомлять пользователей о значимых событиях и предоставлять им возможность реагировать на эти события. Уведомления могут быть запланированы локально и отправлены удалённо. В этом уроке вы научитесь использовать фреймворк UserNotifications для планирования и управления локальными уведомлениями.