Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RIBs
Search
Naoki ISHIKAWA
March 08, 2018
Technology
2
1.6k
RIBs
About mobile architecture using RIBs from uber
Naoki ISHIKAWA
March 08, 2018
Tweet
Share
More Decks by Naoki ISHIKAWA
See All by Naoki ISHIKAWA
パラレルの通話を支える iOS アプリ上での技術
jarinosuke
0
2.1k
メルペイのエンジニアリング組織の変化と目指すチーム像
jarinosuke
5
5.8k
US 版 Mercari をまるごと1から作り直した話
jarinosuke
2
4.2k
メルカリiOSアプリ開発の現状とこれから / Mercari Day 2017
jarinosuke
3
6.6k
Drink Meetup with Mercari #36
jarinosuke
0
1.1k
Switching Icon.png depending on each environment
jarinosuke
2
11k
Other Decks in Technology
See All in Technology
オニオンアーキテクチャで実現した 本質課題を解決する インフラ移行の実例
hryushm
11
2.3k
端末が簡単にリモートから操作されるデモを通じて ソフトウェアサプライチェーン攻撃対策の重要性を理解しよう
kitaji0306
0
130
入門『状態』#kaigionrails / "state" for beginners with Rails
shinkufencer
2
750
AWS SAW(AWS Support Automation Workflows)をもっと広めたい
kazzpapa3
2
170
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
1
110
Java x Spring Boot Warm up
kazu_kichi_67
2
390
AI Builder について
miyakemito
1
120
Why and Why not of enabling swap in Kubernetes
hwchiu
0
440
LLMアプリをRagasで評価して、Langfuseで可視化しよう!
minorun365
PRO
2
190
Emacs x Nostr
hakkadaikon
1
110
CI/CDやテスト自動化の開発プロジェクトへの適用
megascus
2
300
LeSS Yoake 2024 スポンサーセッション
riki_hiraoka
0
270
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
How to Think Like a Performance Engineer
csswizardry
19
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
Optimising Largest Contentful Paint
csswizardry
32
2.9k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Building Adaptive Systems
keathley
38
2.2k
Designing for Performance
lara
604
68k
Gamification - CAS2011
davidbonilla
80
5k
What's new in Ruby 2.0
geeforr
342
31k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Transcript
RIBsΛ༻͍ͨϞόΠϧ ΞʔΩςΫνϟઃܭ Naoki ISHIKAWA (@jarinosuke) try!Swift Tokyo After talks
Self Introduction • ੴथ Naoki ISHIKAWA • @jarinosuke • iOS
Engineer at merpay, Inc
uber/RIBs
None
Agenda • 1.What is RIBs? • 2.Motivation • 3.Inside of
RIBs • Overview • Units • 4.Conclusion
1.What is RIBs? • Shared architecture between iOS/Android • Testability
and Isolation • Scalable between hundreds of engineers in Uber
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
3.Inside of RIBs
None
RIBs units
Router Attaching/Detaching child RIBs
Interactor Handle all business logic that will be displayed on
view
Builder Define all dependences and instantiate classes in RIB
Presenter Manage communications between Interactor and View
View(Controller) ViewController with no logic Just display data from Presenter
Communication between RIBs
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
!