Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Concern about RxSwift dependency and feasibility of migrating to Combine (or other reactive frameworks)

未关闭
#44 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
停滞
技术栈
swift
领域
mobile

调研方向

该 issue 没有列出任何文件或测试。先检查 repository 的 RxSwift 依赖、公共 API、scheduler 的使用方式和 disposal 模式;将这些约束与提议的基于 Combine 或 provider 的设计进行比较。要算完成,需要维护者就迁移方向或 prototype 范围达成一致。

由索引模型根据 Issue 内容生成。

描述

Hi maintainers,
First of all, thank you for the great work on ribs-ios—it's been a solid foundation for many of us.
Recently our team has started to evaluate the long-term cost of keeping RxSwift as the only built-in reactive dependency. RxSwift is a fantastic library, but it adds ~2 MB to the binary, drags in a third-party scheduler model, and—most importantly—requires engineers to master an additional DSL that no longer ships with the OS. With Apple investing heavily in Combine and async/await, we worry that:

  1. On-going binary-size / security-surface overhead (RxSwift is not distributed with the OS).
  2. Harder hiring / onboarding (new iOS engineers already know Combine, but rarely RxSwift).
  3. Potential mismatch with Apple's future APIs (e.g. async sequences, Swift Concurrency back-pressure).
  4. One more layer to maintain when RxSwift eventually winds down.

Therefore we'd like to understand:
A. How tightly is ribs-ios coupled to RxSwift today?

  1. Are we using any Rx-specific scheduler contracts that have no Combine equivalent?
  2. Is there any public API surface that exposes Rx types (Observable, Single, Completable, etc.)?

B. Has there been any prior discussion / spike about providing a "reactive-provider" protocol so that consumers could plug in Combine, ReactiveSwift, or even their own lightweight wrapper?

C. If such a layer does not exist, would the maintainers be open to a PR that introduces one?

  1. We imagine a tiny ReactiveProvider protocol (with operators like map/flatMap/zip/just/fail) plus two concrete modules: RIBsRxSwift and RIBsCombine.
  2. By default the repo could still ship RIBsRxSwift so the change is 100 % source-compatible for current users.
  3. Consumers who want Combine would depend on RIBsCombine instead and get zero RxSwift binary cost.

D. Are there any architectural blockers we should be aware of (e.g. intricate uses of RxSwift's recursive scheduler or custom disposables that Combine cannot replicate)?

We are happy to invest engineering time to prototype the approach, but we wanted to check direction with you first to avoid duplicate effort or design conflicts.
Looking forward to your thoughts!

主要语言
Swift
星标
193
派生
25
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

uber/RIBs-iOS 的其他 Issue

查看 uber/RIBs-iOS 的全部 Issue

相似的 Issue

更多 Swift Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。