Droidcon 2022 - Videos der Sessions online verfügbar
Falls es euch so geht wie mir und ihr dieses Jahr nicht live vor Ort wart bei der Droidcon in Berlin, dann interessiert es euch vielleicht das nun alle Sessions in Form von Videos online sind. Die Inhalte gibt es direkt auf der Droidcon Webseite.
Sofern ihr im Bereich der mobilen Entwicklung unterwegs seid, egal ob nativ für Android oder z.B. im Cross-Platform Bereich mit Flutter, ist vielleicht das eine oder andere Video für euch dabei. Folgt einfach den Related Links und stöbert eine Runde bei Interesse. Auch die Inhalte der vergangenen Jahre findet ihr dort.
Device Marketing Names & Device Identifiers Updates
Es gibt wieder neue Versionen meiner Device Names Libraries. Sowohl das Tool zur Generierung (Device Identifiers), wie auch meine beiden Libraries (Device Marketing Names - Dart / Flutter und “device-marketing-names-kotlin” ), die die dazugehörigen Client Funktionen für Dart und Kotlin implementieren, wurden aktualisiert.
Für die beiden Client Libraries bedeutet dies ein paar aktualisierte Abhängigkeiten und vor allem eine aktualisiertes Datenset. Umfangreichere Änderungen gab es eher im Tool, welches ich zur Erstellung der Datensets nutze. Hier hab ich eine Funktionalität eingebaut die mir schon seit längerem fehlte. Selbige ist die Formatierung und Optimierung des erstellten Kotlin Codes. Denn auf Grund der Größe der Datei dauerte dies in der IDE sonst immer unnötig lange und ich will das der Code direkt und ohne unnötige Arbeit nutzbar ist. Dies ist mit dem aktuellen Update nun möglich und wie hier zu lesen war der Aufwand auch durchaus gering.
Sofern ihr also eine Dart oder Kotlin Library braucht, die die Modelbezeichnung eures Smartphones oder Tablets in einen für den Nutzer verständlichen Marketing Namen umwandelt, dann schaut euch meine Libraries doch einfach mal an. Alle relevanten Links sind wie gewohnt in den Related Links zu finden.
Kotlin und Dart Code via GitHub Action formatieren
Code, egal wie gut er logisch geschrieben ist, ist ohne eine ordentliche Formatierung problematisch. Man kann es vergleichen mit dem besten Buch aller Zeiten, welches aber quasi unlesbar ist, weil die Schriftgröße auf drei gesetzt wurde.
Bei den Programmiersprachen bin ich bekanntlich in den Bereichen Dart und Kotlin unterwegs und auch wenn normalerweise die IDE und die integrierten Tools das Formatting übernehmen, so gibt es doch Situation wo eine schnelle Formatierung via CLI hilfreich ist. Als konkretes Beispiel hätte ich hier die CI, welche z.B. Code generiert, optimiert oder vor dem Release von Libraries und Apps für Ordnung sorgt.
Tessa App - Version 2.0 steht vor der Tür
Eines von meinen verschiedenen laufenden Projekten ist die Tessa App. Eine App die als Companion-App für Reiter gedacht ist. Initial entwickelt für meine Frau, wurde das Feature-Set recht umfangreich und ich entschied mich sie für jedermann über den Play Store open_in_new verfügbar zu machen. Die App wird dort nun seit längerem mit Updates und kleineren Erweiterungen versehen.
Nun steht nach längerer Entwicklungsphase ein umfangreiches Update mit neuen Funktionen, einer modernisierten UI und verbesserter Performance vor der Tür. Die UI wird dabei auf Googles Material Design 3 open_in_new basieren, welches ich entsprechend in Flutter umgesetzt habe. Flutter 3 open_in_new unterstützt bereits diverse Material 3 Komponenten und die restlichen habe ich selber entsprechend angepasst. Im Bereich der Features wird es möglich sein mehrere Aktivitäten an einem Tag hinzuzufügen und der Bereich für Pferde-Daten wurde erweitert, sodass man diverse relevante Gesundheitsdaten hinterlegen kann. Im Bereich der Performance erfolgten massive Verbesserungen und ebenfalls umfangreiche Bugfixes. Auf die konkreten Details und weiteren Neuerungen werde ich im Rahmen der Release Notes eingehen.
Flutter Plugins & Packages - Eine neue News-Sammlungen
Flutter bietet eine große Menge an Plugins und Packages (via pub.dev open_in_new), die euch bei der Entwicklung eurer Apps helfen sollen. Ich selber nutze einige davon und habe auch schon selber welche geschrieben, weitere Informationen dazu im Projekte Bereich. Da die Auswahl aber sehr groß ist und man manchmal gar nicht genau weiß was man braucht, starte ich heute eine News-Sammlungen zu Plugins und Packages die ich viel nutze.
Die Begriffe Plugin und Package werde ich vermutlich beide benutzen, auch wenn ich versuche ein einheitliches Wording zu verwenden. Technisch ist der Unterschied bei diesen beiden übrigens wie folgt definiert. Ein Flutter Plugin interagiert auf die eine oder andere Weise mit nativem Code und stellt z.B. ein Interface für schon vorhandene native Bibliotheken zur Verfügung. Während ein Dart Package ausschließlich in Dart entwickelt wird. Hier könnte man als Beispiel Packages nennen, die neue Widgets einführen oder mathematische Formeln in Dart implementieren.
I'm a coder - Spaß beim Bugfixing
Softwareentwicklung bedeutet neben neuen Features natürlich auch das auffinden und beheben von Bugs und Problemen. Nun sind Projekte groß, teils mit anderen zusammen entwickelt und entsprechend hat man einen mehr oder weniger tiefen Einblick in die verschiedenen Teilbereiche einer Software.
Umso befriedigender ist es eine grobe Beschreibung von einem Problem zu hören und direkt eine Idee zu haben, wo das Problem liegen könnte. Liegt man dann auch noch komplett richtig, ist dies meiner Meinung nach eines der besten Gefühle für Entwickler. Denn es zeigt das man den Code nicht nur kennt, sondern auch das man ihn verstanden und durchdrungen hat. Soll heißen man weiß nicht nur was passiert und wo es passiert, sondern auch warum und welche generellen Abläufe dahinter stecken.
Ebenfalls sehr angenehm empfinde ich es, wenn man vorhandene Konzepte und Strukturen in neuen Bereichen problemlos einsetzen kann. Da man sie flexibel genug aufgebaut hat, sodass auch andere Einsatzzwecke als der initial geplante umgesetzt werden können. Dabei kann es je nach Situation natürlich möglich sein das minimale Erweiterungen nötig sind, doch wenn die Grundideen und Abläufe weiterhin funktionieren fühlt man sich durchaus bestätigt.
Da man bei der Softwareentwicklung am Ende nicht zwangsweise etwas in der Hand hält und auch das Feedback der Nutzer oft sehr indirekt ist, finde ich es wichtig aus derartigen Dingen Freude zu ziehen. Denn am Ende sollte man ja auch Gefallen an dem finden was man tut, egal ob professionell oder im privaten Kontext. Insofern genießt den nächsten Bugfix oder das nächste Refactoring vielleicht einfach und freut euch darüber das ihr wisst was zu tun war, statt euch über eventuell blöde Fehler zu ärgern. Ein bisschen Fluchen zum abreagieren schadet hin und wieder aber natürlich trotzdem nicht.
I'm a coder - Fokus ist ... oh ein Schmetterling
Software benötigt oft viele Komponenten, welche aus verschiedenen Systemen bestehen, welche wiederum jeweils Logik beinhalten. Diese Kette von potentieller Komplexität und damit verbundenen Entwicklungsaufgaben kann je nach Projekt unterschiedlich ausgeprägt auftauchen. Doch vor allem bei der Entwicklung von neuen Projekten, vielleicht sogar mit neuen Konzepten oder Frameworks, kann es schnell zu einem unangenehmen Durcheinander an Aufgaben kommen.
Ich selbst bemerke dies aktuell in Kontext meiner Gehversuche in der Welt der Spieleentwicklung. Denn während ich Apps, Backends, Webseiten und generell Programme schon oft entwickelt habe, so sind Spiele und die damit verbundenen Aufgaben durchaus neu für mich. Am Ende ist es alles Code, aber die benötigte Logik und welche Komponenten zu welchem Zeitpunkt implementiert werden sollten ist trotzdem etwas neues. Diese neuen Abläufe sind für mich kein generelles Problem, aber ich erwische mich immer wieder dabei wie ich im Kopf über ein Probleme nachdenke und dabei in gefühlte fünf andere Teilbereiche abdrifte. Somit vermische ich dann diverse Dinge miteinander, was ein Problem ist. Denn bei fehlendem Fokus verliere ich Geschwindigkeit.
Server & Kommentar-Service / Such-Service Update am heutigen Nachmittag
Im Laufe des heutigen Nachmittags wird es zu kurzen Ausfallzeiten des Blogs und der angeschlossenen Dienste kommen. Neben Serverupdates wird es auch eine Aktualisierung des Backends geben. Die Ausfallzeit des Blogs selbst sollten unter 5 Minuten betragen und der Kommentar-Service und Such-Service sollten nicht länger als 15 Minuten offline sein. Alle weiteren Informationen könnt ihr wie gewohnt meiner Status Seite open_in_new entnehmen, sobald das Update beginnt. Die Updates selbst sollten keine sichtbaren Änderungen für euch Nutzer mit sich bringen, das es nur Wartungs- und Performance-Updates sind.
Update - 11.06.2022 - 19:40 Uhr
Alle Aktualisierungen wurden erfolgreich abgeschlossen.
Device Marketing Names & Device Identifiers Updates
Es gibt wieder eine Runde Updates für meine Device Marketing Names & Device Identifiers Projekte. Am letzten Sonntag wurde Version 0.3.1 meines Device Identifiers Tools veröffentlicht, welches nun leicht optimierten Dart Code und Kotlin Code mit einem Hinweis zur Anpassung des Packages beinhaltet. Für alle die das Projekt nicht kennen, es sammelt automatisch Daten zu bekannten iOS und Android Geräten und erstellt daraus direkt im Code nutzbare Maps (Gerätemodell zu Gerätename).
Da man neben den Daten natürlich auch Libraries brauch die selbige im eigenen Projekt nutzbar machen, habe ich eine Dart / Flutter Library und eine Kotlin Library veröffentlicht. Beide wurden ebenfalls aktualisiert. Die neue Kotlin Version lautet 0.2.4 und in der Dart Welt sind wir bereits bei Version 0.4.1. Beide Updates beinhalten neue Datensätze, sowie aktualisierte Abhängigkeiten und minimale Code-Optimierungen.
Weitere Informationen findet ihr auf den jeweiligen Projektseiten und auf GitHub open_in_new, da alle genannten Projekten Open Source sind.
Flutter User Survey Q2 2022
Auch dieses Quartal gibt es für geneigte Flutter Entwickler wieder das Flutter User Survey. Hier wird die generell Stimmung bezüglich des Frameworks abgefragt und zusätzlich wird meist noch ein konkreter Bereich thematisiert. Dieses Mal ist letzteres die Frage nach eurer favorisierten IDE und was ihr euch in diesem Bereich so vorstellen könnt zu nutzen.
Derartige Umfragen erlauben es dem Flutter Core Team Prioritäten bei der Entwicklung des Frameworks und auch des Toolings zu setzen. Sofern ihr also in der Flutter Welt unterwegs seid, folgt gerne den Related Links. Ich habe selbiges schon getan und dafür nur wenigen Minuten gebraucht, da die Flutter User Surveys dankenswerterweise recht kurz gehalten sind.