客户端发展思考

智能机(Android&iOS)出现以后,客户端的技术也日新月异,个人感觉主要围绕几个方面的发展。

1.体验不断优化:

       移动端相对于pc端,资源的稀缺性(以后可能不断突破,但目前仍然存在)决定了移动端开发要格外关注客户端的体验问题,手机是否卡端、手机是否发烫、页面是否流畅、网络是否流畅等等都是衡量一个APP质量的重要指标。例如为了解决jsbridge 桥接效率低的问题,Facebook出牌了大名鼎鼎的reactnative,国内的大厂,阿里巴巴也开源了自己的weex。

 2. 跨平台

    第一,在智能时代刚到来的时候,人才的补给跟不上市场需要,很多公司面临着移动化的需要,但是却找不到合适的人才。第二,即使招聘到相关的人才,同时要开发iOS和Android两个客户端,两批人开发同样一套功能的东西,对于资源有限的公司来说不是最优选择。

    一些跨平台开发的工具的出现了,解决了上面的燃眉之急。我最早接触的是Cordova。通过jsbridge的方式,可以让HTML页面直接运行在Android和iOS两个平台上面。大大挺高了开发效率。

    当然跨平台的出现,不仅仅解决开发效率的问题,也解决了开放性的问题。例如微信、淘宝这样的航母级的APP,存在大量的第三方的页面链接,如果不能支持跨平台,难度可想而知。

3.快速迭代

    从业务的角度上来说,快递迭代的业务,要求APP功能越快更新越快,但是目前无论是Android还是iOS,更新APP都需要重新上传包到应用分发平台,已经审核——用户更新下载等步骤,灵活性大大降低,严重制约了业务的发展。

    从技术角度上说,APP上线以后,或多或少存在缺陷(bug),需要一种方式能够快速的重新更新APP,降低影响面。

    出于上面两种最基本的诉求,一种能够快速迭代的开发模式呼之欲出。

    于是,插件化和热修复(hot patch)如雨后春笋,在国内移动开发领域逐渐火起来,Android的比较出名的像阿里巴巴的andfix ,手机qq的超级补丁,微信的tinker,iOS的像jspatch。 

    上面几种方式都是通过更新native代码(native代码通常指的是跟随在包里面的代码)或多或少面临一些问题,比如兼容性、安全审核等问题。另外一种热更新的方式可以解决这类问题,就是RN ,Flutter。通过把需要更新的代码,打成bundle形式,通过服务端下发的方式,达到快速迭代的目的。


4.信息传播方式的变革

    在最古老的功能机时代,手机的作用仅仅局限于电话、短信等最原始的功能,这些最基本的功能解决的人与人之间的信息传播,相比较书信,效率和信息量大大提升,不仅可以通过文字,还可以通过语言感受到信息的接收方。

    智能机的出现不仅仅需要解决人与人的之间的信息传播方式,也在一定程度上提供了一种补充pc端甚至代替pc端的方式。在2012-2013年前后,各个大公司纷纷提出来“无线 All in”的战略,并通过成立相对应的无线事业部具体落地。手机QQ ,手机淘宝逐渐代替了人们爬在电脑前进行聊天、购物的方式。

    智能机在硬件上的突入和可移动性,也催生了相关的行业的产生,一大批独角兽纷纷诞生,例如基于定位(LBS)的滴滴出行、共享单车等出行领域,还有支付宝、微信等移动支付领域快速发展。

你可能感兴趣的:(客户端发展思考)