Jonas Mücke ist Java Programmierer bei Neofonie. In der Blog-Serie “Digitalmacher” gibt er einen Einblick in seine Arbeit und spricht über die Technologien und Herausforderungen bei der Entwicklung eines “App-Baukastens”.

Wie sieht dein Alltag aus und welche Projekte reizen Dich? 

Ich arbeite als Java Entwickler bei Neofonie und entwickle „robuste Softwaresysteme“. Diese zeichnen sich durch einen sauberen Code, eine hohe Testabdeckung, Sicherheit und Verlässlichkeit aus. Das Thema „Clean Code“ gebe ich gemeinsam mit einem Kollegen regelmäßig in Teamvorträgen weiter. Bei Neofonie bin ich an der Weiterentwicklung eines speziell für einen Kunden entwickelten Content Management Systems (CMS) beteiligt und habe dafür eine Reihe von REST-Services mit den Technologien Spring und Vert.x implementiert. Besonders spannend finde ich aber den  „App-Baukasten” für Tablet Apps, an dessen Umsetzung ich von Anfang an beteiligt war.

Was ist der App-Baukasten?

Der ein oder andere wird sicher an die Online-Baukasten-Systeme für die eigene Homepage kennen. Im Prinzip geht es bei unserer Lösung darum, diese Idee auf Tablet-Apps zu übertragen. Unsere Kunden sollen Apps einfach und schnell zusammenbauen können. Auf Basis eines individuellen Content Management Systems haben wir zusammen mit unserem Tochterunternehmen Neofonie Mobile einen App-Baukasten entwickelt, mit dem sich bis zu 300 Apps pro Tag erstellen lassen und deren Funktionen sich relativ frei konfigurieren lassen.

App CMS - Aktuelles NeofonieWelche Technologien kommen dabei zum Einsatz?

Das System haben wir auf Basis des Frameworks Grails in das existierende CMS integriert. Eine Besonderheit der Lösung ist ein Editor, mit dessen Hilfe das Layout erstellt werden und Funktionen sowie Widgets ausgewählt werden können. Das Ergebnis des Editors wird zusammen mit weiteren Angaben in einem Webformular des CMS erfasst. Die zweite Besonderheit: Ein MacMini, der mit einem speziellen Skript für den Bau der Apps ausgestattet ist, fungiert als Build-Server. Dieser Build-Server liest ohne zusätzliche manuelle Eingriffe die Konfigurationsdaten ein, verarbeitet sie und liefert eine fertige iOS App als Ergebnis an das CMS zurück. Im laufenden Build-Prozess erstellt das System Screenshots der App-Screens, um eine Prüfung des Ergebnisses zu ermöglichen. Im Prinzip versetzen wir mit diesem System jeden Kunden in die Lage, Tablet-Apps anzubieten. Der eigentliche Build und das Ergebnis sind generisch und benötigen keinerlei Anpassungen.

Welche Probleme musstest Du bei der Entwicklung lösen?

Die größte Herausforderung war die Einrichtung des Build-Servers. Für einen reibungslosen Dauerbetrieb mussten wir eine Reihe von Anpassungen an dem „gewöhnlichen“ MacMini vornehmen. Schließlich wollten wir vermeiden, dass beispielsweise eine Update-Meldung des Macs den Bau-Prozess unterbricht. Eine weitere Herausforderung bestand darin, die reibungslose Kommunikation zwischen Content-Management-System und Build-Server zu gewährleisten. Hierbei haben wir für ein MessageQueue entschieden, um eine lose Kopplung der Systeme zu erreichen.

Funktioniert das System für Android und iOS gleichermaßen?

Im Prinzip ja, aber im Bezug auf die Zielplattformen Android und iOS haben wir verschiedene Probleme zu lösen. Beispielsweise existieren bei Android viel mehr Endgeräte mit unterschiedlichen Bildschirmauflösungen, wodurch das Layouting einer App wesentlich aufwendiger ist als beispielsweise für das iPad. Andererseits können wir Android-Apps direkt per Knopfdruck im Google-Play-Store veröffentlichen, während dieser Schritt für den Apple-App-Store noch manuell durch den Nutzer ausgeführt werden muss.

Wie lang dauert es, bis der Nutzer die fertige App erhält?

Mit unserem aktuellen Setup benötigt ein Build ungefähr 4-5 Minuten, so dass theoretisch mit einem Build-Server  ca. 300 Apps pro Tag „wie am Fließband“ gebaut werden können. Zur Zeit reizen wir aber noch nicht dieses Limit aus.

Welche Technologien findest Du derzeit am spannendsten und warum?

Aktuell interessiert mich vor allem die Umsetzung von Microservice-Architekturen mit Hilfe von Vert.x und Docker. Generell finde ich den Trend zu „reaktiven“ Anwendungen sehr interessant (RxJava, ReactiveStreams, etc.). Ich bin froh, dass ich bei meiner Arbeit die Gelegenheit habe mich mit diesen Themen zu befassen!

Für die Zukunft gibt es viele interessante Themen. Ich denke dabei vor allem an automatisches Testing (Funktional + Performance) und Continuous Delivery im Zusammenhang mit Microservices.

Mobile Lösungen

Erfahren Sie mehr zu unserer Mobile Kompetenz

Jobs

Erfahren Sie mehr zu unseren Jobangeboten

JonasMuecke_Software-Devoleper-Neofonie-150x149Autor: Jonas Mücke

Jonas Mücke ist seit 2013 als Java-Entwickler bei Neofonie tätig. Seine Leidenschaft gilt der Entwicklung von Softwaresystemen, die sich durch einen sauberen Code und eine hohe Testabdeckung auszeichnen. Sein Know-how stellt er regelmäßig in der Vortragsreihe “Clean Code” vor.

Das könnte Sie auch interessieren

pei-ching-Wu

How to Make Our Lives Smarter with Mobile Technologies

| Mobile Business | No Comments
Mobile devices are a permanent part of our lives and help us to get smarter. Which apps, technologies and trends will determine the future of the mobile world? In this...
android-car

Konnektivität im Auto – Möglichkeit und Chancen

| Mobile Business | No Comments
Immer mehr Fahrzeughersteller öffnen ihre Fahrer-Informations-Displays für Apps. Damit hat die nächste Runde der digitalen Revolution im Auto begonnen. Denn jetzt bestimmen wir als Fahrer die Inhalte auf dem Fahrzeug-Display. Möglich...
App CMS - Aktuelles Neofonie

Wie 300 Apps am Tag mit einem App-Baukasten produziert werden

| Mobile Business | No Comments
Jonas Mücke ist Java Programmierer bei Neofonie. In der Blog-Serie “Digitalmacher” gibt er einen Einblick in seine Arbeit und spricht über die Technologien und Herausforderungen bei der Entwicklung eines “App-Baukastens”....

Data. Services. Technologies.