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.
Suche und Kommentare - Kotlin all the way

Nachdem ich in der letzten Zeit eher wenig Raum für Kotlin hatte und entsprechend wenig entwickelt und auch wenig hier im Blog berichtet wurde, versuche ich selbiges nun zu ändern. Der Hauptgrund dafür ist ein geplanter Umbau von Produktiv-Komponenten meines Blogs, also der Suche und der Kommentare. Dort wird es Zeit für Optimierungen und die Suche hätte gerne ein paar Bugfixes.
Generell will ich außerdem mein aktuelles Setup mit expliziten Micro-Services etwas aufweichen. Grund dafür ist allem voran ein hoffentlich geringerer Speicherverbrauch und eine vereinfachte Verwaltung von allgemeineren Code-Teilen meiner Services. Denn während große Seiten hochskalierbare Services brauchen, reicht bei mir ein simpleres Setup. Trotzdem mag ich die Unabhängigkeit und werde definitiv nicht zurückkehren zum Monolithen des Grauens.
Neben der Entwicklung der neuen Kotlin Komponenten plane ich Blog Beiträge zum eigentlichen Code und Hintergrundinformationen zum eigentlichen Prozess mit euch zu teilen. Wie gut das Ganze funktioniert werden wir sehen, aber generell gilt natürlich wie immer, falls ihr Fragen oder Anregungen habt, meldet euch gerne in den Kommentaren.
Byteconf Flutter Konferenz - Sessions sind online

Vor ein paar Wochen berichtete ich bereits über die kostenlose Flutter Messe Byteconf Flutter 2020. Heute möchte ich das Thema noch einmal aufgreifen, denn die Videos aller Sessions sind nun verfügbar. Ihr findet sie als handliche Youtube Playlist in den Related Links.
Entspannte 13 Videos bieten einen bunten Einblick in die Flutter Welt. Mit Workshops und allgemeinen Sessions werdet ihr an diverse Themen herangeführt und könnt einiges lernen. Von Animationen und neuen Widgets, bis hin zu Portierungsansätze für existierende Android und iOS Apps ist alles dabei. Die Videos sind dabei zum Großteil nicht übermäßig lang, sodass man sie auch zwischendurch gut anschauen kann. Falls Flutter für euch ein relevantes Thema ist, werft doch mal einen Blick auf die Playlist.
Nutzt Git, es lohnt sich

Sobald man in der Softwareentwicklung unterwegs ist, ist SVN oder eher Git quasi ein selbstverständliches Tool und das aus gutem Grund. Ich persönlich nutze Git mittlerweile für quasi alles was ich tue. Dabei muss nicht immer ein Remote Server vorhanden sein, auch ein lokales Git kann schon diverse Aufgaben erfüllen und bei Problemen helfen.
Denn egal ob es darum geht zu wissen wann man welche Änderung an Dokumenten oder Code vorgenommen hat oder ob man vielleicht einen alten Stand eines Dokuments braucht, Git hilft. Vielen ist es vielleicht gar nicht bewusst, aber hierfür reicht es lokal Git zu installieren. Natürlich hat man im Falle eines Festplatten-Crashs dann kein Backup und gemeinsam versioniert an Dateien arbeiten geht auch nicht, aber das ist nun einmal auch nicht immer gefragt.
Hat man nun noch einen Server zur Hand, kann man unter anderem auch noch die genannten Punkte abdecken. Doch worum es mir in diesem Beitrag eigentlich geht, ist die Einfachheit von Git, sofern man den generellen Einstieg geschafft hat. Man kann Datenverlust verhindern, Datenkonsistenz und die Nachvollziehbarkeit von Änderungen ohne viel Aufwand gewährleisten und das ohne diverse verschiedene Softwarelösungen zu installieren. Auch wenn das eine oder andere zusätzliche Git GUI Tool open_in_new sicherlich nicht schadet.
Ich kann jedem, auch Nicht-Software-Entwicklern, nur raten sich mal mit Versionskontrolle durch Git auseinanderzusetzen. Lasst euch nicht vom initialen Overhead entmutigen, das Ergebnis lohnt sich. So zumindest meine persönliche Erfahrung.
Falls ihr darüber hinaus auch einen Remote Server nutzen wollt, schaut euch doch mal GitHub open_in_new oder GitLab open_in_new an, beide Plattformen sind dabei vor allem für die Softwareentwicklung gedacht.
Neue Kategorie - Flutter

Da ich in den letzten Monaten durchaus viel Content zum Thema Flutter erstellt habe, gibt es nun die passende Kategorie dazu. Ich habe rückwirkend alle relevanten Beiträge hinzugefügt.
Auf diese Weise könnt ihr ohne großes Suchen alles zum Thema Flutter hier im Blog finden. Zusätzlich gibt es auch noch meine Flutter App Development Sammlung, für eine etwas konkretere Themenfilterung.
Im Projektebereich werdet ihr in der Zukunft außerdem ebenfalls einiges zum Thema Flutter finden. Dort plane ich sowohl Closed-, wie auch Open-Source Apps und eine Website zum Thema Flutter habe ich derzeit auch in der Mache.
Falls ihr Ideen, Anregungen oder Feedback habt meldet euch übrigens gerne direkt in den Kommentaren. Ich freue mich bekanntlich immer über frischen Input und andere Blickwinkel.
FlutterFire - Updates für die Firebase Plugins

Auch wenn ich immer noch nicht zu meinem Flutter - The Good, the Bad and the Ugly Beitrag gekommen bin, gibt es heute etwas aus dem Flutter + Ugly Kontext, allerdings mit sehr positiven Entwicklungen.
Eine der Sachen die mich im Flutter Bereich stört, ist der teilweise nicht qualitativ hochwertige Support für First-Party-Plugins. Speziell habe ich hier die Firebase Plugins im Auge. Auch Google war scheinbar der Meinung, dass es keine gute Idee ist diese Plugins - für eine so relevante Platform wie Flutter - nur nebenbei zu pflegen und so schloss man sich mit Invertase zusammen. Invertase ist eine Consulting-Firma mit viel Flutter und Dart Knowhow, welche nun seit einiger Zeit an neuen Versionen der meisten Firebase Plugins für Flutter arbeitet.
Ein erstes Ergebnis zeigt sich bereits, denn überarbeitete Versionen des FlutterFire Core, Cloud Firestore und Authentication Plugins stehen nun zur Verfügung. Alle überarbeiteten FlutterFire Plugins werden auf dem neuen Core basieren und somit ein einheitliches Setup und einheitliche APIs bereitstellen.
Ebenfalls Fortschritte gibt es im Bereich Crashlytics, Cloud Storage und Cloud Functions. Hier ist man entweder gerade dabei den Rewrite voranzubringen oder aber man ist bereits in der Review-Phase angekommen.
Cloud Messaging (FCM) und Realtime Database erhielten bis dato erste Updates, um mit dem neuen FlutterFire Core zu funktionieren. Der Rewrite dieser beiden Komponenten steht allerdings noch aus. Für mich ist besonders FCM relevant, um ordentliche und stabile Push-Nachrichten bereitstellen zu können.
Falls ihr mehr Informationen zum Thema erfahren wollt, folgt einfach den Related Links. Dort habe ich sowohl die Blog-Beitrag, wie auch das Repository und den Übersichts-Issue verlinkt.
Flutter Architektur Dokumentation

Ein Cross-Platform-Setup für Anwendungen zu nutzen bedeutet immer abzuwägen, wie sinnvoll eine solche Lösung im Vergleich zur nativen Implementierungen ist. Dafür ist es natürlich gut grundlegende Abläufe und Strukturen der jeweiligen Cross-Platform-Lösung zu kennen.
Für Flutter gibt es in diesem Bereich ein sehr umfangreiches Dokument. Dort könnt ihr mehr zu den verschiedenen Architektur-Layern erfahren und so z.B. lernen wie die Einbettung der Engine und des Frameworks selbst auf den eigentlichen Hostsystemen funktioniert.
Zusätzlich gibt es Informationen zum Reactive User interface Konzept, welches Flutter verfolgt. In diesem Kontext gibt es unter anderem mehr zum Thema State Management und wie der State eines Widgets eigentlich funktioniert.
Ebenso kann man sich bezüglich den Widgets selbst und dem Rendering- und Layouting-Flow informieren. Hier gibt es z.B. Erklärungen zum Ablauf der eigentlichen UI Erstellung in Bezug auf die Grafikkarte und wie das ganze System generell funktioniert.
Ein weiterer Baustein ist die Kommunikation mit dem Hostsystem. Hier gibt es mit Platform Channels und das Foreign Function Interface (FFI) verschiedene Wege, um mit verschiedenen Komponenten eines Systems zu kommunizieren. Dieser Bereich ist vor allem wichtig, wenn ihr komplexere Apps mit speziellen Funktionen implementieren wollt, denn in diesem Bereich seid ihr häufig auf APIs o.ä. angewiesen, die nur auf dem Hostsystem direkt genutzt werden können.
Ich habe das Dokument zum Teil überflogen, bestimmte Teile genauer gelesen und einiges sehr tiefgehend angeschaut, je nach aktuellem Wissensbedürfnis. Solltet ihr im Flutter Bereich aktiv sein, kann ein grundlegender Blick in diese Dokumentation denke ich nicht schaden.
Byteconf Flutter Konferenz

Solltet ihr Interesse an Flutter haben, so kann ich euch die heutige Byteconf Flutter 2020 Konferenz ans Herz legen. Das Event ist kostenlos, findet online statt und den Link zur Anmeldung findet ihr in den Related Links.
Gestern ging es bereits mit einigen Workshops los und das dazugehörige Video findet ihr direkt im unteren Teil dieser News. Unter anderem wurde über Bloc & Cubit gesprochen, eine Einführung für neue Flutter Entwickler gegeben und außerdem vorgestellt wie eine Kotlin Multiplatform Library mit Flutter harmonieren kann.
Heute gibt es dann diverse Talks zu verschiedensten Flutter Themen. Unter anderem sind Flutter Animationen, Flutter unter Linux und das neue InteractiveViewer Widget mit dabei. Starten werden die Talks heute um 18:00 Uhr und die Show wird vermutlich bis ca. 24:00 Uhr gehen. Ich werde versuchen mir einige Sessions live anzusehen und die restlichen via Youtube nachzuholen.

