Flutter Interact mit vielen Neuerungen

Vorgestern fand die Flutter Interact 2019 statt und brachte sehr viele neue und interessante Inhalte und Änderungen für das UI Framework Flutter und auch Dart, als die Sprache dahinter. Zum einen wurde eine neue Flutter Version veröffentlicht.
Die Version 1.12.13 bietet neue Widgets und iOS UI Verbesserungen, inklusive des Dark Modes. AndroidX wird nun als Standard für native Android Komponenten verwendet und die Integration von Flutter in native Apps, bzw. als Standalone-App wurde verbessert. Außerdem ist es nun extrem einfach Google Font Packages in Flutter zu nutzen, ähnlich wie man es bereits aus dem Web kennt. Abgesehen von den Features wurden diverse Fehler behoben, die Performance teils stark verbessert und sogar ein Pull Request von mir befindet sich in diesem Release. Auch wenn es sich nur um eine Kleinigkeit handelt, freue ich mich sehr darüber.
Flutter - Quartalsumfrage zum Framework-Zustand

Falls ihr im Flutter Universum unterwegs seid wäre es mal wieder möglich sich etwas einzubringen. Aktuell gibt es wieder den Quartalsmäßig erscheinenden Fragenbogen zu Flutter und wie ihr den aktuellen Stand des Frameworks findet. Hier könnt ihr auf Bereiche hinweisen die euch nicht gefallen oder loben was besonders zufriedenstellend ist.
Der Fragebogen ist auf Englisch verfügbar und dauert einige Minuten, allerdings wird zumindest meinem Gefühl nach das Feedback ernstgenommen und auch gehört. Entsprechend kann ich jedem der mit Flutter arbeitet nur empfehlen diese Minuten zu opfern und zu helfen das gesamte Flutter Ökosystem zu verbessern. Den Fragebogen findet ihr in den Related Links.
Flutter App Development - Einleitung und Setup

Seit dem Jahresstart entwickle ich aktiv Flutter Apps und meine Erfahrungen und Learnings möchte ich gerne mit euch teilen. Aus diesem Grund starte ich heute meine Newsreihe zum Thema Flutter App Development. Der Fokus liegt dabei vorerst auf dem Smartphone Teil von Flutter, auch wenn die ersten Flutter Desktop open_in_new und Flutter Web open_in_new Vorschauversionen bereits zu haben sind.
Als kleine Einleitung zum Thema ein paar Worte zu Flutter selbst. Flutter ist ein Framework für die Programmiersprache Dart open_in_new. Diese beiden Komponenten bilden die Basis für Googles Cross-Platform Lösung. Flutter ist sehr User Interface zentriert und erlaubt entsprechend diverse Dinge einfach und schnell umzusetzen. Dabei wird eine eigene Rendering-Engine eingesetzt, um alles mit flüssigen 60+ Frames anzeigen zu können. Die nativen UI-Elemente werden dafür vom Flutter Team nachprogrammiert. Die Entwicklung selbst erfolgt mit bekannten IDEs wie Visual Studio Code, Xcode oder Android Studio. Hot Reload macht die Entwicklung dabei extrem schnell. Im unteren Teil der News findet ihr ein kurzes Teaser Video, welches euch diverse relevante Punkte zu Flutter in unter drei Minuten präsentiert.
I'm a coder - Der Wert einer guten Community

Niemand weiß alles und deswegen ist es in der Softwareentwicklung meiner Meinung nach sehr wichtig eine aktive Community zu haben. In einer solchen kann man sich bezüglich der genutzten Sprache, Frameworks und ähnlichen Dingen austauschen. Denn auch wenn es Dokumentationen gibt, die erklären wie man performant eine Sprache nutzt oder wie man in einem Framework konkrete Use-Cases umsetzen kann, so gibt es zu viele unterschiedliche Aufgaben, als das alles dokumentiert sein könnte.
Community-Portale wie Stack Overflow open_in_new, Gitter open_in_new oder auch öffentliche Slack oder RocketChat Channels bieten hier eine Möglichkeit sich asynchron oder synchron auszutauschen und sich gegenseitig zu helfen. Vor allem Stack Overflow dürfte fast jedem Entwickler ein Begriff sein, denn z.B. im Android Bereich findet man quasi alles was man braucht dort.
Flutter - Android Platform Tools Version 29 Probleme

Solltet ihr Flutter Apps für Android entwickeln und selbiges unter Windows tun, wäre es aktuell eine gute Idee nicht auf die Android Platform Tools Version 29 zu aktualisieren. Hier gibt es zurzeit Build Probleme (Error retrieving device properties for ro.product.cpu.abi), welche das Ausliefern der App aufs Smartphone oder den Emulator verhindern. Solltet ihr bereits vom Problem betroffen sein, hilft ein Downgrade auf die Version 28.0.2 open_in_new oder aber ein Wechsel vom Flutter Stable, auf den Flutter Master Branch. Für letzteres navigiert via Konsole in den Flutter Ordner, nicht in euren Projekt Ordner und führt git pull aus. Durch den Befehle flutter channel master wechselt ihr dann auf den Master Branch und mittels flutter doctor könnt ihr prüfen ob alles funktioniert hat. Dadurch dass das Problem auf dem Master Branch bereits behoben ist, hoffe ich das bald ein Fix für die Stable Version erscheint.
Flutter Google I/O Talks

Sollte euch Flutter interessieren, dürften einige Talks der letzten Google I/O durchaus interessant für euch sein. Denn das Cross-Platform Framework für die Entwicklung von Apps wurde im Rahmen von Googles jährlicher Konferenz mit neuen Informationen versorgt. Fünf Videos mit direktem Flutter Content gibt es.
Falls ihr euch für neue Widgets und Funktionen interessiert, schaut euch mal Material Design, Adaptable UIs, and Flutter open_in_new an, denn genau dies ist dort das Thema. Solltet ihr nicht nur für Android entwickeln, was bei Flutter ja durchaus wahrscheinlich ist, dürfte Building for iOS with Flutter open_in_new und Building Flutter Apps for iOS, Android, Chrome OS, and Web open_in_new vermutlich etwas für euch sein.
Solltet ihr euch für tiefergehende Informationen interessieren sind Dart: Productive, Fast, Multi-Platform - Pick 3 open_in_new und Pragmatic State Management in Flutter open_in_new unter Umständen von Relevanz für euch. Ich selbst habe bis dato die beiden zuerst genannten Talks gesehen und finde sie durchaus gut. Allem voran um auf dem Laufenden und im Bereich der Best-Practices am Ball zu bleiben, finde ich derartige Talks sehr hilfreich. Zusätzlich ist ein schneller Überblick bezüglich Änderungen und Anpassungen natürlich auch immer praktisch.
Flutter Fehler - Dart VM: Wrong full snapshot version

Während ich mal wieder an einem meiner Flutter Projekte weiter arbeiten wollte, stolperte ich nach einem flutter upgrade über app Error while initializing the Dart VM: Wrong full snapshot version. Der Fehler trat interessanterweise nicht beim Installieren auf, sondern erst beim initialen Starten der App. Selbige stürzte dann mit dem genannten Fehler ab.
Beheben konnte ich ihn durch das Entfernen des ~/flutter/bin/cache Ordners. Es scheint nämlich so als hätte sich das Flutter Upgrade-Tool verschluckt, was zu diesem Fehler führt. Andere Nutzer mit ähnlichen Problemen berichten davon das git clean –xffd, direkt im Flutter Ordner ausgeführt, das Problem löst. Dabei ist anzumerken das der Root Flutter Ordner selbst ein Git Repository ist. Weitere Informationen findet ihr im dazugehörigen GitHub Issue, welchen ich in den Related Links hinterlegt habe.
Lohnen sich neue Programmiersprachen?

Durch meine Besuche in der Flutter Welt bin ich in der letzten Zeit offener für neue Sprachen, neue Ansätze und Versuche selbige bei meinen aktuellen Projekten einzusetzen. Entsprechend baue ich gerade ein kleines privates Projekt in Flutter und sammle dabei Ideen für eine Tutorial / How To Reihe zu Flutter und der Entwicklung mit Googles Cross-Platform Framework.
Doch nicht nur Dart, was die Basis von Flutter ist, ist aktuell ein Thema für mich. Auch Go ist ein sehr wichtiges Thema für mich, denn ich schreibe gerne Microservices. Entweder für meinen Blog oder für andere Projekte die ich noch plane oder bereits umsetze. Und für diese Art von Projekten ist Go extrem praktisch. Ideen habe ich viele, Zeit leider eher wenig.
Doch durch einige lange Wochenenden hatte ich in den letzten Wochen etwas Zeit, mir vor allem Go mal etwas näher anzusehen und war sehr angetan. Denn vieles von dem was ich plane kann Go, teilweise von Haus aus und ohne zusätzliche externe Abhängigkeiten. Ein Umstand der kein Muss ist, aber durchaus praktisch sein kann. Alles in allem freue ich mich auf jeden Fall die Zeit investiert zu haben, denn insgesamt bin ich glaube ich auf längere Sicht schneller und kann bessere Software schreiben, als ich mit Java umsetzen könnte.
Flutter Developers Youtube Channel

Durch meine Arbeit grabe ich mich aktuell immer tiefer ins Flutter Universum ein und ich muss sagen es gefällt mir bis dato sehr gut. Ich überlege eine umfangreichere Newsreihe zu erstellen, in welcher ich Erfahrungen, Beispiele, Lesson Learned und weitere Dinge mit euch teilen möchte. Dafür muss ich allerdings erst einmal grundlegend in meinem Hirn kramen, diverse Sachen notieren und schauen ob in Sachen Qualität und Quantität ausreichend viel vorhanden wäre.
Bis ich aber selbst mit Content starte, kann ich euch den offiziellen Youtube Kanal für Flutter-Entwickler empfehlen. Hier gibt es neues zu Releases, Tutorials und generelle Informationen rund um das Framework für Cross-Plattform Entwicklung. Der Channel selbst ist noch recht neu, doch es gibt durch Verlinkungen, z.B. auf den Google Developer Youtube Channel, bereits einigen Content. Zusätzlich gibt es häufig neue Videos auf dem Channel selbst. Wollt ihr also auf dem Laufenden bleiben schaut doch mal vorbei, ihr findet ihn in den Related Links.
Flutter Awesome - Hilfreiche Tipps und Tricks

Wer die ersten Erfahrungen mit Flutter gesammelt hat, wird vermutlich etwas umfangreichere Tutorials ausprobieren oder alternative Ansätze für verschiedene Abläufe testen wollen. Dafür ist die awesome-flutter Liste auf GitHub ein super Startpunkt.
Dort findet ihr interessante Artikel, Videos, komplette Libraries und Frameworks, sowie generelle Informationen und Links zu Community-Plattformen. Die Liste einmal grob durchzusehen kann ich jedem der mit Flutter arbeiten will nur empfehlen. Die diversen Informationen sind meistens extrem hilfreich und viele der häufig aufkommenden Fragen werden in den dortigen Tutorials direkt abgedeckt.
Abgesehen von den verschiedenen direkt nutzbaren Dingen, wie z.B. Plugins oder Frameworks, gibt es einfach extrem viel Inspiration. Dies gilt sowohl für die grafischen Komponenten und den Aufbau der App an sich, wie auch für das Backend und eventuelle Funktionen die man selbst integrieren könnte. Die meisten Beiträge sind zudem gut gepflegt, generell sehr aktuell und vor allem nachvollziehbar. Ich selbst habe ein paar der dortigen Tipps bereits erfolgreich eingesetzt. Solltet auch ihr mal reinschauen wollen, folgt einfach den Related Links.