程序视界,漫谈程序人生,有趣,有能量

原文链接:,作者Mark Wilcox ,发布时间为 2014-10-29 。译者 foruok ,转载请注明出处。

我觉得作者分析很到位,特此翻译出来,看者有缘。我开通了微信订阅号——“程序视界”,漫谈程序人生,有趣,有能量。微信扫描下面的二维码即可关注。

也可以:打开微信–>“添加朋友”–>“公众号”–>搜索“微信视界”–>关注。

好啦,进入正文啦——

———————————————-

尽管对于面向大众消费市场的应用来讲,为每个平台构建一个独立的原生app已经被证明是当下最成功的方法,但跨平台仍然很有意义。在本文中,我们来看看最受欢迎的选择,使用HTML5的混合web应用和积极进取的挑战者 Qt 。

为什么选择Qt

那些熟悉Qt历史的人看到它被描述为“积极进取”可能会感到惊讶。Qt一开始被设计来构建跨平台的桌面应用,它的创始人在1994年开始为它工作!然而,当诺基亚收购 Trolltech 后,Qt开始对移动开发感兴趣,公司开始大力发展Qt,大量投资,想让它成为构建移动应用的理想工具。不幸的是,诺基亚刚刚作出这一战略决定没多久,iPhone面世了。iPhone改变了游戏规则,移动应用构建很快从面向带数字键盘和Qwerty键盘的设备,转向以触摸操作为主的设备。前Trolltech工程师意识到他们需要一个非常特别的方式来创建应用来支持诺基亚参与竞争。

当史蒂夫·乔布斯在iPhone面世时说iPhone比竞争对手领先五年时,基本上是正确的。可能因为 Google 的高官们意识到了iPhone的领先优势,Android已经缩短了一些差距。不幸的是,诺基亚最终放弃了它自己的基于 Qt 的设备,转而支持 Windows Phone,然而他们在软件上花费了太长的时间,最后他们在生态系统的竞争中远远落在后面。他们把 Qt 出售给了他们的一个主要的服务供应商——Digia,Digia 最近为 Qt 这个产品建立了一个独资的实体——the Qt Company。只有从诺基亚完全解脱出来后,Qt才又回归到它作为跨平台框架的本源,开始支持主流的移动平台。然而,与此同时,其他人已经看到了诺基亚投资移动应用建立起来的伟大基础,因此,BlackBerry 10(黑莓10),Jolla Sailfish(旗鱼),Ubuntu Mobile 和 Tizen 平台都选择 Qt 作为核心框架。

从个人角度来说,我在 2011 年早些时候,用 Qt 为 Symbian(塞班)重写了一个流行的 iOS 游戏。当时UI设计和通用调试工具还有点不成熟(译者注:现在,2015,又好了很多了),但在我工作过的所有平台上,它有最简单的学习曲线和最愉快的开发经验(原作者注:我这么说可没拿一分钱)——尽管 Qt 的核心使用了对开发者不太友好但高性能的C++。我甚至在某些配置相当低的硬件上也达到了 60fps 的性能。学习 Qt 新的UI技术——Qt Quick——相当简单,你可以在短短几天内为游戏构建出菜单界面。

为什么选择 HTML5,或者不选择

HTML5是开发者在构建跨平台移动应用时最流行的选择,然而,它似乎慢慢有点儿失宠。Web browsers和Web views在每一个平台上都可用,web开发者可以把创建网站的技术平移到构建app上。像 Cordova(PhoneGap)之类的开源框架让使用HTML5的开发者可以访问移动设备的附加功能,并且将应用打包成每个平台的原生格式也很简单。额外的好处是,您通常可以用最小的付出,同时拥有一个基于Web的应用和一个放在应用商店里的应用。在构建以UI为中心的应用时,HTML5通常比原生应用更有效率。当涉及到使用库和框架来构建移动web应用时,HTML5也有一些尴尬。混合web应用程序有一个特别的优势(至少在 iOS 上),能够直接更新他们的代码,避开应用程序商店的审查过程(除了重大变化)。

鉴于其普遍性和庞大的开发者基础,为什么HTML5不是默认的跨平台方法?尽管有许多优点,混合web应用开发者一直在和性能问题做斗争(一定程度上是由于不完整或过时的webview实现造成的,在最新版本的iOS和Android上,这个问题已经被修复了,尽管这将需要一段时间来渗透整个安装基数)。还有一个问题是各种各样的移动浏览器对标准的支持乱七八糟(这点正在改善但还远远没有彻底解决)。Web技术还没有真的被设计来满足移动用户现在期待的充满动画效果的UI。这也是备受推荐的框架 Famo.us 致力要解决的问题。

一些非常高调的消费类初创公司已经公开从web混合应用切换到了原生移动应用。关于这些切换,最常见的说法是缺乏足够的相关工具。可以肯定的是,让web apps在内存受限的前提下,在移动设备上表现良好是可能的,但鉴于当前的调试和性能分析工具的现状,与生产原生应用相比,那仍然不是一件容易的事情。这么说吧,并不是所有的应用程序需要完美的UI动画,我也不是拿HTML5和原生应用相比,所以,让我们来看看它和 Qt 怎么个顶个的比较。

Qt 对比 HTML5 ——正反两面

支持的平台

显然 HTML5 比 Qt 更加开放。这不总是一个优势。创建标准并让多个供应商去实现的过程是漫长的,Qt 可以更灵活。如果你真的需要让开源项目修复一些Bug或添加一个新特性,你可以自己做或者花钱请人去做。如果你需要支持 IE 并且 IE 有个问题,你必须自己解决或等微软来解决。还有,没有供应商能锁定HTML5,让web哪儿也去不了。别人可以买 Qt 并把它带向与你目标不符的方向,或者他们可以把价格提高到超出你的预算。HTML5 在这点上有优势但不是一个明确的胜利。

成本“人”的结构就是相互支撑,“众”人的事业需要每个人的参与。

程序视界,漫谈程序人生,有趣,有能量

相关文章:

你感兴趣的文章:

标签云: