For devices that are not powerful enough to run a full feature browser or Android system, MicroDoc is developing a user interface framework directly integrated with the Graal virtual machine. Why? Because the number of small devices is increasing dramatically, and although they may be small and low powered they still deserve an up-to-date user interface.

The Internet of Things is extending day by day. More and more of the stuff we use in our everyday lives connects to the internet.

We’ll want to interact with a great many of these devices, and we do that through a user interface. However, development in user interface design has for a long time been favouring powerful machines. Just compare your mobile phone to the one you had 5 years ago. It would be impossible to run your current interface on your older phone.

Lightweight UIs needed

– UI technology needs to loose weight, says Bruno Caballero, head of Virtual Machine Technologies at MicroDoc:

– The main effort within software development regarding UIs has been focusing on two things: Browsers and mobile applications based on Android or IOS. Think about what has happened in the computer world. We started with personal computers, and we communicated with them using a mouse and a keyboard. In the early years of Java the main focus was to design nice UIs for them. Then smartphones began to rule the world, and now everybody uses a web interface for everything.

But according to Bruno Caballero, with the advent of IoT and the age of small, connected and communicating devices UIs need to loose weight. The sophisticated UIs designed for browsers or mobile applications are just not suitable to run on smaller device. They are too complex with too many heavy features not really required for IoT use cases.

The GraalVM at the centre

Now MicroDoc is developing a lightweight UI able to run on these modest devices. And the GraalVM will be its centrepiece. – We work in the embedded world, and we know its requirements when it comes to interfaces.

Most UI interface-libraries are unfit for smaller devices. They have a lot of advanced features, like 3D rendering engines, which are resource intensive and consume precious processing power, RAM and ROM, even when they are never used on small screens.

– We are developing something that will fit a large number of use cases in the world of smaller embedded devices. We are focusing on a tiny UI library that can be used with GraalVM. It will have all the essential features and widgets of a modern UI, together with the improved performance we get from using the GraalVM without carrying unnecessary sophistication.

Any small device

MicroDoc is targeting use cases like displays for electric car charging stations with touch screens similar to what we are used to from mobile phones. Or it could be payment terminals in shops, devices for smart metering, for interacting with solar panels etc., in short basically any device with a small user interface.

– Not only are we seeing more and more of these devices. Their complexity is increasing as well, and with it the need for capable UIs. We want the device to connect to the internet, we want it to communicate with some kind of backend, and we want it to connect using the latest standard protocols, getting access to the latest features. And we want to use modern programming languages, instead of being forced to continue programming the device in C.


According to Bruno Caballero, the current state of UIs in small devices is, that you either have proprietary non-standard solutions or a browser. The drawback of the browser interfaces is that they need some kind of webserver to talk to. These could be real backends, which can only be accessed via a reasonably fast network, but such a network is not available in all situations that can happen in the embedded universe. Or the server could run on the device itself, which is not desirable for many reasons, among them performance, complexity, resilience, security and resource consumption. With a browser interface, you choose between high latency, when the server is on the network, or added complexity and performance requirements, when your server is on the device, both in addition to the resource requirements coming from the browsers rendering engine.

Immediate response

But what you want is to touch the screen, and get immediate response. To make that possible, MicroDoc is developing a UI library directly integrated with the GraalVM, allowing for instant feedback to the user, without any delay. – We need to get away from this current ping-pong communication. We want to be able to avoid network communication inside the device, and having to separate the logic between front end and back end. The only reason for separating is that you are using a browser. There’s no other way to do it, because you don’t have the capabilities to implement that on the processor. But when you have a device with limited resources you don’t want to run a large UI application, and having the logic running a second application, and doing the communication through some kind of network socket inside the device. You want to avoid that extra infrastructure, and that’s what we can do with the GraalVM and the Lightweight Embedded Graphics.

More complex and cheaper

In parallel with small devices becoming more complex, there is a market demand for them to become very cost effective. Experts agree that the large-scale rollout of IoT will be enabled by low-cost devices, low-cost platforms, and low-cost connectivity solutions. But cheaper hardware means fewer resources, less memory and less CPU power. On top of that, many of these devices will be battery-powered, so their power consumption has to be kept to a bare minimum. – The GraalVM allows for generating native code from high-level languages, and therefore it’s a good match for this kind of devices. It lets you use modern programming languages while you can generate code that is able to run fast on top of the VM, while consuming fewer resources.

– Furthermore, with the devices becoming less expensive, it won’t be feasible to write software for one particular device, and then new software for the next one. You will want to only write code once and then reuse and repurpose it on different devices and platforms. With the GraalVM you can do that. – Also, developers will be able to upgrade existing hardware with new features by utilizing the performance gain achieved by the GraalVM.

Read more about Graal VM here !