User:AstrianZheng/drafts/progressivewebapps
渐进式网页应用程序(Progress Web App,PWA)是一种普通 网页 或 网站 架构起来的 网页应用程序,但它可以以传统 应用程序 或原生 移动应用程序 形式展示给用户。这种应用程序形态,企图将目前最为现代化的 浏览器 提供的功能与移动设备的体验优势相结合。
技术背景
[编辑]自 2005 年以来,网页开发 从 静态形式 升级为以服务器端技术(如 PHP、ASP.NET 等)与客户端工具(如 Ajax[1] 等)以及一些响应式网页设计技术构建的 动态 形式。[2]那时尽管有一些基于网页技术制作的网页应用(如 iPhone 于 2007 年展开的尝试),但都在与原生应用的竞争下失败。相较于需要利用浏览器运行的网页应用,原生应用提供一个更好的用户体验和极快的运行速度。以打包资源和直接利用硬件资源的特性,都令原生应用运行速度更快,并提供更多功能。但到 2010 年代中期,由于 HTML 5、CSS 3 和 JavaScript 技术的持续发展,技术更强大、兼容性更高的 浏览器 的出现,以及类似 A10 和 高通骁龙 821 这样强大的处理器的发明,都让高效的混合型应用程序成为强有力的原生应用程序替代品。
混合型应用程序
[编辑]混合应用程序最大程度地还原移动设备的用户体验,并且需要通过应用商店 下载。 因此,它们依然消耗存储空间。 以 标记语言、样式表,以及 脚本语言 制作的互动网页元素没有使用封闭的系统,例如 Flash。 一部分运行在 移动浏览器 的混合型应用没有 URL,但支持丰富的 用户界面,也允许使用一些操作系统层级的能力。 在最新发布的 CSS 3 和 JavaScript 框架 中,开发者被允许使用新的 设计 范式,例如以网格和 Flex 为代表的 CSS 盒模型,还能使用转译、转换与动画等功能。
特点
[编辑]在2015年,设计师弗朗西斯·贝里曼和 Google Chrome 的工程师亚历克斯·罗素提出「渐进式网页应用程序」概念[3],符合条件的应用程序可以现代的浏览器中使用新功能,包括应用工作线程和 网页应用清单,而且用户在原生 操作系统 中,可以从网络应用程序向渐进式网页应用程序升级。 根据 Google 开发者支持页面,[4][5] 这些特征是:
- 渐进式:用户无需担心使用哪个浏览器,也可以正常使用 PWA。因为这些 PWA 以 渐进增强 作为核心信条。
- 响应式:PWA 适应包括电脑、手机、平板等其他常用设备在内的多种浏览环境。
- 连接独立性:利用服务工作线程,PWA 可以离线或网络情况较差的环境下工作。
- 接近原生应用:为用户提供更接近原生应用的交互体验与导航。
- 永葆新版:归功于服务工作线程的更新机制,PWA 可以保证用户永远使用最新版本。
- 安全:通过 HTTPS,PWA 可以阻止通讯窃听,而且能保证内容不被篡改。
- 可被发现: 归功于 W3C 提供的清单文件[6],以及服务工作线程的注册范围机制,PWA 可被标识为「应用」,且搜索引擎可以正常地索引 PWA。
- 可被组装:类似 推送通知 这样的功能在 PWA 上都可以轻松地被组装。
- 可被安装:允许用户直接「保留」最有用的 PWA 到他们的系统桌面,无需到应用商店完成麻烦的步骤。
- 可被链接:只需轻松地分享 URL 便可链接至 PWA 中,无需复杂的安装步骤。
Name | Description | Link | Audit score |
---|---|---|---|
ReSTbasis | Web Starter Kit. | [1] | 100 |
The Air Horner | An Air horn. | [2] | 100 |
chromestatus | Chrome Platform Status | [3] | 100 |
Dev.Opera | Web features and implementations | [4] | 73 |
Bet Calculator | Online bet calculator | [5] | 91 |
emojoy | [6] | 82 | |
Expense Manager | Example expense manager | [7] | |
Firefox Platform Status | Roadmap for web platform features | [8] | |
Flipkart Lite | Online shopping | [9] | 55 |
GitHub Explorer | [10] | ||
Google I/O | [11] | 82 | |
Guitar Tuner | Tune a guitar | [12] | 82 |
Kite OnAir network | Kite Network | [13] | |
Memory Game PWA | [14] | 91 | |
Notepad | Offline Notes | [15] | |
Paytm Lite | [16] | 91 | |
Pokedex | [17] | 91 | |
Polymon by Polymer | [18] | ||
Progressive Beer | [19] | 82 | |
QR Code Scanner | Offline QR code scanner | [20] | 100 |
React HN | [21] | ||
Remember | GPS logging | [22] | 73 |
Resume Nation | [23] | 91 | |
SVGOMG | SVG editor | [24] | 82 |
Smaller Pictures | [25] | ||
Soundslice | [26] | 64 | |
SplittyPie | [27] | ||
sv-ginger | WebGL Morph Demo | [28] | 91 |
Taskade | [29] | ||
TeamGrid | [30] | ||
[31] | 82 | ||
voice-memos | [32] | ||
Washington Post | [33] | 55 | |
Wave-PD1 | Synthesizer with Web Audio API | [34] | 73 |
Web Bluetooth (Intel® Edison demo) | [35] | 100 | |
Web NFC enabled shopping cart | [36] | 100 | |
Wiki Offline | [37] | 73 | |
X Sound | [38] | 45 |
参考文献
[编辑]- ^ Garrett, Jesse James. Ajax: A New Approach to Web Applications. [February 18, 2005].
- ^ Marcotte, Ethan. Responsive Web Design. [May 25, 2010].
- ^ Russell, Alex. Progressive Web Apps: Escaping Tabs Without Losing Our Soul. [June 15, 2015].
- ^ Your First Progressive Web App | Web Fundamentals - Google Developers. [2016-07-17].
- ^ Google Developers. Progressive Web App. [June 15, 2015].
- ^ W3C “Web App Manifest”, Working Draft, retrieved 12 September 2016
[[Category:网络应用程序]]