Raffle Companion - Update 1.4.0 & Gewinnspiel-Erinnerung
Seit einigen Tagen ist eine neue Version meines Raffle Companion Tools verfügbar. Diese ist wie gewohnt für Windows über den Microsoft Store verfügbar. Sofern es Interesse gibt werde ich ebenfalls versuchen Linux open_in_new und Mac open_in_new Builds bereitzustellen. Für den Moment bleibt es aber bei Windows und selbige Version hat nun eine überarbeitete, logischer aufgebaute UI, Fehler in der Suche wurden behoben und einige Übersetzungen wurden angepasst.
Die App ist komplett in Dart und Flutter geschrieben, nutzt das auf Windows angepasste Fluent UI Design System und ist als Open Source Anwendung via GitHub open_in_new auch auf Code-Ebene einsehbar. Falls ihr eure Gewinnspiele lokal verwalten wollt, schaut euch das Tool doch mal an. Bei Fragen meldet euch gerne in den Kommentaren.
Und wo wir gerade von Gewinnspielen reden, an dieser Stelle eine kleine Erinnerung an meine beiden aktuellen Gewinnspiele, die noch bis morgen Abend aktiv sind. Zum einen das Bitdefender Gewinnspiel, welches ich jährlich veranstalte und mein monatliches Games Gewinnspiel.
Patchday - Updates und Pull Requests
Während ich meine Android und Flutter Libraries pflege bin ich meist allein unterwegs. In der letzten Zeit hat sich dies zwar nicht grundlegend geändert, aber die ersten kleinen Community Patches für meine beliebteste Library (Device Marketing Names - Dart / Flutter) freuten mich doch sehr. Neben kleineren Fehlerbehebungen in der Dokumentation (GitHub Pull Request open_in_new) gab es Verbesserungen bei der Fehlerbehandlung im Fall von nicht unterstützten Plattformen (GitHub Pull Rquest).
Abseits davon gab es seit der letzten News zu meinen Libraries die gewohnten monatlichen Daten- und Dependency-Updates für meine Device Marketing Names Libraries, sowie kleinere weitere Anpassungen für meine OnUpgrade Library. Alle drei Libraries werden weiterhin aktiv gepflegt und unterstützten jeweils die aktuellen Framework- und Betriebssystem-Versionen. Falls ihr ganz konkret wissen wollt was sich in diesem Bereich tut, kann ich euch die Related Links empfehlen. Dort findet ihr die GitHub Repositories, welche neben dem Code auch Releases mit Change Logs beinhalten, sodass ihr dort immer konkret erfahren könnt was sich getan hat.
Wie immer gilt, falls es Fragen gibt meldet euch gerne in den Kommentaren.
- Device Marketing Names - Dart / Flutter Projektseite open_in_new
- Device Marketing Names - Dart / Flutter auf pub.dev open_in_new
- Device Marketing Names - Dart / Flutter auf GitHub open_in_new
- Device Marketing Names - Kotlin Projektseite open_in_new
- Device Marketing Names - Kotlin auf Maven Central open_in_new
- Device Marketing Names - Kotlin auf GitHub open_in_new
- OnUpgrade Projektseite open_in_new
- OnUpgrade auf pub.dev open_in_new
- OnUpgrade auf GitHub open_in_new
Droidcon / Fluttercon 2024 - Mein kurzes Fazit
In der letzten Woche durfte ich ein weiteres Mal die Droidcon / Fluttercon besuchen und entsprechend wird es Zeit für ein kleines Fazit. Allem voran sei gesagt das ich ausschließlich Flutter Talks / Sessions besucht habe. Denn auch wenn natives Android mein täglich Brot ist, so wirkten die meisten Flutter Talks einfach etwas interessanter. Grund dafür ist vermutlich, dass ich nach ca. 10 Jahren Android sehr viel gesehen und ausprobiert habe. Entsprechend sind einige Talks eher nicht so interessant für mich und der Rest der bleibt ist oft extrem problemspezifisch oder komplex.
Doch nun zum eigentlichen Thema, der Konferenz an sich. Ich konnte dieses Mal alle drei Tage komplett wahrnehmen, da meine Rückfahrt erst am späten Freitagnachmittag war. Somit gab es die volle Ladung Flutter Talks. Die Talks waren im Schnitt alle sehr gut, auch wenn es je nach persönlicher Präferenz natürlich interessantere und weniger spannendere gab. Ich persönlich werde zwar gerne inspiriert und motiviert, kann aber mit konkreten Inhalten mehr Anfangen als mit Meta-Talks. Alles in allem war die Mischung aber sehr gut und ich konnte etwas neues Programmierwissen aufbauen und gleichzeitig neue Motivation und Energie schöpfen.
Boehrsi.de - Backend Release Plan
Auch wenn der Plan minimal hinter dem Zeitplan ist, so geht es nächste Woche vermutlich mit dem neuen Backend los. Damit einher geht dann auch das neue Gewinnspielsystem und verschiedene anderen Spielereien, die allerdings eher was für mich persönlich sind und für den normalen Nutzer nicht sichtbare sein werden.
Da es sich hier um ein komplett neues System handelt, mich neuer Technologie und den vermutlich vorhandenen Kinderkrankheiten, betrachte ich den initialen Rollout als Beta. Die lokalen Integration Tests für die bereits bekannten Features, also die Kommentare und die Suche, sind bereits erledigt und auch die UI Integration für das Gewinnspielsystem ist bereits vorhanden. Für letzteres fehlt allerdings noch der Integration Test. Selbiger sollte in den nächsten Tagen fertiggestellt werden. Die Migration der alten Kommentare plane ich zwar noch, aber auch das sollte zeitnah erledigt sein, sodass alle Bausteine für einen Release vorhanden sind.
Flutter 3.22 und Dart 3.4 veröffentlicht
Vor ungefähr einer Woche fand die Google I/O statt und in diesem Rahmen gab es auch neues im Bereich Flutter. Flutter 3.22 und Dart 3.4 sind seitdem verfügbar und bringen einige durchaus interessante Neuerungen.
Im Dart Bereich sind hier vor allem die Macros open_in_new zu erwähnen. Das Macro Feature ist aktuell noch eine Vorschau, kann aber im Rahmen des @JsonCodable() Macros open_in_new bereits konkret getestet werden. Generell können Macros als Realtime-Build-Runner zusammengefasst werden. Die Definition eines Macros gibt an was generiert werden soll, die Annotation löst diese Generierung für einen Code Teil aus und das Ganze passiert dann in Realtime. Dadurch sind prinzipiell Data Classes und alle möglichen anderen Konstrukte möglich. Initial will das Dart Team eine Reihe von Standard Macros definieren und das Feature stabilisieren. Allerdings können interessierte bereits jetzt in diesem Kontext selber Dinge ausprobieren. Abseits davon wurde der Dart Analyzer optimiert und diverse Fehler wurden behoben.
Boehrsi.de - Neues Backend im Mai
Wie bereits erwähnt geht die Entwicklung meines neuen Backends für Boehrsi.de gut voran und ich plane den Rollout im Mai. Darin enthalten sind dann verschiedene Anpassungen, die sich größtenteils im Hintergrund abspielen. Sichtbar werden kleinere Änderungen bei den Kommentaren und der Suche sein, am relevantesten dürfte aber das neue Gewinnspielsystem sein. Es ist nun von den Kommentaren getrennt und benötigt nach initialer Teilnahme eine Bestätigung in einem zweiten Schritt. Dieser sollte für normale Nutzer keinen allzu großen Aufwand darstellen, dürfte aber die Script Kiddies etwas stören. Damit hoffe ich wieder verlässlich Gewinnspiele veranstalten zu können, ohne das einzelne Individuen die gesamte Veranstaltung für alle torpedieren. Sollte letzteres allerdings der Fall sein wird es vermutlich keine weiteren Umbaumaßnahmen und entsprechend Gewinnspiele mehr geben.
Boehrsi.de Backend erhält Dart Rewrite
In den letzten Monaten habe ich neben der Weiterentwicklung meines Spiels, auch eine Neuentwicklung meines Blog-Backends in Dart vorangetrieben. Grund dafür war vor allem das Interesse an den neuen serverseitigen Möglichkeiten von Dart open_in_new. Denn neben Clients in Flutter oder Dart Konsolen Tools, gibt es mittlerweile diverse Ansätze um Dart auf Servern nutzen zu können. Für mich ist dies vor allem spannend, da Dart Code zu einer nativen Binary File wird und keine Runtime braucht, im Vergleich zu z.B. Java oder Kotlin. Letzteres ist für meine aktuelle Lösung nötig und bedeutet das Java und alles was dazugehört auch dem Server aktiv sein muss. Auch wenn dies generell kein Problem ist, so bin ich ein Freund von Programmen oder Tools die als einzelne Binary File ausgeliefert und genutzt werden können, ohne weitere Konfiguration auf dem Host-System. Dadurch werden Deploy und Update Prozesse einfacher und in meinem speziellen Fall hoffe ich die RAM Nutzung optimieren zu können.
Flutter 3.19 veröffentlicht
Bereits vor ca. zehn Tagen erschien eine frische stabile Version von Flutter. Flutter 3.19 bringt wie gewohnt diverse Verbesserungen, aber auch komplett neues mit sich. Auch Flutter möchte den AI Trend natürlich nicht verpassen und somit gibt es mit dem Gemini Google AI Dart SDK (Beta) open_in_new nun eine direkte Schnittstelle zu Googles neuem LLM AI Tool.
Abseits dieser Neuerung wurde das Scrolling verbessert und im Bereich der Animationen gibt es neue Möglichkeiten, um mit geringem Aufwand Animation von z.B. Menüs zu ändern. Eine Neuerung bei den SemanticsProperties open_in_new könnte unter anderem beim automatisierten Testing hilfreich sein, denn nun kann man von Flutter aus die Android Property resource-id
setzen.
Während iOS bereits die neue Rendering Engine Impeller open_in_new nutzt, ist sie für Android aktuell noch in der Beta Phase. Hier geht es allerdings voran und ein Großteil der Android Geräte soll bereits mit Impeller funktionieren. Einige wenige Features fehlen noch und aktuell ist man auf der Suche nach weiterem Feedback, sodass Impeller für Android vielleicht bald schon als finale Version zur Verfügung steht. Generell soll Impeller eine wesentlich bessere Rendering Performance bieten, bei geringerer Last und verbesserten Debugging Möglichkeiten.
Migration von WillPopScope zu PopScope
Deprecation ist etwas natürliches in der Softwareentwicklung. Code Teile werden als veraltet markiert, Alternativen werden geschaffen und die Entwickler wechseln auf die neuen Klassen und Methoden. Leider kommt es immer wieder vor, dass die angebotene Alternative anders funktioniert als erwartet oder gewünscht und es entsprechend zu Problemen kommt.
Selbiges Problem habe ich mit der Migration von WillPopScope open_in_new zu PopScope open_in_new. Beide sind dafür zuständig in einer Flutter App die normale Behandlung des Back-Buttons zu verändern. Ich nutze dies z.B. in meiner Tessa App. Mit WillPopScope gab es keine Probleme, aber aufgrund einer Änderung im Android System mussten die Flutter Entwickler hier etwas neues schaffen, um auch die Funktionen in neueren Android Version zu unterstützen.
Während WillPopScope für meine verschiedenen Fälle immer funktionierte, nutzt PopScope einen anderen Ansatz und zwang mich zum umdenken. Dabei geht es nicht nur mir so, wie der GitHub Issue open_in_new zum Thema zeigt.
Patchday - Frische Library Updates
Neben meinem Blog waren auch meine Libraries in den letzten Monaten auf Eis gelegt. Dies habe ich letzten Sonntag behoben, mit neuen Updates für alle meine aktiven Libraries. Konkret wurden Device Marketing Names – Dart Version 0.8.0, Device Marketing Names – Kotlin Version 0.5.0 und OnUpgrade Version 1.1.9 veröffentlicht.
Weitere Informationen zu den jeweiligen Updates findet ihr im unteren Teil des Beitrags.
- Device Marketing Names - Dart / Flutter Projektseite open_in_new
- Device Marketing Names - Dart / Flutter auf pub.dev open_in_new
- Device Marketing Names - Kotlin Projektseite open_in_new
- Device Marketing Names - Kotlin auf Maven Central open_in_new
- OnUpgrade Projektseite open_in_new
- OnUpgrade auf pub.dev open_in_new