~/talk

Keeping It Clean

name:Rich King
links:none on file
slides:none on file

Badoo rewrites its messenger component using Clean Architecture with MVP and RxJava for threading, in an app with over 100 million installs and ~100k lines of code. The implementation keeps use cases as pure Java, moves caching and network into gateways, and yields an open‑source reference with ~60% test coverage. Developers report steeper upfront work and boilerplate but faster feature additions, easier testing, replaceable implementations, and postponed infrastructure decisions.

AI-written summary · about

  1. 0:00Introduction to clean architecture
  2. 1:40Why architecture matters
  3. 3:25What is clean architecture
  4. 5:30Key principles of clean architecture
  5. 6:54Structure and intent in apps
  6. 7:57Dependency direction in clean architecture
  7. 9:24Inversion of control explained
  8. 10:04Different models for different layers
  9. 11:47Entities and use cases
  10. 13:12MVP and clean architecture
  11. 14:14Gateway implementation details
  12. 15:00How use cases and gateways work
  13. 16:04Message gateway implementation
  14. 17:49Threading with RxJava
  15. 18:54RxJava vs traditional threading
  16. 21:22Boilerplate and learning curve
  17. 22:05Testing and maintainability
  18. 23:29Tips for adopting clean architecture
  19. 24:52Team collaboration and code reviews
  20. 25:33Q&A: Offline messaging concerns
  21. 27:41Q&A: Network programming models
  22. 28:45Q&A: Selling clean architecture to teams
  23. 31:33Q&A: Threading in gateways
  24. 34:03Q&A: Use cases and screen transitions
  25. 36:51Q&A: Deviations from original design
  26. 38:15Q&A: RxJava and threading decisions
  27. 39:45Q&A: Handling orientation changes
  28. 40:30Q&A: Isolating system dependencies
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.