OnUpgrade - Version 1.1.2 Maintenance Update

Wie vor einigen Tagen angekündigt bin ich derzeit dabei diverse Updates und neue Veröffentlichungen von Apps und Libraries vorzubereiten. Dieser Prozess hat in den letzten Tagen einige Fortschritte gemacht, sodass es in den nächsten Tagen einige News zu diesem Thema geben wird.
Den Anfang macht heute ein kleines Maintenance Update meiner Library OnUpgrade. Hier gibt es lediglich Updates der intern genutzten Abhängigkeiten, kleinere Optimierungen und einige Anpassungen und Verbesserungen bei der Dokumentation. Für mich persönlich ist es allerdings trotzdem wichtig derartige Updates durchzuführen. Denn aktuell Abhängigkeiten und eine aktive Pflege der eigenen Projekte ist meiner Meinung nach ein Qualitätsmerkmal.
Für alle die meine meine Library OnUpgrade nicht kennen, es handelt sich bei selbiger um eine Dart / Flutter Library, welche euch erlaubt bei der Installation von Updates eurer App Aktionen ausführen. Beispiele sind hier die Anzeige der Release Notes oder eine Migrationen von Daten. Falls ihr mehr erfahren wollt, folgt einfach den Related Links.
Tessa App - Version 1.2.0 mit wiederkehrenden Terminen und Ausrüstungsliste

In den letzten Wochen und vor allem Tagen habe ich relativ umfangreich an der Tessa App weitergearbeitet und das Resultat ist der Release von Version 1.2.0. Die neue Version bringt meiner in Flutter entwickelten Android App unter anderem die folgenden neuen Funktionen.
- Wiederkehrende Ereignisse
- Ausrüstungsliste
- Bilder in Pferdeorganisationslisten
- Bilder können gelöscht werden
Zusätzlich wurden diverse kleine Fehler behoben, welche z.B. die Premium-Kaufen Funktion, das Bearbeiten von Bildern und den Dateiimport negativ beeinflussten. Im Bereich der Verbesserungen gibt es eine schnellere Suche, der Splash Screen wurde überarbeitet und das User Interface hat generell die eine oder andere Verbesserung erhalten.
Die neue Version ist ab jetzt im Play Store verfügbar. Den Link findet ihr in den Related Links. Nachdem dieses Update relativ lange in Entwicklung war, sind neue Versionen nun wieder mindestens einmal im Quartal zu erwarten. Solltet ihr Wünsche, Feedback oder ähnliches haben, meldet euch gerne direkt hier in den Kommentaren.
Weitere Informationen findet ihr im Projektbereich hier im Blog oder auf der neu erstellten kleinen Webseite für die App oder direkt im Play Store.
Flutter 2022 - Roadmap und Strategie

Im Bereich Roadmaps und Planungen sind große Projekte gerne mal etwas still. Anders ist dies im Bereich Flutter, hier hat man vor kurzem eine Roadmap für das gesamte Jahr 2022 veröffentlicht und mit der Community geteilt. Außerdem geht man auf die Art und Weise ein wie Flutter gemeinsam weiterentwickelt werden soll. Denn natürlich wird das Projekt von Google getragen, aber eben auch von der besagten Community. Das GitHub Projekt hat mittlerweile knapp 1000 Contributor, was sich durchaus sehen lassen kann.
Doch damit zurück zur Roadmap. Auf dem Desktop soll nach Windows auch der Support für Linux und macOS auf dem Stable-Channel landen und dies auch in besagter Reihenfolge. Im Web soll es vor allem im Bereich der Performance, Plugin-Kompatibilität und Accessibility Verbesserungen geben. Zusätzlich soll die Mischung von Flutter und Non-Flutter Content in Webseiten massiv vereinfacht werden.
Im Framework an sich wird der Material 3 Support erweitert und im Bereich der Texteingabe, Textselektion und generell Textverarbeitung soll es quasi auf allen Plattformen Optimierungen und neue Features geben. Ein Stichwort wäre hier die Handschrifterkennung in iPadOS. Kontextmenüs und Menüleisten für den Desktop sind ebenfalls ein Thema, genauso wie erste Experimente mit Multi-Window Support.
Abschließend wird es natürlich Updates von Dart, als Sprache die das Ganze erst möglich macht, geben. Extrem spannend finde ich das Thema Jank, also kurze Lags beim Nutzen der UI. Hier hat man grundlegende Fehler entdeckt und tatsächlich das gesamte Grafik-Backend und die Ideen dahinter komplett neu entwickelt. In 2022 wird zuerst iOS mit dieser neuen Technik bestückt und mit den daraus folgenden Ergebnissen will man das Ganze weiterentwickeln und auf die anderen Plattformen bringen.
Eine sehr angenehme High-Level-Sicht auf Flutter im Jahre 2022. Man erkennt die Richtung, muss aber nicht 1000 Issues wälzen und man fühlt sich als Teil der Community integriert. Meiner Meinung nach ein guter Weg, um die generelle Planung einer Sprache / eines Frameworks mit der Community zu teilen.
Flutter 2.10 erschienen

Gestern gab es eine neue Flutter Version, welche vor allem einen Hauptfokus hat und dieser lautet Stable Windows Support. Eine Durchaus sehr relevante Information. Abseits von der Möglichkeit auf dem Stable Branch von Flutter Windows Builds erstellen zu können, wurde auch das Tooling, die Integration und das gesamte Setup massiv verbessert. Im Rahmen des unten eingebundenen Youtube Videos wird unter anderem gezeigt wie man von der Standard Counter App, zu einer App mit einer an Windows angepassten UI kommt, diese als Release Version baut und sogar in ein installierbares Format bringt. Das Ganze ist binnen kürzester Zeit erledigt und die installierbare App ist sogar mit dem Windows Store kompatibel.
Weiterhin fokussiert sich das Update auf Performance Optimierungen. Unter iOS gab es massive Verbesserungen beim Rendering und einige Animationen laufen nun flüssiger. Android Entwickler erhalten mehr automatische Hilfen bei Fehlern und die Standardeinstellungen für Projekte wurden auf den neusten Stand gebracht. Im Web gab es Verbesserungen bei Textfeldern und der Overhead bei der Nutzung von nativen HTML Elementen wurden minimiert.
Der Material 3 Support wird außerdem erweitert, sodass nun Themes mit nur einer Farbe als Basis generiert werden können. Außerdem wurden über 1000 neue Icons hinzugefügt. Abschließend dürfen sich Entwickler über Verbesserungen bei den Integration Tests und den Dev Tools freuen und natürlich gab es wieder diverse Bugfixes.
Google Developer Library - Ressourcen zu Android, Flutter und vielem mehr

Es gibt viele Tools und Ressourcen im Bereich der vAndroid und Flutter Entwicklung. Da kann man leicht der Überblick verlieren und vor allem ist es schwer aktuelle Inhalte zu finden, welche den derzeitigen Best Practices entsprechen.
In diesem Kontext bin ich vor wenigen Tagen über die Google Developer Library gestolpert. Eine Plattform welche Libraries, Blog Beiträge und weitere Inhalte zu diverse Themen liefert. Aktuell gibt es neben Android und Flutter noch Firebase, Angular, Google Cloud und Machine Learning. Die Inhalte können nach euren Vorlieben gefiltert und durchsucht werden.
Ich kannte diese Plattform bis dato noch nicht und werde auf jeden Fall mal etwas stöbern gehen. Denn dort gibt es sicherlich noch das eine oder andere zu entdecken und zu lernen.
Device Marketing Names - Produktnamen / Marketing-Namen in Flutter auslesen

Wie bereits vor einigen Wochen erwähnt habe ich ein kleines Flutter Package geschrieben, welches es euch erlaubt den Produktnamen / Marketing-Namen eines Android oder iOS Gerät auszulesen. Dabei kann das Gerätemodel, für welches der Name ermittelt werden soll, entweder das aktuell genutzte Gerät sein oder es wird ein bereits bekanntes Gerätemodel eingegeben.
Es gibt zwar schon ein paar Packages / Plugins die in diese Richtung gehen, allerdings benötigen einige eine Internetverbindung oder bringen eine komplette SQLite Library und die entsprechenden Abhängigkeiten mit sich. Dies wollte ich vermeiden, weswegen ich direkt nutzbaren Code für die Lookups generiere. Dafür habe ich Device Identifiers geschrieben, welches bis dato Dart und Kotlin unterstützt. Auf diese Art hat man einen schnellen Lookup der immer funktioniert und keine umfangreichen Abhängigkeiten mitbringt.
Die Lookup Daten werden ca. einmal im Monat aktualisiert, sodass das Package vor allem im Android Bereich die aktuellsten Informationen liefern kann. Das Package kann auch für Flutter im Web genutzt werden, hier gibt es allerdings direkt den ermittelten Browser Name weiter, welcher von device_info_plus open_in_new) ausgelesen wurde. Das Auslesen des aktuellen Gerätemodels wird übrigens auch von device_info_plus übernommen.
Das Package ist relativ simpel und der größte Teil der Arbeit ist die Bereitstellung der eigentlichen Daten. Es liegt aktuell in Version 0.3.1, was der fünfte Release ist. Nach dem initialen Release, welcher Android und iOS unterstützte, wurde in den folgenden Versionen der Web Support hinzugefügt. Außerdem gab es kleinere Fehlerbehebungen und Optimierungen, sowie Updates der Lookup Daten.
Solltet ihr Ideen haben wie man das Package noch erweitern oder verbessern kann oder habt ihr Fragen, dann meldet euch einfach in den Kommentaren.
Material Design 3 - Neuerungen und Optimierungen

Das Material Design UI Konzept von Google wurde bereits mehrfach hier im Blog erwähnt und heute gibt es mal wieder einen guten Grund dafür. Mit Android 12 gibt es bekanntlich mehr Individualisierungsmöglichkeiten was die Farbgebung der System UI angeht. Hier geht auch Material Design mit und zwar unter der Version 3.
Material Design 3 soll sich an das neue Konzept anpassen können und bringt dafür unter anderem geänderte Farbdefinitionen mit sich. Aber auch im Bereich der Typography gab es Optimierungen. Hier wurden Namen vereinfacht und die Anzahl der Standard-Schrifttypen verkleinert. Diverse UI Komponenten wurden ebenfalls angepasst. Vor allem die Bars (Top App Bar und Navigation Bar) kommen nun mit einem durchaus anderem Stil daher. Doch auch die Buttons, darunter auch der Floating Action Button, sind nun flexibler nutzbar und kommen in einem neuen Gewand daher.
Flutter 2.8 erschienen

Bereits vor ein paar Tagen erschien eine neue Flutter Version. Das Framework hat nun die Versionsnummer 2.8 auf dem Stable Channel. Damit einher geht ein Update der Programmiersprache Dart auf die Version 2.15.
Dieses Update fokussiert sich auf die Performance des Frameworks und dabei vor allem auf Optimierungen im Mobile Bereich. Weniger Speicherverbrauch, flüssigere grafische Abläufe und ähnliche Dinge sollen durch das Update möglich werden. Außerdem ist die Anbindung an Firebase und die Google Cloud verbessert worden. Dadurch sollen Entwickler schneller mit den genannten Backend Lösungen arbeiten können.
Ebenfalls spannend ist, dass die 2D Game Engine Flame, welche auf Flutter aufsetzt, auch einen Versionssprung gemacht hat. Hier hat man nun die stabile Version 1.0 veröffentlicht, was interessierte Spieleentwickler vielleicht spannend finden. Die Engine ist modular aufgebaut und ich selber plane sie mir im kommenden Jahr mal näher anzusehen.
Generell bringt die neue Flutter Version wenige sichtbare Änderungen, aber dies ist auch gar nicht nötig. Nicht jeder Release muss neue Inhalte bringen, denn ein Framework muss allem voran eine solide und performante Basis schaffen. Damit können wir Entwickler dann unsere Aufgaben erfüllen und Apps entwickeln. Ich selbst habe bereits seit einiger Zeit auf der Version 2.8 gearbeitet, da ich seit längerem auf dem Beta Channel unterwegs bin. Bis dato sind mir keine Nachteile oder Probleme aufgefallen. Insofern sollte einem Update eher wenig im Wege stehen.
Flutter - Entwickler Umfrage Q4 2021

Schon wieder ist ein viertel Jahr vergangen und das Flutter Team fragt nach eurem Feedback. Selbiges kann im Rahmen einer kurzen Umfrage – ich habe ca. 5 Minuten gebraucht – abgegeben werden. Feedback dieser Art mag in manchen Umgebungen unterzugehen, aber im Flutter Kontext fühle ich mich zumindest gehört und kann jedem Entwickler in diesem Bereich nur empfehlen diese paar Minuten zu investieren.
Nur mit Feedback von aktiven Entwicklern können sich Sprachen und Frameworks aktiv in eine Richtung entwickeln die für euch relevante Änderungen bringt. Entsprechend ist der Kosten / Nutzen aufwand relativ gering, wenn man bedenkt das ihr hier mehr oder weniger direkten Einfluss auf die Basis eures Daily Doings nehmen könnt.
Den Link zur Umfrage findet ihr wie gewohnt in den Related Links. Bei Fragen oder Anregungen meldet euch gerne in den Kommentaren.
Device Identifiers - Android und iOS Gerätenamen Mappings

Im Rahmen meiner Mitarbeit an den Flutter Plus Plugins open_in_new gab es die Anfrage die Produktnamen / Marketing-Namen für Android und iOS Geräte ausgeben zu können. Da dieser Use Case vermutlich eher für eine kleine Anzahl von Entwicklern wichtig ist, wurde entschieden diese Funktionalität nicht direkt in die Plus Plugins zu integrieren.
In diesem Bereich gibt es zwar schon Lösungen, aber einige basieren auf nativen Android / iOS Libraries und einige benötigen eine SQLite Library. Diese Anforderungen gefielen mir nicht, da man am Ende lediglich ein Mapping vom Gerätemodel auf den Produktnamen braucht. Das Model kann relativ einfach ausgelesen werden (z.B. via dem Flutter Plugin device_info_plus open_in_new) und alles weitere kann nicht nur ausschließlich auf der Dart Ebene erledigt werden, sondern das auch mit relativ einfachen Mitteln.
Am Ende braucht man wie oben erwähnt einfach nur eine Map der Daten, welche die Übersetzung von Model zu Name ermöglicht. Dies zu programmieren ist natürlich trivial, auch wenn man auf Dinge wie Lazy Loading achten sollte. Das Problem ist hier einen korrekten und möglichst vollständigen Datensatz zu haben.