大前端趋势

大前端就是指所有前端技术的统称,包含APP、web前端、小程序、H5等等,前端是最接近用户感受的。将所有前端技术统一,通过一次开发来实现所有前端平台的展示,就是目前大前端的趋势。随着跨平台框架的不断发展,大前端趋势越来越迫切,企业乐于见到这种场景,降低了开发成本,对于前端开发人员却提出了更高的要求,需要了解各个平台的特性,学习主流的跨平台框架,去适应这种趋势,不被淘汰。

一、跨平台框架简介

目前主流的移动开发平台就是Android和ios,许多产品都需要针对这两个平台开发两个客户端,开发人员同样也要区分平台,因为两个平台的开发语言、系统特性等等都不相同。这样不得不导致开发成本的上升,对于中小企业来说,这是不小的成本,所以催生了跨平台开发框架的需求,一套代码能够兼容两个平台。

跨平台框架技术的发展其实已经有一些年头了,从最开始的Hybird混合开发技术,到以React Native为核心的桥接技术,以及到最近出现的flutter框架,跨平台框架技术在不断的发展和进化。下面我们先简单介绍一下目前主流的跨平台框架:

  • Hybird混合开发

其核心是Apache开源移动框架Cordava,允许你使用web前端技术(Html5、JS)进行跨平台,依赖于Android和ios自带的webview进行访问,以及通过平台提供的api与设备进行通信,其效果类似于通过浏览器访问网页。

  • React Native

Facebook公司开发的一款移动跨平台框架,通过react和js web前端语言来编写APP应用,通过桥接技术来与设备通信,通过渲染引擎将web编写的控件渲染为平台原生控件,在视觉上拥有原生APP的效果

  • Flutter

Flutter框架是Google提供的一个跨平台框架,使用全新dart语言来开发,能够一套代码运行在多个平台,高性能,直接热重载,提供了许多丰富的具有原生平台风格的组件库。

 

可以说,上面三种框架基本上就包括了现在所有的跨平台框架技术,根据原理大致分为三类:

  • H5+原生(Cordova、小程序)
  • JavaScript开发+原生渲染 (React Native、Weex)
  • 自绘UI+原生(Flutter)

这三类跨平台框架技术都有各自的优劣势

第一类使用H5技术开发界面,通过平台自带的webview控件来加载界面以及相互通信,这种混合开发模式开发出来的APP通常称为web app,目前这种技术最热门的是小程序。这种技术最大的劣势就是性能不好,过于依赖webview,内存占用比较大,难以开发复杂的界面和动画效果

第二类使用js和原生渲染方式的跨平台框架,其性能较之H5混合开发技术要好,使用前端响应式框架技术,提供js解释器来实现原生控件的渲染和通信,其最大劣势是和原生平台通信的效率比较低

第三类以flutter为核心的跨平台框架其实是第二类框架的进一步优化,摈弃了将控件渲染为原生控件,而是提供自带渲染引擎,有自己的一套布局和绘制方式,性能更高,提供插件化的方式来实现原生通信,其通信效率也比较高。

综上所述,各类跨平台框架都有着各自的优劣势,也符合当时的技术背景和开发诉求,人们也不断在探索更好的跨平台技术。就目前而言,跨平台技术在UI界面开发上已经完全实现了跨平台,性能也在不断提升,和原生控件的差距越来越小,但在通信和调用系统服务上,还是无法完全替代原生应用,所以我们在选择跨平台框架的时候,一定要结合自己的现实情况,不能盲从。

二、如何选择跨平台框架

1、必须清楚自己产品的需求和定位

如果你的产品是只是一款平常的客户端,只需要给用户展示相关资讯,展示自己的平台服务,不太需要调用系统特有的服务,你完全可以选择一款跨平台框架来开发。一套代码,运行在各个平台,便于维护,节约开发成本,提升开发效率。但是如果你的客户端是强社交性的,有些各种酷炫的动画效果,对性能要求特别高,那你需要谨慎选择跨平台框架,建议选择第三类。再如果你的产品是一款依赖于系统服务来开发的,比如需要和硬件通信,调用系统驱动或者跨应用级通信,这种你可能没办法使用跨平台,当然这种产品估计也没有跨平台的诉求。

2、产品开发周期和开发团队配置

如果你的产品开发周期不是很紧,你可以尝试使用跨平台框架,不然在你还不太熟悉这些技术的同时,有些坑是需要耗费不少时间的。如果时间紧,任务重,开发团队中有现成的原生开发人员,建议还是原生开发来的效率高。如果产品已经是个成熟的产品,目前处于不断迭代的过程中,如果想要使用跨平台框架来改造,同样预留多一些时间,不然改造的风险还是比较大的。全新的产品开发,使用跨平台框架的话,有熟悉原生开发和熟悉web技术的开发人员那就基本上没啥问题。

3、必须清楚自己的技术定位

如果你以为是个web前端开发人员,想要学习或者使用跨平台框架,在性能要求没那么高的情况下,可以选择小程序和react native这类的框架,上手快,门槛相对较低。而如果你是一个APP原生开发人员,你可以试试flutter,学习一下全新的dart语言,性能高,特别如果你是Android开发人员,对flutter入门相对简单一些,开发工具通用,支持热重载。

 

目前大前端的趋势越来越明显,只会原生APP开发的程序员越来越难找到合适的工作,越来越多的公司倾向于招会混合开发的程序员,既要懂原生开发,也要会一种或多种跨平台框架。特别在国内,跨平台框架的发展非常迅速,企业对于跨平台的需求也越来越多,小程序和APP都是必须要开发的产品。所以我们需要拥抱新技术,新思想,去适应这种变化,不断学习和提升自己,不然容易被摒弃。目前来看,国内比较热门的跨平台就是uni-app和flutter。Uni-app前面没有提到,主要是这个框架目前只是国内比较多开发者使用,特别是小程序出现之后,其实严格意义来说,uni-app可以称为跨平台工具。作为Dcloud研发出来的跨平台技术,整合了国内多个小程序(不仅仅是微信小程序),一套代码可以编译成各种小程序、H5以及APP,还是比较方便,渲染引擎是进化版的weex,性能还是不错的。

 

关注我的个人公众号,提供更丰富的技术资讯和相关资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值