Was ist Flutter ?
Wer kennt es nicht, da möchte man eine App bauen für Android und iOS und dies am liebsten so schnell wie möglich. Doch jeder, der dies schon einmal machen wollte kennt das Problem, Code zwei mal schreiben, für die gleiche Funktionalität. Hinzu kommen platformspezifische Entwicklungsunterschiede. Während wir bei iOS mit XCode arbeiten, müssen wir auf der anderen Seite Android Studio als IDE nutzen (klar Eclipse geht auch, aber mal ehrlich, möchte man das noch?), Swift, Obj-C, Java und Kotlin muss man ebenfalls beherrschen, hinzu kommen komplett unterschiedliche Designpatterns… nicht das ich nicht ein großer Freund der nativen Entwicklung wäre, aber gerade für kleine Projekte, die schnell und effizient umgesetzt werden sollen, kann dies schon manchmal zu erheblichen Zeitdruck führen. Gerade in der Startup Szene, kommt es auf Zeit und Kosteneffizienz an, auch ein Grund, weshalb hier oft mit React Native gearbeitet wird, denn auch dort haben wir eine Codebasis, für beide Systeme.
React Native selber kommt von Facebook, also kein Wunder, dass nun auch Google mit einer eigenen Lösung um die Ecke schaut und den Mobile-Development-Markt aufmischen möchte. Willkommen Flutter.

Zuerst bin ich als nativer Entwickler natürlich skeptisch, wieder ein Versuch Apps auf eine neue Art zu bauen, die wahrscheinlich nicht ordentlich funktioniert und mir auch nicht die Möglichkeiten bietet, die ich sonst ganz ‘einfach’ nutzen kann. Trotzdem möchte man ja nicht auf der Stelle stehen bleiben und schaut es sich einfach mal an, immerhin kommt es von Google und ich mag Google.
Also was ist dieses Flutter eigentlich ?
Flutter is Google’s mobile app SDK for crafting high-quality native experiences on iOS and Android in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source.
Fassen wir einmal zusammen: Google SDK, native Erfahrungen in Rekordzeit, funktioniert mit bereits vorhandenem Code, wird von einem Haufen Firmen genutzt, frei und offen.
Klingt ja fantastisch.
Was macht Flutter?
For users, Flutter makes beautiful app UIs come to life. For developers, Flutter lowers the bar to entry for building mobile apps. It speeds up development of mobile apps and reduces the cost and complexity of app production across iOS and Android. For designers, Flutter helps deliver the original design vision, without loss of fidelity or compromises. It also acts as a productive prototyping tool.
Für Nutzer schöne Apps, für Entwickler einfacher Einstieg und schnelle Entwicklung, Pixelperfect Designs. Alles schön und gut, Pixelperfect Designs schaffe ich auch nativ. Also was ist jetzt hier der große Vorteil?
Was macht Flutter einzigartig?
Flutter is different than most other options for building mobile apps because Flutter uses neither WebView nor the OEM widgets that shipped with the device. Instead, Flutter uses its own high-performance rendering engine to draw widgets.
In addition, Flutter is different because it only has a thin layer of C/C++ code. Flutter implements most of its system (compositing, gestures, animation, framework, widgets, etc) in Dart (a modern, concise, object-oriented language) that developers can easily approach read, change, replace, or remove. This gives developers tremendous control over the system, as well as significantly lowers the bar to approachability for the majority of the system.
So jetzt wird es spannend, also wir nutzen keine WebViews, dass ist schon einmal etwas gutes, denn diesen ganzen Cordova, Ionic Quatsch könnte ich an die Wand kotzen. Keine OEM Komponenten? OEM sind Original Equipment Manufacturer, also Views oder Widgets von Apple und Android, wie eine UIView zum Beispiel. Hmmm… okay.. das ist ja das Prinzip, auf das React Native relativ erfolgreich setzt.
Hier wird es spannend: Flutter uses its own high-performance rendering engine to draw widgets.
Bedeutet jetzt mal ganz schnell vereinfacht, Flutter nutzt eine Grafikengine und malt darauf die Komponenten. Letztendlich wie eine Spiele App mit Unity oder der Unreal Engine. Ach herrje. Dieser Ansatz ist zumindest wirklich mal neu. Hinzu kommt, dass wir kein Swift, Kotlin etc. nutzen, sondern Dart. Hey endlich mal wieder eine neue Programmiersprache. Juhu.
Also habe ich mir das ganze einmal genauer angeschaut, weil ich den Ansatz der Entwicklung ganz spannend finde. Ich muss sagen, es gefällt mir, sehr sogar. Doch eines muss man sagen, mit Flutter kann ich nicht alles bauen. Möchte ich eine App mit Support für Android Wear und WatchOS bauen, hoch komplexer Verschlüsselung und oder viele Systemfeatures (AR, etc) nutzen ist Flutter nichts für einen. Möchte ich hingegen einfach APIs abfragen, Request hin und her schicken, Daten anzeigen oder eine ShoppingApp bauen und das alles schnell und schick, ist Flutter genau das Richtige! Ein nettes Beispiel Alibaba, die Flutter in ihrer App nutzen. Ebenfalls muss ich zugeben, es ist wirklich einfach, schnell und fühlt sich nativ an, denn meistens laufe ich perfekt mit 60 Bildern die Sekunde über meine Device Displays. Und Dart als Programmiersprache ist nicht schwer, eine Art modernes Java ohne diesen ganzen JVM Quatsch. Dinge wie HotReload machen das Entwickeln wirklich zum Genuss und ich überlege schon die ganze Zeit, welche Projekte man komplett in Flutter umsetzen könnte.
Also an alle mobilen Entwickler dort draußen an den Empfangsgeräten, werft einen Blick auf Flutter.
Flutter Website — https://flutter.io/
