
HTML5的发展前景我无疑是非常看好的Q各大公怹不遗余力的推动,目前L的三大智能机操作pȝiOS、Android和WIndows Phone都已l支持大部分的HTML5Ҏ。而移动设备硬件军备竞赛也为HTML5扫清g障碍。按照现在的发展速度Q我判断是在三年以内甚至更快Q移 动设备运行HTML5会完全没有压力Q无论是标准q是g。现在主的机已l配|双核处理器Q之前笔误ؓ览器)?G及以上的内存Q今q再出智?机没q个配置你都不好意思发布了?/p>
谈谈HTML5
1.HTML5可以让你摆脱对^台的依赖Q用h开览器,直接可以访问你的应用,而不需要经q各UStore的审核?/p>
2.实时更新Q通常q_的审栔R需要七个工作日左右的时_如果你发布之后发现问题怎么办?Web方式׃存在q种问题?/p>
3.Write once, run anywhere?
q是多少E序员的梦想Q也曄是Java让h心动的地方,但真正做q跨q_解决Ҏ的h都知道,q只是一句口可已Q跨q_没那么容易玩转的。没 错,HTML5可以实现Write once, run anywhereQ但我们M能写一个Hello World来run anywhere吧。不同^台有自己的特性,不同q_用户也有自己的操作习惯,如果你想讨好所有hQ也意味着你无法讨好Q何h?/p>
4.减少开发工作量或者让开发变得更单?
对老板来说Q这是一个非常诱题,因ؓ工作量的减少意味着节省更多的钱Q没有老板不喜Ƣ用更少的钱办更多的事。而且目前一个非常大的问题是Q移 动设备开发h员特别是iOS开发h员非怸好找Q因为技术好的都自己做应用了Qh家自׃能赚个月薪上万甚x多,Z么要q你的公司?怎么说也是自q 事业Q拥有无限可能,q可以充分n受自由。但如果可以充分利用HTML5Q那么我们就可以招聘Web前端的开发h员来构徏Ud应用Q这样就不愁招h的有?题。因为在许多人的眼里QHTML5/CSS/Javascript都是没多大技术含量的东西Q实在找不到人,找些实习生学学也׃了?/p>
但问题是Q工作量真的会减吗Q技术门槛真的那么低么?{案是NOQ?/p>
我曾l花了半q的旉d发一个基于HTML5的移动框Ӟ用来模拟Native应用Q让HTML5应用看v来尽可能看v来像本地应用Q注意:?像。这有点像jTouchQ但不一L是,它能和NativeE序很好C互,q且能调用本地资源等{特性。但最后结果确不是那么令h满意Q比?HTML5在动d换的时候,有时候候会有一些莫名其妙的问题Q当然你可以告诉我把动画效果关了Q但q看h很死板,最后我不得不关闭某些动甅R而用 Objective-c~写E序没q么多事了,几句单的代码可以实现很酷的动画,用HTML5需要更多的代码Q甚x本无法实现?/p>
而且Ud讑֤上的HTML5开发对开发h员的技术有非常高的要求Q不是一般的Web前端人员能解决的Q通常拥有q样技术的人才Q工资水q也不会?Native开发h员低多少。如果你仅仅是要开发一个移动设备上的网站,q会单很多,但如果你希望模拟Native应用Qƈ且拥有较高的效率和优雅的?户体验,q就很有技术含量了。不要小看Javascriptq类Web开发语aQ通常我的看法是越单的语言会体现出技术h员的水^Q特别是规划设计?力?/p>
5.其它问题Q资源调用的限制Q比如说在iOS中有Javascriptq行不能过15U的限制Q不能调用本地硬件设?如相机等)Q无法用推送服务等?/p>
如何选择Q?/span>
是否q样Q我们就不要选择HTML5了呢Q我在前面说q:“要根据企业自w的情况、团队的构成、公司的战略以及产品的特Ҏl合选择”Q我最q在?于HTML5讨论的微博上也有谈到Q?#8220;HTML5是战略性方向,Facebook和Google已经布局QGoogle Mobile在iPhone上的体验可以媲美Native。基本上Native+Web App可以U杀多数应用Q如果不愿意受制于各UStoreQ单独的Web App也是一个不错的方向。对于游戏类和对g环境依赖严重的应用,只能是是Native”Q相关链接:摘录微博——对移动互联网的一些看法。仅有q样那样的问题,但HTML5是一U趋势,在未来三至五q_HTML5会取代很多本地应用Q但像多年前我们一直在谈B/S架构取代C/S架构一Pq需要一个过E?/p>
通常在HTML与Native之间Q我们有三种选择——HTML5、Native App以及HTML5+NativeQHTML5是指纯Web的移动应用,用户需要打开览器,然后输入应用的网址讉K。Native指的是基于特定^ 台开发的应用。Native+HTML5实际上是一U加壳的方式Q将HTML5用和览器封装v来,但这对用h不可见的Q用h有Q何异物感Q和 Store上下载的App没有什么两栗?/p>
我个h而言Q我是比较推崇HTML5+Native的,q种加壳的方式,可以让你享受Native与HTML5的双重好处,但缺ҎҎ术含量要 求较高。当然我q里指的不是单地把HTML5装C个浏览器里面QNative与HTML5会有许多的交互,实际上这有点像合硬盘,我们即便享受 SSD的快速,但我们又惌得机械硬盘的高性h比。我认ؓ?-10q内Q这都会是一U不错的解决ҎQ当HTML5和硬件发展到一定水q之后,我们再完 全{向HTML5成本也会非常低的?/p>
如何做?
假定现有一个对本地环境依赖不那么严重的目Q如微博客户端,各种C交食甚至LBS应用Q我们都可以采用HTML5+Native。如图所C,?们可以将核心的代码Core层用装hQ这个代码和q_无关Q主要是业务逻辑以及和Shell的交互,代码用Web语言~写。在Core层上我们再根?不同的移动^台制作不同的UI。最后我们将上述两层攑ֈ各^台的Shell中,q个Shell主要是由览器来完成工作Q当然还包括一些硬件操作和d?地资源,如GPS、重力感应、相用、地图、推送通知或者IAP{?/p>
我们可以把Web的升U部分部|到服务器上Q用戯行App后,App会向服务器讲求获取最新的WebE序q下载运行,q样可以辑ֈ跌各种 Store的更新审核,辑ֈ快速更新的目的。而且假如用户无法讉K互联|,我们可以让用户用上一个版本的E序Q不会像UWeb App那样要求用户一定要联网?span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #99cc00; ">
好处
1.用户可以ȝ使用
2.更新下蝲量及,可以全部更新Q也可以选择替换部分文g
3.代码很安全安全,众所周知Web应用有一个很大的问题是代码安全的问题,但现在我们可以将Web代码全部加密Q本地应用解密后再运行,大大的提供了代码的安全性?/p>
4.可以通过览器作Z介充分利用Native的好处,比如说可以用GPS、照相机、本地相册、读取本地联pMhQ也可以使用推送功能等Q最重要的是Q某些Web无法实现的功能,我们可以利用Native来实现?/p>
5.跨^収ͼ多数核心代码不用重写QJavascript的代码用得好的话Q在许多地方都可以用刎ͼ包括Ud应用、移动网站、PC|站、各U浏览器 插gQ甚臛_以用WebKit装作ؓ跨^台的应用E序。诚Ӟq种方式q完全跨^収ͼ但这样也以减少很多工作量了Q特别是后期的维护。而且完全的跨 q_是没有意义的Q不同^台有自己的风|Z更好的用户体验,界面层还是需要针Ҏ开发的?/p>
坏处
我觉得最大的坏处是技术难度高Q如果仅仅是单的览器封装几个HTML文gQ那没什么技术难度,但如果要打造一个系l的东西,q就很有技术难?了。这要求有h要了解三个主^台的览器特性,通晓NativeE序的开发,要精通HTML5/CSS3/JavascriptQ最重要的是Q要有较?的架构设计能力?/p>
如果要再找一个坏处的话,是它不能满x有的需要,它ƈ不能代替NativeQ但我认Z可以替代大部的Native?/p>
适合我们吗?
首先从品的角度考虑Q你的品是否严重依赖于本地环境Q比如说囑փ处理和华丽的游戏之类的。第二要考虑的是你的技术团队的构成Q如果你们的团队?一个能解决q些问题的牛人,q且有一些清通Web前端的hQ那我觉得你可以考虑用这U方式。技术选型非常重要Q稍有不慎,后患无穷。第三个要考虑你们公司 的战略,对HTML5未来发展的看法,愿意在移动互联网上付出多代P是否愿意做前L的事,是否愿意在前期投入较多的资源Q是否允许试错等{?br />本文转蝲? http://iove.net/archives/2991.html