BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Qt移动版优化后台云服务、支持跨平台开发

| 作者 崔康 关注 0 他的粉丝 发布于 2013年10月12日. 估计阅读时间: 8 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

在2013年Qt开发者日中,Digia公司宣布了能够跨平台开发的Qt移动版本,此版本支持安卓、iOS和其它移动平台上的开发。Qt移动版提供了一个内置的、基于Qt优化的云后台服务的多平台移动应用开发平台,即Enginio。通过Enginio的Qt API,开发者可以为所有目标平台编写本地或者混合应用程序——这个API(接口)既可以使用Qt/C++也可以使用QML API。对于所有的Qt库来说,它对所有的目标平台提供的是几乎完全相同的代码。

Qt的移动版本将随着12月主版本Qt 5.2一起发布。Digia强调,Qt是唯一的一个允许本地应用程序跨桌面、嵌入式和移动平台开发的软件开发框架,并且支持部署到至少14种主流操作系统,包括许多处理器类型。Qt支持安卓、iOS和很多更有挑战性的移动操作系统平台,连同所有主流桌面操作系统,包括Windows、Msc OS X和Linux,以及一些嵌入式操作系统例如嵌入式Linux系统、嵌入式安卓系统、嵌入式Windows系统和实时操作系统(RTOS)。

Qt移动版本的主要特点:

  • Qt移动版本的库和开发工具具有其他软件无法匹敌的本机性能和较好的开发效率。
  • 为安卓和iOS的应用程序提供跨平台的环境,并且另一个移动平台即将加入此环境中。
  • 数据的云存储和用户管理(Enginio Qt云)
  • 商业开发和部署的许可证保护了开发的投入并且简化了应用程序的分发。

Digia的Qt国际产品高级副总裁Tommi Laitinen认为:

通过应用OpenGL ES,Qt交付图形的能力增强了,它专门设计了进行图形应用程序编程的接口版本,从而为移动设备和嵌入式系统服务。这使得它能够更容易的开发和配置出丰富的图形界面和细腻的动画和过渡效果,也能够在性能相对有限的设备上顺利的呈现2D和3D效果,如手机和平板电脑。除了功能繁多的Qt API之外,使用Qt构建的应用程序也可以使用特定平台或者特定设备的API,从而给开发人员整合他们程序所需要的任何功能的自由。

目前,移动开发领域中跨平台开发框架非常多,其中不乏精品。

PhoneGap, 现在叫Apache Cordova, 允许你使用HTML, CSS和JavaScript 来开发跨平台的移动应用。它通过一组JavaScript API对平台特定的本地代码做了抽象, 同时还保持了不同移动平台之间的一致性。Cordova支持非常多的平台, 包括iOS、Android、 Blackberry、 Windows Phone 以及 WebOS。

Tabris,使用JAVA进行跨平台移动开发,是一个支持iOS和Android的跨平台Java移动开发框架。Tabris定位于企业,与其他移动解决方案不同的是,它使用了不同的方法:大多数编程工作都使用JAVA完成;业务逻辑和客户端UI的二进制表示运行在服务器端的Eclipse RAP上;一个很薄的客户端应用运行在移动设备上;服务器端通过JSON格式与客户端通信,发送数据和命令让客户端 创建可视的UI;客户端使用原生组件生成界面;iOS的客户端使用Object-C编写,而Android的客户端则使用Java编写。

Moscrif,用JavaScript进行跨平台移动开发,Moscrif是构建在定制虚拟机上的跨平台移动开发环境。尽管该平台提供了访问原生设备的功能,但编程语言却是JavaScript的一个定制版本。据公司联合创始人Michal Habalcik所说,Moscrif已支持iOS、Android、Symbian、Windows Mobile和Bada等平台,而且还将在微软发布API之后,添加对Windows Phone 8的支持。Moscrif SDK提供了开源框架、基于Mono的集成开发环境以及各支持各种平台的发布工具。除了核心功能,该框架还包含了大量类库,提供了对加密、2D游戏、图形、多媒体(OGG,WAV)、网络、传感器和SQLite的支持,还提供了简洁的用户接口。Habalcik还告诉我们,在不久的将来,他们打算支持原生用户界面,但这么做会对跨平台开发能力带来不利的影响。他们还打算将来添加对HTML5的支持,但是目前,Habalcik认为“HTML5有些严重的性能问题,所以不可能用来开发含有大量图形的高品质游戏”。

Webix JavaScript UI 库,XB 软件公司最近发布了JavaScript UI 库Webix ,其中包含的组件超过45个,用这些组件可以构建跟HTML5CSS3 兼容的程序,这些程序不仅能在个人电脑上运行,还能用在iOS、 Android 和 Blackberry 设备上运行。它能访问离线web存储、地理位置( geolocation) API、能在画布上绘图,并集成了jQuery 和 Backbone.js。Webix提供了简单的服务端集成控件,PHP、 ASP.NET、Java和 Ruby等各种技术都可以跟客户端的Webix部件直接通讯。此外这些组件还能用在一些MVC框架中,比如RoR、ASP.NET MVC、Spring、Struts 和 Grails.

当然,随着HTML5技术的发展和成熟,它已经逐渐成为跨平台移动开发的利器,Business Insider在一份新出炉的报告中分析了HTML5和原生应用的优缺点,并提供了大量实际应用的案例。该报告指出,HTML5应用在移动领域的魅力不言而喻:它基于Web、在移动浏览器内运行,不受移动平台及设备的限制,也不需要开发者针对每个移动操作系统分别开发,“一次写成,到处运行”是它引以为豪的承诺。没错,HTML5在很多时候表现得与原生手段并无二致,但是也有几点原因让它往往无法成为众望所归的“完美方案”:首先,HTML5本身面临“碎片化”问题,不同移动浏览器对HTML5应用功能的支持存在差异性。再者,虽然HTML5及其相关Web语言——JavaScript和CSS知名度极高,但是HTML5移动应用的开发成本往往并不低,也不能单纯地照搬桌面Web应用——它们需要优秀的专业人才,也需要巨大的精力投入。

该报告指出:

  • 在用户体验及性能方面,原生应用要超过HTML5应用,理由是HTML5依然不能很好地通过所有移动浏览器访问设备原生功能,在打造图形丰富的用户界面和呈现数据方面也存在局限性。
  • 在跨平台部署成本方面,HTML5要占优势,因为HTML5是Web领域的通用语言,不受设备或操作系统限制。W3C正在接洽汽车、出版和电视行业的公司以推广Web。
  • 在快速更新和发行控制方面,HTML5胜过原生应用。HTML5的一大优势是开放性——它基于Web,所以没有任何一家公司(如谷歌、苹果、亚马逊或三星)可以充当“掌门人”、放缓更新或者瓜分应用收入。不过,HTML5在支持设备厂商推出的创新手机功能时有点慢。
  • 在盈利方面,原生应用更胜一筹。苹果App Store和谷歌Google Play等原生应用商店优势明显。而HTML5除了软件开发商各自在线销售应用之外,还没有出现令人信服的盈利模式。
  • 在编程人才数量方面,HTML5占优势。HTML5、Javascript和CSS都是Web领域的通用语言,而相比之下,iOS工程师比较短缺而且开价昂贵。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT