Расширения позволяют добавлять функциональность к уже определенному типу. Вы можете использовать расширения для создания новых свойств или методов для стандартных типов 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 для планирования и управления локальными уведомлениями.