Boehrsi.de - Blog

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
Bildquelle: pub.dev open_in_new

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

Flutter 2.0, Dart 2.12 und mehr Neuigkeiten

Erstellt am event Uhr von account_circle Boehrsi in label Development
Flutter 2.0, Dart 2.12 und mehr Neuigkeiten Bild

Ich nutze Flutter bereits seit langem und entsprechend schaute ich mir natürlich auch das gestrige Flutter Engage Event an. Die Neuigkeiten sind umfangreich und sehr positiv. Ich werde hier entsprechend nur die größeren Neuerungen anreißen und alle weiteren Informationen findet ihr wie gewohnt in den Related Links.
Flutter 2.0 wurde im Rahmen des Events nicht nur angekündigt, sondern auch direkt auf dem Stable Channel veröffentlicht. Dieses Update ist gemäß der Versionierung ein Major Update und bietet entsprechend auch große Änderungen. Flutter unterstützt nur Android, iOS, Web und Desktop in der stabilen Version. Der Desktop Support ist dabei zwar noch im Beta Status, kann aber direkt vom Stable Channel aus genutzt werden.
Auch Dart hat ein Upgrade erhalten und ist nun in Version 2.12 verfügbar. Dieses bringt euch unter anderem Dart FFI (Foreign Function Interface) Support, welcher einen einfachen und direkten Weg zu in C geschriebenen Plattformfunktionen ebnet. Ebenfalls neu ist der nun enthaltene Sound Safe Null Support, welcher ohne Probleme parallel mit unsicherem Code genutzt werden kann, wodurch die Migration wesentlich einfacher werden dürfte.

Related Links

Meine Statusseite - Entwickelt mit Hugo

Erstellt am event Uhr von account_circle Boehrsi in label Development
Meine Statusseite - Entwickelt mit Hugo Bild

Ich habe in den letzten Monaten häufiger mit Bulma im Kontext der Webentwicklung gearbeitet und das Open-Source-CSS-Framework zusammen mit Hugo, dem Static Site Generator meiner Wahl, genutzt. Resultat ist unter anderem meine Status Website open_in_new. Dieses kleine Projekt hat aber noch ein paar mehr Eigenheiten, denn abseits der eigentlichen Entwicklung nutzte ich bei diesem Projekt das erste Mal umfangreicher GitHub Actions fürs Deployment und GitHub Pages open_in_new fürs Hosting.

Related Links

GitHub Dependabot - Automatisierte Updateüberprüfung für Abhängigkeiten

Erstellt am event Uhr von account_circle Boehrsi in label Development
GitHub Dependabot - Automatisierte Updateüberprüfung für Abhängigkeiten Bild

Libraries machen das Leben von Entwicklern einfacher, denn man muss nicht alles selber schreiben und kann sich auf die eigentlichen Features einer Anwendung konzentrieren. Allerdings gibt man auch Kontrolle und Übersicht ab und entsprechend kann man sich Probleme einhandeln.
Um externe Abhängigkeiten automatisch auf dem neusten Stand zu halten gibt es Dependabot. Früher war Dependabot eine eigenständige Firma, mittlerweile ist man bei GitHub untergekommen, was die dortige Integration natürlich noch einfacher macht. Außerdem ist der Dienst nun komplett kostenlos.
Vor allem auf Sicherheitsupdates weißt Dependabot hin, denn häufig integriert man Abhängigkeiten, aktualisiert selbige aber nicht solange alles läuft. Dabei gehen Sicherheitsprobleme in den Abhängigkeiten natürlich unter. Im Fall eines erkannten Updates wir einfach ein Pull Request erstellt und alles folgt dem gewohnten Flow.
Unterstützt werden unter anderem Ruby, JavaScript, Python, Java (Gradle / Maven), .NET und Docker. Leider ist Dart und somit auch Flutter aktuell noch nicht mit von der Partie und soweit ich es erkennen kann ist derzeit auch nicht geplant das sich dies ändert. Das ist zwar sehr schade, aber durch die pub.dev open_in_new Plattform und das Tooling drum herum, kann man den Prozess der Überprüfung auf Updates hier zumindest teilautomatisiert umsetzen.

Related Links

GitHub Actions - Automatisierung leicht gemacht

Erstellt am event Uhr von account_circle Boehrsi in label Development
GitHub Actions - Automatisierung leicht gemacht Bild

Auch wenn ich auf meinem Server ein On-Premise Git Setup habe, welches kleine Aufgaben automatisiert übernimmt, so habe ich mittlerweile immer mehr GitHub Repositories und auch solche wollen automatisiert werden.
Für diese Zweck bietet GitHub mit seinem Actions Setup eine sehr gute und flexible Lösung, welche euch nicht nur viel Arbeit abnehmen kann, sondern auch sehr einfach zu nutzen ist. Aufgrund der Größe der Plattform gibt es bereits jetzt extrem viele Actions, die ihr nur eurem Repository hinzufügen müsst und schon geht es los. Ich nutze GitHub Actions z.B. um für meine Status Seite open_in_new (GitHub Repository open_in_new) automatisiert nach einem Push die Build und Deploy Schritte auszuführen.

Related Links

IntelliJ IDEA Conf steht an

Erstellt am event Uhr von account_circle Boehrsi in label Development
IntelliJ IDEA Conf steht an Bild

IntelliJ IDEA wird 20 Jahre alt und um das entsprechend zu feiern veranstaltet JetBrains, die Firma hinter IDEA, eine Entwicklerkonferenz. Selbige ist aus gegebenem Anlass natürlich rein digital und gleichzeitig auch kostenlos. Die IntelliJ IDEA Conf findet vom 25. bis 26. Februar statt und bietet an beiden Tagen jeweils sieben Vorträge.
Anmelden kann man sich direkt auf der Konferenzseite, sodass man an das Event erinnert wird. Wer keine Zeit hat kann die Sessions auch später anschauen, denn selbige werden aufgezeichnet. Da ich täglich IDEA und Android Studio nutze, bin ich durchaus gespannt, welche Neuigkeiten es gibt und wo vielleicht noch Verbesserungen vorgenommen werden. Solltet auch ihr Interesse haben folgt einfach den Related Links.

Related Links

Boehrsi.de - PNG Fallback wird entfernt

Erstellt am event Uhr von account_circle Boehrsi in label Development
Boehrsi.de - PNG Fallback wird entfernt Bild

Seit Ende 2019 nutzt mein Blog WebP als Standard Bildformat. Allerdings biete ich parallel noch PNG als Format an, da bis vor kurzem vor allem Apples Safari bzw. macOS nicht in der Lage war WebP Bilder zu verarbeiten. Dies änderte sich mit einem der letzten größeren Updates und entsprechend ist nun der Zeitpunkt gekommen die Dateigröße meines Blogs massiv zu verringern.
Durch diesen dualen Ansatz musste ich logischerweise jedes Bild doppelt auf meinem Server ablegen. Konkret bedeutet dies bei mir ca. 6000, statt 3000 Bilder und ca. 850 MB Platzverbrauch, statt ca. 400 MB.
Die Umstellung sollte für die meisten Nutzer ohne jegliche Änderung vonstatten gehen, denn ein extrem großer Anteil meiner Leser ist bereits seit langem mit Browsern unterwegs die WebP unterstützen. Für die kleine Anzahl an Nutzern mit älteren Safari / macOS Versionen tut es mir wirklich leid. Aber der Overhead, die duplizierten Bilder und die extra zum dynamischen Umschalten genutzten JavaScript Snippets, sind etwas zu viel des Guten im Jahre 2021, wenn es lediglich darum geht Bilder optimiert darzustellen.
Die Umstellung wird im laufe des ersten Quartals 2021 durchgeführt. Sobald alles konkreter wird, wird es eine weitere News geben.

Related Links

Postman - Version 8 erschienen

Erstellt am event Uhr von account_circle Boehrsi in label Development
Postman - Version 8 erschienen Bild

Erst vor wenigen Tagen schrieb ich über Postman und heute ist es schon wieder soweit. Grund dafür ist der Release der neuen Major Version 8.0. Die neue Version bringt eine komplett überarbeitete UI und eine vereinheitlichte Suche. Beides soll euch helfen schneller Dinge zu erledigen und zu finden.
Die neue UI, welche es natürlich auch im Dark Mode gibt, gruppiert und ordnet eure Inhalte besser an und erlaubt es euch verschiedene Bereiche der UI flexibel zu platzieren bzw. skalieren. Auf diese Art könnt ihr die UI gemäß euren Wünschen anpassen. Obwohl der Umbau durchaus umfangreich ist, konnte ich mich direkt wieder zurecht finden, insofern ist die Umgewöhnung also durchaus gut machbar. Die vereinheitlichte Suche soll euch auf einen Blick alle relevanten Informationen liefern, welche ihr dann gemäß euren konkreten Anforderungen filtern könnt.
Bis dato bin ich mit der neuen Version sehr zufrieden, auch wenn man natürlich bedenken muss, dass ich nur einen Bruchteil der verfügbaren Funktionen nutze. Entsprechend kann ich keine Meinung zum Gesamtbild abgeben. Allerdings habe ich nun zumindest angefangen mehrere Workspaces zu nutzen und ich habe verschiedene Einstellungen meinem Geschmack entsprechend angepasst. Wie sieht es bei euch aus, nutzt ihr auch Postman und seid ihr schon mit der neuen Version unterwegs.

Related Links

Flutter Engage - Bald gibt es Neuigkeiten

Erstellt am event Uhr von account_circle Boehrsi in label Development
Flutter Engage - Bald gibt es Neuigkeiten Bild

Aktuell gibt es viel Bewegungen in der Flutter Welt. Viele Anbieter von Third-Party-Plugins bringen neue oder stabile Versionen ihrer Tools (z.B. Stream Flutter SDK 1.0.0 Beta open_in_new), aber auch von offizieller Seite gibt es Neuigkeiten. Denn am 03.03.21 findet die Flutter Engage Online Konferenz statt, welche scheinbar sehr interessante Informationen für uns bereithalten soll. Bei Interesse könnt ihr den Related Links folgen und euch für weitere Infos beim Newsletter anmelden.
Abseits von eventuell stabilen Flutter Releases mit Dart Null Safety open_in_new, hoffe ich persönlich auf eine stabile Version der Flutter Integration für den Desktop open_in_new und dort vor allem für Windows. Aktuell arbeite ich an diversen kleinen Tools die auf dem Desktop laufen und Flutter nutzen, entsprechend würde ich mich über einen Release Mode sehr freuen. Doch worum es genau geht und ob die Neuigkeiten kleiner oder vielleicht sogar noch größer ausfallen, werden wir wohl erst im März erfahren. Ich freue mich auf das Event und halte euch auf dem laufenden.

Related Links
navigate_before Vorherige format_list_numbered  Seite 20 Nächste navigate_next