使用V-Play实现基于Qt的跨平台原生移动应用开发

jopen 9年前

 

V-Play 是一个基于Qt的桌面和移动设备跨平台解决方案。它旨在让开发者更加方便的通过使用JavaScript和 QML (Qt 5声明式语言)创建应用。V-Play支持iOS、Android、WindowsPhone、BlackBerry和其他移动平台。InfoQ有幸采访到了V-Play CEO与联合创始人Christian Feldbacher就V-Play展开了讨论。

V-Play旨在提供原生应用般的外观和感受,其C++后段确保了高性能,Qt Quick模块提供了简单的动画实现。这也使得可以通过集成自定义C++、Objective-C或者Java代码来使用特定于平台的功能。

V-Play最初诞生于一个2D游戏开发引擎, 最近 扩展成提供通用移动应用开发。这里有一个示例,展示了如何通过QML声明一个使用现成V-Play用户界面组件的简单“Hello World”应用:

import VPlayApps 1.0 App {    Page {      AppText { text: "Hello World" }    }  }

V-Play提供了大量 组件 ,包括用户界面、多媒体、网络等。重要的是,V-Play提供的所有组件都使用C++实现,这确保了最佳的性能。V-Play同时宣称,归功于QML,用户可以比直接使用C++少写十分之一的代码。V-Play提供了许多 示例应用 ,包括推ter应用、消息应用、天气应用。

InfoQ和V-Play CEO和联合创始人Christian Feldbacher进行了访谈,以详细了解他们的产品。

请描述下V-Play的演化史?

V-Play基于Qt框架,它已经非常适合应用开发。主要因为这些核心优势:

  • QML(Qt元语言,Qt Meta Language):一种完全支持JavaScript的声明式脚本语言,可以在大量节省代码的前提下实现应用逻辑和其他功能。同时,QML也易于学习和理解。
  • 动画用户界面和自定义主题:这些功能在QML中非常易于实现,同时这些功能对于移动应用来说变得越来越重要,QML适用于移动开发。
  • 原生应用性能:Qt应用的渲染使用的场景图渲染器,在一年前刚由Qt团队针对移动平台进行过重新设计和优化。这使得移动应用拥有非常好的性能。另外,Qt框架自身使用C++编写,使得它更加原生。

因此,我们已经在内部应用开发和移动应用项目中使用Qt和其他V-Play游戏组件有一段时间了。在过程中,我们注意到我们可以在不同移动应用中重用许多新的内部组件来加速产品开发周期。

这就是 V-Play应用SDK 的起点:使用Qt框架创建移动组件,来简化应用开发。这些组件允许开发者编写响应式应用,可以自动适配智能手机和平板或者纵向、横向的变化。同时,开发者也无需针对平台的修改,即可在iOS和Android平台上都能够有原生用户体验。

在多个应用中使用了SDK,并对API进行微调之后,我们最终在2015年8月发布了第一个公开版本。

移动跨平台竞技场已经非常拥挤,你们带来的产品的主要优势是什么?

在我们的移动开发团队,我们有许多移动应用开发经验,这可以追溯到iPhone 1和Google G1发布的时候。在过去的8年中,开发领域发生了许多变化:刚开始原生iOS和Android开发是唯一的选择,然后越来越多的框架发布,允许跨平台开发。

过去,我们使用很多这类框架进行开发工作,目前仍然会有一些场景选择或者推荐原生Obj-C或者Java开发。然而,对于主要的移动应用,一个跨平台框架是节省时间和成本的最佳途径。

如果使用基于HTML5的框架,和类似Qt或者V-Play这些原生框架相比,会有较差的用户体验和性能。另一方面,诸如Xamarin工具会需要编写大量代码来实现动画等功能。

有了V-Play,我们的使命是创建一个易于使用的应用框架,同时保留原生应用的性能、外观和感受,就像我们做了V-Play游戏引擎。

事实上,QML实现快速开发可以在我们提供的示例应用中体现:例如推ter应用(SDK中自带了它的所有源码),只有500行代码,其中包括了访问推ter REST API还有和推ter原生应用相同的动画。用户可以在这里亲自查看和在自己手机上测试这个应用。

同时,由于QML构建于JavaScript之上,开发者可以轻松的学习这个框架。大部分开发者报告说他们能够在一天后进行生产开发。因此,对新开发者的学习曲线是非常平缓的。research2guidance的跨平台工具 去年报告 显示:V-Play在时间节省和容易学习项上得分第一,领先于其他诸如Xamarin、KonyOne和Titanium等工具。(全世界2188名开发者参与)

V-Play最近支持了移动应用,你要添加的下一个重要功能是什么?

我们会投入大量精力在增加更多的示例应用程序上,这样开发者可以将它们作为自己移动应用的起点,例如一个导航应用或者一个新闻应用。此外,在列表的顶部是改进工具:通过V-Play构建服务,开发者可以将应用快速部署到多个iOS和Android设备上,而无需在工作电脑上安装任何SDK。同时,这也将会使得在Windows平台上开发iPhone或者iPad应用成为可能。

然而,我们也仔细聆听来自社区的功能要求。因此,如果一个功能经常被要求,我们将会优先考虑。最后,我们想要做的就是通过V-Play应用SDK,能够让跨平台移动应用开发更为便捷。在过去的4年中,我们已经了解到这个目标可以通过和社区开发者协作,更好的的来完成。

V-Play提供 免费版本 以供开发者试用平台和构建局限性的应用,这些限制包括无法使用V-Play自己的应用内购买和移动广告插件等。

查看英文原文: V-Play Enables Qt-based Cross-platform Native Mobile App Development