← ClaudeAtlas

arch-ribslisted

Uber RIBs (Router-Interactor-Builder). Hierarchical RIB tree, RxSwift-driven, Builder/Component DI. Use only at Uber-scale teams (≥30 iOS engineers) with deeply nested state. Reject otherwise.
kbelasheuski/ios-architecture-skills · ★ 0 · Web & Frontend · score 70
Install: claude install-skill kbelasheuski/ios-architecture-skills
# RIBs (Uber) **Source references:** - uber/RIBs — https://github.com/uber/RIBs - iOS Tutorial 1 — https://github.com/uber/RIBs/wiki/iOS-Tutorial-1 - iOS Tutorial 2 (composing RIBs) — https://github.com/uber/RIBs/wiki/iOS-Tutorial-2 - TicTacToe sample sources — https://github.com/uber/RIBs/tree/main/ios/tutorials Conventions match the TicTacToe tutorial: `Builder` constructs the RIB; `Buildable` is the protocol the parent depends on; `Component<Dep>` carries dependencies; `Router : ViewableRouter` (or `Router`); `Interactor : PresentableInteractor`. Listener interfaces flow events upward. ## When to use - iOS team ≥ 30 engineers, deeply nested persistent state. - Cross-platform parity with Android RIBs target. - Reject otherwise — cost not justified. ## Folder structure ``` App/ AppDelegate.swift RIBs/ Root/ RootBuilder.swift RootComponent.swift RootInteractor.swift RootRouter.swift RootViewController.swift UserList/ UserListBuilder.swift UserListComponent.swift UserListInteractor.swift UserListRouter.swift UserListViewController.swift UserDetail/ UserDetailBuilder.swift UserDetailComponent.swift UserDetailInteractor.swift UserDetailRouter.swift UserDetailViewController.swift ``` ## Reference implementation The worked `Root → UserList → UserDetail` RIB tree lives in **`examples/ribs/`** — Builder/Component/Interactor/Router/ViewController per RIB, with the Root wiring UserList as its initial child. `D