CombineX 是 Apple Combine 的开源实现,它现在包括三个项目:
- CombineX,提供所有 Combine 类型与操作符实现。
- CombineX.Foundation,提供所有 Foundation 扩展实现,基于 CombineX,比如 URLSession,NotificationCenter,Timer 等。
- CombineX.Compatible,提供 CombineX 的 API Shims。
为什么要写这个库呢?
- Combine 有较高的版本限制:macOS 10.15+,iOS 13+。也就是说,如果你的 App 即使只需要往前兼容两个版本,也需要两三年后才能用得上它。
- Combine 是闭源的,它与 UIKit,MapKit 等一样,随 xcode 的更新而更新。当你遇到 bug 时,你应该遇到过系统库的 bug 吧,调试很烦人,然而更烦人的是缓慢的官&方反应,通常你只能等待下一次 xcode 的常规更新。
- Combine 是 Apple 平台&独占的,不能在 Linux 上运行。
因为时间问题,CombineX 还有不少没考虑成熟的地方,「事实上 Combine 也还在 beta 啦。」 所以欢迎反馈,更欢迎参与和我一起开发!
" width="360" />