1. Speedy Prototyping und Innovation
Die moderne Definition von Erfolg ist die Fähigkeit, sich schnell an ein sich ständig veränderndes Umfeld anzupassen und darauf basierend die richtigen Entscheidungen zu treffen. Das kann bedeuten, eine vorhandene Technologie oder ein Produkt in bestehende Systeme zu integrieren oder es zu wagen, eine innovative Idee umzusetzen und auf den Markt zu bringen. Oder eben nicht.
Je schneller man ausprobiert und testet, desto früher bekommt man ein Gefühl dafür, ob ein Ansatz überhaupt richtig ist. Und genau aus diesem Grund setzen wir auf Hackathons und Code Sprints! Denn: Hackathons und Code Sprints sind der Inbegriff des Speedy Prototyping und fördern Innovationen aktiv. Eine motivierte IT-Crowd hat so die Chance, in nur wenigen Tagen einen Proof of Concept zu erstellen und daraus einen Prototyp zu entwickeln. Schneller geht’s kaum – und der Spaß im Team kommt auch nicht zu kurz.
2. Micro Frontend, Microservices und Containerisation
Ob der Versand von E-Mails, Arbeiten an Creative Boards oder der Gebrauch von sozialen Medien – immer mehr Browser-Nutzungsmöglichkeiten basieren auf Webapplikationen. Diese multifunktionalen Softwaresysteme erfordern meist einen speziellen architektonischen Ansatz, um Zuverlässigkeit, Skalierbarkeit und Wachstumspotenzial zu gewährleisten. Ein System wie ein Puzzle zu behandeln, das aus kleinen, unabhängigen Teilen zusammengesetzt wird, hat sich für solche Architekturen in der Vergangenheit als besonders effizient erwiesen.
Denn jede in sich vollständige Funktion einer Applikation wird so als separater Dienst gesehen und extrahiert, der wiederum über standardisierte Protokolle mit anderen ähnlichen Diensten kommuniziert. Das User Interface des Systems folgt demselben Muster und behandelt die Frontend-Komponenten wie Widgets auf einem Dashboard. Solch ein „Puzzle“ ermöglicht es also, Funktionen parallel und unabhängig voneinander zu entwickeln, ohne gleich das gesamte System in Gefahr zu bringen. Die zugrunde liegende Technologie, die die Voraussetzungen für diese Freiheit schafft, basiert serverseitig auf Docker-Containern und Kubernetes-Clustern sowie Web Components im Frontend.
Das Beste: Ein individueller Ansatz für jede Komponente des Systems ermöglicht es, Ressourcen effizient zu verwalten, produziert Software von besserer Qualität und gewährleistet Zuverlässigkeit sowie Wachstum des Gesamtsystems.
3. Multi-Platform-Apps
Native Apps sind perfekt in ihre jeweilige Plattform integriert, bieten die beste Performance, ein konsistentes User Interface und nutzen alle Features, die zur Verfügung stehen. Soll die App jedoch auf diversen Plattformen angeboten werden, muss jeweils eine eigene native App pro Plattform implementiert werden. Inzwischen haben sich eine Vielzahl von Tools und Anbietern auf dem Markt etabliert, die dem Ansatz „write once, run everywhere“ folgen und versprechen, mit nur einer Codebasis mehrere Plattformen zu bedienen.
Aber Vorsicht: Nicht alle Tools halten, was sie versprechen! Wir haben in den letzten Jahren den Markt beobachtet und genau zwei Tools identifiziert, die wir für unsere Multi-Platform-App-Entwicklung einsetzen und auch unseren Kunden empfehlen.
Georg Dresler, Senior Software Entwickler Mobile, Ray SonoFür die Umsetzung von Apps mit starkem Fokus auf dem User Interface empfehlen wir Flutter. Das Framework von Flutter ist für ein performantes und konsistentes UI optimiert. Die App wird für jede Plattform in nativen Code übersetzt, sodass es im Gegensatz zu anderen Tools keinerlei Performance-Einbußen gibt. Dank des Features „Hot Reload“ sehen die Developer direkt während des Codens Änderungen am UI in Echtzeit – produktiv und optimal für Prototyping.
Unser Favorit neben Flutter ist Kotlin Multiplatform (KMP) – ideal für Apps, die komplexe Businessprozesse und Logiken abbilden sollen. Mit diesem Framework werden Datenmodelle, Logik und Services – wie Persistenz und Netzwerkschicht – einmalig implementiert, getestet und anschließend als native Bibliothek bereitgestellt. Dadurch können Businessprozesse mit allen Plattformen, einschließlich Backend, geteilt werden. Zudem wird das UI nativ eingesetzt, sodass alle Plattform-Features ohne Kompromisse genutzt werden können.
4. Headless CMS
Ein Headless CMS ist ein reines Backend-Content-Management-System (CMS), um Content über entsprechende Schnittstellen für Drittsysteme zugänglich zu machen. Der Ausdruck „Headless“ kommt von der Trennung von Backend und Frontend. Der Fokus des Systems liegt somit auf der Verwaltung und Lieferung von strukturierten Inhalten. Klassische CMS kommen aus einer Zeit, als Redakteure die Möglichkeit haben sollten, Webseiten ohne HTML-Kenntnis zu erstellen. Heute ist es jedoch wichtig, Content nicht nur für eine Website, sondern auch für andere Applikationen zu verwalten.
Bei einem herkömmlichen CMS wird das HTML der Website im Backend gerendert und ausgeliefert. Durch die zentrale Steuerung des Contents für multiple Zielsysteme ist das serverseitige Rendern allerdings nicht mehr ausreichend, da diese nicht zwingend mit HTML-Code umgehen können. Deshalb werden in einem Headless CMS Schnittstellen bereitgestellt, über die der Content in einem leichtgewichtigen, einfach lesbaren und strukturierten Format (meist JSON) bezogen wird.
Ein weiteres Plus: Das Einsparen des serverseitigen Renderings hat eine bedeutende Auswirkung auf die Performance einer Seite!
Auch designseitig hat der Einsatz eines Headless CMS Vorteile: Durch die Entkopplung von Backend und Frontend kann das Frontend ausgetauscht werden, ohne dass sich am Backend-System und dem Content etwas ändern muss.