The (not so) hidden cost of sharing code between iOS and Android
Staff Software Engineer
Eyal Is a Staff Engineer on Dropbox's mobile platform team. In this role, Eyal sets technical direction on which technology stacks to use (and abandon) and how to architect mobile libraries. Prior to Dropbox, Eyal was a tech lead on Facebook Messenger working on the android application. Eyal worked on messenger performance and reliability as the product grew from a "tiny" 40 Million MAU service to a behemoth with over 1 Billion MAU, making sure the foundation didn’t collapse as Messenger went from a cave dwelling to a skyscraper.
Until very recently, Dropbox had a technical strategy on mobile of sharing code between iOS and Android via C++. The idea behind this strategy was simple—write the code once in C++ instead of twice in Java and Objective C (Swift and Kotlin weren't around yet when we adopted this strategy). We have now backed off from this strategy in favor of using each platforms’ native languages. This decision was due to the (not so) hidden cost associated with code sharing. Come with me on a journey of how dropbox set about to share code via C++. What went well, what went wrong, what are the main lessons we learned and what this means for how we write code going forward. Based on