4D Agenda: du code de l'ère carbone 2003 à un plugin moderne de 2026 macOS
Nous avons achevé une grande modernisation de - Je ne sais pas., apportant un plugin classique 4D de ses racines du début des années 2000 dans une base de code propre, stable et moderne macOS.
La base de code originale 4D Agenda remonte à environ 2003. Elle avait servi fidèlement pendant de nombreuses années, mais elle portait également les couches archéologiques habituelles: de vieux chemins de dessin, des branches de plateforme héritées, des hypothèses Mac classiques et suffisamment de code de compatibilité historique pour que le conservateur du musée appuie favorablement.
L'objectif de la réécriture était simple à énoncer et pas tout à fait aussi simple à exécuter: rendre la version macOS vierge, stable, rapide, entretenible et prête pour la prochaine génération d'applications 4D.
Qu'est-ce qui a changé ?
- Le Carbon, QuickDraw, ATSUI et les anciennes hypothèses de rendu de style OS 9 ont été supprimés.
- Reconstruit la couche graphique autour du dessin macOS moderne avec Core Graphics et Core Text.
- La manipulation des polices modernisée, la récupération des polices, la mesure du texte et le dessin du texte.
- Refonctionnement du jour, de la semaine et du mois pour des redessinations plus fluides et une mise en page prévisible.
- Traîner, redimensionner, sélectionner, multisélectionner, rappeler, défilement et comportement de défilement automatique.
- Amélioration de l'événement multi-journée en tirant sur les vues journalières, hebdomadaires et mensuelles.
- Il a ajouté un style d'événement moderne avec des couleurs d'accent, des remplissages translucides, un espacement amélioré et une typographie plus propre.
- J'ai vérifié toute la surface de commande 4D et aligné les commandes du plugin avec les attentes de la base de données démo.
- Ajout d'une couverture de test natif pour les mathématiques de date, la mise en page, les chaînes, la mise en forme, le comportement de thème et la cohérence des commandes.
- Créé un manuel du développeur documentant les commandes, les paramètres, les rappels et le comportement d'intégration attendu.
Les points forts techniques
La base de code est désormais macOS-première et nettement plus propre. Les branches cross-plateforme héritées ont été retirées de l'arbre macOS actif. La version Windows sera abordée séparément plus tard, en utilisant une fraction de rendu propre plutôt que de réintroduire un labyrinthe de conditionnels de plateforme.
Le rendu utilise désormais une abstraction graphique moderne au lieu de s'appuyer sur des API de dessin historique. Le texte est géré par le biais de la sélection de polices moderne et du dessin de texte central, qui résout une longue liste de pannes et de problèmes de mise en page causés par les anciens identifiants de polices et les conversions de chaînes dangereuses.
Le modèle d'interaction a également été fortement reconstruit. Le glisser-déposer d'événements actualise désormais visuellement en temps réel, les mises à jour de la base de données sont reportées jusqu'à la mise à jour par la souris, et le travail coûteux des rappels ne bloque plus le rétroaction lisse de l'interface utilisateur.
Travail de stabilité
Une grande partie de la réécriture était axée sur l'élimination des chocs. Plusieurs pistes de choc ont été tracées par la conversion de police, le dessin de texte, les rappels 4D, la manipulation de glisser/déposer, l'utilisation du contexte graphique, les mises à jour du curseur et le redraw timing. Ces pistes ont été réécrites ou gardées afin que le plugin se comporte de manière prévisible à l'intérieur de l'environnement hôte 4D.
Le résultat est une architecture de plugins beaucoup plus sûre: moins d'hypothèses anciennes, des limites de propriété plus claires, des modules C++ plus propres et une meilleure vérification avant que les modifications ne soient acceptées.
Construit pour 2026, en ce qui concerne 2003
4D Agenda existe depuis assez longtemps pour gagner un peu de respect. La réécriture ne rejette pas ce qui l'a rendu utile. Au lieu de cela, elle garde le modèle de commande familier 4D face tout en remplaçant les internes fragiles en dessous.
Donc oui, le plugin se sent toujours comme 4D Agenda. Il ne se comporte plus comme s'il s'attendait à un Power Mac beige à proximité.
Statut actuel: La modernisation macOS est maintenant dans le territoire de la dernière version bêta / candidat à la sortie. Le code se construit de manière propre à travers le flux de travail moderne CMake / Lion, la suite de tests native passe, et le plugin est prêt pour des tests plus larges dans le monde réel dans les applications 4D.