RXSWIFT
RxSwift — бібліотека для роботи з асинхронним кодом для мови Swift. Використання RxSwift дає можливість представити події як потоки і підписуватися на них. Завдяки цьому буде простіше проводити обробку складних послідовностей асинхронних подій.
Бібліотеку вигідно використовувати якщо в середовищі виконання вашої програми (runtime) відбувається величезна кількість одночасних, але не пов'язаних один з одним процесів.
В iOS SDK є багато інструментів для обробки асинхронних подій, але, щоб об'єднати їх для вирішення реальних завдань, потрібні «милиці». RxSwift — де-факто стандарт для додатків з архітектурним шаблоном MVVM, який часто використовують для розробки під iOS.
RxSwift потрібен, якщо ви збираєтеся розробити складний додаток на основі шаблону проєктування архітектури MVVM (Model-View-ViewModel). Такий конструктивний патерн використовують для поділу коду призначеного для користувача інтерфейсу (UI) і решти, зі створенням слабкою зв'язку між ними.
Наявність прошарку ViewModel дозволяє моделі і зображенню додатка взаємодіяти один з одним, без необхідності створювати жорсткі залежності. Завдяки розподілу, MVVM-проекти швидше і зручніше розробляти, масштабувати і підтримувати.
RxSwift перетворює події в потоки. Коли користувач буде, наприклад, натискати на кнопку в додатку (View) це спровокує відправку команди у ViewModel. Вона отримує дані і вносить зміни в Model. Таким чином потік доходить до оновлення даних і повертається до зображення з результатом.
В RxSwift є три основних види компонентів:
— оглядові послідовності, що дозволяють одним класам підписуватися на послідовності подій, що транслюються іншими;
— оператори для проведення операцій над елементами послідовностей;
— планувальники, котрі оптимізують виконання завдань в потоках і чергах.
Всі вони використовуються для створення асинхронних додатків, коли:
- в додатку багато даних і івентів для їх обробки;
- використання стандартних обсервів, нотифікацій та замикань призводить до появи до 90% зайвого коду;
- потрібно полегшити задачу розробникам і чітко виділити де потрібен синхронний, а де асинхронний код.
RxSwift — бібліотека для роботи з асинхронним кодом, яка потрібна в тих випадках, коли у вас багато такого коду. IOS розробники скажуть вам, чи потрібно використовувати RxSwift, як тільки ви їм поясните бажану функціональність майбутньої програми. В iOS SDK є й інші інструменти для розробки асинхронних додатків, наприклад Notifications або GCD, але тільки RxSwift містить все необхідне для простого і грамотного вирішення цього завдання.