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 містить все необхідне для простого і грамотного вирішення цього завдання.

Розробка мобільних додатків
Розробка мобільних додатків

Створюємо мобільні додатки, які вирішують бізнес-задачі клієнтів та спрощують життя користувачів. Навіть якщо ці задачі — із зірочкою. Доставляємо їх у кожну долоньку та кишеню.