背景

在移动互联网浪潮下,移动设备普及,对配置需要考虑移动端设备可访问性。Web作为最贴近用户的配置手段,面向从PC端传统页面,向移动端页面的转型。

概念

PC Web: 面向传统PC电脑的浏览器开发的Web人机交互界面。

移动Web:面向移动设备的浏览器开发的Web人机交互界面。移动设备包括:手机、Pad等移动设备。

移动APP:面向移动设备开发的APP软件,直接运行于移动设备的系统上。不同于移动Web,其不需要借助中间软件运行。

Web APP: 以浏览器为入口,实现 App 的 Web 化,当浏览器能良好的发挥HTML5的技术特性,将会带来应用体验新的变革。和移动Web属于一个概念。

http://www.geekpark.net/topics/157633

我们有必要了解移动Web和移动APP各自的特点,才能弄清移动Web的定位。

移动APP

优点:

1、 移动APP具有更好的用户体验和交互操作。

2、 可以充分发挥设备硬件操作系统的特性。

缺点:

1、 开发周期长,维护成本高,调试困难。

2、 平台间移植困难,存在版本兼容性风险。

移动Web

优点:

1、 开发效率高,成本低。

2、 跨平台,一次开发,到处运行。

3、 无需安装和更新。

缺点:

1、 无法发挥本地硬件和操作系统的特性。

2、 难以实现复杂的用户界面效果。

从对比中可以发现,移动Web不能发挥设备硬件的功能,其适合传统的Web站点建立移动Web版本。

技术调研

HTML5

HTML5 是 HTML 标准的最新演进版本。 这个术语代表了两个不同的概念:

它是一个新的 HTML 语言版本包含了新的元素,属性和行为,同时包含了一系列可以被用来让 Web 站点和应用更加多样化,功能更强大的技术。 这套技术往往被称作 HTML5 和它的朋友们,通常简称为 HTML5。

功能分为以下大类:

  • 语义:能够让你更恰当地描述你的内容是什么。
  • 连通性:能够让你和服务器之间通过创新的新技术方法进行通信。
  • 离线 & 存储:能够让网页在客户端本地存储数据以及更高效地离线运行。
  • 多媒体:使 video 和 audio 成为了在所有 Web 中的一等公民。
  • 2D/3D 绘图 & 效果:提供了一个更加分化范围的呈现选择。
  • 性能 & 集成:提供了非常显著的性能优化和更有效的计算机硬件使用。
  • 设备访问 Device Access:能够处理各种输入和输出设备。
  • 样式设计: 让作者们来创作更加复杂的主题吧!

每个类中详细功能见下面URL,与CPE Web相关的功能包括(语义、绘图、样式设计)

https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML5

HTML5名声现在很大,但是实际上就是增加了一些新的功能和特性。 但是架不住广告铺天盖地,别人总跟你提,但是真正懂了人不是很多,这样HTML5沦为了一个营销手段。即使我们的设备只能用到很少一部分,但是如果用了,别人就会觉得很高大上。

移动设备的大量使用,HTML5规范和Webkit内核的推动,使得HTML5和移动Web开发绑定在一起,HTML5确实能提高移动端的体验(例如音视频、定位、Canvas), 但是实际上HTML5对象不区分PC和移动端。

目前主流的PC和移动端浏览器对HTML5功能有不同程度的支持。

PC上几款主流浏览器跑分:

http://html5test.com/

移动浏览器支持情况,可以访问下面网站查询:

http://mobilehtml5.org/

响应式设计

响应式Web设计这种方案:一个网站能够兼容多种移动设备屏幕尺寸,而不是为每种屏幕尺寸做一个特定的版本。这个概念可以说是为移动互联网而生的。

http://www.cnblogs.com/powertoolsteam/archive/2012/06/01/2529886.html

优点:

1、 因为无需为不同的设备维护不同的网站,这种方式节省了时间和金钱。

2、 响应式设计无需考虑用户代理的检测。

缺点:

1、 要考虑更多的分辨率,交互和场景,对设计师和PM的能力要求更高,页面考虑东西更多,设计时间也会变得更长。

2、 因为内容必须在客户端使用Javascript进行调整,所以要求变化的内容要尽可能的最少。UI发挥空间更小。

适用场景:

那些以文档为中心的网站,他们在不同的设备上的主要用途都不会改变,比如一个产品页面,对于这种网站响应式的设计就非常的适合。

不适用场景:

因为UI发挥空间小等因素,这种响应式设计不适合界面元素和交互等更加复杂的网页,比如淘宝。

参考:

https://developer.mozilla.org/zh-CN/docs/Web_Development/Mobile/Responsive_design

http://www.rbt.cn/html/xiangyingshi/37235.html

移动Web框架

移动Web开发,涉及的基本概念,可以稳步积累。 如果要做移动Web,下面介绍了一些网络推荐的开源框架,可以快速搭建移动Web界面。

1、 jQuery Mobile

jQuery发布的针对手机和平板设备、经过触控优化的Web框架。它基于jQuery,在不同移动设备平台上可提供统一的用户界面。该框架基于渐近增强技术,并利用HTML5和CSS3特性。

2、 Sencha Touch

它是一款HTML5移动应用框架。通过它可以创建Web应用,在外观和感觉上与Apple iOS 和Google Android本地应用十分相像。它利用HTML5发布音频/视频,进行本地存储;利用CSS3提供圆角、背景渐变、阴影等广泛使用的样式。

3、 Ionic

Ionic提供了一个免费且开源的移动优化HTML,CSS和JS组件库,来构建高交互性应用。基于Sass构建和AngularJS 优化。

Ionic既是一个CSS框架也是一个Javascript UI库。许多组件需要Javascript才能产生神奇的效果,尽管通常组件不需要编码,通过框架扩展可以很容易地使用,比如我们的AngularIonic扩展。

4、 Amaze UI

Amaze UI 采用业内先进的 Mobile first 理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流。Amaze UI 含近 20 个 CSS 组件、10 个 JS 组件,更有 17 款包含近 60 个主题的 Web 组件,可快速构建界面出色、体验优秀的跨屏页面,大幅度提升你的开发效率。Amaze UI 非常注重性能,基于轻量的 Zepto.js 开发,并使用 CSS3 来做动画交互,平滑、高效,更适合移动设备,让你的 Web 应用可以高速载入。

5、 Weex

2016年4月21日,阿里巴巴在Qcon大会上宣布开源跨平台移动开发工具Weex,Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。

对于移动开发者来说,Weex主要解决了频繁发版和多端研发两大痛点,同时解决了前端语言性能差和显示效果受限的问题。开发者可通过Weex官网申请内测。(http://alibaba.github.io/weex/)

开发者只需要在自己的APP中嵌入Weex的SDK,就可以通过撰写HTML/CSS/JavaScript来开发Native级别的Weex界面。Weex界面的生成码其实就是一段很小的JS,可以像发布网页一样轻松部署在服务端,然后在APP中请求执行。

与 现有的开源跨平台移动开放项目如Facebook的React Native和微软的Cordova相比,Weex更加轻量,体积小巧。因为基于web conponent标准,使得开发更加简洁标准,方便上手。Native组件和API都可以横向扩展,方便根据业务灵活定制。Weex渲染层具备优异的性 能表现,能够跨平台实现一致的布局效果和实现。对于前端开发来说,Weex能够实现组件化开发、自动化数据绑定,并拥抱Web标准。

http://www.cnblogs.com/onetwo/p/5724919.html

http://www.envicloud.cn/pages/news/216.html

http://www.oschina.net/p/weex

移动Web开发调研的更多相关文章

  1. [置顶] 提高生产力:Web开发基础平台WebCommon的设计和实现

    Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...

  2. 提高生产力:Web开发基础平台WebCommon的设计和实现

    Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...

  3. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  4. Go web开发初探

    2017年的第一篇博客,也是第一次写博客,写的不好,请各位见谅. 本人之前一直学习java.java web,最近开始学习Go语言,所以也想了解一下Go语言中web的开发方式以及运行机制. 在< ...

  5. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  6. .NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  7. web 开发自动化grunt

    现在web开发自动化已很流行,如何进行压缩文件,如何进行测试js是否正确,如何进行 检测html文件是否规范等等都可以通过web自动化技术进行实现,只要打一个命令即可. 本文主要是通过grunt进行实 ...

  8. eclipse SE增加Web开发插件

    最近接触了些java项目,之前安装了eclipse SE版本.没有Web开发插件,调试不了Web代码.点击“Window”--“Preference” 左边菜单栏是找不到“Server”项来配置服务器 ...

  9. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

随机推荐

  1. Windows内核遍历驱动模块源码分析

    要获取windows 内核中所有驱动模块信息,调用 系统服务函数 NtQuerySystemInformation,参数SystemInformationClass 传入SystemModuleInf ...

  2. MySQL 分组后,统计记录条数

    分组后,统计记录条数: SELECT num,count(*) AS counts from test_a GROUP BY num; 查询结果如下: 对num去重后的数量的统计: SELECT co ...

  3. 关于Java导出100万行数据到Excel的优化方案

    1>场景 项目中需要从数据库中导出100万行数据,以excel形式下载并且只要一张sheet(打开这么大文件有多慢另说,呵呵). ps:xlsx最大容纳1048576行 ,csv最大容纳1048 ...

  4. B窗体继承于A窗体,B启动:问题点

    uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; t ...

  5. iOS NSDate本地化

    1. NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; [outputFormatter setLocale:[NS ...

  6. Linux 压缩解压

    压缩解压 ------------------------------------------ linux 下所有的压缩格式,WinRAR 都支持 gzip .gz 格式 压缩文件: gzip 文件名 ...

  7. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  8. 概率DP

    POJ 3744 Scout YYF I 这就是一个乱搞题,暴力发现TLE了,然后看了看discuss里说可以矩阵加速,想了一会才想明白怎么用矩阵,分着算的啊.先算f[num[i]-1]之类的,代码太 ...

  9. ZeroMQ接口函数之 :zmq_sendmsg – 从一个socket上发送一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-sendmsg zmq_sendmsg(3)        ØMQ Manual - ØMQ/4.1.0 Name ...

  10. python中常用的一些字符串

    capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 c ...