Concern about RxSwift dependency and feasibility of migrating to Combine (or other reactive frameworks)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
L’issue non indica alcun file o test. Inizia esaminando le dipendenze RxSwift del repository, le API pubbliche, l’utilizzo degli scheduler e i pattern di disposal; confronta questi vincoli con il design proposto basato su Combine o su provider. Il lavoro sarebbe completato quando i maintainer avranno concordato una direzione di migrazione o l’ambito di un prototipo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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:
- On-going binary-size / security-surface overhead (RxSwift is not distributed with the OS).
- Harder hiring / onboarding (new iOS engineers already know Combine, but rarely RxSwift).
- Potential mismatch with Apple's future APIs (e.g. async sequences, Swift Concurrency back-pressure).
- 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?
- Are we using any Rx-specific scheduler contracts that have no Combine equivalent?
- 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?
- We imagine a tiny ReactiveProvider protocol (with operators like map/flatMap/zip/just/fail) plus two concrete modules: RIBsRxSwift and RIBsCombine.
- By default the repo could still ship RIBsRxSwift so the change is 100 % source-compatible for current users.
- 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!
- Lingua principale
- Swift
- Stelle
- 193
- Fork
- 25
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di uber/RIBs-iOS
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
Tutte le issue di uber/RIBs-iOS
Issue simili
-
enhancement help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
kabirvashisht4-glitch/Vet#22 ·
-
Custom sidebars in the right sidebar get an empty groups listForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaarea: sidebar bug S2: major
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
manaflow-ai/cmux#20281 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
If a snippet replacement starts with a newline, it truncates the first parts of the replacement.Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
iOS: recorded video location is written without ISO 6709 fixed-width degrees, Photos drops itAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
margelo/react-native-vision-camera#4216 ·
I maintainer di solito rispondono entro 4 giorni
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100