直到最近,Dropbox都在使用一个通过C++在iOS和Android之间共享代码的移动技术策略。这个策略背后的想法很简单:用C++编写一次代码,而不是用Java和Objective C编写两次代码。现在,Dropbox已经完全放弃了这个策略,转而使用每个平台的原生语言。这个决定是由于与代码共享相关的隐藏成本太高。
正文
直到最近,Dropbox都在使用一个通过C++在iOS和Android之间共享代码的移动技术策略。这个策略背后的想法很简单:用C++编写一次代码,而不是用Java和Objective C编写两次代码。早在2013年,我们就采用了这个策略。当时,我们的移动工程团队相对还比较小,但需要支持快速增长的移动路线图。我们需要找到一种方法,使这个小团队可以快速交付大量的Android和iOS代码。
现在,我们已经完全放弃了这个策略,转而使用每个平台的原生语言(主要是Swift和Kotlin,这两种语言在我们刚开始制定移动策略时还不存在)。这个决定是由于代码共享相关的隐藏成本太高。下面是我们作为一个公司在有效共享代码的成本方面学到的一些东西。它们都源于同一个基本问题:
以非标准的方式编写代码,使我们承担了一些开销,而如果我们采用广泛使用的平台默认选项,我们就不必担心这些开销。这种开销最终比只编写两次代码要昂贵得多。