Статьи

От RxJava до Kotlin Coroutines: сквозная миграция объектов

Сопрограммы Kotlin — это гораздо больше, чем просто легкие потоки — это новая парадигма, которая помогает разработчикам справляться с параллелизмом  структурированным  и идиоматическим образом.

При разработке приложения для Android следует учитывать множество разных вещей: удаление длительных операций из потока пользовательского интерфейса, обработка событий жизненного цикла, отмена подписок, переключение обратно в поток пользовательского интерфейса для обновления пользовательского интерфейса.


Вам также может понравиться:
Параллельное программирование в Kotlin: сопрограммы

За последние пару лет RxJava стала одной из наиболее часто используемых сред для решения этого набора проблем. В этой статье я расскажу вам о сквозной миграции функций из RxJava в сопрограммы.

Характерная черта

Функция, которую мы собираемся преобразовать в сопрограммы, довольно проста: когда пользователь отправляет страну, мы выполняем вызов API, чтобы проверить, имеет ли страна право на поиск сведений о бизнесе через такого поставщика, как  Companies House . Если звонок был успешным, мы показываем ответ, если нет — сообщение об ошибке.

миграция

Мы собираемся перенести наш код в подход «снизу вверх», начиная со службы Retrofit, переходя на уровень репозитория, затем на уровень Interactor и, наконец, в модель представления.

Функции, которые в настоящее время возвращаются,  Single должны стать функциями приостановки, а функции, которые возвращаются,  Observable должны возвращаться  Flow. В этом конкретном примере мы не собираемся ничего делать с потоками.

Модернизация Сервис

Давайте сразу перейдем к коду и проведем рефакторинг  businessLookupEligibility метода в  BusinessLookupService сопрограммы. Вот как это выглядит сейчас.


Котлин