跨平台工具详解:Qt(Nokia)

移动开发
Qt(发音cute)最初是Trolltech公司于1994年做的一个平台抽象层,在过去它广泛地应用在桌面和嵌入式app中,例如Google Earth,Skype还有Roku机顶盒。Nokia为了在其Symbian,Maemo和Series 40等平台上融合自身和第三方app创造一个一致的编程环境,在2008年收购了Qt。不过为了与微软搭伙,诺基亚已经放弃了Symbian和MeeGo,很有可能采用Qt来为其实现“Next Billion”战略。在2008-2011年诺基亚放弃了Qt桌面和嵌入式平台并把授权模块卖给了Digia(一个芬兰的系统集成商),这可真不值得。

Qt共有三种license可以获得,包括两种开源的版本(LGPL v2.1和GPL v3)以及一个需要付费的商用license。Qt开发框架被Nokia内部分割成两部分,分别负责维护和开发。从2011年11月起,Nokia削弱了在Qt上面的控制等级,并且允许第三方以一种更平等的方式来参与地图以及特色应用的开发。

主要产品和技术

Qt是个C++ UI以及应用框架作为其核心内容,拥有十分宽广的平台支持面(包括iOS,Android,Symbian,Tizen,MeeGo,Windows Mobile,Mac OS,Windows ,Linux以及一些其他的嵌入式环境)。除了C++语言之外,还可以使用QML(Qt Meta Language,这是一种陈述性语言,使用了一些Javascript元素使得UI和逻辑的编程更加简单。此外QML还可以使用Qt C++扩展,或者绑定C#,.Net,Java,Lua,Perl Python和PHP)。请注意Qt程序库增加了大约额外的12MB到app负载,WebKit的额外负载是它的两倍,这些将在下一个版本被改善,Qt5引入了模块化,可以将没用的组件从框架中剔除。

开发人员也可以通过WebKit引擎使用HTML,JavaScript和CSS来实现用户接口,混合编程语言以及使用WebViews会造成一些额外的性能开销,否则的话其性能开一说能与native app相媲美,使用C++编译(拥有抽象层接口让 core app与操作系统交互)应该比Java更快一些。Qt开发人员更倾向于把性能作为他们的选择标准:32%选择了这一点,而对于其他工具的均值来说只有20%;此外,对于性能方面的用户满意率也比较高。

Qt SDK由一些代码库组成,Qt Designer和Quick Designer拥有很多可视化编辑器,开发工具等,诸如Qt quick UI Creation Kit,Mobile APIs,Symbian仿真器还有Meego Devices。另外,还有很多Visual Studio和Eclipse IDE的插件。

市场影响力

Nokia估计大约有五十万研发人员使用Qt,此外从该平台发布以来大约超过两万种应用是用Qt做出来的,其中一半是桌面平台应用。Qt作为一种广泛使用的编程平台,应用在移动(Symbian和Android),桌面和嵌入式设备,无线流量控制,汽车终端,机顶盒和打印机等诸多领域。放眼未来,对于Nokia Series 40的转型来说Qt还处在一个不确定的状态,其未来的潜力依旧扑朔迷离。

市场定位

Qt可能是在Apple和Google时代来临之后***幸存的应用框架竞争者了,与此同时我们可以看到JavaMe和Flash都在持续走下坡路。在移动开发方面的调研结果上Qt的用户体验比其他工具略高一点点:30%的Qt开发人员拥有超过五年的开发经验,而行业均值为17%;而在这群开发老手里面,拥有网站开发经验的却比较少,只占42%的开发人员拥有超过五年的开发经验,而均值为66%。Qt的开发人员可以把C++编程与HTML/Javascript以及QML整合在一起,并不需要考虑其他快速开发工具。

除了桌面和嵌入式系统之外,Qt现在也被使用于针对Android和iOS的跨平台应用开发了,尽管他们都已经在“Tier 3”并且没有主流支持。通过Lighthouse项目可以获得Android的支持,同时iOS社区推动项目也在支撑Qt Core前进(但不是GUI)。作者的调研结果表明,48%的人把Qt作为主要工具并且把Android作为一个关键平台目标;iOS占18%。Qt开发人员的目标平台为:MeeGo/Tizen(80%),Symbian(73%),Windows PC(55%),Mac(36%)这方面比其他工具的均值要明显高很多。

Qt开发人员的主要目标app类型更加混杂,公共事业应用占了38%(均值只有18%),企业应用展29%(均值39%),提高效率的工具应用25%(与均值持平)。

责任编辑:佚名 来源: Web App Trend
相关推荐

2012-07-06 15:08:14

跨平台工具Netbiscuits

2012-07-06 15:00:03

跨平台工具MoSync

2012-06-14 09:48:06

跨平台工具SeregonDragonRad

2012-07-06 13:50:44

跨平台工具Adobe Phone

2012-06-14 09:57:12

跨平台工具IBMWorklight

2012-07-06 14:02:25

跨平台工具RunRevLiveCode

2012-06-14 09:42:20

跨平台工具AppceleratoTitanium

2012-07-06 13:45:21

跨平台工具Adobe AirFlex

2012-07-06 14:56:38

跨平台工具Motorola SoRhoMobile

2012-06-14 09:37:17

Ansca MobilCorona跨平台工具

2009-03-11 09:09:12

Qt开发工具SDK

2011-06-23 14:27:48

QT QLibrary 动态库

2012-07-06 15:03:43

跨平台工具Ideaworks 3Marmalade

2023-02-10 14:54:20

编译工具cmake

2011-06-21 14:01:07

QT 界面库 Embedded

2011-06-30 14:16:25

QT 中文 乱码

2011-12-13 20:07:26

跨平台工具

2011-06-15 13:39:55

Qt Creator

2011-06-21 17:35:11

Qt Creator 编译

2011-06-27 15:22:01

Nokia Qt SDK
点赞
收藏

51CTO技术栈公众号