OrbTK 2 — The development strikes back
Florian Blasius Sandra Engel

OrbTK 2 — The development strikes back

Florian Blasius Senior UX Software Engineer

Sandra Engel Senior Communication Manager, Leadmanagement Expert

31.08.2020 • 5 Minuten Lesezeit

OrbTK ist ein Focus Time Projekt von Ergosign. Was genau in dem Projekt passiert und wie es startete, erzählt dieses Interview.

Hallo Florian!

Florian: Hallo Sandra!

Florian, seit unserem letzten Gespräch sind ein paar Monate vergangen. Damals ging es um:

Was konntet ihr seitdem umsetzen?

Florian: Zuerst konzentrierten wir uns darauf, die Kernbestandteile von OrbTK weiter auszubauen. Dazu gehören unter anderem der Support für neue Plattformen und die Entwicklung neuer Widgets.

Ein weiteres Thema, dem wir auch viel Zeit gewidmet haben, ist die Verbesserung der API. Unser Ziel ist es dabei, Entwicklern den Einstieg in OrbTK so leicht wie möglich zu gestalten. Ausserdem soll es ihnen Spass machen, unser Toolkit zu benutzen. Ein besonderer Dank gilt der Redox Community, die uns hier stetig wertvolles Feedback gibt.

In kommender Zeit steht für uns ausserdem die Optimierung des Projektablaufs auf dem Plan.

Was meinst du damit genau?

Florian: Aktuell beschäftigen wir uns damit, wie wir eine agile Arbeitsweise im Projektablauf von OrbTK implementieren können. Wir möchten testen, ob wir dadurch die Weiterentwicklung besser strukturieren und die Community stärker einbinden können. Daraus könnte sogar eine Blaupause für die agile Planung von Open Source-Projekten entstehen. Um das Ganze umzusetzen, haben wir unser Team um eine Projektmanagerin verstärkt.

Cool, wir sind gespannt, wie das klappt. Stichwort Weiterentwicklung: Was gibt es auf technischer Seite konkret Neues?

Florian: Neben den bereits erwähnten Punkten war die Verbesserung der Performance von OrbTK essentiell. Dadurch ermöglichen wir es Entwicklern, auch komplexe User Interfaces zu bauen.

Ein wichtiger Faktor war hierbei das Rendering. Um das zu verbessern, haben wir alle Renderoperationen in einen eigenen Thread ausgelagert. Dadurch können auch andere Operationen zum Rendern parallel ablaufen. Das Neuzeichnen eines UI wurde dadurch knapp 10 mal schneller!

Screecast: Rendering eines Calculators mit OrbTK
Screecast: Rendering eines Calculators mit OrbTK

Das macht sich natürlich spürbar bemerkbar. Super!

Florian: Und es geht noch weiter: In Bezug auf die Performance haben wir alle Methoden, die mit dem Rendering zusammenhängen, analysiert und hier die Anzahl an Aufrufen reduziert. Das hat natürlich einen positiven Effekt auf die Performance.

Allgemein ist aus OrbTK ein sehr modulares Framework geworden. So ist es mittlerweile mit ein wenig Vorwissen einfach, OrbTK um neue Renderer zu ergänzen.

Ausserdem haben wir die Libraries verändert. Für alle Desktop-Plattformen setzen wir jetzt z. B. für 2D-Renderings die Library Raqote ein, welche beispielsweise von Mozillas Browser Engine Servo als alternatives Backend verwendet werden kann. Für das Rendern im Web nutzen wir die HTML-Canvas API.

Die Community hat sich einen besseren Support von OrbTK unter Windows gewünscht. Wie hast du darauf reagiert?

Florian: Dieser Punkt ist für die Nutzung und Akzeptanz von OrbTK sehr wichtig, weswegen ich hier viel Arbeit investiert habe. OrbTK ist nun unter Windows sehr viel einfacher nativ einzurichten und somit mit noch weniger Aufwand verbunden.

Das war uns sehr wichtig, da viele aus der Community unter und für Windows entwickeln. OrbTK bietet seit dem Anfang einen Support für Windows, allerdings war der Aufwand, alles unter Windows einzurichten, noch sehr hoch. Durch die Einbindung der Raqote-Library konnten wir diesen Aspekt erheblich minimieren. Mittlerwelle lässt sich ein neues OrbTK-Projekt unter Windows genau so schnell und einfach aufsetzen wie z. B. unter Linux und macOS.

Was an Plattformen noch fehlt, ist der Support für beispielsweise iOS und Android. Da OrbTK aber bereits im Web läuft, habe ich als Übergangslösung ein neues Tool entwickelt, mit dem man Rust-Anwendungen als Web-App, beispielsweise unter Android laufen lassen kann.

Zusätzlich dazu haben wir intensiv an DCES gearbeitet. DCES ist eine Library, die alle Daten von OrbTK, also die Daten aller OrbTK-Widgets, verwaltet. DCES ist sozusagen das Herzstück, die Datenbank von OrbTK.

Was habt ihr an der DCES verändert?

Florian: Zum einen haben wir die interne Architektur von DCES optimiert, was die Einbindung von DCES ausserhalb von OrbTK verbessern soll.

Ein anderer Punkt, an dem wir gearbeitet haben, ist die Verwendung von mehreren Properties desselben Typs pro Widget. Dies bedeutet, dass ein Dialog beispielsweise mehrere Textelemente enthalten kann. Das mag sich trivial anhören, aber wir mussten DCES erstmal so umbauen, dass diese Funktionalität unterstützt wird.

Wirklich spannend, was aus diesem Focus Time-Projekt geworden ist. Hilft dir Ergosign dabei?

Florian: Dank der Idee kann ich auch während meiner Arbeitszeit — also in der Focus Time — arbeiten. Ausserdem habe ich das Projekt intern gepitcht und noch Extratage zur Entwicklung erhalten. Ein Teil meiner Freizeit steckt natürlich auch noch im Projekt. Ausserdem arbeiten ein paar meiner Kollegen an OrbTK mit.

Danke für das Update, Florian.

Florian: Gerne.

Wer noch mehr wissen möchte: Zum OrbTK-Gitlab geht es hier entlang.

Let's shape the future together! Kommen Sie in unsere Offices in Deutschland und der Schweiz, um gemeinsam innovativ zu sein.

Get in touch

Ergosign verwendet Cookies, um Ihnen den bestmöglichen Service zu gewährleisten. Bitte stimmen Sie unserer Cookie-Nutzung zu. Ich stimme nicht zu Ich stimme zu.