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

  • 崔康

2013 年 10 月 11 日

话题:语言 & 开发架构

在 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 工程师比较短缺而且开价昂贵。
语言 & 开发架构