小程序多种开发方式对比 - 跨端?低代码?原生?还是云开发?
目前“小程序”的开发与应用呈现“井喷”之势,作为小程序的鼻祖,2021 年微信小程序开发者突破了 300 万,日活跃用户数(DAU)已经超过 4.5 亿,微信为开发者支付的广告分成接近百亿。在微信小程序火爆之后,各个互联网厂商相继推出了自己的小程序,比如:支付宝小程序、百度小程序、字节跳动小程序、快应用、QQ 小程序、360 小程序、京东小程序、快手小程序等。小程序相对于 APP 应用存在若干的优势:
免安装,使用方便,占用更少的手机资源
容易分享,小程序的内容产出容易进行社群分享传播
学习的门槛低,开发成本逐步降低
我们就从开发成本逐步降低,这一个角度来说明一下目前小程序的若干开发方法。
一、原生开发
优点是:以微信小程序为例,原生开发官方的文档、视频教程、API 查找都非常的规范、系统,官方的文档齐全。而且原生开发更接近手机服务底层,一旦出现问题容易定位,并解决问题。缺点是:原生开发的代码量相对比较大,组件少样式美观度不够,语法的灵活度不够,开发效率相对较低。并且不同平台的小程序语法不同,如果小程序需要适配多个平台,开发成本非常高。
二、结合 UI 框架开发
为了解决原生开发的代码量大,组件少美观度不足的问题,出现了很多适配小程序的界面 UI 库。比较典型的有:腾讯的 weui、有赞的 vantUI。使用了界面 UI 库之后,代码量明显的减少,代码更加简洁,提高了开发效率以及代码的可维护性。
这些组件 UI 库的文档也都非常的规范化、系统化。只需要简单的几个步骤就可以引入文件、使用组件,大部分操作只需要进行代码搬运即可。
三、跨端开发方式
正如笔者之前所说的,目前已经有非常多的厂商推出了自己的小程序,如:支付宝小程序、百度小程序、字节跳动小程序、快应用、QQ 小程序、360 小程序、京东小程序、快手小程序等,加上 android、IOS、H5 移动端页面,如果针对每一个平台开发一套小程序,那么开发成本是非常高的。于是出现了跨端开发的框架,寄希望于写一套代码,就可以自动生成适配多个平台的小程序、H5、android、IOS。这种框架目前还是很多的,大概分为两个派系
vue 语法派系,比如 uniapp、chameleon 等
react 语法派系,比如阿里的 remax,京东的 taro
其中由于国内的 vue 生态比较好,uniapp 几乎是复用了 vue 语法,所以其学习成本相对较低。组件库以及插件非常丰富,深受 vue 开发者的喜爱。在这里笔者要为 uniapp 鸣不平,由于很多开发者一直信奉“国外的月亮比较圆”,每每提到 uniapp 的时候,就会有人跳出来指出“这不行、那不行”,但是笔者的团队已使用 uniapp 开发了多款跨端移动应用,总体来说还是不错的。只要你不是使用它开发那种和手机硬件高度结合的应用(比如连接各种手机传感器的那种应用),uniapp 完全可以满足你的开发需求。之前一直为人诟病的文档不规范的问题,uniapp 也在一直的不断完善。最重要的是:uniapp 的用户量非常大,一旦出现了问题你可以与大量的开发者交流解决方案。
当然使用跨端开发框架的缺点就是:问题的排查成本高,遇到框架有 bug 或无法支持的功能时,只能期待官方更新版本。当然,笔者还是要介绍自己的经验:只要你不是使用它开发那种和手机硬件高度结合的应用,问题都不大,都能解决。 当然也不是说,不能开发与手机硬件结合的应用,就像调用手机 GPS 获取经纬度、拨打电话、罗盘、蓝牙等笔者团队也都开发过,性能上照比 andoid、IOS、小程序原生会差一点点,但是总体也是可用的。目前 uniapp 支持的硬件设备 API 如下:
四、低代码开发
开发者总是越来越懒惰的,我觉得程序员未来一定是向低代码、人工智能去发展,未来的开发者只需要写非常少的代码就可以完成今天不敢想象的功能。虽然“低代码”目前在很多领域还是鸡肋,但是在小程序开发的领域,低代码已经具备了相当的可行性,毕竟小程序开发重要的环节就是界面设计。所以,可视化的页面平台,通过拖拽组件、输入配置来改变组件的样式和行为,再自动生成代码。这种小程序的低代码平台应运而生,如腾讯的 WeDa。
五、云开发
最后给大家说一下云开发,这种开发方式目前我只知道是“微信小程序”提供。它解决的主要问题是:目前开发小程序的核心工作仍然是设计与前端实现,很多小程序的开发者都是前端开发者,这就会出现一个问题:前端开发者没有后台数据,无法独立完成开发。云开发方式应运而生!
云开发的就是不需要自己搭建后台服务,通过调用操作数据库的云函数即可获取服务端的数据。即使只会前端,也能开发一个完整的小程序。 当然后端的这些云服务都是需要付费的!
总结
最后不管怎样,小程序开发的核心仍然是前端开发,即:开发界面、交互以及一些数据请求的业务逻辑。需要你掌握最基础的 HTML+JS+CSS,虽然不完全一样,但大同小异。目前跨端开发仍然是主流的开发方式,所以最好先掌握一门前端框架,vue 或者 react。
版权声明: 本文为 InfoQ 作者【字母哥哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/a84e9df6218299789deac6315】。未经作者许可,禁止转载。
评论