The User Interface (UI) in embedded devices these days has now evolved beyond the “skin” of a device. To develop such a complex UI, nowadays, it requires a large chunk of the development process, especially when we have large teams that need to maintain their productivity. As the complexity grows, the development process needs to adapt accordingly. It is important to maintain the UI’s modularity from the beginning of the project. This ensures that each component of the UI can be delegated to different individuals within the project and to create a healthy application ecosystem. When we talk about embedded devices, there are always dependencies between software stacks. It is really important to define each of its harnesses. With a clean UI architecture, it’s possible to deliver a well-structured UI that allows us to scale better during its development phase. Qt and QML technologies enable us to write a modular UI to increase productivity and still maintain a structured ecosystem. Managing the UI’s complexities can be much simpler if the dependencies are pushed to the edge of the UI; resulting in a cleaner, more structured UI. Additionally, enabling Live-Reloading in the development process is a key benefit to use the rapid-development-process. When the UI no longer depends on any dependencies, UI developers can work in their own space without having to wait for the other stacks to be complete. Such an environment will boost the development process by huge factors. Having a tool that helps us to maintain the modularity and the cleanness of the UI architecture will help developer to start the development process and make their lives much easier. Take an example of Neptune 3 UI from Qt Automotive Suite as a reference on how we maintain the dependencies and how we invent the user interface harnesses for each application within the whole project.
TALK: Designing UI Architecture for Embedded Devices with Qt and QML
SPEAKER: Bramastyo Harimukti
Talk recorded at the Qt World Summit 2019 event in Berlin. #QtWS19 November 2019 - BCC