Google Web应用开发指南第一章:什么是Web应用?
很多人向我问起学习 HTML5 技术的权威入门资料,我总是毫不犹豫地推荐由 Google 推出的 HTML5rocks,这个网站就像一个宝库,包含经典的教程、文章、Demo 和代码。近日 Chrome 小组又推出了一个很酷的 Web App 电子书,讲述了 Chrome 开发人员对 Web Apps 的思考和最佳实践,推荐每个关注 Web Apps 的开发者阅读。Web AppTrend 为方便国内开发者浏览,将全文进行翻译。
注:这本书就是一个 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 应用。
Figure 1.1 – 新技术加强了我们的能力!
Web Apps的未来
你应该在你的 web apps中使用可用的一切技术
Web app 的批评者很快指出了一个主要的缺点——web app 的用户需要联网才能完成任务。假如网络不是随时随地都有的话,用户是不能完全依赖 web 应用来完成他们的工作的。至少这样的假设是成立的。
Web apps 的未来发展如何取决于它是否有足够的灵活性——既拥有在 web 上完成任务的一切优点,又能在离线的时候完成这些任务。支持离线应用现在已经是可以实现的了——HTML5提供了例如应用缓存和客户端存储(比如,本地存 储,索引数据库)等性能,这样你的应用就能在没有网络联接的时候也可以工作了。
云能比桌面给用户提供更多
云提供商提供了一个平台,在这个平台上,服务器端的功能可以被托管和共享。使用托管在云端的 web 应用程序,用户可以和他人协作或者在自己的不同设备间进行协作,将数据保存在安全的服务器上。没有沉重的开销成本,web 应用可以只消耗桌面应用程序的成本的一小部分。
Figure 1.2 – 完全发挥你的设备潜能!
Web Apps的特性
Web apps可以和电子表格,文档编辑器一样复杂,也可以和待做事项管理器一样简单。不管它是什么,它都必须完成某些事情。
Web App 重新定义了“上网”的含义;web 已经成了网站和应用的混合。下面是用来区分 web apps 和网站的三点要素:
1. 一个提供了很好的用户体验,让用户能很容易地完成任务,并利用了设备本地的一些性能。
2. 一个 web 应用提供了丰富的视觉体验,又不会分散人的注意力;它注重美学,使用和本地应用一样的设计模式,又不失易用性。
3. 一个 web 应用非常注重用户的交互、参与和完成任务,而不是让他们仅仅浏览网页。应用程序是自包含的(self-contained),也即用户不用导航到其他站点或者应用来完成任务。
Figure 1.3 – 小一点,大一点,简单点,复杂点? 只要做点什么就好!
确认Web Apps清单
如果你对这些问题的回答都是 YES的话,那么你面前的就是一个 web应用了
▲它是否是自包含的,不用将我重定向到一个完全不同的应用去完成我需要做的?
▲我是否可以在使用它的时候进行交互、参与并完成一些事情?
▲它是否有丰富的用户界面,界面看起来非常美观,并且基本占满了可用的窗口?
▲它是否使用和本地应用一样的模式,比如按钮、对话框或者其他元素?
▲它是否可以离线工作?
▲它是否应用了设备的某些功能,比如 GPS 的定位数据和动作传感器的数据?
▲传统的网站的导航元素和链接是否被隐藏起来了?
▲这个应用设计的时候是否是参照客户端架构模型?
原文链接:KNOW YOUR APPS
来自: blog.jobbole.com