写点什么

使用 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:004095

评论

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

工程师世界的《原则》,Quora创始人豆瓣9.2分神作!

博文视点Broadview

新书上市 | 20年行业实践,一线工程师的必读之作

图灵教育

软件设计

wallys/DR8072V01/IPQ8072A networking SBC supports dual 10GbE, WiFi 6

wallys-wifi6

云原生时代,金融企业如何完成全栈信创改造?

MIAOYUN

云原生 信创 国产化 金融信创 全栈改造

让智慧物联赋能高效生产, AIRIOT助力数字化油田转型升级

AIRIOT

低代码 物联网 低代码,项目开发

东方甄选品控翻车,如何通过智能协同的供应链建设建开启可持续商业模式?

数商云

数字化转型 供应链 企业数字化

GQM 概述:构建研发效能度量体系的根本方法

思码逸研发效能

研发效能 创新方法 效能度量

升哲科技入选《中国企业家》2022年度“新锐100”企业

SENSORO

一体化实时HTAP数据库StoneDB,如何替换MySQL并实现近百倍分析性能的提升

StoneDB

云原生 #数据库 HTAP 大数据 开源 #开源

编写Dockerfile,让你的程序一键部署

技术小生

Dockerfile 7月月更

构建工业软件开源工具链,2022 开放原子全球开源峰会开源工业软件论坛即将开幕

kk-OSC

开源 开放原子全球开源峰会 开源工业软件

Golang生成OpenAPI接口文档

老豆还编程

Go OpenAPI

RadonDB MySQL Kubernetes 2.2.0 发布!

RadonDB

MySQL Kubernetes 云原生 容器化 RadonDB

观测云产品更新|新增查看器显示列多种快捷操作;新增 Pipeline 一键获取样本测试数据;新增场景自定义查看器文本分析模式等

观测云

【计算讲谈社】第五讲|不止能上路,更能做好服务:自动驾驶产品规模化的问题定义

大咖说

人工智能 自动驾驶 阿里云 科技

帮助文档——助客户快速了解您的产品如何使用

Baklib

工作中养成的工作习惯与给老板的汇报

金松(李博源)

大数据 个人成长 高效 高效率 工作总结

共建开源人才生态,2022 开放原子全球开源峰会聚焦 “产学研用”

kk-OSC

开源 数字化 产学研用 开放原子全球开源峰会

SpringBootAdmin 2.5.5 发布,支持在线重启服务

冉然学Java

编程 springboot 构架 Java’

内部排序——交换排序

乔乔

7月月更

小白 0-1 学习 app 开发,从配置到 helloword

YonBuilder低代码开发平台

跨平台 安卓 低代码开发 多端开发

oa办公系统都有哪家?

优秀

OA oa办公系统

搭建帮助中心,推动SaaS企业发展

Baklib

SaaS 客户服务 帮助中心 文档管理

【7.1-7.8】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

企业自己如何快速开发一个简单实用的CRM客户管理系统?

优秀

CRM系统

阿里云架构师唐风:生命科学产业现状及发展趋势分享

阿里云弹性计算

高性能计算 生命科学 AI制药

建木持续集成平台v2.5.1发布-全面拥抱云原生架构

Jianmu

云原生 k8s 持续集成 CI/CD

开源代码难阅读?几位研发的“妙招”帮你解决

TDengine

数据库 tdengine 开源

中文拼写纠错:怎样改善模型对 multi-typo 的纠正效果?

澜舟孟子开源社区

人工智能 自然语言处理 nlp 文本生成 文本纠错

2022 开放原子全球开源峰会 OpenAnolis 分论坛携干货来袭!

kk-OSC

centos 开源 龙蜥操作系统 开放原子全球开源峰会 OpenAnolis

让预训练语言模型读懂数字:超对称技术发布 10 亿参数 BigBang Transformer [乾元]金融大规模预训练语言模型

亚马逊云科技 (Amazon Web Services)

架构 数据 模型

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