本文翻译自Boost your IoT Device with Qt
原文作者:Michael Zanetti,guh GmbH的高级软件工程师
翻译校审:Richard Lin
我们来自guh GmbH,是nymea物联网平台的开发者,从一开始我们就在使用Qt。您可能会想:这些设备没有UI,只是中间设备,用户也不会注意,在这些设备上使用Qt好像是一个奇怪的主意。下面请允许我解释一下为什么这一点也不奇怪。从本质上来看,之前的思路有三个误区。
不仅仅是UI框架
第一个,也是最大的误区:Qt只能用于UI项目的开发。很多年前,Qt的确凭借UI开发工具起家。但是打那以后,Qt已经进化为一套全功能的库和工具链,它能辅助开发者实现各种层面的功能。您甚至再也不需要使用其他库或工具包,Qt可以极大程度提高您的开发效率。稍后我会深入介绍这一点。
UI也有许多形式
接下来,请允许我阐明上述思想的第二个误区:没有显示设备,就意味着没有UI。即使您所开发的嵌入式设备没有显示器,也不能说它没有用户界面。在我们的例子中,用户界面由运行在物联网设备中的web接口以及客户端app组成。客户端app,可以运行在手机、PC甚至是嵌入墙体的显示器中,通常是一个瘦客户端与设备进行通信。这儿,可以使用Qt Quick技术开发出流畅的,能提供现代交互体验的app,还能获得“一次编码,到处运行”的便捷。最厉害的是:从Qt5.10开始,可以借助Qt WebGL特性,使得物联网设备中的Qt客户端app可以当作web接口,在网页中显示。
没有额外开销: 只发布您需要的
我常听到这样的评价:在嵌入式设备中引入Qt会产生较大的开销。的确,早期Qt曾经包含少量非常庞大的模块,但这一点早就得到了改进。在较新的Qt 5版本里,Qt高度模块化,针对低端硬件还实现了只安装必要的Qt组件的微调功能。而且,最近这个功能得到了强化,现在针对嵌入式开发,Qt可以将所需的组件简化到极小值,从而完全打消人们的疑虑。
Qt如何帮助我们提高开发nymea的效率
如前文提到的,接下来我会介绍一些Qt特性,以及它们如何帮助我们大大提升了开发nymea的效率。
这些特性非常多,在这里很难完整列出,但是对我们中间件技术栈而言,最重要的有:
总结:Qt是一个理想的开发框架,不论您的项目有或者没有UI。其为数众多、经过完整测试的高质量API非常简单易懂,让每个开发者能更轻松使用。同时Qt还让您能充分发挥C++的优势。如您所见,Qt可以完美应用于物联网。
关于nymea : nymea让你的产品变得智能 。快速、可定制以及直观易上手。我们的设备间通信技术栈使您通过简单的API实现系统集成。我们打造强大的边缘设备的集成解决方案。