最近专注研究 jQuery Mobile —— 一款很方便就可以把 Web App 包装成适合 Android 与 iPhone 等触屏移动设备的 Javascript 库,结合 jQuery Mobile 与 HTML5 ,可以很方便的开发出一款具有良好界面及用户体验的 Web App,在这个过程中我收获良多,因此决定针对使用 jQuery Mobile 与 HTML5 开发 Web App 写一个系列的文章。在开始之前,我首先简述 Web App 与原生 App 各自的优缺点。

一. Web App 与原生 App 的优缺点

1.Web App

(1).优点

1.开发成本低,周期短, Web 开发者可以使用现成的工具及开发技术。
2.跨平台,用户只需要一个标准的移动浏览器。
3.维护方便,维护不干扰用户使用,可实时修复 Bug。

(2).缺点

1.无法调用手机硬件,用户体验较原生 App 薄弱。
2.运行不够原生 App 流畅。
3.需要网络的支持(可依靠 HTML5 大大减少对网络的依赖)。

2.原生 App

(1).优点

1.可以调用手机硬件提供的功能,具有出色的用户体验。
2.不依赖网络。
3.开发者更易获得盈利。

(2).缺点

1.需要移植到不同平台时较为麻烦。
2.维护成本高。
3.开发周期长。
4.需要 App Store 或 Android Market 的确认,并且要与第三方分享盈利。

看了以上的优缺点,可以看出 Web App 具有很好的优势,并且随着移动设备硬件配置的逐年升级,Web App 的劣势将会逐渐减弱,而优势将更加明显,虽然仍不能完全取代原生 App , 但 Web App 队伍将不断壮大已经形成趋势,因此作为 Web 开发者投入到 Web App 的开发中也是一种很好的选择。当然原生 App 仍有其优势,因此在本系列文章的最后, Kayo 会介绍一种方法将 Web App 转换为原生的 App 。

二.使用 jQuery Mobile 与 HTML5 开发 Web App

既然 Web App 具有很多的优势,那么应该如何使用 Web 开发技术开发出一款优秀的 Web App 呢?

首先我们必须知道,一款优秀的 Web App ,需要有良好的 UI 与用户体验(UE),虽然本质上作为一个站点,内容才是用户需要的,但我们仍需要使用良好的 UI 与 UE 来作为内容与用户的连接,因此我们引入 jQuery Mobile 来为 Web App 制作 UI 与交互。

有了 Web App 的界面,还需要数据的交互,这样才能做出 App 。这里可以使用 PHP 等服务器脚本与 Mysql 等数据库来为 Web App 提供数据驱动,但 Kayo 希望采用一种新的方法,也就是 HTML5 的方法,使用 HTML5 规范提供的 Web SQL Database —— 一个简单强大的 Javascript 数据库 API, 可以在本地数据库中存储数据(如内嵌在浏览器中的 SQLite ),另外还可以使用 HTML5 规范中的 Storage (本地储存) 来储存数据,这样就可以减少 Web App 对于网络的依赖,并且整个 Web App 都是使用前端的技术完成(很震撼吧!)。

最后不得不提的是 offline application cache (离线程序缓存),它也是 HTML5 的特性,允许用户在无网络连接的情况下运行 Web App,因此我们可以利用此特性制作支持离线使用的 Web App ,进一步减少 Web App 对于网络的依赖。

三.响应式设计

响应式网页设计由 Ethan Marcotte 提出,通俗点说,就是网站界面能够兼容多种终端,而不是每种终端各自做一个界面。腾讯等大型网站都有针对不同的设备做出不同的界面,比如 3g 版,触屏版,ipad……,这样就会增加了很多重复的工作量,因此我们可以为网站渐进的设计一个界面,自动适应不同的设备,当然设备间的效果可以有所差距。这里 Kayo 小插一段,Kayo 认为响应式设计的诞生,很大程度上归功于移动互联网的发展与移动设备硬件的提升,而移动互联网的发展本身也依赖于移动设备硬件的提升,因此想不断提升的 App ,还得先要硬件厂商给力。

言归正传,这里提到响应式设计的理念当然是希望在设计 Web App 时也应用到,而这些 jQuery Mobile 已经为开发者预先做好, jQuery Mobile 不但默认的 UI 样式里已经按响应式设计做好,它还另外提供了一些为响应式设计而做的方法,日后会详细介绍。

四.渐进式设计

Kayo 在之前介绍 jQuery Mobile 的文章《jQuery Mobile 特性》时已经提到过渐进式设计,下面引用文中的话:

“前端设计时通过渐进增强功能来设计一直也是 Kayo 的设计想法,因为不同的平台,不同的设备有着不同的 Web 环境,因此对于一些出色的前端效果很难保证在每台设备上都呈现相同的效果,因此与其为了在所有设备上做到一样的效果而降低整体的前端样式,不如对于好的设备可以呈现更出色的效果,而基本的效果就兼容所有的设备。jQuery Mobile 的设计也是如此,核心的功能支持所有的设备,而较新的设备则可以获得更为优秀的页面效果。”

这里使用 jQuery Mobile 的目的非常明显,也就是使到 Web App 能尽量兼容不同的设备并且在较为先进的设备中呈现更加出色的表现,而不要为了统一而牺牲优秀的设计。

五.作品

下面是利用上文提到的各种技术做出的成品—— Do.It ,一款 Web App 备忘,添加的事项默认会到“今天”这一栏,若今天的事情不完成,明天继续添加,则会越来越多,所以今天的事情要今天完成噢!在触摸设备上向右划动事项则为完成事项(电脑的话也可以按住鼠标划动,不过不易成功)。另外用户不需注册可以直接使用,该 Web App 采用 Web SQL Database 存储数据,数据存在设备本地,因此没有注册,登陆的麻烦,方便吧!还有其他功能欢迎体验!

各位可以使用 webkit 内核的设备浏览下面的地址(PC 上的 Chrome, Safari ,以及 Android , iPhone/iPad 上的系统浏览器。)

http://kayosite.com/doit/

本文由 Kayo Lee 发表,本文链接:http://kayosite.com/web-app-by-jquery-mobile-and-html5-principles.html

html5文章 -- 使用 jQuery Mobile 与 HTML5 开发 Web App ——开发原则 | Kayo's Melody的更多相关文章

  1. html5文章 -- 使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 基础

    这篇文章是使用 jQuery Mobile 与 HTML5 开发 Web App 系列的第二篇,在本文以及接下来的数篇文章 Kayo 将会介绍 jQuery Mobile 的组件.事件响应以及可以调用 ...

  2. 使用 jQuery Mobile 与 HTML5 开发 Web App 系列文章目录

    使用 jQuery Mobile 与 HTML5 开发 Web App 系列文章目录 时间:2012年9月20日 分类:JavaScript 标签:HTML5‚ jQuery Mobile‚ Web ...

  3. Native App开发 与Web App开发(原生与web开发优缺点)

    Native App开发 Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS.Android等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是 ...

  4. [转]使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 事件详解

    在前文<使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础>中,Kayo 对 jQuery Mobile 事件的基 ...

  5. 用jQuery Mobile做HTML5移动应用的三个优缺点

    JQuery Mobile 和 HTML5 的 3个优点 1. 上手迅速并支持快速迭代:在一个星期多一点的时间里,通过阅读JQuery Mobile文档以及O’Reilly出版的JQuery Mobi ...

  6. 利用JQuery Mobile开发web app

    什么是web app web app 是基于web的应用程序,是针对移动设备优化后的web站点,它具有 开发成本低——采用web开发技术,不需要考虑跨平台以及底层适配问题: 升级简单——不需要通知用户 ...

  7. jQuery Mobile 是创建移动 web 应用程序的框架。

    jQuery Mobile jQuery Mobile 是创建移动 web 应用程序的框架. jQuery Mobile 适用于所有流行的智能手机和平板电脑. jQuery Mobile 使用 HTM ...

  8. 移动web app开发必备 - 异步队列 Deferred

    背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeo ...

  9. 微信公众平台开发:Web App开发入门

    WebApp与Native App有何区别呢?Native App:1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C.2.更新体验较差.同时也比较麻烦.每一次发布新的版 ...

随机推荐

  1. 2.2 编程之美--不要被阶乘吓到[zero count of N factorial]

    [本文链接] http://www.cnblogs.com/hellogiser/p/zero-count-of-N-factorial.html [题目] 问题1:‍给定一个整数N,那么N的阶乘N! ...

  2. windows和linux下mysql的重启命令

    在 Windows 下: 开始->运行->cmd启动:net start mysql停止:net stop mysql 无重启,必须先停止再启动!!! 在LINUX 下: 启动:/etc/ ...

  3. cocos2d-x的Android工程开启c++0x特性

    首先一定要确定你所安装NDK支持c++0x(我安装的android-ndk-r8) 文本打开 项目目录/proj.android/jni/Application.mk 在APP_CPPFLAGS那一行 ...

  4. 【JAVA、C++】LeetCode 011 Container With Most Water

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). ...

  5. jsp回车键登录代码

    $("body").keydown(function(event) { if (event.keyCode == "13") {// keyCode=13是回车 ...

  6. sublime快捷键整理

    快捷键 功能 ctrl+shift+n 打开新Sublime ctrl+shift+w 关闭Sublime,关闭所有打开文件 ctrl+shift+t 重新打开最近关闭文件 ctrl+n 新建文件 c ...

  7. “破锣摇滚”乐队(codevs 1444)

    题目描述 Description 你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权.你打算从中精选一些歌曲,发行M(1 <= M <= ...

  8. Gradle构建Java项目

    前提:已经安装好Gradle 一.创建目录结构 在项目主目录下,创建以下子目录;在*nix系统下可以使用命令: mkdir -p src/main/java/hello vim src/main/ja ...

  9. 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法

    今天讲讲利用微信oauth2实现第三方登陆的实现方法. 先说说前提吧! 首先你得是服务号,并且是经过认证的.这样微信会给你很多第三方接口的权限,如果是订阅号或者没有认证的服务号那就不用想了! 一开始你 ...

  10. 【现代程序设计】homework-09

    1. 了解Lambda的用法 计算“Hello World!”中 a.字母‘e’的个数 b. 字母‘l’的个数 首先: ISO C++ 标准的另一大亮点是引入Lambda表达式.语法如下: [](形参 ...