能用HTML5构架本地软件构架实践界面吗

移动开发中 HTML5 能否替代本地程序? - 开源中国社区
当前访客身份:游客 [
当前位置:
移动开发中 HTML5 能否替代本地程序?
随着移动设备越来越先进,对HTML5的支持度越来越高,我们进军移动领域的时候,都会遇到一个问题,是选择HTML5和还是Native(用原生 代码编写的本地程序)?HTML5的前景无疑是诱人的,一句&Write once, run anywhere&就可以秒杀一切。笔者最近两年来对HTML5与Native有较为深入的研究,觉得两者之间不能仅仅是二分法来选择,还要根据企业自身 的情况、团队的构成、公司的战略以及产品的特点来综合选择。
HTML5的发展前景我无疑是非常看好的,各大公司也不遗余力的推动,目前主流的三大智能机操作系统iOS、Android和WIndows Phone都已经支持大部分的HTML5特性。而移动设备硬件军备竞赛也为HTML5扫清硬件障碍。按照现在的发展速度,我判断是在三年以内甚至更快,移 动设备运行HTML5将会完全没有压力,无论是标准还是硬件。现在主流的智能机已经配置双核处理器(之前笔误为浏览器)和1G及以上的内存,今年再出智能 机没这个配置你都不好意思发布了。
1.HTML5可以让你摆脱对平台的依赖,用户打开浏览器,直接就可以访问你的应用,而不需要经过各种Store的审核。
2.实时更新,通常平台的审核都需要七个工作日左右的时间,如果你发布之后发现问题怎么办?Web方式就不存在这种问题。
3.Write once, run anywhere?
这是多少程序员的梦想,也曾经是Java让人心动的地方,但真正做过跨平台解决方案的人都知道,这只是一句口号而已,跨平台没那么容易玩转的。没 错,HTML5可以实现Write once, run anywhere,但我们总不能写一个Hello World来run anywhere吧。不同平台有自己的特性,不同平台用户也有自己的操作习惯,如果你想讨好所有人,也就意味着你无法讨好任何人。
4.减少开发工作量或者让开发变得更简单?
对老板来说,这是一个非常诱人话题,因为工作量的减少就意味着节省更多的钱,没有老板不喜欢用更少的钱办更多的事。而且目前一个非常大的问题是,移 动设备开发人员特别是iOS开发人员非常不好找,因为技术好的都自己做应用了,人家自己也能赚个月薪上万甚至更多,为什么要进你的公司?怎么说也是自己的 事业,拥有无限可能,还可以充分享受自由。但如果可以充分利用HTML5,那么我们就可以招聘Web前端的开发人员来构建移动应用,这样就不愁招人的有问 题。因为在许多人的眼里,HTML5/CSS/Javascript都是没多大技术含量的东西,实在找不到人,找些实习生学学也就会了。
但问题是,工作量真的会减少吗?技术门槛真的那么低么?答案是NO!
我曾经花了半年的时间去开发一个基于HTML5的移动框架,用来模拟Native应用,让HTML5应用看起来尽可能看起来像本地应用,注意:是 像。这有点像jTouch,但不一样的是,它能和Native程序很好地交互,并且能调用本地资源等等特性。但最后结果确不是那么令人满意,比如 HTML5在动画切换的时候,有时候候会有一些莫名其妙的问题,当然你可以告诉我把动画效果关了,但这看起来很死板,最后我不得不关闭某些动画。而用 Objective-c编写程序就没这么多事了,几句简单的代码可以实现很酷的动画,用HTML5需要更多的代码,甚至根本无法实现。
而且移动设备上的HTML5开发对开发人员的技术有非常高的要求,不是一般的Web前端人员能解决的,通常拥有这样技术的人才,工资水平也不会比 Native开发人员低多少。如果你仅仅是要开发一个移动设备上的网站,这会简单很多,但如果你希望模拟Native应用,并且拥有较高的效率和优雅的用 户体验,这就很有技术含量了。不要小看Javascript这类Web开发语言,通常我的看法是越简单的语言越会体现出技术人员的水平,特别是规划设计能 力。
5.其它问题,资源调用的限制,比如说在iOS中有Javascript运行不能超过15秒的限制,不能调用本地硬件设备(如相机等),无法使用推送服务等。
如何选择?
是否这样,我们就不要选择HTML5了呢?我在前面说过:&要根据企业自身的情况、团队的构成、公司的战略以及产品的特点来综合选择&,我最近在关 于HTML5讨论的微博上也有谈到:&HTML5是战略性方向,Facebook和Google已经布局,Google Mobile在iPhone上的体验可以媲美Native。基本上Native+Web App可以秒杀多数应用,如果不愿意受制于各种Store,单独的Web App也是一个不错的方向。对于游戏类和对硬件环境依赖严重的应用,只能是是Native&,相关链接:摘录微博&&对移动互联网的一些看法。仅管有这样那样的问题,但HTML5是一种趋势,在未来三至五年,HTML5将会取代很多本地应用,但就像多年前我们一直在谈B/S架构取代C/S架构一样,这需要一个过程。
通常在HTML与Native之间,我们有三种选择&&HTML5、Native App以及HTML5+Native,HTML5就是指纯Web的移动应用,用户需要打开浏览器,然后输入应用的网址访问。Native指的是基于特定平 台开发的应用。Native+HTML5实际上是一种加壳的方式,将HTML5用和浏览器封装起来,但这对用户是不可见的,用户没有任何异物感,和 Store上下载的App没有什么两样。
就我个人而言,我是比较推崇HTML5+Native的,这种加壳的方式,可以让你享受Native与HTML5的双重好处,但缺点是对技术含量要 求较高。当然我这里指的不是简单地把HTML5封装到一个浏览器里面,Native与HTML5会有许多的交互,实际上这有点像混合硬盘,我们即便享受 SSD的快速,但我们又想获得机械硬盘的高性价比。我认为在5-10年内,这都会是一种不错的解决方案,当HTML5和硬件发展到一定水平之后,我们再完 全转向HTML5成本也会非常低的。
假定现有一个对本地环境依赖不那么严重的项目,如微博客户端,各种社交美食甚至LBS应用,我们都可以采用HTML5+Native。如图所示,我 们可以将核心的代码Core层用封装起来,这个代码和平台无关,主要是业务逻辑以及和Shell的交互,代码用Web语言编写。在Core层上我们再根据 不同的移动平台制作不同的UI。最后我们将上述两层放到各平台的Shell中,这个Shell主要是由浏览器来完成工作,当然还包括一些硬件操作和读取本 地资源,如GPS、重力感应、相机调用、地图、推送通知或者IAP等。
我们可以把Web的升级部分部署到服务器上,用户运行App后,App会向服务器讲求获取最新的Web程序并下载运行,这样可以达到跳过各种 Store的更新审核,达到快速更新的目的。而且假如用户无法访问互联网,我们可以让用户使用上一个版本的程序,不会像纯Web App那样要求用户一定要联网。
1.用户可以离线使用
2.更新下载量及少,可以全部更新,也可以选择替换部分文件
3.代码很安全安全,众所周知Web应用有一个很大的问题就是代码安全的问题,但现在我们可以将Web代码全部加密,本地应用解密后再运行,大大的提供了代码的安全性。
4.可以通过浏览器作为中介充分利用Native的好处,比如说可以使用GPS、照相机、本地相册、读取本地联系人,也可以使用推送功能等,最重要的是,某些Web无法实现的功能,我们可以利用Native来实现。
5.跨平台,多数核心代码不用重写,Javascript的代码用得好的话,在许多地方都可以用到,包括移动应用、移动网站、PC网站、各种浏览器 插件,甚至可以用WebKit封装作为跨平台的应用程序。诚然,这种方式并非完全跨平台,但这样也足以减少很多工作量了,特别是后期的维护。而且完全的跨 平台是没有意义的,不同平台有自己的风格,为了更好的用户体验,界面层还是需要针对性开发的。
我觉得最大的坏处是技术难度高,如果仅仅是简单的浏览器封装几个HTML文件,那没什么技术难度,但如果要打造一个系统级的东西,这就很有技术难度 了。这要求有人要了解三个主流平台的浏览器特性,通晓Native程序的开发,要精通HTML5/CSS3/Javascript,最重要的是,要有较强 的架构设计能力。
如果要再找一个坏处的话,就是它不能满足所有的需要,它并不能代替Native,但我认为他可以替代大部的Native。
适合我们吗?
首先从产品的角度考虑,你的产品是否严重依赖于本地环境,比如说图像处理和华丽的游戏之类的。第二要考虑的是你的技术团队的构成,如果你们的团队有 一个能解决这些问题的牛人,并且有一些清通Web前端的人,那我觉得你可以考虑用这种方式。技术选型非常重要,稍有不慎,后患无穷。第三个要考虑你们公司 的战略,对HTML5未来发展的看法,愿意在移动互联网上付出多少代价,是否愿意做前瞻性的事,是否愿意在前期投入较多的资源,是否允许试错等等。
想通过手机客户端(支持 Android、iPhone 和 Windows Phone)访问开源中国:
旧一篇: 5年前
新一篇: 5年前
你也许会喜欢
不是本地的感觉不安全
2楼:冯绪兴
只要安全问题和性能问题一直存在,那么本地软件永远不可能被取代
3楼:cers000
web近年来一直试图进入其它领域..........
4楼:胡晅晖
关注......................
5楼:无知的TonySeek
不知道像豆瓣的 One Ring 这种的算不算?
15:43 (非会员)
7楼:zzhgb
搞得像是把html5当作脚本使,用别的脚本是不是更习惯些
8楼:xesam
反正要兼容个平台会很痛苦就是了··
9楼:浪客Dandy
作者不够了解HTML5的历史,HTML5本身就是个阴谋,不是专门为Web开发设计的。随着Win8上WinRT+Metro+HTML5的结合,人们应该清楚的意识到,未来HTML5可能会脱离浏览器,脱离互联网存在。再看看Tizen和WebOS的设计,你就会发现HTML5可能只不过是另一个MUL,另一个XAML。现在手机系统上各种HTML框架,到最后大多数可能都会死去,因为界面库最终还是要和系统紧密结合,像WinRT和Tizen。最后其实并不是HTML5代替了本地软件,而且本地软件界面库征服了HTML5。
10楼:毛主席夸我帅
正在做Native+html5的应用。。。并不觉得有多好。。。问题多多。。。
11楼:Linux校园社区
其实html5就如同当年的applet!
12楼:hokim
引用来自“浪客Dandy”的评论作者不够了解HTML5的历史,HTML5本身就是个阴谋,不是专门为Web开发设计的。随着Win8上WinRT+Metro+HTML5的结合,人们应该清楚的意识到,未来HTML5可能会脱离浏览器,脱离互联网存在。再看看Tizen和WebOS的设计,你就会发现HTML5可能只不过是另一个MUL,另一个XAML。现在手机系统上各种HTML框架,到最后大多数可能都会死去,因为界面库最终还是要和系统紧密结合,像WinRT和Tizen。最后其实并不是HTML5代替了本地软件,而且本地软件界面库征服了HTML5。又一阴谋论
13楼:爱国者
因为在许多人的眼里,HTML5/CSS/Javascript都是没多大技术含量的东西,实在找不到人,找些实习生学学也就会了。
21:11 (非会员)
引用来自“Linux校园社区”的评论其实html5就如同当年的applet!这话说得..
15楼:Latency
HTML5不是完美的亦不是万能的,不可能一统天下,总有新的技术出现。百花争艳。
16楼:手机访客
09:00 (非会员)
Alright arlihgt alright that&s exactly what I needed!
17楼:手机访客
19:03 (非会员)
&a href=&/&&jvhbqsndlosj&/a&
与内容无关的评论将被删除,严重者禁用帐号
本周热点资讯
本站最新资讯随时选购服务
需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金流量暴涨,转化飙升,销量翻倍
已收到 8 个服务商的文案稿件
, 最终中标并完成需求
有相似问题想解决?专业顾问来帮助您
01发布需求, 托管赏金02服务商交稿03雇主选稿04中标公示05验收并付款06评价
通过猪八戒网实名认证,保证身份真实可靠
完成手机认证,保证能随时联系到服务商
参与需求,开始赚钱
第1步:提交您的稿件
第2步:中标后交付作品
第3步:获得赏金
该需求下的优秀交稿
TA的交稿:
深圳的职业&HTML5/jq开发团队,对于您的要求我们完全可以实现,由于该需求只是要实现框架,如果要提供出设计稿,那就基本开发完了。我们作品可参考:百度10秒笔记系列产品http://10mi...HTML5能取代Android和iOS应用程序吗_百度知道平面设计师学习html5会什么软件_百度知道十大开源的.NET用户界面框架 让GUI设计不再犯难
查看: 1834|
评论: |来自:
摘要: 下面小编整理出十大应用最广泛.NET开源用户界面框架,希望.NET开发人员以后选择GUI框架时不再犯难。
& &选择一款合适的GUI框架是.NET开发中比较重要但又很棘手的问题,因为用户界面相当于一款应用的"门面",直接面向用户。好的UI更能吸引用户,有时甚至成为决定一款应用成败的关键。下面小编整理出十大应用最广泛.NET开源用户界面框架,希望.NET开发人员以后选择GUI框架时不再犯难。Windows.Forms是微软的.NET开发框架图形用户界面的一部分,该组件通过将现有的Windows API(Win32 API)封装为托管代码提供了对Windows本地(native)组件的访问方式,兼容Linux和其他Mono平台。WPF(Windows Presentation Foundation)是微软推出的基于Vista的用户界面框架,属于NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。Gtk#是一个针对.NET和Mono的图形用户界面工具集,项目绑定了gtk+ 工具集并打包了GNOME库,支持完整的原生图形Gnome 应用程序开发。Qt是一个用户群非常广泛的跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立各种高级图形用户界面所需的所用功能。它完全面向对象的,很容易扩展,并且允许真正地组件编程。这款工具励志为.Net/Mono 开发人员提供原生的Mac OS X应用程序开发体验。开发者可以以C#访问整个MacOS X APIs ,对AppKit GUI APIs无限制。wxWidgets是一个非常完整的GUI工具库,提供了很多工具类,免费供个人使用或者商业使用。只要可能,wxWidgets就会使用本地平台的SDK。也就是说,同一段代码,在Windows下编译将具有Windows程序的外观,在Linux下编译将具有Linux程序的外观。Qyoto是跨平台的应用程序框架Qt的.NET语言绑定,支持Unix, Windows, OSX 平台。能够使用在 C#、Visual Basic或其他 .NET 语言,同时也是Kimono(KDE API 的 .NET 绑定)的基础。使用IKVM绑定到.net的QtJambi java端口。针对wxWindows的.net绑定,支持Windows、Linux和OSX平台,为各个平台支持原生外观。GTKmm是官方的GTK+的C++接口,GTK+是当前最流行的图形界面开发库之一。使用gtkmm,你不但可以从代码还可以用Glade来创建用户界面。不过需要libglademm的配合。
Powered by

我要回帖

更多关于 html5 做erp软件界面 的文章

 

随机推荐