I'm a coder - Code Quality != true

Software kann in sehr unterschiedlichen qualitativen Zuständen sein. Manchmal startet man bei Null und kann alles frisch und gut entwickeln, mal übernimmt man eine betagte Legacy Software und manchmal findet man eine gut dokumentierte und gepflegte Software zum weiterentwickeln vor.
Sowohl in privaten, wie auch in professionellen oder Open Source Projekten findet man diese verschiedenen Typen und diverse Abstufungen von selbigen, zum guten und zum schlechten. Ich war bis dato meist an frischen Projekten beteiligt, wo ich die Architektur mit definierte und die Konzepte tiefgehend Verstand. Bereits laufende Projekte betreute ich ebenfalls, meist aber nicht extrem tiefgehend oder aber die Projekte waren durchaus gut strukturiert und verständlich.
Mit diesen Ansätzen und den entsprechenden Aufgaben konnte ich gut umgehen, doch aktuell stehe vor einer neuen Herausforderung, die meiner Meinung nach eine Erwähnung wert ist. Denn als Entwickler wird man über selbige früher oder später stolpern und man sollte auch mit dieser umgehen können.
Es geht um Software die gewachsen ist, über lange Zeit und vielleicht nicht die Liebe und Zuneigung erfahren hat die sie sollte. Software die einen manchmal mit der Stirn runzeln lässt und manchmal möchte man das Keyboard liebevoll in viele kleine Teile zerschmettern.
Bulma CSS Framework - Mein erstes Fazit

Ich interessiere mich neben der App-Entwicklung bekanntlich auch für die Erstellung von Webseiten, wie vielleicht dieser Blog zeigt. Generell arbeite ich gerne mit wenig externen Abhängigkeiten in diesem Bereich, doch manchmal sollte man ja auch etwas neues ausprobieren.
Mit einem Kollegen zusammen erstelle ich hin und wieder kleinere Webprojekte und zuletzt haben wir uns entschieden, auch in diesem Bereich auf den Static Site Generator Hugo zu wechseln. Zur Vereinfachung der Layout-Entwicklung wurde vorgeschlagen ein CSS Framework zu nutzen, worauf ich aus oben genannten Gründen erst einmal skeptisch reagierte. Nach diversen Reviews und Test entschieden wir uns aber Bulma eine Chance zu geben und bis dato bin ich durchaus zufrieden.
Bulma ist ein CSS Framework, welches diverse Basis Komponenten, Layout Strukturen und kleinere Elemente liefert. Das ganze ohne unnötiges JavaScript, dafür aber modular und direkt mittels einer einzelnen CSS Datei nutzbar. Für mich persönlich war ebenfalls wichtig, dass man vorhandene Komponenten ohne großen Aufwand anpassen kann. Auch hier steht Bulma nach meinen ersten Tests sehr gut da. Denn ich lud mit lediglich die neuste Version herunter, welche diverse SASS Dateien beinhaltet, importierte selbige mit einer Zeile in meiner SASS / SCSS Datei und überschrieb die gewünschten Variablen. Diese Variablen, wie auch fast alles andere, sind extrem gut dokumentiert, was ein massiver Pluspunkt im Vergleich zu einigen anderen CSS Frameworks ist.
Bis dato probierte ich vor allem mit kleineren Projekten herum und ein umfangreicher Test mit einem sehr komplexen Custom Layout steht noch aus, doch zur Zeit bin ich sehr zufrieden mit Bulma als CSS Framework. Habt auch ihr schon mit CSS Frameworks gearbeitet und wenn ja, was nutzt ihr am liebsten?
Humble Book Bundles: Cloud und Productivity

Es gibt wieder zwei spannende Humble Book Bundles zu den Themen IT und Technik. Selbige möchte ich euch heute vorstellen. Wir fangen mit dem noch knapp sieben Tage lang aktiven Humble Book Bundle: AWS, Azure, Google, and Cloud Security an, welches euch Inhalte im Wert von über 700 Dollar beschert. Ihr erhaltet unter anderem Official Google Cloud Certified Associate Cloud Engineer Study Guide, Amazon Web Services for Mobile Developers: Building Apps with AWS und Microsoft Azure Infrastructure Services for Architects: Designing Cloud Solutions. Die Inhalte sind auf drei Stufen verteilt. Einsteigen kann man bereits ab 0,85 € und falls ihr alle Inhalte wollt sind mindestens 12,81 € fällig.
Das zweite Bundle ist noch ca. 14 Tage lang verfügbar und hört auf den Namen Humble Book Bundle: STEM Productivity Library by Mercury. Auch hier gibt es wieder drei Stufen, kostentechnisch verteilt zwischen 0,84 € und 12,74 €. Thematisch ist dieses Bundle etwas breiter aufgestellt, denn es gibt hier alles vom 3D Druck, über künstliche Intelligenz, bis hin zu Datenanalyse und CAD. Ihr könnt Inhalte im Wert von über 1000 Dollar erhalten und mit dabei ist z.B. Python Programming, Software Quality Assurance und Industrial Engineering Foundations.
Mal wieder zwei bunt gemischte Bundles, welche hoffentlich für den einen oder anderen von euch interessant sind. Alle Humble Bundle Links sind Affiliate- / Partner-Links die meinen Blog unterstützen.
Humble Book Bundle: iOS & Android Mobile Development

Im Jahre 2020 Apps entwickeln zu können ist nicht das schlechteste, kann ich aus Erfahrung sagen. Solltet auch ihr in diesem Bereich Interesse haben, schaut euch doch mal das Humble Book Bundle: iOS & Android Mobile Development by Packt an. Es ist noch ca. elf Tage lang verfügbar und bringt euch Bücher und Videos im Wert von über 1000 €.
Die erste von drei verfügbaren Stufen erhaltet ihr bereits ab 0,84 €. Die Stufen zwei und drei schlagen mit 6,78 €, respektive 12,72 € zu Buche. Unter anderem gibt es in diesem Bundle Android Programming with Kotlin for Beginners, SwiftUI - Build Beautiful, Robust, Apps und Mastering Swift 5 zu holen.
Neben Büchern sind auch einige Videos verfügbar und zusätzlich zu den nativen Entwicklungsplattformen gibt es auch Inhalte zu z.B. Flutter, React Native und Xamarin. Die Auswahl ist vielschichtig und solltet ihr in diesem Bereich etwas unternehmen wollen, dürfte ein Blick in dieses Bundle definitiv nicht schaden. Alle Humble Bundle Links sind Affiliate- / Partner-Links die meinen Blog unterstützen.
Flutter Version 1.22 erschienen

Es gibt wieder spannendes aus der Flutter und Dart Welt zu berichten, denn seit letzter Woche ist Flutter 1.22 verfügbar. Die neue Iteration von Googles Cross-Platform UI Toolkit wird zusammen mit Dart 2.10 open_in_new ausgeliefert und bietet einiges Neues.
Allem voran kann man mit der neuen Version Support für iOS 14 und Android 11 erwarten, wodurch Flutter auch auf den jeweils neusten mobilen OS Versionen genutzt werden kann. In diesem Zuge wurden auch die verfügbaren iOS Icons massiv erweitert und aktualisiert. Unter Android werden nun flexiblere Aussparungen für Kameras und Seitenränder unterstützt, sowie flüssigere Animationen in Verbindung mit dem virtuellen Keyboard. Ebenfalls neu ist der Support für die aktualisierten Material Design Buttons open_in_new.
Im Bereich Internationalization (i18n) und Localization (l10n) ist nun Hot Reload Support vorhanden und diverse weitere Verbesserungen wurden vorgenommen. Hier könnte das neue characters Package open_in_new hilfreich sein.
I'm a coder - Make a plan, stick to the plan, adapt the plan

Als Softwareentwickler hat man viele Wege um ans Ziel zu kommen und auch die Art und Weise wie man selbige Wege beschreitet ist vielschichtig. Ich persönlich bin ein Freund davon erst einen Plan zu machen und selbigen später auszuführen. Anpassungen an selbigem sind natürlich an der Tagesordnung, aber blind drauflos programmieren ist nicht so mein Fall. Dies gilt vor allem wenn ich an größeren und komplexeren Projekte arbeite. Denn in selbigen ergeben sich bei spontanen Änderungen gerne Seiteneffekte, welche bekanntlich ungern gesehen sind.
Doch so schön es ist diese Idee für den generellen Ablauf zu haben, manchmal sollte man sich daran erinnern die eigenen Ansätze auch konsequent zu verflogen. Denn sind wir nicht alle manchmal wie eine Feder im Wind? Vor allem wenn es darum geht etwas Neues zu machen, vielleicht sogar in einer neuen Sprache, mit einem neuen Framework oder etwas anderes motivierendes steht an. So passierte es mir beim Umbau / Ausbau einer alten Library aus einem Projekt und damit verbunden der Umstellung von Java auf Kotlin.
Flutter - Windows Alpha Support erschienen

Nach längerem Warten ist es nun soweit, Flutter Apps können nun auch unter Windows ausgeführt werden. Während Android und iOS von Anfang an Bord waren, wurden die Desktopsystem Stück für Stück nachgereicht. Angefangen mit MacOS und gefolgt von Linux. Windows war bis dato nur als Tech-Preview verfügbar, was für mich etwas zu gewagt war, auch wenn es nur um private Projekte geht.
Seit vorgestern ist es nun soweit und Windows wird über den dev
Channel von Flutter als Alpha Version unterstützt. Für mich bedeutet dies endlich gute Desktop-Anwendungen, ohne Legacy UI mit problematischen UI-Generatoren und ähnlichem. Bis dato war ich mit Java und verschiedenen Tools drum herum unterwegs, um Desktop-Programme mit UI zu entwickeln, doch dies war leider nie sonderlich zielführend. Ich kam zwar meist zu nutzbaren Ergebnissen, aber der Weg dahin und auch die Pflege der Projekte, war meist eher unangenehm.
Flutter bietet mir hier nun eine Basis, die für mich persönlich ein Vielfaches flexibler und praktischer ist. Während ich im Android-Bereich an Java bzw. Kotlin für einige Projekte festhalten möchte und auf der Serverseite ohnehin mit Kotlin glücklich bin, werde ich Java auf dem Desktop wohl komplett Ad acta legen. Flutter wird hier für mich die Basis für folgende Projekte werden und wenn auch ihr Interesse an diesem Ansatz habt, der Weg dahin ist nicht sonderlich kompliziert. Bei der folgenden Beschreibung gehe ich davon aus, dass ihr bereits ein grundlegendes Flutter Setup open_in_new, z.B. für die Andorid-Entwicklung, betreibt.
Jetpack Compose Alpha erschienen

Falls ihr Android Apps entwickelt und gerne etwas agiler und effektiver beim Erstellen des User Interfaces wärt, schaut euch doch mal Jetpack Compose an. Die Jetpack Komponenten sind seit einiger Zeit die große neue Basis für moderne Konzepte im Android-Kosmos. In diesem Bereich wurde vor ca. zwei Wochen nun die erste Alpha der Jetpack Compose Bibliothek veröffentlicht.
Jetpack Compose bietet Entwicklern die Möglichkeit nativ und direkt im Kotlin Code UIs zu entwickeln. Keine XML Dateien mehr, kein Mapping, Data Bindung oder ähnliches. Auch wenn Jetpack Compose aktuell nur als Alpha verfügbar ist, für Entwickler dürfte es interessant sein eine UI im Code beschreiben zu können und das System abhängig vom Zustand alles automatisiert zusammenbauen zu lassen.
Um sich das Ganze etwas näher anzusehen gibt es einiges Codelabs und Sample Apps. Diese und auch der Link zum benötigten Setup (aktuell werden Canary Builds von Android Studio benötigt) findet ihr in den Related Links.
Ich finde den Ansatz sehr gut, da ich durch Flutter ähnliche Ideen gewohnt bin und aktuell sehr gut mit selbigen klar komme. Ich bin gespannt ab wann die Jetpack Compose API komplett stabil sein wird und wie gut das Ganze im Alltag funktionieren wird. Ich werde mir das Ganze auf jeden Fall aktiv weiter ansehen.
.gitignore Dateien leicht gemacht mit gitignore.io

Aktuell erstelle ich gerade das eine oder andere Git Repository für verschiedene Projekte. Fülle ich selbige nun gibt es die eine oder andere Datei die initial direkt auf die .gitignore
Liste sollte.
Entsprechend gehe ich auf die Suche in offiziellen Repositories der jeweiligen Sprache / Build-Tools / Dependency-Management-Tools und natürlich auch auf Stack Overflow. Dort findet man verschiedene Teile der Lösung und zusammen mit meinem bestehenden Wissen bekomme ich meist eine recht gute initiale Lösung, welche dann über Zeit optimiert werden kann.
Wer allerdings etwas weniger suchen und mehr finden will, kann mal gitignore.io ausprobieren. Selbiges ist ein Dienst über den ich gestern gestolpert bin und welcher basierend auf von euch definierten Keywords eine .gitignore
Datei erstellt. Die Auswahl der vorhandenen Keywords ist dabei groß und mehrere von ihnen können kombiniert werden. Auf diese Weise kann man mit sehr wenig Aufwand die entsprechenden Filterregeln erstellen.
Solltet ihr mit Git arbeiten und hier und da neue Projekte an den Start bringen, kann ich euch einen Blick auf gitignore.io nur empfehlen. Das Projekt selbst ist übrigens ebenfalls Open Source. Alle relevanten Links zum Thema findet ihr wie gewohnt in den Related Links.
I'm a coder - Doku Doku Doku

Dokumentationen sind wichtig und man sollte sie vor allem in professionellen Projekten mit größeren Teams sehr gut pflegen. Diesen oder einen ähnlichen Satz hört man als Entwickler häufiger und das mit Recht. Denn wie soll jemand neues Wissen wie ein Tool funktioniert oder wie man einen Release Build der App anstößt ohne etwas Dokumentation.
Also auch wenn Dokumentationen schreiben vielleicht nicht die dankbarste Aufgabe ist, in diesem Bereich der Softwareentwicklung ist ein gewisses Bewusstsein für derartige Dinge vorhanden.
Doch wie sieht es mit privaten Projekten aus, die man nebenbei baut und vielleicht als Prototyp liegen lässt? Hier gibt es meistens keine Dokumentation, keine weiteren Hilfen oder ähnliches. Dabei ist es egal ob das kleine Projekt ein Prototyp bleibt oder ob etwas aktiv Genutztes draus wird.