当前位置: 首页 > news >正文

​渐进式Web应用PWA的未来

如今,互联网大流量早已进入了移动端,国内主流互联网产品的移动端流量已经普遍超过整体流量的80%。在移动端应用开发中,我们要面临为不同操作系统(Android、iOS、Windows 10)、不同设备(手机、平板)开发应用的问题,为此我们需要投入额外的成本应对这些差异。就算我们投入了成本,开发出了产品,在下载和安装环节,仍然存在很大的推广成本问题。统计学研究表明,安装烦琐是用户放弃尝试更多应用的主要原因之一。

 

PWA技术可以很好地解决这些问题。PWA运用现代的Web API能力为Web进行了扩展和增强,使Web具有与原生应用程序类似的体验度和能力。作为一种W3C的规范实现,PWA可以正常地运行在各个平台的浏览器中,真正做到一套代码解决所有平台一致性问题。同样,由于PWA具备安装成本几乎为0的特点,它非常适合实现Web端到应用端的过渡,提升转化率。

 

目前,国内外越来越多的网站对PWA进行了接入,如微博、当当、京东、头条、星巴克、优步、推特、脸书、淘宝、饿了么……接入后的性能和转化率都有明显提升。如今谷歌、微软、英特尔等公司为PWA投入了技术支持和发展,Web的主流框架React、Vue等对PWA提供了快速接入方案,主流的浏览器厂商也紧跟其后,共同为PWA生态系统提供支持。

 

然而,根据我近几年对国内业界和前端社区的观察,可以说PWA在国内还没有发挥出它应有的作用。在这里,我尝试分析一下其中的原因,以及未来趋势。

 

第一,至少近三年,国内前端领域的技术发展,除了跟随国外最新动向之外,总的趋势是业务属性较强的技术更受重视。其中,最令人瞩目的小程序相关技术,以及低代码搭建相关技术,就是典型—两者分别迎合了国内头部互联网公司流量分发强管控的现实需求,以及中国互联网产业逐步转向企业服务的大背景。

 

PWA作为一个中立性很强的技术组合,尽管主要由Google推动,但其开放性以及主要着眼点在于优化具体的产品体验而非满足业务诉求的特点,导致它在国内主要由社区推动,声量明显不如商业推动力强的技术,处于一种“大家各取所需,却不知道别人也在各取所需”的微妙境地。

 

面对这种状况,作为技术人,我们要理性看待,而不是像一些跟风者一样片面地去肯定或者否定一项技术。事实上,PWA作为一个渐进式的技术组合,其中的若干技术,比如Service Worker、离线存储,乃至性能评估工具Lighthouse等,早已因其极强的实用性,在国内得到了广泛应用。

 

第二,一项工程技术的落地,除了原理论证以及各种功能点与性能指标的验证之外,还需要一个成本颇高的“踩坑”过程。这不是找一两个实习生通过Demo做个演示就可以解决的,而是需要实实在在的经验积累,其中既包含实现细节、性能优化、技术权衡、应对国内特殊场景的技巧等知识的积累,又包含开发、运维、数据统计等必不可少的开发工作链路上的基础设施建设与经验积累。

 

 

第三,PWA的定位在于让开发者快速开发出同时具备“优质的Web,轻盈的应用”两种属性的产品。而这样的属性,在粗放发展的互联网业态中,暂时没有得到应有的重视。

然而,事情正在发生变化。

在大家都在谈论“互联网下半场”的时代,我们有必要思考“下半场”对于我们而言有什么样的具体含义。我的个人理解是,所谓上半场,比的是人无我有,人慢我快;而下半场,比的是人有我优,人粗放我精致,我们现在正在见证这样的市场转变。而PWA,作为一种显著提高用户体验的技术,必然在这个过程中展现出它的优势,谁能更快更好地利用这种优势,谁就能在新阶段的前端技术竞争中占领先机。

 

一直以来,PWA技术领域都缺乏优质、可靠的中文技术资料。对其做调研的团队,一方面直接参考官方文档,一方面只能通过各种技术博客等不可靠的渠道获取一些零散的信息,通过拼凑和尝试积累经验,这无形中推高了技术调研的成本。

 

 

《PWA入门与实践》这本书作为第一本中文原创PWA技术书籍,它既不是文档翻译,也不是手把手教你敲命令,把开发技术写成“菜谱”,而是涵盖了从理论准备到实操流程,再到经验分享的一本“全链路书籍”。它可以帮你真正理解PWA,同时获得一些由作者亲自验证过的工程落地中“踩坑”的经验。这本书完全可以称为“PWA民间中文指南”,有了它,我们终于拥有了一些可靠的、系统化的、本地化的、开箱即用的PWA技术资产。

 

扫码了解详情并购买

更多精彩回顾

 书单 | 5月书讯 | 华章IT图书上新啦!重磅新书在线投喂...

干货 | 73页PPT,教你从0到1构建用户画像系统(附下载)
榜单 | 423世界读书日 | 华章精品IT书单独家推荐

收藏 | 这10本书助你从容应对数字化转型中可能出现的各种挑战

相关文章:

  • G1垃圾回收算法概述
  • 【第7期】云计算监控——Prometheus监控系统
  • 一行简单的管道命令快速创建、原型化复杂的功能
  • 数据分析师的案头工具书都在这了
  • 薅当当羊毛的机会又!双!!叒!!!叕!!!来了
  • 520 情人节 :属于Python 程序员的脱单攻略大合集(视频版)
  • 高端科普系列——领略前沿科学的魅力
  • 周志明虚拟机最新版,大厂面试必备宝典
  • 对话阿里云 MVP:跨界半生,不改赤子之心
  • 想一探Greenplum内核的奥秘?这场直播不容错过!
  • 创建字节跳动之前,张一鸣读过哪些硬核技术书?
  • 周志华领衔撰写,历时4年,宝箱书问世!
  • 【第6期】R语言是什么?怎么学?
  • 学数据分析/挖掘应该先学Python,还是R语言?
  • 未来已来,看智能制造如何改变世界 |《铸魂》线上新书发布会
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Java Agent 学习笔记
  • Js基础——数据类型之Null和Undefined
  • SQL 难点解决:记录的引用
  • Twitter赢在开放,三年创造奇迹
  • Yeoman_Bower_Grunt
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何用vue打造一个移动端音乐播放器
  • 实习面试笔记
  • 微服务框架lagom
  • 我的面试准备过程--容器(更新中)
  • 小程序开发之路(一)
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • $.ajax()参数及用法
  • (+4)2.2UML建模图
  • (3)选择元素——(17)练习(Exercises)
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四) 虚拟摄像头vivi体验
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .bat批处理出现中文乱码的情况
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET下ASPX编程的几个小问题
  • .NET中GET与SET的用法
  • .skip() 和 .only() 的使用
  • /etc/fstab和/etc/mtab的区别
  • [ Linux ] Linux信号概述 信号的产生
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [Android] Amazon 的 android 音视频开发文档
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息