Von
/15.06.20

Bild von Chris Liverani via Unsplash

Unser Schwerpunkt bei der Renuo liegt bei der Entwicklung von webbasierten Applikationen und unser Schweizer Sackmesser dafür heisst Ruby on Rails. Dieses Web-Framework ist zuverlässig, stabil und insgesamt das beste Werkzeug für diese Aufgabe. Seit einigen Jahren jedoch nimmt die Nachfrage nach Native Applications mehr und mehr zu. Entsprechend mussten wir unsere Kompetenzen in diesem Bereich erweitern, sodass sich heute auch in unserem Portfolio unterdessen sehr viele solcher Anwendungen finden. Statt mit Ruby on Rails entwickeln wir diese jedoch mit dem neuen Framework Flutter. Wie es so weit kam und weshalb wir so begeistert sind von Flutter, zeige ich euch in diesem Blogeintrag. Es folgt also kein langweiliger Vergleich von verschiedenen Frameworks, sondern ein Lobgesang an die Flutter-Götter, viel Spass beim Lesen! 

Seit in den letzten Jahren die Anforderungen an komplexe Benutzeroberflächen gestiegen sind und die Messlatte für die Benutzererfahrung höher wurde, haben wir in die meisten unserer Anwendungen nebst Ruby auch Reactintegriert. Zwei aktuelle Beispiele dafür: Bei one11 wurden die gesamten Such- und Kartenfunktionen mit React entwickelt und für Bio Suisse lieferten wir dank der in eine Rails-Anwendung injizierten React-Komponente eine sehr schöne und moderne Schnittstelle.  

Die von uns entwickelten Applikationen funktionieren so auf allen Geräten hervorragend: Desktop, Tablet und Mobilgerät. Sie sind schnell, zuverlässig und sehr einfach zu aktualisieren. Insbesondere seit es die Möglichkeit gibt, eine App über das Internet statt über den Google Play Store (Android) oder App Store (iOS) zu laden, hat sich unser Ansatz bewährt. 

Aber, wie gehen wir mit Native Applications um? Schauen wir uns dafür unser neuestes Projekt an: der City Messenger. Dieser wurde von Anfang an als native Anwendung für Mobilgeräte konzipiert. Die User müssen die Anwendung einmalig installieren, um sie nutzen zu können, und es besteht keine Notwendigkeit für eine Desktop-Anwendung. Entsprechend war React Native das perfekte Werkzeug für dieses Projekt – dachten wir zu Beginn. Es stellte sich jedoch heraus, dass das Ökosystem rund um Javascript nicht immer sehr einfach zu handhaben ist.  

Aus diesem Grund begannen wir nach einer neuen Lösung zu suchen und stiessen auf Flutter. Damit konnten wir unsere Möglichkeiten deutlich ausbauen. Nun sind wir stolz darauf, als eines der ersten Unternehmen in Zürich (und der Schweiz!), die Entwicklung von Native Apps mit Flutter anzubieten!

Im Folgenden zeige ich die drei Gründe auf, die unsere bisherige Erfahrung mit diesem neuen Framework so positiv gestalteten:

1. Die einfache Programmiersprache Dart

Flutter wird mit Dart entwickelt. Dart ist von Javascript inspiriert, mit dem Zusatz eines echten Typsystems. Dart ist ausserdem kompiliert, was zu einer Leistungssteigerung führt, wenn es um Native Apps geht. Da wir Javascript bereits einwandfrei beherrschen, war es für uns keine Schwierigkeit, mit Dart zu beginnen. Ab Tag 1 der Integration waren wir demnach ready, mit der Entwicklung mit Flutter zu beginnen.

2. Mit Flutter-CLI im Nu bereit

Die Einrichtung von Flutter und allem, was es dafür benötigte, stellte sich zu unserer Überraschung als Kinderspiel heraus! Dies war eine völlig neue Erfahrung verglichen zu allem Übrigen in der «Javascript-Welt». Dank der Flutter-CLI war wir unsere Progammierumgebung in nur wenigen Minuten bereit. Die ganze Einrichtung wurde automatisch erledigt, ohne dass wir uns mit npm-Abhängigkeiten und riesigen node_modules-Ordnern herumschlagen mussten.

3. Android Studio für schnelle Feedbacks

Mit unserem Ruby on Rails Background, suchten wir nach einer IDE, mit der wir uns wohlfühlen würden. Android Studio stellte sich als die perfekte Wahl für uns heraus. Basierend auf IntelliJ und mit voller Unterstützung für Flutter-Anwendungen hatten wir unser erstes Projekt mit nur einem Klick aufgesetzt und bereit zum Entwickeln! Weiter bietet Android Studio die volle Unterstützung für Hot Module Reloading, das Tüpfchen auf dem i sozusagen. Jede Änderung, die wir im Code vornehmen, wirkt sich damit unmittelbar auf die Anwendung aus. Es bietet verglichen mit unserer Erfahrung mit React Native eine viel schnellere Feedback-Schleife. Ausserdem wird mit Android Studio eine vollständige iOS-Unterstützung geliefert, sodass wir unsere Anwendungen immer auch auf iPhones ausführen können. Dies ist wichtig, da wir alle unsere Applikationen immer für beide Systeme entwickeln.

Wie steht es um Progressive Web Apps?

Progressive Web Apps (PWA) sind meist eine gute Lösung: Viele unserer Kunden möchten ein «native» Erlebnis in ihre Webanwendungen integrieren und diese auf Mobilgeräten mit einem höheren Mehrwert zur Verfügung stellen: Deshalb betrachten wir PWAs immer wieder als eine super Option; aber für uns ist ein Muss, verschiedene Lösungen für unterschiedliche Bedürfnisse anbieten zu können. Nicht alle Kunden sind gleich und entsprechend sind auch nicht alle Anwendungen gleich. Unser Motto lautet deshalb: immer das richtige Werkzeug für die richtige Aufgabe! Und was Native Apps betrifft, ist Flutter unsere erste Wahl!