Repolode
ReactiveX

ReactiveX/RxSwift

Implementação de Reactive Extensions (Rx) em Swift para compor eventos assíncronos e fluxos de dados com sequências Observable.

Estrelas
24,627
Forks
4,147
Issues abertas
19
Último commit
há 2 meses

O que é?

O RxSwift leva o modelo de Reactive Extensions (ReactiveX) para Swift. Ele representa tarefas assíncronas, eventos de UI, observações de KVO e outros fluxos de dados como sequências Observable, que podem ser transformadas, filtradas e combinadas com um amplo conjunto de operadores, além de permitir inscrições para receber valores e eventos de conclusão.

O projeto é dividido em vários módulos. O RxSwift é o núcleo e não tem dependências externas. O RxCocoa adiciona recursos específicos do Cocoa para iOS, macOS, tvOS e watchOS, como bindings para controles do UIKit e AppKit, além de sequências compartilhadas e traits como Driver. O RxRelay fornece PublishRelay, BehaviorRelay e ReplayRelay, enquanto RxTest e RxBlocking ajudam a testar código baseado em Rx.

O RxSwift pode ser instalado pelo Swift Package Manager, Carthage, XCFrameworks ou submódulos do git. O repositório inclui um app de exemplo e documentação sobre como começar, traits, testes e armadilhas comuns.

Recursos principais

  • 01As sequências Observable unificam operações assíncronas, eventos de UI e fluxos KVO.
  • 02Um amplo conjunto de operadores para transformar, filtrar e combinar fluxos.
  • 03O RxCocoa oferece bindings e sequências compartilhadas para frameworks de UI da Apple.
  • 04O RxRelay oferece PublishRelay, BehaviorRelay e ReplayRelay como wrappers em torno de subjects.
  • 05RxTest e RxBlocking ajudam a testar código baseado em Rx.
  • 06Pode ser instalado pelo Swift Package Manager, Carthage ou XCFrameworks.

Casos de uso

  • Vincular resultados de busca em uma API a uma table view, com debounce e cancelamento.
  • Combinar várias chamadas assíncronas de API em um único pipeline reativo em um app iOS.
  • Controlar o estado da UI com base na entrada do usuário e em mudanças no modelo em arquiteturas no estilo MVVM.
  • Escrever testes unitários para a lógica de fluxos assíncronos usando RxTest.

Início rápido

  1. 1

    Adicione RxSwift como dependência em Package.swift

  2. 2

    Compile o projeto com o Swift Package Manager

    swift build

Antes de usar

  • O README menciona um bug não resolvido de dependências cruzadas do Swift Package Manager (SR-12303) que pode afetar as compilações.

Em coleções

Tópicos

#reactive-programming#swift#ios#functional-programming#observable#async#rxswift#functional#observer#reactive

Perguntas frequentes

O que é RxSwift?
Implementação de Reactive Extensions (Rx) em Swift para compor eventos assíncronos e fluxos de dados com sequências Observable. O RxSwift leva o modelo de Reactive Extensions (ReactiveX) para Swift. Ele representa tarefas assíncronas, eventos de UI, observações de KVO e outros fluxos de dados como sequências Observable, que podem ser transformadas, filtradas e combinadas com um amplo conjunto de operadores, além de permitir inscrições para receber valores e eventos de conclusão.
RxSwift é gratuito? Qual é a licença?
RxSwift é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
RxSwift ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de RxSwift foi em 4 de set. de 2026.
Para que posso usar RxSwift?
Vincular resultados de busca em uma API a uma table view, com debounce e cancelamento. Combinar várias chamadas assíncronas de API em um único pipeline reativo em um app iOS. Controlar o estado da UI com base na entrada do usuário e em mudanças no modelo em arquiteturas no estilo MVVM. Escrever testes unitários para a lógica de fluxos assíncronos usando RxTest.
Como instalar RxSwift?
Adicione RxSwift como dependência em Package.swift Compile o projeto com o Swift Package Manager: swift build
Onde consigo RxSwift?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ReactiveX/RxSwift

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados