Skip to main content

Built with Qt

iLovePDF

流畅的桌面端 PDF 工具

迁移至 Qt 6 与 QML,实现更高效的 UI 开发 

2x

应用性能提升

98%

代码在双平台间复用率

3x

开发者上手速度提升

iLovePDF 是一款日活用户超过 1,500 万的在线 PDF 管理平台。该公司同时提供 iLovePDF 桌面版,基于 Qt 应用开发框架构建,让 Windows 与 macOS 用户能够在数秒内完成繁重的 PDF 离线处理任务。

开发团队的工作效率大幅提升,日常工作也轻松了许多。

Alexander Giss, iLovePDF, 技术负责人

Qt 6 迁移要点

现代、流畅、视觉效果丰富的用户界面

前端与后端架构清晰分离

性能大幅提升

挑战:桌面体验的现代化升级

iLovePDF 此前已基于 Qt 5 和早期的 Qt Widgets 模块构建了一款成熟的桌面应用程序。然而,由于公司始终将易用性置于首位,UI 开发面临日益增大的压力,以满足用户持续演进的期望。

最初的想法是继续用 Qt Widgets 开发新版桌面应用,因为我们的开发者对 QML 完全不了解。iLovePDF 桌面团队技术负责人 Alexander Giss 表示。

桌面应用面临的主要挑战包括:

  1. 用户界面现代化: 需要对 UI 进行大幅改版,以提供更流畅、更直观、更具视觉吸引力的用户体验。
  2. 加速开发效率: 团队需要提升 UI 开发速度,以更快地推出新功能并响应用户反馈。
  3. 保持性能和跨平台支持: 团队希望延续 Qt 5 时代的高速文件处理能力,并继续以单一代码库同时支持 Windows 和 macOS 平台。

最初的目标只是让 UI 变得好看,但需求随后不断扩展,包括引入深色模式、动画效果等。继续用 Qt Widgets 实现这些需求已经不再合适。Giss 指出。

使用 Qt 6 是更好的选择,因为开发速度会更快。

Alexander Giss, iLovePDF, 技术负责人

BuiltWithQt-iLovePDF-UIExample-Tools-854x480

解决方案:iLovePDF 为何选择 Qt 6 和 QML

在迁移至 Qt 6 的同时,iLovePDF 团队还决定切换至 Qt 的声明式 QML 语言。这开启了全新层次的 UI 开发模式,为几乎所有技术需求提供了开箱即用的解决方案。

迁移过程相当顺畅,因为我们选择了对 UI 部分进行完整重写。虽然耗费了一定时间,但我们得以彻底清除历史缺陷与限制,并借助 QML 建立了非常清晰的架构。Giss 评价道。

团队高度评价了 QML 带来的前后端清晰分离。QML 声明式的"嵌套元素"结构让开发者能够直观地理解 UI 的整体架构,降低了理解成本,也使进一步扩展变得更为便捷。

此外,新架构支持以单一代码库高效开发和维护 Windows 与 macOS 双平台桌面应用,大幅节省了时间与资源投入。

在 Qt 框架下,项目中 97%–98% 的代码在两个平台之间完全共用。仅有极少数特殊例外,其余代码均可无障碍地在双平台上构建。这不仅节省了开发时间,也让团队中的任何成员都能在 Windows 和 macOS 上无差别地开发。iLovePDF 高级软件工程师 Aguilera 补充。

迁移至 Qt 6 的决策确实物有所值。

Sergio Aguilera, iLovePDF 高级软件工程师

BuiltWithQt-iLovePDF-UIExample-RecentsAndEditing-854x820

iLovePDF 从 Qt 6 与 QML 中受益

iLovePDF 对迁移至 Qt 6 和 QML 的决策非常满意。团队现已从开发效率提升、应用性能大幅改善、出色的用户体验以及一系列加速工作流程的优化中持续受益。

快速掌握 QML 的学习曲线

新架构允许开发者专注于各自负责的模块。正因如此,新成员能够更快融入,整个团队的交付效率也得到了显著提升。

举个例子,一名开发者负责 UI 部分,另一名负责后端部分,最后将两者合并,直接就能运行。Giss 赞叹。

这支精简团队的全栈开发效率已高到目前无需扩充人手的程度。

QML 的核心就是 UI 开发本身。无论目标平台是什么,开发者专注于创建 UI 即可,其他的不需要考虑。Giss 说道。

如今,桌面开发团队的所有成员都已熟练掌握 QML,并随着 Qt 框架的持续演进不断更新自身知识体系。

例如,我们会参加 Qt World Summit,努力跟上 Qt 的演进节奏,并将新特性引入我们的代码。Giss 总结道。

切换至 QML 后,新开发者的入职与培训效率提升了约 3 倍。

Curial Lloses, iLovePDF 运营官

性能显著提升

为加快产品上市速度,iLovePDF 最初将重心放在 UI 改进上,后端暂时保持不变。然而最终,团队还是对后端进行了重写,优化了文件转换、OCR 等后端处理操作。由此,桌面端应用成为 iLovePDF 产品线中性能最强的一款。

我们现在充分利用 QThread and QThreadPool 调用处理器的全部算力。终端用户的电脑越强,应用的运行速度就越快。Giss 解释道。

得益于 Qt,桌面团队无需依赖第三方渲染组件,前后端均可自主开发实现。尽管这意味着相较于其他 iLovePDF 开发团队工作量更大,但凭借新架构带来的效率提升,桌面团队与其他团队保持着同步的功能交付节奏。

此外,该团队称赞其桌面应用程序在 Qt 6 上具有卓越性能。

举例来说,同一款为 Qt 5.8 编写的应用,只需适配最新版 Qt,性能便会获得大幅提升。Aguilera 指出。

切换至 QML 后,渲染速度提升了约 5–6 倍。

Alexander Giss, iLovePDF 技术负责人

BuiltWithQt-iLovePDF-UIExample-OCRAndSignature-854x820

下一代用户界面

作为一家高度以用户为中心的公司,iLovePDF 对焕然一新、更加流畅的 UI 给予了高度评价。

借助 QML,我们的用户界面在趣味性和直观性上已超越竞争对手。Giss 表示。

对 iLovePDF 而言,让用户——包括非技术背景的普通用户——也能便捷地使用 PDF 工具、快速获得处理结果,至关重要。

QML 赋予了我们前端设计更大的灵活性,真正让我们有能力打造出心目中理想的桌面应用。用户现在获得的体验非常舒适。iLovePDF 运营官、联合创始人之一 Lloses 补充道。

iLovePDF 团队还构建了一套可复用的 UI 组件库,进一步加速了原型制作流程,也让开发者与设计师之间的协作实验更加高效。

我们能够非常快速地实现新功能。当设计团队有新想法时,借助 QML,只需几个小时就能轻松画出 UI 草图并完成小型功能演示。Aguilera 说道。

这也有助于建立并维持持续改进的良性循环。

使用 QML,开发者可以精确看到 UI 层面发生的一切,从技术角度来说更加直观易懂,Giss 称赞道。

此外,团队还高度称赞了 Qt 6 相较于 Qt 5 在图片处理、动画效果、阴影等视觉特效以及整体渲染能力方面的大幅提升。

我用相同的代码做了对比测试——代码是兼容的——切换到 QML 后,速度提升了约 5–6 倍,Giss 说道。

团队还注意到 Qt 6 持续在演进。例如,QML 底层的 JavaScript 引擎和 QML 绘制机制在 Qt 6 的每个小版本中都在稳步改善。

 

深入了解 Qt 框架

网络通信、实时功能和数据处理

iLovePDF 对 Qt 6 的使用不仅限于 UI 开发。桌面团队还广泛使用了 Qt 的网络通信数据处理功能。

网络相关功能没有遇到任何问题,因为 Qt 框架非常易于理解,编写请求等操作都很直接。Giss 提到。

文件系统访问等核心任务由 Qt Core 高效处理;Qt WebSockets 支持即时文档传输等实时功能;本地数据持久化则由 Qt SQL 负责,确保一致的离线体验。

在网络通信方面,Giss 重点介绍了使用 Qt 构建身份验证与授权机制的便捷性——这套机制用于管控用户对 iLovePDF 高级订阅功能的访问权限。此外,iLovePDF 桌面版还利用 Qt Network 收集匿名使用统计数据,并在出现问题时将用户数据发送给支持团队。

卓越工具与支持带来的额外效率提升

开发工具

iLovePDF 开发团队认为 Qt Creator IDE 在日常开发工作中极为实用。

Qt Creator 在过去两年里进步显著,每次更新都在稳步提升。Aguilera 说道。

团队特别称赞的一项 IDE 功能是:能够查找和比较代码变更记录,并追溯到具体的提交者。这大幅加快了缺陷排查与修复的流程。

在排查缺陷时,找到引入问题代码行的人往往很有帮助,因为当初这样写可能有其原因。Qt Creator 只需几次点击就能找到准确的提交记录——是谁在什么时候提交的,一目了然。Giss 解释道。

 

Qt 支持服务

iLovePDF 支持团队每天处理大量用户反馈。因此,一旦某项反馈涉及底层技术问题,快速找到解决方案对团队至关重要。Qt 支持团队在这方面提供了很大的帮助。

这正是与 Qt 建立支持关系对我们如此重要的原因,也是我们对 Qt Support 感到满意的原因。Lloses 说道。

多年来,iLovePDF 团队与 Qt 的合作不断深化,双方在互利共赢的学习交流中持续进步。

当然,购买许可证是需要付费的,但你同时也获得了支持服务,遇到问题随时可以咨询。这确实帮助我们解决了不少缺陷。Giss 说道。

Qt 支持服务在过去一两年间有了显著提升。我们使用过的每个版本,在支持周期内遇到的问题都得到了妥善处理。Aguilera 说道。

核心价值并不体现在 KPI 数字上,我们真正获得的是难以量化的宝贵收益。

Curial Lloses, iLovePDF 运营官

总结

凭借 Qt 的高效性、多功能性与完整性,iLovePDF 成功推出了更强大、更具视觉吸引力、更易用的新版应用程序。迁移至 Qt 6 与 QML 不仅帮助团队实现了 UI 现代化的既定目标,也优化了整体开发流程,为 iLovePDF 的持续创新奠定了坚实基础。

我们可以说节省了时间,也许是双倍,也许更多。但说到底,我们真正获得的是难以量化的宝贵价值——更大的灵活性,以及在未来实现更多可能的能力。Lloses 说道。

对 iLovePDF 而言,另一个重要考量是做出不会束缚未来选择的技术决策,并确保向前的兼容性。

我们不希望被过去的平台选择或体验设计决策所束缚。Qt 6 给予了我们这种自由——这正是 Qt 对我们而言具有核心价值的原因。Lloses 说道。

 

IlovePDF@2x

关于 iLovePDF

iLovePDF 致力于让所有人都能轻松、便捷、可靠地管理 PDF 文档。公司创立于巴塞罗那,已从一款简单的在线工具成长为日活用户超 1,500 万的全球化生产力平台,位列全球访问量最高的 50 大网站之列。iLovePDF 提供覆盖 Web、桌面与移动端的完整 PDF 工具套件,支持用户轻松完成 PDF 文档的转换、修改、电子签名、水印添加、合并及压缩等操作。

了解更多

探索 Qt 6 的强大能力

深入了解 Qt 框架与 QML