Neo Tech Blog

NEO TECH LBLOG - Praxis-Techblog für IT, Web und Mobile
Jonas Mücke Software Developer Neofonie

Digitalmacher:
Wie 300 Apps am Tag produziert werden

Keine Kommentare


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 am meisten?

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.

Welche technologischen Besonderheiten bringt Ihr 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 lange 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.

 

 „Digitalmacher

In unserer Serie „Digitalmacher“  stellen wir Entwickler, Projektmanager, Softwarearchitekten und Designer vor und sprechen über Methoden, Tools und Vorlieben. Sie geben uns Einblick in ihre Erfahrungen bei der Entstehung digitaler Anwendungen.

Wir suchen DICH!

Neofonie sucht CMS Spezialisten, Software Developer, Projekt Manager und System Architekten.
Bewirb Dich jetzt.

Jonas Mücke

Autor: 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.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.