Überblick
Das Seminar behandelt die fachliche und technische Erweiterung bestehender Theia-Anwendungen. Es zeigt, wie neue Funktionen nicht als Sonderlogik, sondern als saubere Erweiterungsmodule entwickelt werden. Dadurch entsteht ein belastbares Verständnis dafür, wie Theia intern zusammengesetzt ist und wie eigene Produktfunktionen in diese Struktur integriert werden können.
Zielgruppe
Adressiert werden Entwicklerinnen und Entwickler, technische Leads und Architekturen, die eigene Funktionen in Theia integrieren, vorhandene Anwendungen erweitern oder eine produktfähige Erweiterungslandschaft aufbauen möchten.
Voraussetzungen
Vorausgesetzt werden Kenntnisse in TypeScript und ein grundlegendes Verständnis objektorientierter oder komponentenorientierter Architekturen. Erfahrungen mit Inversion of Control oder Dependency Injection sind hilfreich, aber nicht zwingend notwendig.
Lernschwerpunkte
Contribution-Modell und Dependency Injection verstehen
Behandelt werden Container-Module, Bindings, Lebenszyklen und die Rolle von Contributions innerhalb der Theia-Architektur. Dies schafft die Grundlage für die saubere Einbindung eigener Funktionen ohne Forking des Kerns.
Commands, Menüs und Keybindings strukturieren
Vermittelt wird die Entwicklung ausführbarer Aktionen samt Einbindung in Command Palette, Menüs und Tastenkombinationen. Zusätzlich werden Sichtbarkeit, Kontextabhängigkeit und Aktivierungslogik systematisch behandelt.
Widgets, Views und produktnahe UI-Bausteine umsetzen
Im Mittelpunkt stehen Oberflächenerweiterungen für eigene Seitenleisten, Ansichten und Interaktionsflächen. Dabei wird gezeigt, wie fachliche Funktionen in die Benutzeroberfläche eingebettet und mit Anwendungskontexten verknüpft werden.
Frontend- und Backend-Services verbinden
Behandelt wird die Aufteilung eigener Funktionen zwischen Frontend und Backend sowie deren Kommunikation über stabile Service-Schnittstellen. Dies umfasst auch die Bereitstellung eigener APIs für weitere Erweiterungen.
Wartbarkeit, Testbarkeit und Erweiterungsstrategie sichern
Vermittelt werden Prinzipien für modulare Erweiterungspakete, klare Verantwortlichkeiten, sinnvolle Schnittstellen und eine langfristig tragfähige Erweiterungsarchitektur für wachsende Produktlandschaften.
Praxis
Im praktischen Teil entsteht eine vollständige Beispielerweiterung mit Command, Menüeintrag, Keybinding, eigener UI-Komponente und einem dazugehörigen Service. Damit wird der gesamte Erweiterungsfluss von der Modulregistrierung bis zur nutzbaren Produktfunktion nachvollzogen.
