Boehrsi.de - IT und Gaming Blog

GitHub Actions - Flutter automatisieren und mit Codecov testen

Erstellt am event Uhr von account_circle Boehrsi in label Development
GitHub Actions - Flutter automatisieren und mit Codecov testen Bild

Sowohl GitHub Actions, wie auch Flutter waren bereits häufiger Thema hier im Blog und heute geht es um die Kombination aus beiden. Bei einem Großteil meiner GitHub Projekte nutze ich mittlerweile GitHub Actions für diverse Aufgaben und bei meinen Flutter Projekten sieht dies nicht anders aus.
Aktuell nutze ich Flutter Action open_in_new für die eigentlichen Flutter Befehle, Codecov open_in_new für das automatische Hochladen der Tests und abschließend Dart/Flutter Package Analyzer open_in_new, um das Formatting und meinen Pub.dev Score zu überprüfen. Diese Kombination erlaubt es mir mit nur einem Push einen Build zu analysieren, die Tests auszuführen und direkt bei Codecov zu hinterlegen.

Related Links

Badges - Zeigt her den Projektstatus

Erstellt am event Uhr von account_circle Boehrsi in label Development
Badges - Zeigt her den Projektstatus Bild

Auf eine übersichtliche und schön Art informieren wie der Projektstatus ist, wo man die Downloads findet und welche Lizenz genutzt wird? All das geht und zwar in Form kleiner hübscher Badges. Diese Information ist nicht neu, aber ich habe im Rahmen von einem meiner Projekte nun das erste Mal aktiv mit selbigen gearbeitet.
Für eine kleines Dart / Flutter Package, über welches ich in den kommenden Tagen berichten werde, wollte ich gerne den Status diverser Eigenschaften anzeigen und schaute mich nach verfügbaren Lösungen um.
Badges sind kleine automatisch generierte Bilder, die meist aus einem Label und der dazugehörigen Information bestehen. Normalerweise müsst ihr nur euren Projektnamen, eine öffentliche Id oder eine andere Referenz eintragen und schon geht es los.

Related Links

Git - Conventional Commits Spezifikation für Commit Messages

Erstellt am event Uhr von account_circle Boehrsi in label Development
Git - Conventional Commits Spezifikation für Commit Messages Bild

Git ist ein tolles Tool um Code und andere Inhalte zu verwalten, egal ob alleine oder gemeinsam. Ich habe mittlerweile alles was nicht nur ein kleiner Test ist in Git Repositories. Im Rahmen der Nutzung von Git gibt es diverse unterschiedliche Ansätze und Meinungen, wie man Dinge angehen soll und was die jeweilige Best Practice ist.
Im Bereich der Commit Messages habe ich in der letzten Zeit immer mehr Wildwuchs in meinen Projekten bemerkt, obwohl ich eigentlich versucht habe die Dinge überall ähnlich zu benennen. Wichtig ist dies z.B. wenn man später nach Dingen sucht oder z.B. automatisiert Release Notes aus den Commit Messages generieren will.
Durch Zufall bin ich auf die Conventional Commits Spezifikation in einem Flutter Plugin Repository gestoßen und fand den Ansatz sehr passend. Das Ganze basiert auf Ideen des Semantic Versioning open_in_new und der Angular Entwickler Community open_in_new. Die Conventional Commits Spezifikation erweitert die Ideen und Ansätze um feste Richtlinien. Mich persönlich interessiert vor allem der Prefix für Commit Messages, denn eben dieser ist ohne viel Aufwand gesetzt, hilft aber bei den oben genannten Punkten sehr.

Related Links

Meine Statusseite - Hosting und Deployment via GitHub

Erstellt am event Uhr von account_circle Boehrsi in label Development
Meine Statusseite - Hosting und Deployment via GitHub Bild

Heute folgt der letzte Teil meiner kleinen Newssammlung rund um meine Boehrsi.de Statusseite. Denn sobald die eigentliche Seite erstellt ist, geht es ans Hosting und Deployment. Ich habe bekanntlich einen eigenen Server zur Hand, aber Hosting auf diesem macht für eine Statusseite offensichtlich wenig Sinn. Denn wenn der Server, für welchen die Seite den Status anzeigen soll, offline ist, dann wird die Seite natürlich auch offline sein. Ich entschied mich basierend auf meinen Erfahrungen mit GitHub, für eben selbige Plattform fürs Hosting und Deployment. Dort war ich wie bereits erwähnt durchaus glücklich wie umfangreich die Auswahl an vorhandenen Deployment-Workflows ist und auch das Hosting selbst ist sehr unkompliziert.

Related Links

I'm a coder - Schlechter Code kostet Zeit und Geld

Erstellt am event Uhr von account_circle Boehrsi in label Boehrsi
I'm a coder - Schlechter Code kostet Zeit und Geld Bild

Ich hatte schon häufiger das Thema der Codequalität hier im Blog und habe dafür geworben selbige hochzuhalten. Soll heißen bestehenden Code auch mal zu modernisieren, während der Entwicklung Dinge zu optimieren, statt zu duplizieren und Fehler die man zwischendurch entdeckt direkt zu beheben. Es gibt noch viele, viele weitere Möglichkeiten die Codequalität zu steigern, doch darum soll es heute gar nicht gehen.
Ich wollte mal konkret mitteilen warum ich es für wichtig halte nicht nur links und rechts Dinge anzubauen, sondern eben auch das große Ganze im Blick zu behalten. Ich habe vor kurzem die Ehre gehabt in ein halbwegs umfangreiches Projekt eine neue Funktion einzubauen, welche auf bestehender Logik aufsetzt und diese erweitert. An sich war der Ansatz recht simple, denn es sollte einfach ein bestehender Flow erweitert und mit verschiedenen Kontexten erneut ausgeführt werden. Alle anderen Abläufe, die auf diesem bestehenden Flow aufsetzen, mussten entsprechend angepasst werden, sodass sie den neuen Kontextbezug auch erfassen. Generell wäre das ein Aufgabe für einige Tage gewesen, allerdings wurde alles wesentlich umfangreicher.

Flutter / Dart Null Safety Migration

Erstellt am event Uhr von account_circle Boehrsi in label Development
Flutter / Dart Null Safety Migration Bild

Vor wenigen Tagen erschien im Rahmen des Flutter 2.0 bzw. Dart 2.12 Releases der stabile Null Safety Support für Dart. Entsprechend begab ich mich gestern Abend das erste Mal auf den Migrationspfad und aktualisierte meine kleine Anwendung zur Auswertung von Statistiken. Selbige nutze ich produktiv zum erfassen der Nutzerzahlen hier im Blog und auch um die monatlichen Top 10 Listen zu erstellen.
Die Migration ist sehr gut dokumentiert open_in_new und was extrem großartig ist, ist der dart migration Befehl, welcher versucht ein Projekt ohne Null Safety für euch anzupassen. Dabei erhält man einen geführten Prozess, bei welchem ihr die Liste der geplanten Änderungen auf einer interaktiven lokalen Website zu sehen bekommt und dort noch weitere Anpassungen vornehmen könnt. Meiner Meinung nach ist dieses Tool im Kontext der Migration eine glatte Eins mit Sternchen.
Nachdem ausführen der Migration für das kleine Projekt mit ca. 1000 Zeilen reinem Code, blieb tatsächlich nur eine Stelle an der ich manuell Hand anlegen musste. Die App lief anschließend ohne Probleme und weiterer Aufwand war nicht nötig. Hier kommt nun aber eine Empfehlung, die mehr Arbeit bedeutet, selbige meiner Meinung nach aber wert ist.

Related Links

Meine Statusseite - Designt mit Bulma

Erstellt am event Uhr von account_circle Boehrsi in label Development
Meine Statusseite - Designt mit Bulma Bild

Weiter geht es heute mit meiner kleinen Newssammlung zum Thema Boehrsi.de Statusseite. Heute geht es noch einmal um den reinen Code und wie ich die eigentliche UI erstellt habe. Während die folgenden Beiträge sich eher auf das Setup und Deployment beziehen. Bei Fragen stehe ich wie gewohnt gerne Rede und Antwort in den Kommentaren.
Das Thema Design ist für mich ein spezielles, da ich nicht sonderlich kreativ bin, aber trotz dessen versuche gut aussehende User Interfaces zu erstellen. Ich setze dabei meist auf Minimalismus und den Fokus auf den Content. Generell baue ich fast alles von Grund auf selbst, doch bei diesem Projekt habe ich einen anderen Weg eingeschlagen. Aus verschiedenen Gründen wollte ich weitere Erfahrungen zum Thema Bulma sammeln und entschied mich aus diesem Grund wieder für das CSS Framework.

Related Links

Humble Book Bundle: Pocket Reference Guides

Erstellt am event Uhr von account_circle Boehrsi in label Hardware & Software
Humble Book Bundle: Pocket Reference Guides Bild

Es gibt wieder was auf den Sehnerv, denn ein neues Humble Book Bundle ist verfügbar. Das Humble Book Bundle: Pocket Reference Guides by O’Reilly bringt euch über 250 $ an Büchern zu diversen Programmiersprachen. Das Bundle ist noch ca. zwölf Tage lang verfügbar und bietet euch unter anderem den SQL Pocket Guide, Java Pocket Guide und Linux Pocket Guide.
Die Inhalte sind auf drei Stufen aufgeteilt, wobei ihr wie gewohnt schon ab 1 € einsteigen könnt. Alle 15 Bücher erhaltet ihr ab 14,89 €. Eine gut gemischte Lieferung von Coding-Inhalten würde ich sagen, was denkt ihr? Alle Humble Bundle Links sind Affiliate- / Partner-Links die meinen Blog unterstützten.

Related Links

Dart Streams manipulieren mit stream_transform

Erstellt am event Uhr von account_circle Boehrsi in label Development
Dart Streams manipulieren mit stream_transform Bild

Wer im Dart / Flutter Kontext mit Streams arbeitet hat hin und wieder etwas umfangreichere Anforderungen, als das was Dart von Haus aus mitbringt. Denn obwohl der Stream Support in Dart durchaus gut ist, fehlt z.B. die Möglichkeit Streams zusammenzuführen oder Events zu sammeln / zu verwerfen (Debounce).
Dieses Problem lässt sich natürlich einfach lösen, denn es gibt verschiedene Packages die Darts Stream Support erweitern. Sehr gerne wird hier zu RxDart gegriffen, einer bekannten und umfangreichen Library. Ich selber habe z.B. mit dem Java Ableger RxJava gearbeitet und sehr gute Erfahrungen gemacht. Entsprechend ist RxDart natürlich auch ein gangbarer Weg. Aber man muss ja nicht immer gleich mit Kanonen auf Spatzen schießen, denn selbiges wird vor allem gerne auf Stack Overflow gerne mal empfohlen.
Dabei gibt es für einfache Aufgaben das Paket stream_transform, welches direkt von den Dart Entwicklern kommt und eine Reihe kleiner und gezielt anwendbarer Utility Methoden mitbringt. Mit stream_transform könnt ihr Streams buffern oder debouncen, sie kombinieren oder anders manipulieren. Am Ende sind es nur ca. 20 Methoden, welche aber diverse Fälle abdecken, ohne einen gigantischen Footprint in eurem Code zu hinterlassen. Ich bin ein Freund davon sich nur ins Haus zu holen was man auch braucht. Entsprechend war ich froh für meinen Einsatzzweck - Debounce von Events für eine Suchfunktion – mit stream_transform das Problem schnell und einfach lösen zu können.
Wie erwähnt habe ich allerdings auch gar nichts gegen RxDart und wenn man umfangreichere Aktionen im Bereich Streams durchführt ist man mit RxDart vermutlich auch besser bedient, hier geht es ausschließlich darum das richtige Tool für die richtige Aufgabe zu nutzen.

Related Links

pub.green - Kompatibilitätsprüfung für Flutter Plugins

Erstellt am event Uhr von account_circle Boehrsi in label Development
pub.green - Kompatibilitätsprüfung für Flutter Plugins Bild

Zusammen mit der vorgestern erschienenen Flutter 2.0 Version gibt es auch neues externes Tooling von 3rd-Party Anbietern. Die Continuous Integration und Continuous Delivery (CI/CD) Plattform Codemagic open_in_new hat ein kleines feines neues online Tool veröffentlicht, welches unter pub.green open_in_new erreichbar ist.
Selbiges hat als Ziel die Kompatibilität und Funktionalität von bekannten und viel genutzten Flutter Plugins mit diversen Flutter Versionen zu verifizieren. Sinn und Zweck ist es euch schnell und einfach zu zeigen ob ihr ein Plugin nutzen könnt oder ob es Probleme gibt.
Falls ihr gerne auch mal auf dem Flutter Beta oder Dev Branch unterwegs seid, um neue Features direkt aus erster Hand zu bekommen, dann sind solche Informationen einiges Wert. Denn man spart sich Zeit und Arbeit, wenn man von vornherein weiß ob die gewählten Plugins laufen. Werft also ruhig mal einen Blick auf die neue Plattform.

Related Links
format_list_numbered  Seite 1 Nächste navigate_next