Marc Andreessen soll 1995 gesagt haben, „The Browser Will Be the Operating System“. Heute wissen wir: Totgeglaubte leben länger. Mit einem Marktanteil von 6,8% im Jahre 2023, ist ChromeOS immer noch eine Nische. Auch bei levigo ist zwar seit Jahren ein Trend vom Swing Viewer hin zum web toolkit eindeutig erkennbar, dennoch gibt es nach wie vor eine breite Basis an Kunden, die ihre Desktop-Integrationen weiterentwickeln. Und auch große Neu-Entwicklungen mit dem Swing Viewer finden immer wieder statt. Desktop-Software ist also auch 29 Jahre nach diesem Zitat noch lange nicht tot. Als Product Owner für diese Produkte, habe ich mir natürlich auch Gedanken gemacht, wie eine moderne Desktop-Lösung aussehen kann. In diesem Beitrag zeige ich kurz, einen Proof-Of-Concept für einen möglichen Ansatz.

Bei levigo haben unsere Entwickler die Freiheit, einen Tag im Monat Dinge abseits des Arbeitsalltags auszuprobieren – wir nennen das Inno-Time. Dabei sind schon viele Ideen entstanden, die teilweise auch fester Produktbestandteil geworden sind. Ich habe mir an einem solchen Inno-Tag vorgenommen, ein Proof-Of-Concept für einen alternativen Desktop-Client zu erstellen. Da ich selbst Entwickler mit Schwerpunkt auf Web-Technologien bin, habe ich nie einen besonders tiefen Einstieg in die Swing Entwicklung geschafft. Von EclipseRCP ganz zu schweigen. Allerdings habe ich durchaus auch schon Erfahrungen mit .NET gesammelt. Wäre das nicht eine Möglichkeit? Wenn ich die Anforderung hätte, eine moderne Desktop-Anwendung zu bauen, würde ich mich dann für .NET entscheiden? Das integriert sich natürlich super in Windows…

Aber ich habe noch eine bessere Idee. Die heißt Electron. Viele bekannte Desktop-Anwendungen basieren auf Electron. Unter anderem Discord, Skype, Slack, Postman, VS Code oder Teams. Und mit Web kenne ich mich aus.

Mit Electron Forge kann man sehr schnell eine Anwendung erstellen. Jetzt muss aber noch jadice da rein. Also erstmal unsere Basicviewer-Demo optimieren (vor allem: Font-Loading tunen, damit die Start-Zeit auf meinem MacBook auf etwa 2 Sekunden herunter geht). Ist das geschafft, kann die Spring Boot Anwendung in den Electron-Workspace abgelegt werden.

Electron startet dann das jadice web toolkit, genauer gesagt die Basicviewer-Demo, lokal. Wenn das geschafft ist, hat man eigentlich schon alles für ein Grundgerüst beisammen. Eine Web-Anwendung auf dem Desktop, die ohne Server auskommt (wenn man mal vom Archivzugriff absieht).

Die Vorteile dieser Lösung sind unter anderem:

  • exklusive Nutzung der lokalen Hardware (die teilweise stärker ist als ein geteilter Server und natürlich keinen Netzwerk-Overhead benötigt)
  • Nutzung einer bestehenden jadice web toolkit Integration möglich
  • Es können Web- und Desktop APIs genutzt werden. Beispielsweise das Drucken hat in unserem Swing Viewer sehr viel mehr Einstellungsmöglichkeiten als im jadice web toolkit. Allgemein ist so mehr Nähe zur Hardware möglich
  • Vorteile von Webanwendungen auf dem Desktop. Hierbei denke ich zum Beispiel an Barrierefreiheit. Mit WAI-ARIA können die vom Web bekannten Mechanismen natürlich genutzt werden. Assistive Technologien wie Screen Reader können mit einem solchen Viewer gut umgehen, da es ja im Wesentlichen ein Browser ist
  • Subjektive Meinung: In modernen Web-Anwendungen können sehr viel mehr vorhandene Komponenten genutzt werden. Haben Sie schon einmal versucht in Swing eine Umfangreiche Tabellenansicht mit JTree zu erstellen? Im Web ist dies beispielsweise per AG Grid sehr schnell erledigt

Aus unserer Sicht stellt dies einen sehr spannenden Ansatz dar, der sehr gut zu den bestehenden Lösungen passt. Leider sind uns noch keine Kunden-Szenarien bekannt, die auf diesem Ansatz aufbauen.

Der Swing Viewer ist aktueller denn je, die Generation 6 des Swing Viewers (einfach jadice viewer) ist mehr als nur ein Lebenszeichen an unsere Bestandskunden. Die gewohnte Stabilität bleibt erhalten, gleichzeitig gehen wir mit der Zeit, um moderne Anforderungen wie beispielsweise Barrierefreiheit bedienen zu können. Mit der optionalen Anbindung an jadice flow, werden Möglichkeiten geschaffen, die bisher noch undenkbar waren. Seien Sie daher gespannt, was noch alles kommt.

Haben Sie Gedanken oder Erfahrungen zu diesem Thema? Kontaktieren Sie mich gerne direkt, ich freue mich über einen regen Austausch!

Einige Quellen: