Hi Michael,
na ich mache für Dich mal eine kleine Ausnahme bezüglich der Frageart und dem Bereich hier für ein kleines "Behind the Scenes".
Die Entwicklung vom CF4 begann bereits im Jahre 2015, irgendwann in 2016 stand dann endgültig die Entscheidung an, wie das Layout endgültig aussehen wird und welche Basis letztendlich fürs Layout verwendet wird. Das gerade für das Responsive Verhalten ein Framework herhalten sollte war auf jeden Fall schon mal sicher. Die decken einfach am Besten alle Gerätetypen ab und die ganzen Initialtests für das korrekte Umbruchverhalten fallen dann (meistens) auch weg.
Ich muss vorher noch dazu sagen, dass beim CF4 wirklich JEDE Entscheidung bezüglich Code und Funktion sehr penibel stattfindet und gerade die Nutzung zusätzlicher Librarys eigentlich immer so gering wie möglich gehalten werden soll. Eben um das System extrem Performant zu halten und nicht zu überladen wie das heute leider oft im Bereich Webprogrammierung gemacht wird. Deshalb wurde beispielsweise auch der Core abgesehen von Smarty komplett selbst entwickelt anstatt hier z.B. auf Laravel oder Symfony zurückzugreifen für DB, Cache und User Zeugs. - Und im Endeffekt zahlt es sich ja wie Du merkst auch aus, dass hier so gefahren wird, denn Systeme auf Basis großer Librarys schleppen viele Dinge mit, die man nie braucht und entsprechend hoch ist dann immer die Speichernutzung und damit die Parse Time. Von der Übersichtlichkeit und Updatefähigkeit oft ganz zu schweigen.
Nun galt es diesen peniblen Auswahlprozess auch auf das UI Framework auszuführen. Zur Wahl standen damals Skeleton, Bootstrap, SemanticUI, UIKit und eines weiteres, dessen Name ich inzwischen schon wieder vergessen habe.
Im Auswahlprozess war wichtig:
- gute Integration für das System selbst (insbesondere mit LESS oder SASS, denn diese Richtung sollte das CF4 für schnelle Anpassbarkeit definitiv einschlagen)
- sehr hohe Geschwindigkeit auf allen Geräten
- geringe Akkunutzung auf mobilen Geräten (= unter anderem performante Event Listener bei den Scripten)
- leichte Lernkurve für die Anwender, die selbst Templates gestalten sollen
- die Lizenz der Library natürlich
- Funktionsumfang
- Integration im Rest des Systems möglichst ohne unzählige eigene Scripte mitzubringen, die das Ganze überladen
- Modularer Aufbau
In die Engere Auswahl kamen dann Bootstrap, SemanticUI und UIKit. Auf Basis dieser 3 wurde dann tatsächlich eine Testseite mit gleicher Optik erstellt um damit entsprechende Geräte- und Performancetests durchzuführen. Bootstrap flog recht schnell raus weil nun ja ... abhängig von einem Social Network gefiel mir nicht so, es war mir auch etwas "zu voll" und zusätzlich stand damals auch schon eine neue Version in den Startlöchern die noch im Alphastand war, es wäre also im Grunde sozusagen direkt mit dem Release des CF4 eine veraltete Version mitgeliefert worden (bei kompletten Versionssprüngen muss man ja fast immer das ganze Theme neu aufbauen).
SemanticUI gefiel mir von der Syntax und von den Komponenten, war jedoch für das CF4 etwas langsam
UIKit schlug alle Temporekorde, war HÖCHST Modular, was für die Plugins auch wichtig ist, integriert sich mit dem ohnehin verwendeten jQuery (= keine doppelten Scripte und auf Basis eines sehr verbreiteten JS Frameworks, was damals beim CF3 mit MooTools immer für Pluginautoren ein Flaschenhals war oder Scripte sich doppelten), ist leicht zu lernen gewesen, gut dokumentiert und ein Plus: Es hat online einen Customizer mit dem man die Basis-LESS online sich färben und einstellen kann, was für Template Autoren natürlich ein absolutes pro darstellte. Dazu kam, dass es primär "Made in Germany" ist (obwohl OpenSource natürlich contributions aus der ganzen Welt zulässt, klar), aber damit ist auch eine eventuelle Kommunikation mit der Basis besser wenn die mal gebraucht wird (Lizenzierung, Pakete, etc.) und es unterliegt den strengen Datenschutzgesetzen der EU, was für das Konzept des CBACK Forums natürlich auch immer etwas ist, was ganz oben auf der Liste der Kriterien steht wann etwas in die Software hier rein darf und wann nicht.
Und so wurde es nach ausführlichem Testen und abwägen dann UIKit.
Und ich bin bis heute absolut Happy mit der Entscheidung.
Man kann echt super damit arbeiten und ist auch aufgrund der Funktionalität für Plugins mit allen möglichen Sachen fürs Layout versorgt und es fügt sich auch in den CF4UI Eigenbau sehr gut ein.
LG,
Chris