Overview: A global beverage equipment manufacturer wanted to modernize the touchscreen interfaces on its state-of-the-art coffee dispensers, used in hotel lobbies, self-serve restaurants, company break rooms and vending machines worldwide. And they wanted to do the development work in Qt. But, their internal engineering team had relatively little Qt experience and needed guidance on architecture and Qt best practices to develop a robust and sustainable platform.
Major Challenges: The beverage equipment manufacturer faced three key challenges: creating three different UIs for coffee dispensers, which first required redesigning the framework foundation; internationalizing the coffee-dispenser UIs to support Chinese, English, French, German and Japanese; and evolving the existing design to leverage Qt best practices.
Solutions: ICS helped the internal development team re-architect more effectively to build more intuitive and compelling UIs. ICS ported screen-management code originally written in QML to a new view manager framework in C++, which provided a higher-quality foundation layer on which to build custom UIs. We completely reworked the existing primary coffee UI to use a "carousel" interface, which enabled the user to quickly swipe and select their beverage selection. And we developed a new UI that included several QML widgets animating simultaneously, as well as multiple "dispense videos" playing in sequence.
To address the concerns with internationalization, ICS added a localization framework that allows the beverage dispenser manufacturer to easily add any language it might need as its business grows. At the same time, the ICS team redesigned the backend data layer to accommodate important additional features, such as new hardware models, complex product filtering and multiple levels of security.
Results: Using Qt 5, QML, QtLinguist and C++, ICS created appealing and simple-to-use UIs, as well as accelerated development time, trimmed costs and enhanced ease of testing by implementing QML Quick Reload on Linux desktop. That meant developers could reload code without restarting the application — an important time saver. It also allowed them to switch between the dispensers’ 10" landscape and 17" portrait display modes to quickly verify that any screen changes looked good in both scenarios, which significantly trimmed time spent testing. Throughout the entire project, ICS worked in tandem with the client’s own engineers to nurture their blossoming Qt development skills and showcase best practices in real-world situations.