The (not so) hidden cost of sharing code between iOS and Android
summary
Dropbox abandons sharing business logic in C++ after years of operational cost: 85,000 lines of C++ (plus 35k open source and 10k build tooling), a homegrown Genie code generator, and C++ camera-roll sync and notification clients. Cross-language bugs produce ANR deadlocks and useless iOS stack traces, forcing changes to exception handling and heavy tooling. Migration strategy is design once, write twice: AB test components, rewrite into native Kotlin/Swift, and keep only isolated C++ black boxes like image processing.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:32Why we chose C++
- 9:16History of C++ at Dropbox
- 12:25Custom frameworks and tools
- 17:24Why we stopped using C++
- 18:29Four types of overhead
- 25:10Training and hiring challenges
- 25:32Sharing architecture instead
- 28:19Migration process
- 29:43When code sharing makes sense
- 31:48Dropbox’s Rust use case
- 32:08Q&A
related talks
01h 01mA Deep Dive into 2 Cross-Platform Mobile Apps Written in C++
41mCrossplatform 2019: C ++ as an antagonist in a progressive world
43mDoppl Code Sharing
34mDoppl Code Sharing
49m“Cross-Platform Apps with Dropbox’s Djinni..."
45mHow to combine Swift/Kotlin with C/C++
25mThe ever increasing convergence of native Android and iOS development
29mWorking with C and C++ in Apple environment
