App-Entwicklung bei PIXEL - Ein Projektbericht

Wir entwickeln seit mehreren Jahren ein Webportal für einen Kunden. Dieser hat schon länger die Idee, das Angebot durch eine App zu ergänzen. Dadurch können ganz neue Anwendungsfälle, die z.B. unterwegs stattfinden, abgebildet werden. Letzten Dezember war es soweit, wir bekamen den Auftrag die App zu entwickeln. Die App muss für Android & iOS verfügbar sein und soll bis Mai fertig sein, um sie auf einer Messe zu präsentieren.

Technologieauswahl

Am Anfang stand die Technologieauswahl. Es gibt viele Möglichkeiten eine App zu entwickeln.

Unter Nativer Entwicklung versteht man die Entwicklung in der jeweiligen Plattformtechnologie. Das heißt für Android wird in Java oder Kotlin und für iOS in Swift entwickelt. Vorteil dabei ist, dass man Zugriff auf alle Schnittstellen der jeweiligen Plattform hat, man kann sehr gut auf Android oder iOS spezifische Besonderheiten eingehen, die UI entspricht dem Konzept der Plattformen und die Performance ist gut. Nachteil ist, dass man verschiedene Technologien beherrschen muss und der Aufwand hoch ist, da die App zweimal implementiert werden muss.

Sogenannte Cross Platform Tools setzen an diesem Punkt an. Sie erlauben es eine App in einer Technologie umzusetzen. Beispiele sind Ionic, das auf Webtechnologien setzt, Xamarin erlaubt die Entwicklung in C#, React Native, das React und Javascript verwendet, Flutter von Google benutzt Dart, Kotlin Mutliplatform, das hilft Kotlin Code in iOS und Android Apps zu verwenden. Vorteile dieser Tools sind, dass man nicht zweimal die gleiche App implementieren muss. Dadurch kann der Aufwand geringer werden. Des Weiteren kann man in einer Technologie entwickeln und eventuell bereits vorhandene Technologiekenntnisse aus dem Team wiederverwenden. Nachteile bei diesen Tools sind, dass man neben der iOS und Androidplatform eine weitere Abhängigkeit einführt. Des Weiteren unterstützen nicht alle Tools immer alle Schnittstellen und Besonderheiten der einzelnen Plattformen. Diese muss man dann gesondert abfangen oder doch wieder einzelne Teile in nativen Code schreiben.

Die einzelnen Vorgehensweisen & Tools unterscheiden sich teilweise stark in ihren Ansätzen und jedes hat seine Vor- und Nachteile. Sie sind je nach Anforderungen & Gegebenheiten besser oder schlechter für ein Projekt geeignet. Die goldene Lösung für alle Projekte gibt es leider auch hier nicht, wie so oft kommt es auf das Projekt und seine Anforderungen an.

Bei diesem Projekt haben wir uns für Flutter entschieden. Die App zeigt hauptsächlich Informationen an und kommuniziert mit einer Rest-Schnittstelle. Sie benötigt nicht viele Zugriffe auf native Features wie z.B. Bluetooth. Flutter erlaubt uns schnell und einfach die UI für beide Plattformen zu entwickeln und für den Fall, dass wir in Zukunft doch mehr native Features benutzen, hat es eine reiche Auswahl an Plugins die das ermöglichen. Des Weiteren haben wir Erfahrung in iOS und Androidentwicklung und könnten ggf. selber Plugins für Flutter schreiben. Des Weiteren ist Flutter sehr gut dokumentiert und hat aktuell ein gewisses Momentum, d.h. es gibt viele Blogeinträge, Bibliotheken und Entwickler die sich mit Flutter beschäftigen und darauf setzen.

Clickdummies als Gesprächsgrundlage

Dann ging es an die Umsetzung. Wie sollen die einzelnen Ideen konkret umgesetzt werden? Wir trafen uns mit unserem Kunden wöchentlich um die Funktionen der App und den aktuellen Stand abzusprechen. Dabei dienten uns Clickdummies als Gesprächsgrundlage. Ein Clickdummy ist ein minimaler Prototyp, der noch nichts mit Programmieren zu tun hat. Es ist sozusagen eine Sammlung von Skizzen die den Ablauf durch die App simulieren. Wir verwendeten hierfür Figma, aber man könnte auch hanggemalte Skizzen, PowerPoint oder andere Tools dafür verwenden.

Vorteil dabei ist, dass die spezifizierten Features ohne großen (Programmier)aufwand in eine konkrete UI übersetzt werden. Viele Details konnten somit vorab geklärt werden, da man konkret überprüft, wie die Ideen aussehen und funktionieren. Hatten wir die Anforderungen korrekt verstanden? Wie sieht eine einfache schriftliche Anmerkung in der UI tatsächlich aus? Wurden Details übersehen? Funktioniert der Ablauf durch die App tatsächlich?

Waren diese Fragen zu einem Feature geklärt ging es an die Implementierung.

Die erste Alphaversion

Unsere erste Version bestand nur aus dem ersten Feature. Der Nutzer konnte sich einloggen und im Anschluss Daten in einer Maske eingeben und versenden. Mehr war nicht möglich. Diesen Stand stellten wir für iOS und Android zum Testen zur Verfügung. Vorteil dabei war, dass der Kunde sofort etwas in der Hand hatte. Er konnte es auf seinem eigenen Smartphone ausprobieren, sehen dass die Anbindung an das Backend funktioniert und überprüfen ob das finale UI seinen Erwartungen entsprach und uns schnelles Feedback zukommen lassen. Somit war allen Beteiligten immer klar was der aktuelle Stand ist, die App konnte ausprobiert werden und intern gezeigt werden.

Auf diese Art und Weise fügten wir nach und nach die weiteren Features hinzu. Egal ob es dabei um Push Benachrichtigungen, Darstellung von Daten, weitere Eingabemasken, Einstellungsseiten, QR-Code-Scan ging, das Vorgehen bliebt das gleiche. Zunächst stimmten wir uns mit Hilfe eines Clickdummies ab, dann implementierten wir die Funktionen in der App und stellten nach Abschluss eines Features die App zum Testen bereit.

So ist eine App entstanden, bei der immer klar war was der aktuelle Stand ist und ob die einzelnen Funktionen funktionieren und richtig gedacht waren. Gerade beim Ausprobieren sind beim Kunden noch viele weitere Ideen entstanden, in welchem Bereich man Smartphone Apps gut einsetzen kann und welche Funktionen die App gut erweitern würden.

Corona - Was hat sich geändert?

Wie jedes Projekt war auch dieses dann durch die Einschränkungen die Corona auslöste betroffen. Was hat sich für uns geändert?

Im alltäglichen Arbeiten hat der Übergang gut geklappt. Wir arbeiten aktuell alle von Zuhause, sowohl auf Kunden- als auch auf PIXEL-Seite. Unsere wöchentlichen Meetings finden nun per Videokonferenz statt. Den aktuellen Stand kann man super per Bildschirmfreigabe zeigen. Ich spiegele z.B. den Inhalt meines Smartphones auf meinen Desktop, den ich dann in Microsoft Teams teile. Die Testversionen der Apps sind auch online abrufbar und so konnte das Projekt ohne Unterbrechung in Zeiten des Homeoffices weiterlaufen.

Wollen Sie auch eine App entwickeln?

Überlegen Sie auch eine App zu entwickeln? Oder brauchen Unterstützung bei Ihrer Inhouse Entwicklung?

Wir stehen Ihnen gerne zu einem persönlichen Gespräch zur Verfügung oder geben Ihnen in einem kurzen Vortrag einen Überblick über aktuellen Technologien bei der App-Entwicklung. In Zeiten von Homeoffice & Kontaktbeschränkung natürlich auch gerne per Videokonferenz. Melden sie sich einfach bei Alice Rentzsch oder erfahren sie mehr auf unserer Webseite.