PWA 技术诞生的前世今生漫谈

简介: PWA 技术诞生的前世今生漫谈

倡导原生应用开发的观点认为,网络浏览器在访问硬件方面存在很多局限性。然而,最近谷歌、微软和 Mozilla 推出了一些有趣的技术:


  • 剪贴板 API
  • Presentation API 可以检测外部显示器是否打开,
  • Web Share API 用于在社交网络中分享页面
  • Web 蓝牙 API 可用于与附近的物理设备集成。 例如,物联网解决方案可以使用它。
  • 通用传感器 API 用于与传感器一起工作,例如加速度计、陀螺仪、光传感器、指南针等。


https://whatwebcando.today/ 是一个很好的资源,它列出了浏览器中最新实现的功能。可以想象的是,Web 应用程序将从原生应用程序中获取越来越多的东西。


多平台桌面软件(multi-platform desktop software)有类似的技术:Electron


例如,Skype 和 Atom 是用 Electron 构建的。 Electron 通过将 Chromium 和 Node.js 组合成一个单一的运行时(single runtime)来实现这一点,并且可以为 Mac、Windows 和 Linux 打包应用程序。


早在 2015 年底,谷歌就公开了一种令 web 应用开发人员兴奋的开发新方法,这预示着将摆脱行业中普遍存在的功能受限现状和平台锁定设计。


这种新方法被恰当地称为 progressive web app 或 PWA.

8ee76478eb13bb4e60fb35dd5e49783c.png

这个概念带来了提供将网络的最佳品质与原生应用程序相结合的体验承诺。


PWA 不是一个框架或工具集,而是一个概念,是开发人员需要在应用程序中实现的一组功能,以便将应用程序的用户体验提升到一个新的水平上。


我们可以称某网站在某种程度上是 PWA. 它满足的 PWA 清单中的功能越多,它就越接近这个概念。


换句话说,开发人员手中具备开发工具,比如 Service Worker、Push Notifications 等,并且明确努力的目标:开发出快速、可靠、吸引用户的应用程序。


开发人员能够将一个应用程序的 PWA 特性实现到何种程度,完全取决于其自身花费的时间和精力。一个应用程序符合 PWA 特性的程度,也称之为 PWA-ness.

39a38288ce70af9a49042372eb3896d1.png

PWA 的主要特点是:


  • 渐进增强(Progressive enhancement):应用程序在尽可能多的环境中运行。 如果它需要服务,它应该使用任何可用的服务,并在没有服务的情况下优雅地降级。


  • 响应式用户界面(Responsive user interface):该应用程序适应各种输入方式(触摸、语音等)和输出方式(不同的屏幕尺寸、振动、音频、盲文显示等)。


  • 连接独立性(Connectivity-independence):该应用程序在离线状态下以及间歇性或低带宽网络连接下也能运行良好。


  • App-like UI:应用程序采用原生平台的 UI 元素,包括快速加载的用户界面(可以通过 Service Worker 缓存重要的 assets 来实现)。


  • 持续更新(Continuous updates,有时也称 freshness):Service Worker API 定义了一个将应用程序自动更新到新版本的过程。


  • 安全通信:该应用程序通过 HTTPS 提供服务和通信,以防止窥探和攻击。


  • 应用程序发现:W3C 网络应用程序清单等元数据,使搜索引擎能够找到网络应用程序。


  • 推送交互(Push interaction):推送通知等功能可以主动让用户了解最新信息。


  • 本机可安装性(Natively installable):在某些平台上,可以安装 Web 应用程序,使其感觉像本机应用程序(主屏幕上的图标,应用程序切换器中的单独条目,浏览器 chrome 可选)。所有这些过程都无需通过本机应用程序商店来进行。


  • 可链接性(Linkability):通过 URL 轻松共享应用程序,无需安装即可运行。
相关文章
|
29天前
|
人工智能 安全 Android开发
移动应用发展与移动操作系统演进
移动应用的快速发展和移动操作系统的不断演进已经成为当今科技领域的热门话题。本文将探讨移动应用开发的趋势、移动操作系统的发展历程以及它们之间的互动关系,为读者解析移动应用与系统在科技创新中的重要性。
17 5
|
1月前
|
Rust 前端开发 开发者
探索前端技术发展趋势:从WebAssembly到PWA
【2月更文挑战第10天】随着互联网的快速发展,前端技术也在不断演进。本文将从WebAssembly和渐进式Web应用(PWA)两个方面探讨前端技术的发展趋势,分析它们对于前端开发的影响和未来发展潜力。
|
7月前
|
供应链 JavaScript 前端开发
业界三款主流的 PWA Storefront 概述
业界三款主流的 PWA Storefront 概述
140 0
|
移动开发 Dart 前端开发
【技术干货】移动端跨平台技术发展
移动端跨平台技术一直在寻求研发效率动态性与性能体验间的平衡,本文归纳总结Hybrid技术、React Native技术、Flutter、小程序的技术演进与未来趋势。
2234 0
|
4天前
|
缓存 API 定位技术
PWA:革新移动网页体验的技术之力
【4月更文挑战第23天】PWA(Progressive Web Apps)技术革新移动网页体验,结合Web开放性和原生应用性能,提供接近原生应用的体验。通过Service Workers、Manifest和HTTPS,实现离线访问、推送通知等功能。PWA具有跨平台兼容、无需安装、快速加载等优势。构建PWA需关注HTTPS通信、Manifest配置、Service Workers管理和性能优化。遵循响应式设计、清晰交互等最佳实践,不断提升用户体验。PWA将持续推动移动应用领域创新。
|
1月前
|
开发工具 vr&ar Android开发
移动应用开发的未来:跨平台工具的崛起与移动操作系统的演变
【2月更文挑战第30天】 随着移动互联网的不断演进,移动应用开发已经从单一平台的专属开发模式,转向了跨平台、高效率的开发策略。本文将深入探讨跨平台移动应用开发工具的兴起,以及它们如何影响移动操作系统的发展。同时,我们还将分析移动操作系统的最新趋势,包括它们如何适应这些开发工具和市场需求的变化。通过对未来技术的前瞻性展望,我们希望为开发者和企业提供有价值的洞察,帮助他们在竞争激烈的移动市场中保持领先。
|
1月前
|
编解码 前端开发 JavaScript
前端发展趋势:WebAssembly、PWA 和响应式设计
前端发展趋势:WebAssembly、PWA 和响应式设计
|
1月前
|
Rust 前端开发 JavaScript
探索前端技术的新趋势:WebAssembly的崛起
【2月更文挑战第11天】在Web开发的领域中,JavaScript一直占据着主导地位,但随着WebAssembly(简称Wasm)的出现,前端开发的边界正在被重新定义。本文将深入探讨WebAssembly的核心优势,如何与传统的JavaScript生态系统协同工作,以及它如何为前端开发带来革命性的性能提升和更广阔的应用前景。通过具体案例分析,我们将展示WebAssembly在实际项目中的应用,为前端开发者提供全新的视角和思考路径。
|
2月前
|
Rust 前端开发 安全
探索未来前端发展趋势——WebAssembly技术的崛起
【2月更文挑战第1天】在不断变化的互联网技术领域,前端开发者需要不断更新自己的技能以适应新的需求和挑战。本文将探索WebAssembly技术的崛起,分析其对前端开发的影响和潜在前景,并介绍如何利用WebAssembly提升应用的性能和可扩展性。
25 1
|
3月前
|
边缘计算 编解码 Rust
探索WebAssembly:革新性技术的崛起
WebAssembly(简称Wasm)作为一种全新的跨平台字节码格式,正在改变着Web应用程序的开发方式和运行效率。本文将深入探讨WebAssembly技术的基本原理、优势特点以及其在各个领域中的广泛应用,并展望未来WebAssembly对于Web开发和跨平台应用的巨大潜力。