项目介绍:RIBs 架构框架
什么是 RIBs
RIBs 是 Uber 背后许多移动应用所使用的跨平台架构框架。RIBs 名字来源于其架构中的核心组件:Router(路由)、Interactor(交互)和 Builder(构建器)。该框架专为拥有大量工程师团队和嵌套状态的移动应用设计。
RIBs 架构的特点
-
跨 iOS 和 Android 的共享架构
RIBs 允许在 iOS 和 Android 上搭建具有相似架构的跨平台应用,从而使得两个平台的团队可以互相审查业务逻辑代码。 -
可测试性和独立性
RIBs 中的类易于进行单元测试和独立处理。每个 RIB 类各司其职,例如路由、业务、视图逻辑和创建等。大部分 RIB 逻辑是与子 RIB 逻辑解耦的,这样便于针对每个 RIB 类独立测试和推理。 -
提高开发者生产力的工具
RIBs 提供了一些 IDE 工具,这些工具包括代码生成、内存泄漏检测、静态分析和运行时集成,这些帮助提升了大团队或小团队的开发者生产力。 -
可扩展的架构
这种架构已经被证明可以支持数百位工程师同时在同一个代码库上工作,以及支持包含数百个 RIBs 的应用。
与其他架构模式的区别
MVC、MVP、MVI、MVVM 和 VIPER 是架构模式,而 RIBs 是一个框架。与基于 MV*/VIPER 的框架不同,RIBs 的差异在于:
-
由业务逻辑驱动应用,而不是视图树
与其他架构不同,RIB 并不依赖于视图,这意味着应用层次结构是由业务逻辑,而不是视图树来驱动。 -
业务逻辑和视图树的独立性
RIBs 解耦了业务逻辑范围和视图层次结构的组织方式。这使得应用可以有一个深度的业务逻辑树,隔离业务逻辑节点,同时保持浅层的视图层次结构,便于布局、动画和过渡。
如何使用和安装
要使用 RIBs,首先需要克隆该库,然后可以使用自己喜欢的安装机制进行集成。
对于 Android 的安装,您可以在 build.gradle
文件中添加所需的依赖项:
dependencies {
annotationProcessor 'com.uber.rib:rib-compiler-test:0.16.3'
implementation 'com.uber.rib:rib-android:0.16.3'
testImplementation 'com.uber.rib:rib-test:0.16.3'
}
此外,还有一些扩展包可用,例如 Kotlin 扩展、Jetpack Compose 支持、协程支持等。
相关项目
如果您对 RIBs 感兴趣,还可以查看我们团队的其他开源项目:
- RIBs-iOS:RIBs 的 iOS 版本
- Needle:一个在编译时安全的 Swift 依赖注入框架
- Motif:Dagger 上的抽象层,提供更简单的嵌套范围 API
- Swift Concurrency:一组并发实用程序类,受 java.util.concurrent 的启发
- Swift Abstract Class:一个轻量级库,允许在 Swift 项目中进行编译时安全的抽象类开发
- Swift Common:这组 Swift 开源项目中使用的通用库
版权和许可证
RIBs 由 Uber Technologies 于 2017 年发布,根据 Apache License 2.0 进行授权。该许可证的具体条款可以通过项目代码库中的相关文件查阅。