[情报] Dropbox:为iOS和Android开发共用程式码

楼主: name2name2 (yang~hi)   2019-08-18 11:48:59
新闻连结:
Dropbox:为iOS和Android开发共用程式码,会付出更多开发成本
https://www.ithome.com.tw/news/132449
The (not so) hidden cost of sharing code between iOS and Android
http://bit.ly/2KGQOzj
新闻内容:
Dropbox在2013年使用C++开发iOS和Android应用程式,但却发现必须额外开发许多工具来
共用程式码
写一次程式码,就能在不同装置上执行,是很多开发人员的梦想,但是Dropbox开发团队
在部落格分享了他们的经验,虽然这种方法看似节省许多开发工作,但是其背后隐藏的成
本比想像中的高很多,因此Dropbox后来不再只用C++撰写iOS和Android应用程式,而是老
实地使用各自平台的语言开发。
在2013年的时候,Dropbox选择以C++撰写iOS和Android应用程式的共用程式码,而非选择
使用Objective C与Java开发各别的程式,而他们已经不采用这样的策略,现在主要使用
Swift和Kotlin。Dropbox开发团队提到,共用程式码的策略需要付出许多隐藏的成本。
只使用C++开发不同平台的程式,最大的成本,就是需要额外建立自己的框架与函式库,
Dropbox开发团队提到,他们为了让行动应用程式能与主机环境互动,而开发了几个框架
,包括能产生跨开发语言类型宣告和接口绑定工具Djinni,还有可用于后台执行任务和主
要执行绪的框架等。函式库方面,则有为JSON序列化开发的json11,以及为C++开发不可
空值函式库nn。
但只要采用平台原生语言,这些工作都可以避免,而且C++比起Python或C#,所要付出的
成本更高,因为C++缺乏单一全功能标准函式库,虽然可以用开源社群资源,发展这些框
架与函式库,但是Dropbox开发团队提到,C++社群的开源风气并不如行动开发社群兴盛。
当不使用Google和Apple的开发环境,也就等同于放弃各阵营,对开发平台提供的最佳开
发实践。Dropbox开发团队表示,行动生态系统有许多工具可以加速开发效率,特别是对
应用程式除错来说,在平台默认的IDE中,为原生开发语言除错,比C++程式码容易许多。
此外,Dropbox开发团队还需要投入时间建置工具,来支援共用C++程式码,像是需要创建
一个函式库来打包C++程式码,使其能够被Apple的Xcodebuild和Google的Gradle读取。
而且即便iOS和Android都是行动应用程式,有着相同的特性与功能,但毕竟平台仍然存在
差异,因此也会影响实作的方法,像是iOS和Android的后台程式的执行方法不同,和照片
档案互动的方法也不一样,因此也难以真的达到只撰写一次程式码,就可以在不同平台执
行的理想。而人才也是一大问题,要找到能以C++开发行动应用程式的人并不容易,当内
部人才流失却没有足够的人才补足,而终使专案失败。

Links booklink

Contact Us: admin [ a t ] ucptt.com