OrbTk is a Focus Time project by Ergosign staff. Find out what OrbTk is and how the project began in this interview.
Hello Florian!
Florian: Hello Sandra!
It’s been a few months since we last spoke about:
What have you been able to do since then?
Florian: We first concentrated on further expanding the core elements of OrbTk. This included support for new platforms and the development of new widgets.
Another issue that we dedicated a lot of time to was improving the API. Our aim is to make it as easy as possible for developers to get started with OrbTk. Using our toolkit should also be fun. Special thanks goes to the Redox community, who’s always given us valuable feedback.
We’re also planning on optimizing project workflow next.
What do you mean exactly?
Florian: We’re currently busy working on how we can implement an agile approach in the OrbTk project workflow. We’d like to test whether this will let us better structure development and involve the community more. We could even use this to come up with a blueprint for agile planning in open source projects. To realize all of this, we’ve expanded our team to include a Project Manager.
Cool, we’re excited to see what happens. Speaking of development, is there anything new on the technical side?
Florian: As well as the issues already mentioned, improving the performance of OrbTk was essential. This means developers are able to build even complex user interfaces.
An important factor was rendering. To improve this, we transferred all render operations into a separate thread. This means that other operations can run in parallel to rendering. Redrawing a UI is now almost 10 times faster!
And that’s definitely something that will be noticed. Great!
Florian: And there’s more. When it comes to performance, we analyzed all the methods relating to rendering and reduced the number of requests. This of course had a positive effect on performance.
Overall, OrbTk has resulted in a very modular framework. So it’s now easy to add new renderers to OrbTk with just a little foreknowledge.
We’ve also changed the libraries. For all desktop platforms, we’re now using the library Raqote for 2D renderings, which can be used as an alternative backend by Mozilla’s browser engine Servo, for example. For web renders, we use the HTML canvas API.
The community wanted better support for OrbTk in Windows. How did you react to this?
Florian: This is something that’s really important for the use and acceptance of OrbTk, so I invested a lot of work here. OrbTk is now much easier to set up with Windows natively with much less work.
This was very important to us, as many people in the community develop with and for Windows. OrbTk has offered support for Windows from the very beginning but the workload required to set everything up with Windows was still very high. Inclusion of the Raqote library let us minimize this aspect considerably. Meanwhile, a new OrbTk project can now be set up using Windows just as quickly and easily as Linux or macOS.
When it comes to platforms, the only thing missing is support for iOS and Android. But as OrbTk already runs on the web, I developed a new tool as an interim solution that can be used to run Rust applications as web apps, e.g. using Android.
We’ve also been intensively working on DCES. DCES is a library that manages all OrbTk data, so data for all OrbTk widgets. You could say that DCES is the heart, the database, of OrbTk.
What have you changed about the DCES?
Florian: Firstly, we’ve optimized the internal architecture of DCES, which should improve the involvement of DCES outside of OrbTk.
Another issue that we worked on is the use of multiple properties of the same type per widget. As an example, this means that a dialog can contain multiple text elements. That might sound trivial, but we had to rebuild DCES to support this function.
It’s really cool to see what this Focus Time project has become. Has Ergosign been helping you?
Florian: The idea lets me work on it during my work time - during Focus Time. I also pitched the project internally and was given extra development days. Of course, I’ve put some of my free time into the project as well. And a couple of my colleagues have been working on OrbTk with me.
Thanks for the update, Florian.
Florian: No problem.
If you’d like to find out more about OrbTK, click here to visit the OrbTK Gitlab.