Slide 1

Slide 1 text

RIBsΛ༻͍ͨϞόΠϧ ΞʔΩςΫνϟઃܭ Naoki ISHIKAWA (@jarinosuke)
 try!Swift Tokyo After talks

Slide 2

Slide 2 text

Self Introduction • ੴ઒௚थ Naoki ISHIKAWA • @jarinosuke • iOS Engineer at merpay, Inc

Slide 3

Slide 3 text

uber/RIBs

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Agenda • 1.What is RIBs? • 2.Motivation • 3.Inside of RIBs • Overview • Units • 4.Conclusion

Slide 6

Slide 6 text

1.What is RIBs? • Shared architecture between iOS/Android • Testability and Isolation • Scalable between hundreds of engineers in Uber

Slide 7

Slide 7 text

2.Motivation • Problem • MVC with massive view controllers • Technical debt accumulated by adding new features • Try • Keep high-quality core experience for users • Allow radical experimentation/test in product

Slide 8

Slide 8 text

3.Inside of RIBs

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

RIBs units

Slide 11

Slide 11 text

Router Attaching/Detaching child RIBs

Slide 12

Slide 12 text

Interactor Handle all business logic that will be displayed on view

Slide 13

Slide 13 text

Builder Define all dependences and instantiate classes in RIB

Slide 14

Slide 14 text

Presenter Manage communications between Interactor and View

Slide 15

Slide 15 text

View(Controller) ViewController with no logic Just display data from Presenter

Slide 16

Slide 16 text

Communication between RIBs

Slide 17

Slide 17 text

4.Conclusion • Business logic tree provided by RIBs can drive • Isolation of codes • Scalability in team and business • uber/RIBs can be one of the good choice of mobile architecture

Slide 18

Slide 18 text

!