API для удаленной асинхронной выборки с помощью Apple Combine.

Combine — это функционально реактивный Swift фреймворк, который недавно реализован для всех платформ Apple, включая Xcode 11. С помощью Сombine очень легко обрабатывать последовательности значений values во времени. Он также позволяет упростить асинхронный код, отказавшись от делегирования и сложных вложенных callbacks.

Но изучение самого фреймворка Сombine на первых порах может показаться не таким уж простым. Дело в том, что основными «игроками» Сombine являются такие абстрактные понятия как «издатели» Publishers, «подписчики» Subscribers и операторы Operators. Есть, конечно, и другие, но без понимания этих 3-х не удастся много достигнуть в понимании логики функционирования Combine. Поэтому статья начинается с очень краткого обзора этих основных понятий. А далее нас ждет приятный сюрприз от Apple. Большинство»издателей» Publishers, «подписчиков» Subscribers и операторов Operators либо уже реализованы в самом Combine, либо они добавлены к уже существующим классам UISession, Timer, NotificationCenter, CoreData. И это существенно облегчает написание кода, который оказывается очень компактным и хорошо читаемым. Вы увидите это на примере приложения, связанного с асинхронной выборкой информации о фильмах из очень популярной сейчас базы данных TMDb. Мы создадим  два различных приложения: UIKit и SwiftUI, и покажем, как с ними работает Combine.

Надеюсь, эта статья облегчит Вам изучение Сombine.

Код для всех приложений, разработанных в этой статье, можно найти на Github.

Читать далее