开发小程序应该使用原生还是跨平台框架?
小程序的普及与优势
相信大家对小程序都不陌生吧!在生活的方方面面中都有它的身影,比如社区团购、线上购物、打车出行、订餐外卖、健康码、小游戏等,都有小程序的影子。
小程序的普及主要来源于它独有的优势:
- 无需安装,随用随走
- 不会占用过多内存
- 是一种功能强大、轻量化的APP
- 用户通过扫码、活动方式即可快速开启
这些特点深受广大开发者及用户的青睐。
小程序生态现状
提到小程序,可能大家下意识会认为是微信小程序。这主要源于微信作为重要的社交工具,已经成为手机上必备的软件,无疑为微信小程序的推广提供了便利。
其实除了微信小程序外,市面上还有很多软件也有小程序,比如:
- 抖音小程序
- 支付宝小程序
- 百度小程序等等
因为不同软件针对的用户群体不同,可能大家对其他软件的小程序比较陌生。
那么为什么这么多平台都要推出自己的小程序呢?原因很简单:就是鼓励各种开发者及商家进入自己的生态系统,以满足用户吃喝玩乐都能在自己平台完成,完善自己的闭环生态链。
马斯克收购推特后,将创造出一个他称之为"X"的万能程序,听起来很像是要搞西方版的微信。小程序在微信这款APP中占据了重要的一块。
以微信小程序为例,商家开发小程序入驻到微信平台,可以降低企业的运营成本。原先做一款APP需要兼顾开发iOS和Android系统,而小程序是一种在微信中的轻应用,无需考虑平台兼容性的问题,降低了开发成本。
在商品推广方面,小程序依托于微信庞大的用户量,完全能够满足商家对流量转化的需求。"羊了个羊"小程序就是典型的案例,以接龙的形式在朋友圈传播,让开发者赚得盆满钵满。同样,你有一个好点子,也可以开发出一款成功的产品。
如何开发小程序:两种选择
那么如何开发一款小程序呢?你有两种选择:原生开发和跨平台框架开发。
原生开发的优缺点
优点:
- 官方文档清晰明了,更接近手机端的底层逻辑,开发者可以更有针对性地对小程序进行深度开发
- 使用原生开发可以紧随官方的版本更新,运行速度快,让项目达到最优的状态
缺点:
- 开发不同平台下的小程序需要不同的开发工具及语法
- 如微信开发者工具、支付宝工具、抖音工具、快手开发工具等等
- 如果项目只做单一平台的小程序,原生无疑是最优的选择
- 但如果同时开发多平台的小程序,同样的项目需要写多套代码,后期维护起来工作量大、成本高
跨平台框架开发的优缺点
优点:
- 一套代码可以打包到多个不同的平台,能生成各种小程序、H5及APP应用,开发者不需要来回切换各种开发工具,使用一款编辑器即可全部搞定
- 方便入手,使用Vue语法接近小程序语法,有Vue基础可以看文档直接上手;没有Vue基础可以通过跨平台框架掌握Vue开发,毕竟Vue是前端开发的扛把子
- 跨平台框架不断更新支持,而且生态更好一些。如果项目要求不高,基本不用写太多代码,就能做出相关应用
缺点:
- 跨平台框架打包出来的小程序可能会存在平台兼容问题
- 同样的代码在不同平台下存在差异
- 官方版本更新后,框架跟进需要时间
相信这些问题,逐渐都会得到解决。
开发生态对比
下面通过我开发的多款项目演示,为大家介绍一下两种形式的开发生态上的差异对比。我们以微信小程序原生开发与跨平台框架进行客观的对比,列举出几项我认为比较重要的模块,这些可能也是你比较关注的:
1. UI组件库
很多前端的同学CSS写得不太好,像我们一样是非常普遍的。UI组件库可以让我们快速构建出一款美观的应用。微信小程序和跨平台框架都有官方库和第三方库。跨平台框架配合Vue生态的组合,功能更多更全。评论区有链接,大家不信的话,可以自己对比看一下。
2. 插件市场
如果我不提,相信很多同学不知道微信还有插件市场这东西。知道的同学请扣1,不知道的同学请扣2。录这视频前我做的最新统计:微信服务市场的插件111款,跨平台框架插件市场7901款。很明显,跨平台框架插件市场开发者活跃度更高。
3. 用户体系
微信小程序依赖于微信的一套功能,非常方便。跨平台框架不但能够使用微信功能,而且还有一套自己的用户管理系统,结合uniCloud,几乎不需要写太多代码,就能集成一套多平台的用户登录注册体系。
4. 后台管理系统
微信小程序有自带的内容管理系统,跨平台框架有uniCloud的后台管理系统。从上手难易程度来讲,微信的内容管理系统非常简答方便,但是模块不能扩展,只能做一些简单的增删改查。uniCloud的后台管理系统其实是一个Vue项目,上手有难度,但是可以任意扩展自定义模块。
5. 云开发
云开发可以让前端工程师自己操作数据库。目前腾讯小程序依赖的腾讯云开始收费了,越来越贵。uniCloud可以使用腾讯云、阿里云,目前阿里云免费,依然可以免费使用。
6. 难易程度
如果你是新手的话,上手哪个都可以,都算是前端必备的技能。
通过这几个模块对比,如果有同学认为我偏袒跨平台框架,说明你对跨平台框架的认知还不够。你可以把你的意见发表在评论区,我会为你解答。
总结
- 如果时间紧、任务重、预算少、多平台,不要犹豫,直接选择跨平台框架就可以了
- 如果只开发单一平台的小程序,而且时间充裕的话,选择原生开发即可