2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

  • 2015-11-10
  • 本文字数:2232 字

    阅读完需:约 7 分钟

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 提供了许多示例应用,包括Twitter 应用、消息应用、天气应用。

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

同时,由于 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


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-10 18:004034

评论

发布
暂无评论
发现更多内容

技术分享 | 测试平台开发-前端开发之数据展示与分析

霍格沃兹测试开发学社

Docker 容器网络配置

CTO技术共享

物联网设备上云难?华为云IoT帮你一键完成模型定义,快速在线调试设备

华为云开发者联盟

后端 物联网 华为云

测试左移之Sonarqube scanner使用

霍格沃兹测试开发学社

如何建立开源战略

龙智—DevSecOps解决方案

开源 漏洞修复 漏洞检测 漏洞管理

kube-schedulersimulator 模拟调度器环境

CTO技术共享

正则表达式中使用-的一个小坑

agnostic

正则表达式

最常见的两个Jenkins问题,以及解决方法

龙智—DevSecOps解决方案

ci CI/CD CI/CD管道

技术分享 | 想测试入门就必须要懂的软件开发流程

霍格沃兹测试开发学社

技术分享 | 一步一步学测试平台开发-Vue restful请求

霍格沃兹测试开发学社

韶关等保测评公司地址在哪里?电话多少?

行云管家

等保 等保测评 韶关

服务网格 实现超时和重试

CTO技术共享

技术分享 | 学做测试平台开发-Vuetify 框架

霍格沃兹测试开发学社

技术分享 | 专项测试技术初识Hook

霍格沃兹测试开发学社

快速上手Elasticsearch bboss restclient

大河

elasticsearch bboss restclient

没有一个顺手的流程绘制工具?好吧,自己动手,丰衣足食!

江南一点雨

Java springboot BPMN

渗透测试 vs 漏洞扫描:差异与不同

SEAL安全

网络安全 渗透测试 软件安全 软件供应链安全

Python实战之用内置模块来构建REST服务、RPC服务

山河已无恙

RPC REST API Python.

bboss http负载均衡器使用指南

大河

HTTP bboss httpproxy

技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?

霍格沃兹测试开发学社

建木×GitLink,解锁高效开发新体验

Jianmu

DevOps 持续集成 CI/CD 自动化运维 建木

使用 vue 开发 YonBuilder移动开发应用的教程

YonBuilder低代码开发平台

支持公有云/私有云平台运维监控工具哪个好?怎么操作?

行云管家

云计算 运维 自动化 云运维

openGauss内核分析:执行计划生成

华为云开发者联盟

数据库 后端

设计模式的艺术 第三章单例设计模式练习(设计一个数据库连接池,能自行提供指定个数实例对象的数据库连接类)

代廉洁

设计模式的艺术

技术分享 | 跨平台API对接(Java)

霍格沃兹测试开发学社

Http/Https插件使用指南

大河

https HTTP Data ETL bboss

技术分享 | Frida 实现 Hook 功能的强大能力

霍格沃兹测试开发学社

荣耀智慧服务开发者扶持计划,百亿曝光你心动了吗?

荣耀开发者服务平台

小程序 大数据 卡片服务 快应用 荣耀

技术分享 | 测试平台开发-前端开发之Vue router路由设计

霍格沃兹测试开发学社

我是一个垃圾

蝉沐风

JVM 老年代 垃圾回收 GC 新生代

使用V-Play实现基于Qt的跨平台原生移动应用开发_JavaScript_Sergio De Simone_InfoQ精选文章