Technologies

RXSWIFT

RxSwift — библиотека для работы с асинхронным кодом для языка Swift. Использование RxSwift дает возможность представить события как потоки и подписываться на них. Благодаря этому будет проще проводить обработку сложных последовательностей асинхронных событий.

 

Библиотеку выгодно использовать если в среде выполнения вашего приложения (runtime) происходит огромное количество одновременных, но не связанных друг с другом процессов.

 

В iOS SDK есть много инструментов для обработки асинхронных событий, но, чтобы объединить их для решения реальных задач, нужны «костыли». RxSwift — де-факто стандарт для приложений с архитектурным шаблоном MVVM, который часто используют для разработки под iOS.

Архитектура MVVM и RxSwift

RxSwift нужен, если вы собираетесь разработать сложное приложение на основе шаблона проектирования архитектуры MVVM (Model-View-ViewModel). Такой конструктивный паттерн используют для разделения кода пользовательского интерфейса (UI) и остального, с созданием слабой связи между ними.

Наличие прослойки ViewModel позволяет модели и представлению приложения взаимодействовать друг с другом, без необходимости создавать жесткие зависимости. Благодаря разделению, MVVM-проекты быстрее и удобнее разрабатывать, масштабировать и поддерживать. 

RxSwift превращает события в потоки. Когда пользователь будет, например, нажимать на кнопку в приложении (View) это спровоцирует отправку команды в ViewModel. Она получает данные и вносит изменения в Model. Таким образом поток доходит до обновления данных и возвращается к представлению с результатом.

Как работает RxSwift и когда ее нужно использовать

В RxSwift есть три основных вида компонентов:

Observables

— обозреваемые последовательности, позволяющие одним классам подписываться на последовательности событий, транслирующиеся другими;

Operators

— операторы для проведения операций над элементами последовательностей;

Schedulers

— планировщики, оптимизирующие выполнение задач в потоках и очередях.

Все они используются для создания асинхронных приложений, когда:

  • в приложении много данных и ивентов для их обработки;
  • использование стандартных обсервов, нотификаций и замыканий приводит к появлению до 90% лишнего кода;
  • нужно облегчить задачу разработчикам и четко выделить где нужен синхронный, а где асинхронный код.
Заключение

RxSwift — библиотека для работы с асинхронным кодом, которая нужна в тех случаях, когда у вас много такого кода. IOS разработчики скажут вам, нужно ли использовать RxSwift, как только вы им опишите желаемую функциональность будущего приложения. В iOS SDK есть и другие инструменты для разработки асинхронных приложений, например Notifications или GCD, но только RxSwift включает в себя все необходимое для простого и грамотного решения этой задачи.

Разработка мобильных приложений
Разработка мобильных приложений

Разрабатываем приложения, которые решают бизнес-задачи клиентов и упрощают жизнь пользователей. Даже если эти задачи — со звёздочкой. Доставляем их в каждую ладошку и карман.