说到APP的开发,目前有很多的方案,个人觉得在所有的方案都有自己的优点和缺点,针对不同的项目采用不同的方案才是比较合理的,不存在最好的框架,只有最合适的框架方案。下面对当前存在的方案进行一个整理分析。
1、原生开发:
最经典的方式,andoid使用java原生开发,ios使用OC原生开发。最早APP的诞生就是基于这种的开发方式,但是随着时代的发展,越来越暴露出C/S的缺点,不能快速的满足需求响应。
优点:体验比较好,性能高。
缺点:不方便拓展,开发和维护成本较高,学习成本高。
2、H5开发 web应用:
随着移动互联的发展,传统开发者在转变观念的过程中,想到了是不是可以使用H5来解决,在APP加入浏览器访问的方式,这种方案可以快速响应,同时可以快速的提供移动解决方案。但是它的问题在于H5在移动浏览的性能和交互方面体验很差,而用户体验这方面在移动应用来说是个很重要的方面。
MUI+Hbuilder-----国内纯web开发解决方案做的比较好的一个
这几年移动框架的诞生,比如VUE 这种响应式MVVM的架构,在体验上有所提高。
UI方面:像MUI这种针对移动端的界面框架的出现,也在慢慢解决适配问题。
优点:快速提供移动互联方案,响应需求
缺点:性能比较差,用户交互体验很差。
3、混合开发hybird:
有了上面两种方案的诞生,那么就有人提出了hybird的方式,这种方式结合2者的优点,在架构设计的时候,根据不同的业务场景需要,采用不同的方式。例如:一些要求交互比较高,但是不经常变换的采用 原生开发,那些经常需要快速响应的采用H5开发,进行整合。
最早的框架phonegap,后面的cordova开源的框架,都是这种方式,在web与原生的交互方面进行组件化,API化,统一标准。也是目前比较流行的一种方案。
4、跨平台解决方案:
其实为什么要把跨平台方案单独拿出来说,个人觉得走技术的方面来说,它属于第三种技术。但是第三种方案过于开放,很多东西过于杂乱,很难去统一标准,基本上处于一个“各自独扫门前雪“的状态,所以很多大的公司,自己封装了一个基于目前方案的整合,可以做到跨平台。这个方案又在第三方hybird的基础上进行了升级,具体的有React native,国内阿里的weex(VUE+native),微信小程序(只能用于微信内)。其实仔细研究下来发现,这周所谓的解决方案,就是前端与原生的交互编译部分做了二次封装,这个要求的更高,要对原生和H5,JS 等都要熟悉才行。由于整合的比较严格,增加了学习的成本,针对一些中小公司来说,技术人员之间的协调很难,不是H5的开发与原生的开发人员一起,而是需要整体的配合。
通过上面的几种方式,可以预见,未来随着APP的无线增长,手机系统的增加,跨平台可以更好的解决问题,也是未来的一个趋势,虽然目前看还存在各种问题,还在发展阶段,但是并不影响未来能成为一个成熟的解决方案,移动互联网的技术也是在不断的发展中。