下午,戴鸣组织了大前端的kick off会议。
第一个议题是技术选型。
这一部分几乎没什么好讨论的,戴鸣简单提了一句使用原生安卓和iOS分别进行开发,安卓用Kotlin语言,iOS用Swift,就迅速进入了下一个议题:“接下来我们分配一下几个用户流程的负责人。”
“我有个问题。”程宜举手打断了他,问道,“我们为什么不用Flutter之类的跨平台框架来开发?既然现在我们面临人手不足的问题,用Flutter可以最大程度提高开发效率。使用原生Android和iOS的话,一个功能就需要在几个平台分别开发,而如果我们用Flutter的话,所有改动都只需要写一份代码,就能直接应用在两个客户端和网页端上。这样我们可以用最快的速度发布,同时后续的迭代更新也能用最快的速度上线。”
戴鸣顿了一下,说:“相比原生平台,跨平台开发的弊端还是非常明显的。React Native、Flutter这些跨平台框架,UI渲染方式不同,都存在用户体验跟原生平台出现很大差异的问题。其次,很多平台的特定功能和API是Flutter不能使用的,那也需要投入大量额外的精力来进行开发,而很多问题是没办法解决的。”
一个叫弗兰克的同事说:“我同意戴老师的,这种平台最大的问题,就是限制多,支持太差。我上个公司用过React Native,又慢又难用。”
程宜说:“React Native的确这方面支持做的不好,但Flutter的底层实现跟React Native不一样,我之前用Flutter做过一些项目,其实现在在不同平台的支持做得挺好的,而且我记得星云就有自己的基于Flutter的开发套件,我们可以使用内部的套件,这样碰到任何问题,也能很快汇报,出解决方案。”
弗兰克说:“那岂不是把主动权交给了别人,我们做的怎么样,全看他们行不行了。”
程宜常年呆在大厂,大厂最大的好处就是所有基础设施都有专门的组负责,这些组里往往聚集了行业大牛,而像程宜这样产品方向的开发,只需要学会如何使用这些框架,有什么用着不顺手、跟不上需求的,直接找大牛解决,修bug,或者更新框架。同时,实在内部没有的资源,大厂也永远有充裕的预算购买第三方服务。
而戴鸣和他带来的团队不同,他们从创业公司出身,钱是大问题,买不起第三方服务,也雇不起单独的团队来做一套尽善尽美的基础设施供人使用,因此啥轮子都得自己造,每个人都练就了一身化不可能为可能的本事。
对错倒是谈不上,只是不同的过去经历铺就了截然不同的思考方式。程宜是温室里被人用恒定的温度湿度精心培育出来的盆栽,而戴鸣他们则是不得不亲自跟风霜搏斗求一线生机的路边野花。
戴鸣继续说:“对,这是一个潜在问题,可能会影响我们的开发进度。我最大的顾虑还是性能,跨平台框架一直以来最受诟病的,就是性能瓶颈,这也是为什么跨平台开发的概念已经有了很多年,但至今还没有被广泛推广的原因。我知道Flutter相比早期的React Native,在一些高端机型的性能上已经有了很大的突破,但我们还是要考虑到它在低端机型上的问题。”
“Flutter支持的最低版本是安卓4.1,iOS 8.0。而我们对安卓系统最低版本的要求是5.0棒棒糖,对iOS系统的最低要求是12.0。我给你们看个图。”
程宜打开了她长期放在桌面每半年更新一次的三张图,第一张是北美地区安卓、iOS市场份额图,第二张是北美地区iOS不同版本的市场份额,第三张时安卓不同版本的市场份额图。
“你们看,在北美地区,iOS的市场份额占到了将近60%,而在剩下的安卓市场里,5.0以下的版本也仅仅占了7%而已。所以虽然低端机型的性能表现不佳,但一方面本身我们涉及到的低端机型就不多,另一方面,也看我们怎么使用了。”
整个会议室里十来号人的目光,都在程宜身上。
有人脸上明明白白写着不屑,甚至懒得去看一眼屏幕上的字,整个人透着一种对自己的技术能力绝对、不容置疑的自信和傲气气场。
更多人用一种活见鬼的惊奇表情,看着这个年轻的女生梗着脖子,倔强地把电脑屏幕转到大家面前——其实大部分人都看不清屏幕上的字——像是没见过