Gabriel Aguiar Noury
on 25 February 2022
Developing GUIs for IoT is easier with Ubuntu Frame on-screen keyboard
Isn’t it nice when things just work? When you don’t have to worry about every single detail but only about what creates value? Imagine that you are building a digital kiosk using a touch screen. To log in, users need to input their credentials. Do you want to spend time integrating an on-screen keyboard or rather work on your application?
Yes, how difficult is it to integrate a javascript-based on-screen keyboard (OSK), for example? While managing external code adds complexity to the longevity of big deployment (should we all start looking again where we integrated Log4j?), it is not that difficult to do such integrations to your application. But what if your application is running an external service? Imagine that you want to run an external authentication system like Azure or Google. Then your application will be making API calls to a hosted service on an external server where you can no longer integrate your javascript. Sounds complicated? But most importantly, why should you worry about it in the first place?
We want built-in functionalities that simply work, but we don’t want to keep integrating, securing, and maintaining third-party code. For all the developers embedding graphic applications, that’s what Ubuntu Frame is for. This free display server for IoT devices has all you need to create your kiosk, digital signage, point of sale, infotainment, and more. Do you need a full-screen display of your app? Easy. Want to add a complete range of touch/gesture support? Done. How about window dynamics? Covered. And input from mouse, keyboard and on-screen keyboard? Yes.
We are happy to share with you this new feature on our fully secure, easily deployable display server. Ubuntu Frame now provides an on-screen keyboard for your application and any other external service that you are running.
An IoT on-screen keyboard with enterprise features
To solve these challenges for our developers, we didn’t have to look too far. We promote open source, we contribute to open source and we work with open source. To create Ubuntu Frame OSK, we selected Squeekboard, an on-screen keyboard built by Purism for the Librem 5. We chose Squeekboard because it’s modern, stable, and actively maintained. Maintainers and contributors also made Squeekboard really easy to work with, plus it supports a large and growing number of languages and layouts, such as US, German, Russian, Arabic, and many more.
As such, Squeekboard was the best choice, and by snapping it and integrating it with Ubuntu Frame, it is now ready to be used out-of-the-box.
Do more with Ubuntu Frame’s OSK
This integration with Ubuntu Frame opens many doors for developers. First, it is really easy to use. You just need to develop your app with a supported framework (GTK3, Flutter, Qt, etc.), connect it to Ubuntu Frame, and the OSK will be enabled by default if you are using Ubuntu Core. This means less code to manage, fewer opportunities for bugs, and fewer vulnerabilities in untried code. What do you get? More time for developing the content of the display, and a reliable and secure OSK for your users. Plus, the OSK looks good on all screen sizes and does not require significant CPU, memory, or graphics resources.
Security is also paramount for these devices. In addition to protecting apps from each other, Snap confinement allows us to give special privileges to specific Snaps. Therefore, by default, Ubuntu Frame only accepts virtual keyboard input to come from Ubuntu Frame OSK. Even if a malicious or misbehaving code gets into your Ubuntu Frame device, it would be unable to use the OSK interface to send fake input to other apps (like keystroke logging). This is something desktop-based applications are generally vulnerable to.
For the final user of your graphic application, this integration also has several benefits. While your device will be running your main application, it could also use external services as with the example given with the authentication system. For the user, having the same device but getting 2 or more sets of OSK just degrades the overall UI/UX. A uniform UI/UX experience between different applications should be the goal. Having an integrated OSK provides this functionality.
Try it today!
Follow the next link to learn more about Ubuntu Frame’s OSK.
If you are new to Ubuntu Frame, check our website and this easy tutorial for creating your web kiosk.