4D Agenda: vom Carbon-Code aus dem Jahr 2003 zum modernen macOS-Plugin für 2026
Wir haben 4D Agenda grundlegend modernisiert und das klassische 4D-Plugin aus seinen Ursprüngen der frühen 2000er-Jahre in eine saubere, stabile und moderne macOS-Codebasis überführt.
Die ursprüngliche Codebasis von 4D Agenda stammt etwa aus dem Jahr 2003. Sie hat viele Jahre zuverlässig gearbeitet, trug aber auch die üblichen historischen Schichten mit sich: alte Zeichenroutinen, überholte Plattformzweige, Annahmen aus der klassischen Mac-Welt und genug Kompatibilitätscode, um einen Museumskurator anerkennend nicken zu lassen.
Das Ziel der Neuentwicklung war leicht zu formulieren und deutlich schwieriger umzusetzen: Die macOS-Version sollte sauber, stabil, schnell, wartbar und für die nächste Generation von 4D-Anwendungen vorbereitet sein.
Was sich geändert hat
- Veraltete Carbon-, QuickDraw- und ATSUI-Technik sowie Annahmen aus der Darstellung unter OS 9 wurden entfernt.
- Die Grafikschicht wurde mit Core Graphics und Core Text auf moderner macOS-Zeichentechnik neu aufgebaut.
- Schriftverwaltung, Ersatzschriften, Textvermessung und Textdarstellung wurden modernisiert.
- Die Tages-, Wochen- und Monatsdarstellung wurde für flüssigeres Neuzeichnen und ein berechenbares Layout überarbeitet.
- Das Verschieben und Vergrößern von Terminen, Auswahl und Mehrfachauswahl, Rückrufe, Scrollen und automatisches Scrollen wurden korrigiert.
- Die Darstellung mehrtägiger Termine in Tages-, Wochen- und Monatsansichten wurde verbessert.
- Moderne Termingestaltung mit Akzentfarben, durchscheinenden Flächen, besseren Abständen und klarerer Typografie wurde ergänzt.
- Sämtliche 4D-Befehle wurden geprüft und mit den Erwartungen der Demodatenbank abgeglichen.
- Native Tests für Datumsberechnungen, Layout, Zeichenketten, Formatierung, Designverhalten und Befehlskonsistenz wurden hinzugefügt.
- Ein Entwicklerhandbuch dokumentiert Befehle, Parameter, Rückrufe und das erwartete Integrationsverhalten.
Technische Besonderheiten
Die Codebasis ist nun vorrangig auf macOS ausgerichtet und deutlich aufgeräumter. Alte plattformübergreifende Zweige wurden aus dem aktiven macOS-Code entfernt. Die Windows-Version werden wir später getrennt angehen, mit einer klaren Trennung der Renderer statt einem erneuten Geflecht aus Plattformbedingungen.
Die Darstellung verwendet jetzt eine moderne Grafikabstraktion statt historischer Zeichen-APIs. Text wird mit moderner Schriftauswahl und Core Text gezeichnet. Das behebt zahlreiche Abstürze und Layoutprobleme, die durch alte Schriftkennungen und unsichere Zeichenkettenkonvertierungen verursacht wurden.
Auch das Interaktionsmodell wurde umfassend neu aufgebaut. Beim Verschieben eines Termins aktualisiert sich die Darstellung in Echtzeit. Datenbankänderungen erfolgen erst beim Loslassen der Maustaste, und aufwendige Rückrufe blockieren die flüssige Rückmeldung der Oberfläche nicht mehr. Praktisch fühlt sich der Kalender damit wieder wie ein Kalender an — nicht wie eine Zeitmaschine mit Mauszeiger.
Arbeit an der Stabilität
Ein großer Teil der Neuentwicklung galt der Beseitigung von Abstürzen. Wir verfolgten mehrere Absturzpfade durch Schriftkonvertierung, Textdarstellung, 4D-Rückrufe, Drag-and-Drop-Verarbeitung, Grafikkontexte, Mauszeigeraktualisierungen und den Zeitpunkt des Neuzeichnens. Diese Pfade wurden neu geschrieben oder abgesichert, damit sich das Plugin innerhalb der 4D-Hostumgebung berechenbar verhält.
Das Ergebnis ist eine deutlich sicherere Plugin-Architektur: weniger ungeprüfte Altannahmen, klarere Verantwortungsgrenzen, übersichtlichere C++-Module und gründlichere Prüfungen vor der Übernahme von Änderungen.
Für 2026 entwickelt, mit Respekt vor 2003
4D Agenda hat sich über viele Jahre bewährt. Die Neuentwicklung bewahrt, was es nützlich gemacht hat. Das vertraute Befehlsmodell für 4D bleibt erhalten, während die anfälligen Interna darunter ersetzt werden.
Das Plugin fühlt sich also weiterhin wie 4D Agenda an. Es verhält sich nur nicht mehr so, als stünde irgendwo noch ein beigefarbener Power Mac bereit.
Aktueller Stand: Die modernisierte macOS-Version befindet sich in der späten Beta- beziehungsweise Release-Candidate-Phase. Der Code lässt sich mit dem modernen CMake-/CLion-Workflow fehlerfrei kompilieren, die native Testsuite besteht, und das Plugin ist bereit für breitere Praxistests in 4D-Anwendungen.