Things I learned about SoundCloud
At Mobile@Scale 2016
Bohdan Orlov
Badoo
SoundCloud
- 175+M Montly active users
- 20 mobile engineers
- 2 apps (iOS, Android and React Native)
Find way to share
- BFF - mobile oriented API
- Skippy - C++ audio playback library
- Ideas and experience - priceless
Lava layers
"Successive, well intentioned , changes to architecture throughout the lifetime of the project can lead to a fragmented and hard-to-maintain codebase"
Android
- Vertical approach
- Feature by feature
- Iterative using features flags
iOS
- "Big bang" approach
- Dispose legacy code (from agency)
- Write new code applying "architecture"
Confront technical debt.
Pros
- nice architecture
- got rid of legacy
- dramatically reduced crash rate
Cons
- No releases during conversion
- Some of existing features had to be dropped
Rewriting iOS app
Team organisation
- Tried Feature Teams
- Engineers feelt isolated
- Reverted *
* but will try again
Other things
- Core Data
Reactive Cocoa
Dependency inversion (?)
Release trains with feature flags
- CocoaPods based feature separation (failed)
Don't do
well intentionedpremature
changes
SoundCloud
By borlov
SoundCloud
- 1,051