随着日益增多的应用进入到我们的视野,追求轻量级开发逐渐成为了研发的趋势。
最常见的轻量级的代表便是小程序,可以在避开下载新应用的前提下,呈现在不同的端上。同样是无需下载,主打“一键直达”式的快应用也在去年便出现在人们视野之中。除了以上两者之外,还有号称下一代web应用模型的PWA,这些都是无需安装就能快速使用的轻量级模型。
三种轻量级模型对比
模型名称 | 优点 | 缺点 | 运行环境 | 兼容性 | 开发语言 |
---|---|---|---|---|---|
小程序 | 用完即走 | 不易留存、体验感差 | 依赖于APP,比如微信、支付宝 | 可跨平台 | 类Vue |
快应用 | 成本低、体验好、留存高、与操作系统深度集成 | 支持度低 | 依赖于 安卓手机系统,由国内九家手机厂商联合推出 | 显然不支持九家之外的系统 和 iOS 系统 | 类 Vue |
PWA | 可链接、独立于网络、渐进式、可重用、响应性和安全的,支持离线、通知、推送 | 浏览器对技术支持还不够全面,仍然只是个网站 | 依赖于 浏览器,由 Google 提出,现在 微软 、苹果 都在支持 | Android 支持较好,iOS 需要适配,国产浏览器支持较差 | 无限制 |
小程序
现阶段小程序的载体类型五花八门,不在局限于微信,支付宝、京东、美团、字节跳动都陆陆续续着手小程序的开发,但面临一个非常严重的问题就是不同端的小程序有着不同的开发规则,小程序的赛道越来越拥挤,开发人员需要适配的小程序平台越来越多,因此实现多端适配也成了小程序开发中的趋势。
👉 Taro 是一个开放式跨端跨框架解决方案
这些小程序开发框架最主要的区别是 DSL
推荐非常不错的文章:📒《小程序跨框架开发的探索与实践》演讲
快应用
快应用、快游戏这些都非常贴合原生的应用,使用体验更佳
与操作系统集成的性质使得它能够摆脱类似小程序之类的框架的限制
渐进式web应用/PWA
PWA并不是单指某一项技术,你更可以把它理解成是一种思想和概念,目的就是对标原生app,将Web网站通过一系列的Web技术去优化它,提升其安全性、性能、流畅性、用户体验等各方面指标,最后达到用户就像在用app一样的感觉。
PWA中包含的核心功能及特性如下:
- Web App Manifest
- Service Worker
- Cache API 缓存
- Push&Notification 推送与通知
- Background Sync 后台同步
- 响应式设计
原理
当用户从主屏幕启动时,service work可以立即加载渐进式Web应用程序,完全不受网络环境的影响。service work就像一个客户端代理,它控制缓存以及如何响应资源请求逻辑,通过预缓存关键资源,可以消除对网络的依赖,确保为用户提供即时可靠的体验。
Web应用程序中,可以通过manifest.json控制应用程序的显示方式和启动方式,指定主屏幕图标、启动应用程序时要加载的页面、屏幕方向,甚至可以指定是否显示浏览器Chrome。
主要技术实现
- 离线使用
Service Worker + HTTPS +Cache Api + indexedDB
等一系列web技术实现离线加载和缓存 - 数据更新
Background Sync
后台同步技术 - 实现推送
Push&Notification
实现推送与通知 - 添加到桌面
通过manifest.json
文件配置,使得可以直接添加到手机的桌面上
腾讯 Wepy :让小程序支持组件化开发的框架
美团 Mpvue :是一个使用 Vue.js 开发小程序的前端框架
百度 Lavas :是一套基于 Vue 的 PWA 解决方案
考拉 Megalo :基于 Vue 的小程序框架(支持微信小程序、支付宝小程序、百度智能小程序)
Google Workbox 开发 PWA 时 需要使用 ServiceWorker,Workbox 是 ServiceWorker 的一个封装