深度分析HTML5在移动开发方面的发展状况

时间:2024.4.7

  “我们正在用HTML5编写我们下一套移动产品。”“是啊,这些天很多人在玩着Appcelerator,我也在玩着。”“嗯,但这并不是我要说的那种HTML5产品。”

  最近,我有很多类似的交流对话,可能因为我正在开发一套HTML5的应用吧。就像20##年的“AJAX”,“HTML5”这个术语现在还没有被清晰地定义,在未确定这个新技术有什么优势前,它就已经被四处套用,甚至投入运营。

  如果你在一间被热衷新技术的管理人掌控的公司里任职,如果你走运,那么漫画人物呆伯特先生可能非常愿意坐在你隔壁的小房间。

  两种看法

  当人们讨论移动设备上的HTML5技术时,他们通常只会有两种不同的看法。

  从感性的角度来看,HTML5技术的渲染过程主要是由浏览器、内嵌HTML5解析器的应用程序 (如PhoneGap)、支持书签打开方式的应用程序又或者是移动手机产品(iPhone和iPad)进行的。这种技术的好处就是能重用现有的网页设计,Web开发人员也更容易上手,同时产品具备更高质量,更适用于多平台产品。也更易于调试和修正错误,并且,版本更新会更快。此消彼长,优势是它的功能,如果你像PhoneGap一样使用内嵌的架构,那么你会少很多麻烦事,劣势就是它的表现,这也是HTML5技术面临的最大难题。

  从理性的角度来看,HTML5技术就是使用JavaScript引擎直接控制本地功能,改变移动设备上的浏览器组件。而HTML5应用上的表现问题更多是由HTML/CSS渲染技术控制的,而不是由JavaScript解析生成的。如果使用正确,HTML5技术无疑可以给予你大量新增的表现效果。目前使用HTML5技术的例子包括Appcelerator Titanium、Mobage/ngcore、Game Closure以及PhobosLabs。

  Node.js工具包

  以PhobosLabs的项目为例,当这个项目是使用WebKit的JavaScriptCore组件完成,在设备端使用OpenGL渲染界面,而在开发时使用HTML5的canvas组件的API开发。这就是说,开发人员可以在一个对canvas有良好支持的桌面浏览器内开发和测试他的HTML5游戏,并且当他将这个游戏放到移动设备的浏览器打开时,也会出现同样优秀(甚至更优秀)的表现效果。这种用HTML5开发的效果跟使用Node.js工具包开发的效果很相像,使用Node.js时,只需启用JavaScript引擎,而你仅需把你需要使用的Node.js组件添加到你的应用即可。

  Appcelerator的Titanium详述了HTML5技术的概念,给我们展现了一个完整的UI工具的抽象层,这使得它可以被应用到生成其他游戏产品。意即一个HTML5应用开发人员可以通过Appcelerator的JavaScript UI库创建按钮,而Appcelerator的内部逻辑会将这个按钮转换为iOS的原生界面按钮。我们可以通过JavaScript控制界面上的原生按钮。理论上,开发人员可以不需要写一句Objective-C代码。

  HTML5技术有它的优势,当你依然在使用JavaScript编写代码时,你可以跟那些烦人的HTML/CSS布局逻辑和样式声明说再见。你还可以跟那些优秀的调试工具说再见。但这个技术也有蹩脚的一面,像HTML5的游戏API Mobage就存在一些小毛病,canvas组件可以在屏幕相对小一点的界面顺利显示,但如果屏幕稍微变大一点,就好像Appcelerator的例子一样,在调试时,你还需要考虑界面层额外的复杂性。在这里有很多Appcelerator的负面评论,如果你能把上面的几点记在心里,那么那些负面评论其实都可以被理解。

  问题还在浏览器

  开发一个完整的HTML5手机应用的首要难题就是运行速度过慢。而第二大难题就是非常愚蠢的工具束缚,许多组件或多或少在不同浏览器都存在一些漏洞,如jQuery Mobile的导航组件、iOS的innerHTML组件的漏洞,所以你需要减少功能去避免出现漏洞,又或者你愿意花一些时间去修复这些漏洞。

  你可以自己做个实验,当你在一个iOS应用里仅使用一至两个界面库时,再加上你自己写的少量JavaScript代码,没有更多的JavaScript库,你会发现这个HTML5应用运行得流畅而完整,但却没什么功能。PhoneGap的iOS项目仅需要1至2秒的时间就可以在iPhone 3GS上发布运行。这个事实可以告诉你,最基本的HTML5应用运行起来真的非常流畅。所以,当你发现你的HTML5应用的某些操作花费了10-15秒时间时,又或者花了15秒时间才加载完整个程序时,这都是一些JavaScript界面库给拖累的。

  两套有代表性的UI

  一个HTML5手机应用程序员需要的通常只有那么两样东西:第一样就是原生平台和网页界面的嫁接层;第二样就是手机UI库。

  PhoneGap近年已逐渐成为默认的嫁接层选择,它允许HTML5应用通过JavaScript调用移动设备的照相机、访问手机通讯录和读写文件。而最受欢迎的手机UI库就包括由jQuery Mobile和Sencha Touch。

  jQuery Mobile是去年才创建的一个项目,所以它是非常新的,很显然,它也不够成熟。jQuery Mobile的导航栏组件就非常糟糕,翻页时明显比原生的翻页功能要慢,如果你不刷新浏览器,你就没有办法递增列表内容。而在PC桌面平台测试时,它的CPU耗用率也是非常高(版本是jQuery Mobile的alpha 4)。我的项目使用它,主要是考虑到相对简单(比较容易破解),因为这个库是基于jQuery构建的,所以任何一个资深的网页程序员都很容易上手。

  据说Sencha Touch比jQuery Mobile更成熟更快。但一看到高复杂性的东西,我就不会不自觉地厌恶它们。因为潜意识会告诉我,有很多功能我根本不会使用到,但却强制加载这些额外的东西到我应用里,让我应用整体表现差了很多。尽管我可能是错的,PhoneGap应用页中最强大的手机应用是IGN Dominate,它运行得很流畅并且它就是基于Sencha Touch开发的,但我确定他们肯定花了很多时间去优化这个产品。

  调试和修改

  在上面谈到的开发HTML5应用时,许多人可能都忽略了一点,其实调试或修改一个HTML5应用是很简单的。任何一个曾参与过大型HTML5开发项目的开发人员都可以告诉你,调试和维护几乎占了整个项目生命周期的80%的时间,甚至更多。这就是说,当你听到一个开发工具宣称可以在15分钟内开发一个聊天应用时,那么它可能只是能让你在15分钟内解决20%的工作,剩下的80%,你可能得耗上3倍以上的精力才能完成。

  HTML5手机应用在调试时存在触碰问题,因为无法打印出控制台的日志。所以,如果JavaScript代码存在漏洞或者报错,你需要alert()报错,否则你可能没法发现。PhoneGap修正了这个问题,它可以通过XCode的控制台打印控制台的调式日志,但功能依然很有限。

  目前最有效的解决方案就是weinre。尽管漏洞百出,但它就是能跑起来,有了它,你还能断点调试你的手机应用的UI,weinre是基于WebKit的网页检查器的,它的调式工具后台通过远程服务端获取和替换调试代码。两至三周前,我曾对网页检查器的代码做过一些研究,我发现把它转换为一个远程调试器真的不难。Weinre接下来几个月的开发进度将会更快,某些人可能还会开发出它的替代产品。我们拭目以待。

  未来几年,移动应用开发中的HTML5技术的调试工具无疑变得更加重要,它可以解决大部分开发人员80%的工作量。你想要用Objective-C改变你的界面设计吗?编辑,再编译,运行。重复这三个步骤直到你满意为止。如果再编译步骤很多,这可能会耗上一天的时间。用HTML5技术去实现?用weinre编辑一些CSS属性并测试,你甚至不用关闭应用,你就可以继续调试。一定程度上,你还可以在桌面浏览器调试你的HTML5手机应用。但相信我,你的应用产品最终可能只会在移动设备上爆发一大堆漏洞而已,所以你必须得使用weinre。

  不幸的是,人们常赞美某个工具包或者某项功能,但你却很少听到有人夸赞某个调试工具非常棒。所以我猜测就算它是HTML5手机程序员最常用到的工具,我们也很少听到它被讨论到。

  总结:现在的状况

  尽管这篇文章真的有点长,但我还是得总结一下:

1.   在移动设备开发HTML5应用只有两种方法,要不就是全使用HTML5的语法,要不就是仅使用JavaScript引擎。

2.   JavaScript引擎的构建方法让制作手机网页游戏成为可能。由于界面层很复杂,我已预订了一个UI工具包去使用。

3.   纯HTML5手机应用运行缓慢并错漏百出,但优化后的效果会好转。尽管不是很多人愿意去做这样的优化,但依然可以去尝试。

4.   HTML5手机应用的最大优势就是可以在网页上直接调试和修改。原生应用的开发人员可能需要花费非常大的力气才能达到HTML5的效果,不断地重复编码、调试和运行,这是他们首先得解决的一个问题。

5.   是的,HTML5的移植非常简单,但我假设每个人都会让这变成一个自动化操作。


第二篇:HTML5入门 (4)


最好的HTML5编码教程和参考手册

今天我们介绍相关HTML5的参考手册,演讲稿,电子书和教程。

HTML5是新兴的web技术,虽然不是完全的新技术但是已经有很多的相关文章介绍HTML5,特别是当我们谈论HTML5将成为Flash的替代品。现代浏览器的快速开发已经刺激用户相应发展。毫无质疑,现在是学习HTML5的好时间,大多数的公司例如Google,Youtube,Facebook都已经开始使用HTML5来建站了。 这篇文章我们将介绍最好的HTML5参考手册,电子书,教程。友情提示:你最好阅读一些我们以前的HTML5文章!希望大家喜欢!

第一部分我们将介绍HTML5参考手册。一般来说视图化的演讲稿将能够更好的帮助你理解HTML5。当然如果你更深入的话这里有更多的精读。 Scrubd in HTML5

Scribd的一个图例的演讲 HTML5 WTF

来自于Simon Schoeters,另外一个HTML5的变化的介绍。HTML5究竟是什么?有什么不错的地方?这个讲演稿,说明了一切。 Up to Speed on HTML5 and CSS3

一个介绍刚出现的HTML5和CSS3标准的演讲稿,关于所有应用到web设计和开发的各个方面。由Jason Garber和M. Jackson Wilkinson提供。 Dive into HTML5

这个演讲阐述了从HTML标准中精选的HTML5特性和其它相关标准 HTML5 Quick Learning Guide

介绍了HTML5主要的实用元素。这个适用于了解基本的HTML,以后再去了解细节 What is HTML5

HTML5的信息图表总结 HTML5 Specification

HTML5的标准,大家都应该了解 HTML5 Doctor

排序列出了所有HTML5元素 W3C Doc

w3schools的HTML5教程 HTML5 Tutorials

这里是所有我找得到的在线教程。这些教程覆盖了所有HTML5实用和执行。 Have a field day with HTML5 forms

使用高级CSS和最新CSS3技巧的HTML5表单 designing a blog with HTML5

这个教程教你如何使用HTML5元素例如,header,footer,nav,article和section来构建一个blog。 Structural tags in HTML5

这是另外一个HTML5结构标签的教程

HTML5和CSS3 - 你很快会使用的技巧

在这个教程里,我们将使用下一代的HTML5和CSS3来开发一个博客页面。这个教程主要演示当标准出来后,并且浏览器厂家都实现了后我们将如何创建一个网站。

Design a HTML5 layout from scartch

Smashing杂志的HTML5和CSS3的教程 Getting offlne access with HTML5 applicationcache 另外一个来自Nettuts的教程讲述如何使用Application Cache。 HTML5 Grayscale Image Hover

使用HTML5创建一个灰度的图片 HTML5 - Position with Geolocation

在这个教程中你将学习到HTML5的地理位置功能,如何将这些功能应用到你的HTML5应用。 Boncing a ball around with HTML5 and JS

使用HTML5的Canval来创建跳跃小球效果 HTML5 Slideshow with Canvas&jQuery

HTML5 canvs和javascript 幻灯效果教程 Beautiful HTML5 Portfolio

使用jQuery和Quicksand插件创建的HTML5的作品集。 Create Vector Mask using HTML5 Canvas

使用HTML5 canvas来创建图片的遮盖效果 Create a elegant website with HTML5 and CSS3

更多相关推荐:
20xxRO深度分析报告

江苏万鑫投资发展有限公司水处理行业分析报告说明本报告主要是建立在北京科净源科技股份有限公司招股说明书和相关公开资料的研究与分析的基础之上缺乏对该项目详尽的尽职调查一行业概况一行业竞争主体水处理是通过物理化学和生...

关于对梅家坪站场违线问题的深度分析报告.doc

关于下发阎良工务段梅家坪线路车间违线问题深度分析报告的通知各工务段工务机械段为认真贯彻落实盛光祖总经理提出的问题在现场原因在管理根子在干部的管理是最大的风险源的安全风险管理理念进一步落实安全生产责任制抓好各层级...

中国LED产业深度分析报告

20xx年中国LED产业深度分析报告在国家半导体照明工程的推动下中国大陆已形成了广州深圳上海大连南昌厦门石家庄扬州等多个个国家半导体照明工程产业化基地全国LED产业呈现出一派欣欣向荣的大好形势20xx年中国大陆...

【金融】P2P网贷行业深度分析报告

P2P网贷行业深度分析报告目录第一章野蛮发展机遇与风险并存2借入资金需求端2借出资金供给端2第二章监管缺失法规出台影响行业3第三章信息中间人P2P网贷实质4借款人4出借人5P2P网贷平台6总结9第四章看公司典型...

搜于特深度分析报告-模版参考

搜于特原创最激老K20xx11242302只看楼主1淘股论坛浏览回复55780121复制分享收藏55推荐23加油券17一直在耐心等待类似于东方园林投资逻辑的股票出现没想到前些时间的欧洲之行错过了搜于特回来花了整...

20xx-20xx年中国工业机器人产业深度分析报告

20xx20xx年中国工业机器人产业深度分析与发展前景预测报告中国产业信息网什么是行业研究报告行业研究是通过深入研究某一行业发展动态规模结构竞争格局以及综合经济信息等为企业自身发展或行业投资者等相关客户提供重要...

20xx-20xx年中国咨询行业情况深度评估及投资策略分析报告

120xx20xx年中国咨询行业情况深度评估及投资策略分析报告企业网址yjbgqthyqt20xx0226306944html点击看正文正文目录一咨询行业简介1一咨询业定义及范围界定二咨询业发展历史回顾二宏观环...

20xx年第2季度汽车行业深度分析报告

学知网专注于提供优质的管理培训课程与服务20xx年第2季度汽车行业深度分析报告二四年第二季汽车automobile海量管理资料下载仅供学习研究之用严禁用作商业用途学知网专注于提供优质的管理培训课程与服务目录CO...

20xx年中国ATM机市场深度调研分析及投资前景预测报告

深圳市深福源信息咨询有限公司中国目前为全球第二大ATM市场但按照20xx年官方发布的全国总人口1354亿人计算我国每百万人的ATM保有量约为307台较20xx年的每百万人265台有所上升进一步接近全球每百万人3...

中国有机农业深度调研与投资规划分析报告

关键词有机农业报告来源前瞻网报告内容20xx20xx年中国有机农业深度调研与投资战略规划分析报告百度报告名可查看最新资料及详细内容报告目录请查看20xx20xx年中国有机农业深度调研与投资战略规划分析报告近年来...

中国企业孵化器产业深度调研与发展趋势分析报告

关键词企业孵化器产业报告来源前瞻网报告内容20xx20xx中国企业孵化器产业深度调研与发展趋势分析报告百度报告名可查看最新资料及详细内容报告目录请查看20xx20xx中国企业孵化器产业深度调研与发展趋势分析报告...

中国催化剂行业深度分析报告

关键词催化剂行业报告来源前瞻网报告内容20xx20xx年中国催化剂行业深度调研与投资战略规划分析报告百度报告名可查看最新资料及详细内容报告目录请查看20xx20xx年中国催化剂行业深度调研与投资战略规划分析报告...

深度分析报告(15篇)