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
Relationship between MVPs
Search
Alexandra Tritz
May 23, 2019
Programming
53
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Relationship between MVPs
Alexandra Tritz
May 23, 2019
More Decks by Alexandra Tritz
See All by Alexandra Tritz
Firebase : Remote config & A/B testing
alexandratritz
0
42
Rethinking BlaBlaCar's app architecture
alexandratritz
0
350
Feature Flags on Android At BlaBlaCar
alexandratritz
1
340
Analytics & Monitoring at BlaBlaCar
alexandratritz
0
520
Développer une app Android en 2015
alexandratritz
3
550
Other Decks in Programming
See All in Programming
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
0
150
さぁV100、メモリをお食べ・・・
nilpe
0
160
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
8.4k
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.6k
act1-costs.pdf
sumedhbala
0
120
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
850
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
810
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.3k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
310
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
170
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
600
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
970
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Skip the Path - Find Your Career Trail
mkilby
1
150
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
GitHub's CSS Performance
jonrohan
1033
470k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
620
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
240
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
450
Documentation Writing (for coders)
carmenintech
77
5.4k
Transcript
None
Alexandra TRITZ Laurent RUSSIER
None
TheFork Focus PVVP Listeners EventBus Listeners & Interactors Menu
None
None
TheFork 60,000 restaurants in 18 countries 14 million reviews +21
million monthly visits +16 million app downloads
TheFork team 6 android devs in 2 countries 1 shared
PO 5 iOS devs design team shared
None
TheFork
TheFork
TheFork
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
RestaurantListPresenter.kt class RestaurantListPresenterImpl : RestaurantListPresenter { fun onScroll(lastItemViewed: Int) {
restaurantListListener?.onScrolled(lastItemViewed) // internal logic } } MapPresenterImpl.kt class MapPresenterImpl : MapPresenter { fun onClickPin(pinClicked: Int) { mapListener?.onClickPin(pinClicked) // internal logic } }
RestaurantListPresenter.kt class RestaurantListPresenterImpl : RestaurantListPresenter { fun onScroll(lastItemViewed: Int) {
restaurantListListener?.onScrolled(lastItemViewed) // internal logic } } MapPresenterImpl.kt class MapPresenterImpl : MapPresenter { fun onClickPin(pinClicked: Int) { mapListener?.onClickPin(pinClicked) // internal logic } }
RestaurantListInteractor.kt interface RestaurantListInteractor { fun highlightRestaurantCard(restaurantIndex: Int) } MapInteractor.kt interface
MapInteractor { fun highlightPin(restaurantIndex: Int) }
RestaurantListInteractor.kt interface RestaurantListInteractor { fun highlightRestaurantCard(restaurantIndex: Int) } MapInteractor.kt interface
MapInteractor { fun highlightPin(restaurantIndex: Int) }
SearchPresenterImpl.kt class SearchPresenterImpl @Inject constructor( private val view: SearchView :
SearchPresenter, RestaurantListListener, MapListener { private var restaurantListInteractor: RestaurantListInteractor? = null private var mapInteractor: MapInteractor? = null override fun onScrolled(restaurantIndex: Int) { mapInteractor?.highlightPin(restaurantIndex) } override fun onClickPin(restaurantIndex: Int) { restaurantListInteractor?.highlightRestaurantCard(restaurantIndex) } }
SOLID PRINCIPLE S O L I D
None
None
None
None
None
None
Conclusion
THANK YOU !
QUESTIONS ?
Alexandra Tritz & Laurent Russier