Flutter in Production mit Tessa - Reit-Assistent

Ich arbeite gerne mit Flutter, migrierte meine internen Java & Android Projekte und schreibe quasi täglich die eine oder andere Zeile Code. Doch ist Flutter auch was für den echten produktiven Einsatz? Diese Frage kann ich seit kurzem nun auch offiziell mit einem klar ja beantworten. Grund dafür ist meine erste Flutter App im Google Play Store (Tessa - Reit-Assistent open_in_new), welche durchaus umfangreich geworden ist und mit Dart und Flutter als Basis sehr gut funktioniert.
Der Kontext ist mit einer Companion App für Pferdebesitzer eher außerhalb meiner Kernkompetenzen, aber genau dies zeigt mir noch mehr das man mit Flutter Apps entwickeln kann, die den eigenen Wünschen oder den Wünschen eines Auftraggebers entsprechen. Grund für das Thema der App ist meine Frau, welche mit dem Reiten ein Hobby gefunden hat, welches durchaus komplex sein kann.
Google Play Service Fee - 15 Prozent Programm nicht vergessen

Sofern ihr bei Google Play Apps anbietet, welche auch Einnahmen generieren sollen, solltet ihr euch für das 15 Prozent Programm eintragen. Auch wenn es diverse Hinweise gab, auch ich möchte nochmal darauf hinweisen, denn ich weiß selber wie vergesslich ich bin und vielleicht geht es euch da draußen ja auch manchmal so.
Es geht darum das Google die Google Play Service Fee auf 15% für die erste Million (USD) reduziert. Allerdings müsst ihr euch dafür anmelden. Ansonsten zahlt ihr weiterhin 30% auf alle Einnahmen. Falls ihr von besagten Änderungen profitieren könnt und wollt, folgt einfach den Related Links. Die Anleitung besteht aus nur wenigen Schritten und schon seid ihr dabei.
VS Code - Version 1.57 mit Remote Repositories Support

Visual Studio Code ist neben IntelliJ Idea und den dazugehörigen Ablegern meine favorisierte IDE. Entsprechend freue ich mich natürlich immer wieder über Updates. Das neuste Update brachte nun einige interessante Änderungen.
Zum einen könnt ihr nun pro Workspace das automatische Ausführen von Dateien kontrollieren open_in_new und zum anderen könnt ihr mittels Terminal Tabs open_in_new eure Konsolen Fenster sehr flexibel verwalten.
Doch was ich am spannendsten finde, abseits der diversen weiteren Verbesserungen, ist der Remote Repositories Support open_in_new. Die Erweiterung für das Feature muss via VS Code Marketplace open_in_new installiert werden und schon könnt ihr Remote in GitHub Repositories arbeiten. Dies dürfte vor allem bei kleinen schnellen Änderungen hilfreich sein und wenn man häufig in neuen Projekten aktiv ist. Mich persönlich erinnerte dies initial an meine guten alte PHP Tage, wo ich via Eclipse FTP Plugin direkt auf dem Server gearbeitet habe.
Alle weiteren Neuerungen findet ihr im verlinkten Blog Beitrag, in den Related Links. Wie sieht es eigentlich bei euch aus, mit welcher IDE seid ihr hauptsächlich unterwegs?
Google I/O - Interessantes für Android Entwickler

Die Google I/O ist bereits ein paar Tage vorbei und nun kam ich endlich auch dazu die eine oder andere Session anzuschauen. Im Bezug auf Android möchte ich euch ein paar relevante Videos ans Herz legen. Sofern ihr in den Android Welt unterwegs seid und die Chance habt auf aktuelle Dinge setzen zu können, dürfte die eine oder andere neue Funktionalität sicherlich spannend für euch sein.
MIME Types - Welche sind relevant und welche gibt es?

MIME Types (Multipurpose Internet Mail Extensions) können Freund und Feind zur selben Zeit sein. Auf der einen Seite sind sie hilfreich beim ermitteln des Typs des Dateiinhaltes, auf der andere Seite sind sie aber auch gerne unzuverlässig oder uneindeutig.
In verschiedenen Situationen kann und sollte man sich mit ihnen auseinanderzusetzen, doch welche MIME Types gibt es überhaupt und welche sind verbreitet genug, dass man sie beachten sollte? Natürlich gibt es auf diese beiden Fragen keinen immer gültigen Antworten, aber zumindest ein paar hilfreiche Tipps möchte ich mit euch teilen.
Wenn es darum geht welche MIME Types relevant und vor allem im Web-Kontext sehr verbreitet sind, stellt Mozilla eine kurze und übersichtliche Liste open_in_new zur Verfügung. Selbige beinhaltet bekannte Audio- / Bild- / Video- und Dokumentenformate, welche man auf dem Schirm haben sollte. Die Liste besteht aus Dateiendungen, der Bezeichnung des Dateityps und dem eigentlichen MIME Type.
Will man sich wesentlich umfangreicher mit diesem Thema beschäftigen, kann man direkt zur IANA gehen. Hier gibt es eine aktuelle und sehr lange Liste von allen standardisierten MIME Types open_in_new. Um das Ganze etwas einfacher zu machen kann man nach Kategorien filtern. Auf diese Weise kann man z.B. relativ schnell alle MIME Types von Bild- und Videoformaten erhalten. Die Liste der IANA gibt es z.B. als CSV Datei zum Download, sodass man sie auch verarbeiten kann.
Auch wenn MIME Types praktisch sind, man sollte bei der Arbeit mit ihnen immer auch auf Fallbacks setzen. Denn manchmal erhält man keine validen Typen und dann möchte man natürlich nicht direkt in einen Fehler laufen.
Hobby Spieleentwickler Podcast - Tipps und Informationen für die Spieleentwicklung

Die Entwicklung von Spielen ist ein spannendes, aber auch komplexes Thema. Es gibt unfassbar viele Wege sein Ziel zu erreichen und leider genauso viele um zu scheitern. Falls ihr euch für das Thema interessiert und euch von zwei Spieleentwicklern ein paar Tipps und Ticks abschauen wollt, dann hört doch mal in den Hobby Spieleentwickler Podcast rein.
Bis dato gibt es sieben Episoden, die unter anderem auf das Tooling, die Engine und die eigentliche Game Loop eingehen. Der Podcast ist auf deutsch und wird mit viel Arbeit für euch zusammengestellt. Bei Interesse hört also mal rein und lasst den Jungs ein wenig Feedback via Twitter open_in_new da, denn über Rückmeldungen freut man sich bei solchen Projekten sehr.
Alle weiteren Informationen findet ihr in den Related Links. Außerdem habe ich die erste Folge des Podcasts direkt als Youtube Video im unteren Teil der News eingebunden.
Google I/O startet heute

In nicht einmal einer Stunde ist es soweit und die diesjährige Google I/O öffnet digital ihre Pforten. Es wird wie gewohnt neues zu Google Software, wie z.B. Android und Flutter, geben, aber vermutlich auch Informationen zu neuer Hardware, z.B. in Form von neuen Pixel Geräten.
Ich bin gespannt welche Änderungen es im Android und Flutter Bereich gibt, denn sowohl als Nutzer, wie auch als Entwickler habe ich mit beiden Bereichen täglich zu tun. Als Nutzer bin ich außerdem auf Informationen zu neuen Pixel Geräten gespannt, denn ich überlege aktuell mein etwas betagtes Handy zu erneuern und Pixel Geräte zu realistischen Preisen wären da auf jeden Fall eine Option.
Im Rahmen der I/O gibt es diverse Aktionen und Aktivitäten, welche ihr auf der offiziellen Webseite findet. Den Link findet ihr in den Related Links. Den Live Stream der Keynote habe ich im unteren Teil der News für euch eingebunden.
Android Studio 4.2

Eines meiner wichtigsten täglichen Werkzeuge bei der Software Entwicklung ist Android Studio. Aus diesem Grund sind Updates für selbiges immer durchaus relevant für mich. Vor etwas mehr als einer Woche erschien das Update auf Version 4.2, welche durchaus einige interessante Dinge mit sich bringt.
Grundlegend wurde die Basis auf IntelliJ IDEA Community Edition 2020.2 aktualisiert. Im Bereich der Unterstützung von konkreten Android Funktionen ist es nun möglich Safe Args open_in_new mit Autovervollständigung und Code Navigation zu nutzen. Der New Project Wizard und Module Wizard wurde außerdem überarbeitet und soll Neueinsteigern das Leben einfacher machen.
Der Database Inspector erlaubt euch nun auch eine Datenbank zu inspizieren selbst wenn der dazugehörige Prozess bereits verschwunden ist. Außerdem gibt es nicht nur ein neues Gradle Plugin, sondern auch einen Migrationsassistenten, um Gradle Updates durchzuführen.
Die Apply Changes Funktion open_in_new wurde darüber hinaus weiter verbessert, wodurch selbige nun auch bei Änderungen an den Ressourcen nutzbar ist. Zusätzlich ist es nun generell möglich Änderungen auf mehrere Geräte gleichzeitig auszuliefern. Abschließend sei noch zu erwähnen, dass es weitere Verbesserungen am Profiler gab, welcher z.B. die Auslastung von CPU und RAM überwacht. Die obligatorischen Bugfixes sind natürlich auch enthalten. Alle weiteren Informationen findet ihr in den Related Links. Im unteren Teil der News gibt es außerdem das Vorstellungsvideo zur neuen Version.
Ich selbst nutze die neue Version seit dem Release und konnte bis dato keine Probleme feststellen. Sowohl alte, wie auch neue Android und Flutter Projekte laufen ohne Probleme und ohne Anpassungen am Code oder Gradle.
OnUpgrade - Mein erstes Dart / Flutter Package

Während es für fast alles ein Plugin / Package gibt im Dart / Flutter Kontext, existieren natürlich trotzdem die kleinen Ausnahmen die einem fehlen. Für diese Dinge schreibt man dann selber Code, verwendet ihn in der nächsten App wieder und entscheidet sich dann vielleicht eine Library daraus zu machen.
Selbiges tat ich vor kurzem und in diesem Zuge habe ich mein erstes Dart / Flutter Package veröffentlicht. OnUpgrade open_in_new soll dem Entwickler helfen eventuell nötige Migrationen bei App-Upgrades durchzuführen oder den Nutzer über neue Funktionen zu informieren. Das Package stellt dabei die Logik zum Speichern, Vergleichen und Auswerten der zuletzt installierten und aktuell genutzten App-Version zur Verfügung. Was im Falle eines Updates ausgeführt wird, wie ein eventueller Dialog aussieht oder wie der generelle weitere Ablauf ist, entscheidet der Entwickler.
Boehrsi.de Version 8.5 - Viele kleine Verbesserungen und Optimierungen

Über die letzten Wochen hinweg gab es diverse kleine Optimierungen an der Art und Weise wie Inhalte hier im Blog dargestellt und geladen werden. Die Änderungen sind eher minimal bezogen auf das Aussehen, aber die Performance sollte an einigen Stellen besser geworden sein. Vor allem der Cumulative Layout Shift (CLS) open_in_new, also das sich verschieben des Contents, nachdem der eigentliche Inhalt initial geladen wurde, sollte weniger geworden sein. Informationen zu Problemen mit diesen technischen Interna des Blogs erhalte ich übrigens über das PageSpeed Insights Online Tool open_in_new, für welches ich vor einiger Zeit auch ein kleines Bookmarklet erstellt habe.