个人观点:不简单
笔者从事android系统以及客户端开发,超过5年,期间有一段时间,也非常迷茫:开发一个App,无非就是github上那些开源lib的拼拼凑凑,有什么难度。这个想法一度和很多外行人一致。使得自己非常不自信。
但最近一直在思考,其实这个观点不正确的。 为什么市场上还愿意给移动端工程师开几万的薪资而不是几千的薪资,实际上已经间接的证明了价值所在。
既然移动端开发不简单,那它复杂在哪里? 这个问题可以回归到软件产品的复杂度,有哪些因素决定。 个人认为: 有几个方面:
一.业务逻辑的复杂度
虽然现在的前端很多重的逻辑都挪到后端,但是不少逻辑依旧是要放在前端的,比如:重交互的动画实现、复杂的打点逻辑、多场景的业务情况。
二.客户端开发的开发周期
任何软件产品的开发,都会包含以下过程, IDE使用,API调用,编译,打包,检查,部署,分发,运行,调试,测试。任何一个过程的繁琐都会让开发成本变高,周期加长,比如Android的渠道适配。再如:即使客户端只有按钮,业务复杂度为0,但开发跑在塞班OS上,也够很多人喝一壶。
三。产品标准
写一个demo工程和开发一个商业产品,有着质的区别。 crash率万分之一、页面打开速度500ms,网络成功率三个九。 现在app的规模与5年的app已经相距甚远。不同业务,不同页面,不同元素,不同过程都需要相互解耦,相互配合,到达最更的效率,而且开发过程和流程都需要相应的适配。
如果大家觉得外面有现成的工具库,就觉得开发一个客户端简单,那世界上这么多汽车零配件,也都是现成,是否拼拼凑凑就可以了?还要整车工程师 干嘛。整合的能力,评估的能力,识别的能力。一个优秀的客户端工程师标准,也就是一个整车工程师的标准 你需要了解你的用户,熟悉你的产品和业务。