应用程序,Web应用开辟指南第大器晚成章

Google Web应用开发指南第一章:什么是Web应用?

2012/02/21 · HTML5 ·
HTML5

原文链接:KNOW YOUR
APPS,翻译:webapptrend

很多人向我问起学习HTML5技术的权威入门资料,我总是毫不犹豫地推荐由Google推出的HTML5rocks,这个网站就像一个宝库,包含经
典的教程、文章、Demo和代码。近日 Chrome小组又推出了一个很酷的Web
App电子书,讲述了Chrome开发人员对Web
Apps的思考和最佳实践,推荐每个关注Web Apps的开发者阅读。Web
AppTrend为方便国内开发者浏览,将全文进行翻译。

图片 1

注:这本书就是一个Web Apps的绝佳案例,据开发小组的人介绍, 该电子书Web
App使用了很多CSS3 特性例如 box-shadow, opacity, multiple
backgrounds以做出丰富的交互体验,用到了AppCache和其他URL重写技术,没有用到一行服务端代码;使用了HTML5
history API来保持应用状态。

以下为第一章内容,清楚阐述了很多人非常困惑的Web Apps概念问题。

从今天起,我们将逐步发布《Web App开发指南》,敬请期待。

人们对应用的需求是非常强烈的,它无处不在!这个综合性的指南将提供给你一些构建现代web应用所需的技术以及惯例的介绍。这一领域指南旨在帮助你在web应用中创建良好的用户体验。无论你是初次构建web应用,还是在寻找提升已有应用的方法,这一指南都能帮到你!

祝福你所有的努力。

未来向着应用迈进吧!

Web Apps的变革

HTML5让开发者能打破以往构建web应用时所受的限制

还在不久以前,web只是用来做“搜索”的;它主要的功能就是提供信息。要执行任务,用户要购买并安装软件到他们的电脑桌面。了解你的web
apps的关键是了解技术是如何影响了web apps的变革,现在,即使web
apps不能比桌面应用提供更多,但它至少可以做得和桌面应用一样多了。

异步web apps已经改变了用户的交互

早期的web页面内容是静态的,现在一切都发生了根本的改变。页面是动态加载或改变的,而不是一次性展现所有内容。

新的语言标准提供了更丰富的用户体验

在现代浏览器没有支持HTML5之前,构建web应用所需要的特性是变化的,并且常常需要使用像Flash、ActiveX这样的插件或
Java。新的开放平台标准,比如CSS3,
HTML5以及JavaScript确保开发者能拥有足够的工具和性能构建比以往更漂亮的交互性更强的web应用。

图片 2

Figure 1.1 – 新技术加强了我们的能力!

Web Apps的未来

你应该在你的web apps中使用可用的一切技术

Web app的批评者很快指出了一个主要的缺点——web
app的用户需要联网才能完成任务。假如网络不是随时随地都有的话,用户是不能完全依赖web应用来完成他们的工作的。至少这样的假设是成立的。

Web
apps的未来发展如何取决于它是否有足够的灵活性——既拥有在web上完成任务的一切优点,又能在离线的时候完成这些任务。支持离线应用现在已经是可以
实现的了——HTML5提供了例如应用缓存和客户端存储(比如,本地存储,索引数据库)等性能,这样你的应用就能在没有网络联接的时候也可以工作了。

云能比桌面给用户提供更多

云提供商提供了一个平台,在这个平台上,服务器端的功能可以被托管和共享。使用托管在云端的web应用程序,用户可以和他人协作或者在自己的不同设备间进行协作,将数据保存在安全的服务器上。没有沉重的开销成本,web应用可以只消耗桌面应用程序的成本的一小部分。

图片 3

Figure 1.2 – 完全发挥你的设备潜能!

Web Apps的特性

Web
apps可以和电子表格,文档编辑器一样复杂,也可以和待做事项管理器一样简单。不管它是什么,它都必须完成某些事情。

Web
App重新定义了“上网”的含义;web已经成了网站和应用的混合。下面是用来区分web
apps和网站的三点要素:

1.一个提供了很好的用户体验,让用户能很容易地完成任务,并利用了设备本地的一些性能。

2.一个web应用提供了丰富的视觉体验,又不会分散人的注意力;它注重美学,使用和本地应用一样的设计模式,又不失易用性。

3.一个web应用非常注重用户的交互、参与和完成任务,而不是让他们仅仅浏览网页。应用程序是自包含的(self-contained),也即用户不用导航到其他站点或者应用来完成任务。

图片 4

Figure 1.3 – 小一点,大一点,简单点,复杂点? 只要做点什么就好!

确认Web Apps清单

如果你对这些问题的回答都是YES的话,那么你面前的就是一个web应用了

▲它是否是自包含的,不用将我重定向到一个完全不同的应用去完成我需要做的?

▲我是否可以在使用它的时候进行交互、参与并完成一些事情?

▲它是否有丰富的用户界面,界面看起来非常美观,并且基本占满了可用的窗口?

▲它是否使用和本地应用一样的模式,比如按钮、对话框或者其他元素?

▲它是否可以离线工作?

▲它是否应用了设备的某些功能,比如GPS的定位数据和动作传感器的数据?

▲传统的网站的导航元素和链接是否被隐藏起来了?

▲这个应用设计的时候是否是参照客户端架构模型?

图片 5

 

赞 收藏
评论

图片 6

本文由 伯乐在线 –
markzhai
翻译。未经许可,禁止转载!
英文出处:Addy
Osmani。欢迎加入翻译组。

渐进式 Web
应用程序利用新技术的优势带给了用户最佳的移动网站和原生应用。它们是可靠的,迅捷的,迷人的。它们来自可靠的源,而且无论网络状态如何都能加载。

图片 7

在 渐进式 Web
应用程序
(PWAs) 的世界中有很多新东西,你可能会想知道它们和现有架构是如何兼容的 ——
比如 React 和 JS 模块化打包工具如
Webpack 之间的兼容性如何。PWA
是否需要大量的重写?你需要关注哪个 Web
性能度量工具?在这系列的文章中,我将会分享将基于 React 的 web apps
转化为 PWAs
的经验。我们还将包括为什么加载用户路由所需要的,并抛开其他所有脚本是提高性能的好方式。

Lighthouse

让我们从一个 PWA manifest 开始。为此我们会使用
Lighthouse — 一个评审
app 面向 PWA
特性
的工具,并且检查你的 app 在模拟移动场景下是否做的足够好。Lighthouse
可以通过 Chrome
插件
(我大部分时候都用这个) 以及
CLI
来使用,两者都会展示一个类似这样的报告:

图片 8

来自 Lighthouse Chrome 插件的结果

顶级评审工具 Lighthouse 会高效地运行一系列为移动世界精炼的现代 web
最佳实践:

  • 网络连接是安全的
  • 用户会被提醒将 app 添加到 Homescreen
  • 安装了的 web app 启动时会带自定义的闪屏画面
  • App 可以在离线/断断续续的连接下加载
  • 页面加载性能快速
  • 设计是移动友好的
  • 网页是渐进式增强的
  • 地址栏符合品牌颜色

顺便一提,有一个 Lighthouse 的
快速入门指南,而且它还能通过
远程调试
工作。超级酷炫。

无论在你的技术栈中使用了什么库,我想要强调的是在上面列出的一切,在今天都只需要一点小小的工作量就能完成。然而也有一些警告。

我们知道移动 web 是
慢的

web
从一个以文档为中心的平台演变为了头等的应用平台。同时我们主要的计算能力也从强大的,拥有快速可靠的网络连接的强大桌面机器移动到了相对不给力的,连接通常慢,断断续续或者两者都存在的移动设备上。这在下一个
10 亿用户即将上网的世界尤其真实。为了解锁更快的移动 web:

  • 我们需要全体转移到在真实移动设备,现实的网络连接下进行测试 (e.g
    在 DevTools 的常规
    3G)。
    chrome://inspect
    和 WebPageTest
    (视频)
    是你的好帮手。Lighthouse 模拟一台有触摸事件的 Nexus 5X 设备,以及
    viewport 仿真 和 被限制的网络连接 (150毫秒延迟,1.6Mbps 吞吐量)。
  • 如果你使用的是设计开发时没有考虑移动设备的 JS
    库,你可能会为了可交互性能打一场硬仗
    。我们的理想化目标是在一台响应式设备上
    5 秒内变得可交互,所以我们应用代码的预算会更多是 ❤

图片 9

通过一些工作,可以写出 如 Housing.com
所展示的
在有限网络环境下,真机上依然表现良好的使用 React 开发的
PWAs。我们在接下来的系列中讨论如何实现的详尽 细节

话虽如此,这是一个很多库都在尽力提高的领域,你可能需要知道他们是否会继续提高在物理设备上的性能。只需要看看
Preact 所做的超级棒的
真实世界设备的性能。

开源 React 渐进式 Web App 示例

图片 10

如果你想要看更复杂的使用 React 开发,并使用 Lighthouse 优化的 PWAs
例子,你可能会感兴趣于:

ReactHN— 一个使用服务端渲染并支持离线的
HackerNews 客户端 或者
iFixit — 一个使用
React 开发,但使用了 Redux 进行状态管理的硬件修复指南 app。

现在让我们梳理一遍在 Lighthouse 报告中需要清点的每一项,并在系列中继续
React.js 专用的小贴士。

网络连接是安全的

发表评论

电子邮件地址不会被公开。 必填项已用*标注