Ответ
Основные фреймворки для реактивного программирования в iOS-экосистеме:
1. Combine (нативный от Apple)
- Статус: Встроен в систему с iOS 13+.
- Особенности: Интегрирован с Swift, использует
PublisherиSubscriber. Идеален для новых проектов. - Пример:
import Combine let publisher = Just("Hello, Combine!") let cancellable = publisher.sink { value in print(value) // Выведет "Hello, Combine!" }
2. RxSwift
- Статус: Самая популярная сторонняя библиотека, порт ReactiveX.
- Особенности: Богатейший набор операторов (
Observable,Single,Completable), кроссплатформенные концепции. - Пример:
import RxSwift let observable = Observable.just("Hello, RxSwift!") let disposable = observable.subscribe(onNext: { value in print(value) })
3. ReactiveSwift (ранее ReactiveCocoa)
- Особенности: Фреймворк от GitHub, делает акцент на событиях и состояниях (
Signal,SignalProducer,Property). - Пример:
import ReactiveSwift let producer = SignalProducer(value: "Hello, ReactiveSwift!") producer.startWithValues { value in print(value) }
Выбор зависит от проекта: Combine — для современных таргетов, RxSwift — для максимальных возможностей и команды с опытом Rx, ReactiveSwift — для специфических паттернов, связанных с состоянием.