自从微信小程序发布以来,这种全新的生态迅速引爆了国内的移动互联网,这种寄生于超级App的小程序模式,在运行效果、开发效率、传播方式都优于传统的H5,引得各大互联网厂商纷纷入局,迅速推出了适合自己生态的小程序。目前已推出小程序的厂商有如下:
- 腾讯系小程序 (微信/企业微信/QQ)
- 阿里系小程序 (支付宝/淘宝)
- 百度系小程序 (百度APP/百度地图)
- 头条系小程序 (抖音/今日头条)
加上传统的App以及H5, 如果我们要上线一个完整覆盖各个平台或者渠道的移动端应用,我们需要单独对各个平台进行独立开发。随着流量竞争的白热化,客户对产品上线的要求越来越高:覆盖用户广、迭代周期短、上线发布快,这样也就催生出了许多跨端开发的框架。
目前所有的小程序都是寄生在原生App里面,开发语言及方式又与传统的H5开发类似。所以,从结构上我们可以将主流移动应用分为三类,具体如下:
-- | 平台及开发语言 | 开发工具 | 特点 |
---|---|---|---|
H5应用 | javascript/html/css | vs/Idea Intellij | 运行在浏览器,支持跨平台,可自主发布,但使用体验较差 |
原生App | Android(Java/C++)iOS(Object-C/swift) | eclipse/Android Studio/Idea Intellij/vs/Xcode | 依赖底层OS支持,同一应用不同OS无法跨平台,需多平台单独开发/发布 |
小程序 | javascript/ml/ss | 对应官方小程序开发工具 | 运行环境依赖宿主App,多平台单独开发/发布 |
H5应用也即Webapp,从互联网诞生之初就一直在进化,从最初的静态页面,到jQuery时代,到如今的SPA/PWA时代。得益于NodeJs的兴起,诸如NPM、Webpack、gulp等前端工程化工具也越来越流行,前端开发框架目前也百花齐放:Angular/Vue/React三驾马车,新兴框架与技术层出不穷。开发效率确实是提高了很多,但由于其对硬件设备和网络依赖较为严重,在使用体验上实在难以达到原生APP。因此,H5在目前的移动互联网时代始终是做为一个配角的存在。
移动App目前主流一直是Android/iOS两大平台,不同平台单独开发,单独发布。随着前端生态的繁荣以及智能手机整体硬件水平的提高,开发者提出了用Web技术开发移动App的概念:从最开始的Phonegap/Cordova、到后来的Ionic、再到Hybrid/RN/Weex、再到现在炙手可热的Flutter,都是跨端开发的践行者。常用功能采用原生方式进行开发,配全webview加载H5活动页,再配合JSBridge来实现消息互通,这样的混合开发模式可以满足市面上80%的商业场景。但是移动App的开发、维护以及推广成本都比较高,对于部分企业或者个人来说都是巨大的压力。
小程序的出现,似乎打破了这个僵局
小程序在开发模式上类似H5,但运行体验以及发布流程中又与原生App类似,看似是一个折中的方案,但却都吸收了H5和原生App各自的优势:
-
出色的使用体验
除了第一次加载可能需要等待2秒,后续的使用体验基本与原生App接近,基于开放的Api也可以缝使用系统设备的诸多功能,如:摄像头、电话、陀螺仪等,当然也可以嵌入H5页面。 -
高效且低成本的开发效率
各大厂商推出的小程序开发模式,基本与H5开发类似,核心都是javascript,传统的web开发人员,经过短暂的熟悉之后便可以轻松上手。同时小程序的注册/发布基本都是免费,也没有Apple类似的开发者费用。 -
快速的分享与传播
能推出小程序的厂商,都是移动互联网的流量之王,一个链接或者一个带二维码的图片,可以通过宿主App快速分享,可以是朋友圈、群聊、评论、或者是传统的邮件、短信等。
随着小程序的日渐普及,越来越多的开发者加入其中,便出现了许多基于小程序生态的跨端解决方案,目前使用比较多的有以下几种:
-- | Wepy | Taro | Mpvue | uni-app |
---|---|---|---|---|
开发团队 | 腾讯 | 京东 | 美团 | DCloud |
语法风格 | 类Vue | React | Vue | Vue |
多端复用 | 微信/支付宝 | H5/多平台小程序/RN | H5/微信/头条/百度 | H5/多平台小程序/App |
状态管理 | Redux | Redux | vuex | 兼容vuex |
上手成本 | 熟悉Vue | 熟悉React | 熟悉Vue | 熟悉Vue |
构建工具 | 开发工具内置 | Webpack | Webpack | 开发工具内置 |
推荐开发工具 | 微信开发者工具 | 普通web开发 IDE | 普通web开发IDE | HBuildX |
最后一次Release日期 | 2020-03-21 | 2020-03-24 | 2019-02-18(2.0.0) 2019-05-18(1.4.4) | 2020-03-19 |
GitHub地址 | wepy | Taro | mpvue | uni-app |
-
Wepy
源于腾讯内部的个人开源项目,其借鉴了Vue的语法风格和功能特性,支持了Vue的诸多特征,比如父子组件、组件之间的通信、computed属性计算、wathcer监听器、props传值、slot槽分发,还有很多高级的特征支持 :Mixin混合、拦截器等。对微信小程序相当友好,不过对其它平台的小程序支持度较差,没有做平台兼容性。
-
Taro
Taro由就东凹凸实验室开源,基于React生态的小程序组件化开发框架,同时支持JXS,生命周期也是完全与React一致,同时还可以编译成H5以及RN,京东小程序也在准备当中,官方推荐开发框架为Taro。
-
Mpvue
美团点评出品的Mpvue是最先出现的第三方小程序开发框架,完全合用VueJs的开发模式,可以做到90%的功能复用,同时对小程序Api做了底层的封装,如支持使用mpvue.getStorage() 来替代wx.getStorage(),从而实现不同平台小程序的跨端体验。
-
Uni-app
国内厂商DCloud推出的一个全功能跨平台开发框架,使用其编写的代码可以一次性编译成小程序/app/h5/流应用等。DCloud一直致力于推广跨平台应用的开发,之前有推出过NativeJs、Mui等开发框架都有很多开发者以及成功案例。uni-app完全兼容VueJS的语法,同时对Vue的核心代码进行了剪切,移除了Dom相关的代码,只保留了虚拟Dom,然后通过独有的JS引擎来进行编译,从而实现一次开发,多端运行。
网友评论