Boehrsi.de - Blog

Mobile Developer's Guide to the Galaxy Version 18 erschienen

Erstellt am event Uhr von account_circle Boehrsi in label Development
Mobile Developer's Guide to the Galaxy Version 18 erschienen Bild

Wie schon in den letzten Jahren freue ich mich auch im dahinscheidenden Jahr 2019 sehr darüber, über eine neue Version des Mobile Developer’s Guide to the Galaxy berichten zu dürfen.
Der Mobile Dev Guide bietet euch einen breiten Einstieg in die Welt der mobilen Entwicklung. Inhalte zu allen großen Plattformen, Hintergrund Informationen und generelle Themen wie Marketing und UX Design erwarten euch. Die 18. Version ist ab jetzt verfügbar und kann kostenlos heruntergeladen werden.
Auch dieses Jahr habe ich wieder am Guide mitgearbeitet und zeichne mich verantwortlich für den Großteil des Android Kapitels, weswegen ich den Guide persönlich natürlich noch etwas interessanter finde. Aber auch euch da draußen kann ich nur empfehlen einen Blick hinein zu werfen. Denn mit über 20 Autoren und sehr schönen Illustrationen, dürfte der Mobile Dev Guide für viele von euch interessant sein.
Solltet ihr Interesse an einer gedruckten Version haben, gibt es auch dafür auf der Mobile Developer’s Guide Website eine Möglichkeit. Folgt einfach den Related Links, dort findet ihr alle weiteren Informationen.

Related Links

I'm a coder - Review rejected

Erstellt am event Uhr von account_circle Boehrsi in label Boehrsi
I'm a coder - Review rejected Bild

Es wird mal wieder Zeit für eine I’m a coder News und das heutige Thema werden Reviews sein. Selbige sind extrem wichtig für die Qualität einer Software, welche mitunter maßgeblich durch die eigentliche Codequalität definiert wird. Denn vor allem über längere Zeit ist Software mit guter Codequalität besser wartbar, erweiterbar und erlaubt einen einfacheren Einstieg für neue Entwickler. Reviews sind wichtig, doch auch schwierig und zeitaufwendig. Entsprechend gehen sie manchmal unter, werden nur halbherzig gemacht oder sind zu streng bzw. zu nachsichtig. Hier einen guten Mittelweg zu finden ist schwer, aber extrem wichtig. Nachdem man die eigentlichen Änderungen verstanden und die Funktionalität überprüft hat, folgt der meiner Meinung nach schwerste Teil. Denn nun muss man die Validierung bezüglich der Einhaltung von Coding Guidelines und Naming Vorgaben durchführen.

User generated Links markieren

Erstellt am event Uhr von account_circle Boehrsi in label Development
User generated Links markieren Bild

Wer eine Website betreibt, die auch mit Content von Nutzern umgehen muss, der sollte sich vor allem im Bereich von Links vorbereiten. Spam-Bots oder unlustige Individuen verbreiten gerne Links zu diversen Ecken im Internet, die man nicht auf der eigenen Website haben möchte. Hier muss man entweder Software nutzen oder entsprechend moderieren und sie entfernen.
Es gibt aber auch die Links die generell in Ordnung sind, bzw. nicht per se gelöscht werden müssen. Trotzdem möchte man natürlich verhindern, dass der eigene Kommentarbereich als Werbeplattform von Usern genutzt wird, um deren PageRank zu erhöhen. Hier kann man natürlich auch rigoros löschen oder sich des einen oder anderen Tricks bedienen. HTML Link Elemente (<a> Tag) mit einem rel=“nofollow” ausstatten ist dabei eine beleibte Möglichkeit, doch es gibt mittlerweile sogar spezifischere Tags. Denn mit dem rel=“ugc” Tag kann man Google nun konkret sagen das es sich um User Generated Content handelt. Ich habe meine Linkfelder in den Kommentaren entsprechend ausgestattet und falls auch ihr dies tun wollt, in den Related Links findet ihr weitere Informationen.

Related Links

Flutter Interact mit vielen Neuerungen

Erstellt am event Uhr von account_circle Boehrsi in label Development
Flutter Interact mit vielen Neuerungen Bild

Vorgestern fand die Flutter Interact 2019 statt und brachte sehr viele neue und interessante Inhalte und Änderungen für das UI Framework Flutter und auch Dart, als die Sprache dahinter. Zum einen wurde eine neue Flutter Version veröffentlicht.
Die Version 1.12.13 bietet neue Widgets und iOS UI Verbesserungen, inklusive des Dark Modes. AndroidX wird nun als Standard für native Android Komponenten verwendet und die Integration von Flutter in native Apps, bzw. als Standalone-App wurde verbessert. Außerdem ist es nun extrem einfach Google Font Packages in Flutter zu nutzen, ähnlich wie man es bereits aus dem Web kennt. Abgesehen von den Features wurden diverse Fehler behoben, die Performance teils stark verbessert und sogar ein Pull Request von mir befindet sich in diesem Release. Auch wenn es sich nur um eine Kleinigkeit handelt, freue ich mich sehr darüber.

Related Links

I'm a coder - Code-Klarheit vs. Boilerplate Minimierung

Erstellt am event Uhr von account_circle Boehrsi in label Boehrsi
I'm a coder - Code-Klarheit vs. Boilerplate Minimierung Bild

In der letzten Zeit Wechsel ich oft zwischen Programmiersprachen, Projekten und Frameworks hin und her. Grund dafür ist unter anderem Flutter open_in_new als neues Framework für professionelle und private Projekte, aber auch Kotlin open_in_new als moderner Ersatz für Java. Nun hat man aber auch aktive Projekte (auch wenn ich mein Projekt FileSize gerade beendet habe) und entsprechend puren Java Code oder Android Projekte mit Java Basis. Bedenkt man nun noch Libraries die z.B. Annotation Processing betreiben, also z.B. Lombok open_in_new oder ObjectBox open_in_new, so gibt es einiges zu beachten.
Daraus ergibt sich häufiges umdenken und öfters auch Fehler, denn gerade wenn man in ein laufendes, aber nicht so aktiv gepflegtes Projekt schaut, welches viele spezielle Dinge benutzt, optimiert man gerne mal Code aus Unwissenheit weg. So passierte es bei mir, dass ich Default-Konstruktoren entfernte, da sie nicht genutzt wurden, ObjectBox diese aber für den generierten Code und die Initialisierung der Objekte in selbigem brauch. Entsprechend werde ich für mich versuchen für nicht implizit klare Dinge wieder mehr auf Kommentare zu setzen. Normalerweise schreibe ich quasi keine Kommentare und sorge dafür dass der Code für sich selbst spricht, doch nutzt man mehrere komplexe Libraries die Boilerplate Code entfernen, kann häufig die Klarheit des Codes leiden.
In einem solchen Fall hat man also einen Vorteil durch weniger Code, aber auch einen Nachteil durch weniger klare Codestrukturen. Kommentare können hier hilfreich sein und ohne viele unnötige Zeilen Code diese Wissenslücke füllen. Mich würde interessieren, wie ihr derartige Dinge löst. Verzichtet ihr generell auf Tools, die zu viel Codestruktur abstrahieren bzw. verbergen oder nutzt ihr andere Ansätze, bzw. schreibt ihr lieber mehr Boilerplate Code, solange selbiger dann besser verständlich ist?

Umstellung auf WebP

Erstellt am event Uhr von account_circle Boehrsi in label Development
Umstellung auf WebP Bild

Ich bin ein Fan von Optimierungen und das noch relative neue Bildformat WebP ist definitiv eine Optimierung. Mittels modernem HTML ist eine Umstellung relativ einfach, denn mittels dem picture open_in_new und source open_in_new Tags ist es möglich WebP Bilder und JPGs und PNGs für nicht kompatible Systeme gleichzeitig auszuliefern.
In den letzten Tagen habe ich in mehreren Schritten alle Bilder in meinem Blog auf WebP umgestellt. Ausgenommen sind davon lediglich Bilder die ich innerhalb von Beiträgen eingebunden habe. Der einzige Grund dafür ist meine Zeit, denn hier muss einiges manuell gemacht werden. Die Header Bilder von Beiträgen, Sharing-Icons und weitere Bilder konnte ich relativ einfach durch Anpassung meiner Themes austauschen. Um WebP Bilder anbieten zu können, bin ich in drei Schritten vorgegangen:

Related Links

Boehrsi.de - Komplettausfall

Erstellt am event Uhr von account_circle Boehrsi in label Development
Boehrsi.de - Komplettausfall Bild

Gestern Abend gegen 19 Uhr verabschiedete sich mein Server ins Nirwana. Die Webseiten, Dienste und auch Zugriffsmöglichkeiten via z.B. SSH waren nicht mehr verfügbar. Der Server schien komplett offline oder zumindest vom Netz getrennt, denn auch ein guter alter Ping kam nicht mehr durch.
Nach einem kurzen Telefon mit Strato wurde mir mitgeteilt, dass laut internem Monitoring der Server online ist und ich mit dem Repair-System versuchen sollte mehr herauszufinden. Ich startete kurze Zeit später selbiges Repair-System und konnte meine Festplatten. Um einem eventuellen Datenverlust vorzubeugen, z.B. bei einem Hardwareschaden, startete ich ein Backup, welches über Nacht aktiv war.
Seite ca. 7 Uhr heute Morgen ist der Server nun wieder online. Nach dem erfolgreichen Backup startete ich den Server ohne weitere Änderungen im normalen Bootmodus neu. Aus diesem Grund vermute ich interne Probleme bei Strato führten zum Ausfall, denn auch meine Server Logs gaben keinerlei Fehler oder ähnliches Preis.
Dies war meine erste Auseinandersetzung mit dem Server-Repair-System (minimales Linux, welches via SSH genutzt wird und auf die Hardware Ressourcen des eigentlichen Servers zugreifen kann, um z.B. Festplatten zu mounten), welches mir erlaubt mein System im nicht aktiven Zustand zu verwalten und Notfallmaßnahmen einzuleiten (Fehlerlogs auslesen, Backups erstellen usw.). Das Ganze funktionierte sehr gut und auch die Dokumentation die Strato bereitstellt (z.B. zum Thema Datenzugriff über das Repair-System open_in_new) muss ich an dieser Stelle loben. Ich fand alles relativ schnell und problemlos und konnte alles gewünschte umsetzen.

Related Links

Kotlin lernen - Advanced Android with Kotlin

Erstellt am event Uhr von account_circle Boehrsi in label Development
Kotlin lernen - Advanced Android with Kotlin Bild

Bis Ende des Jahres ist es mein Ziel grundlegend produktiv mit Kotlin zu sein. Dabei schaue ich mir Dinge wie Learn Kotlin by Example open_in_new, Tutorials und auch konkrete Kurse an. Bezogen auf die Kurse gibt es dabei etwas Neues von Google. Der Kurs Advanced Android with Kotlin open_in_new ist noch ziemlich neu und zielt wie der Name schon sagt auf eher fortgeschrittene Nutzer ab.
Falls ihr etwas entspannter anfangen wollt ist vielleicht das Kotlin Bootcamp for Programmers open_in_new oder Kotlin for Android Developers open_in_new etwas für euch. Ich werde mir die Kurse auf jeden Fall auch mal ansehen, weiß aktuell aber noch nicht ob ich sie komplett durcharbeiten werde. Denn der Advanced Kurs ist z.B. mit einem Zeitraum von zwei Monaten geplant, was für mich doch etwas langwierig wäre.
Für mich ist es wichtig neue Sprachen, Frameworks und ähnliches mit einem konkreten Ziel zu lernen. Also ein Projekt zu haben, welches ich umsetzen und wirklich nutzen möchte. Wenn es nur lernen des Lernens wegen ist, steigt mein Gehirn meist sehr schnell aus. Deswegen bin ich froh dass ich schon eine Idee für ein kleines Projekt habe, nämlich einen weiteren Micro Service. Mal schauen wie es läuft und ob es bei einem Test-Projekt bleibt oder ob das gute Stück wirklich das Licht der Welt erblicken wird.

Related Links

Android Dev Summit - Sessions sind online

Erstellt am event Uhr von account_circle Boehrsi in label Development
Android Dev Summit - Sessions sind online Bild

Die Android Dev Summit ist seit ca. einem Monat vorbei und wer ähnlich wie ich nicht nach Kalifornien reisen konnte, darf sich zumindest über den Upload aller Sessions des Events freuen. Neben den sicherlich interessanten Keynotes, werde ich mir vor allem alles rund um die neuen Jetpack Komponenten anschauen und versuchen ein paar Kotlin Neuigkeiten zu bekommen.
Vielleicht gibt es ja auch ein paar Worte zum Thema Flutter. Aber selbst wenn nicht, ich denke mindestens die Hälfte der aktuell 73 verfügbaren Videos wird für mich interessant sein. Diese alle anzuschauen wird sicherlich etwas Zeit in Anspruch nehmen, aber ich hoffe spätestens die freien Tage rund um Weihnachten schaffen hier Abhilfe.
Falls auch ihr Interesse an den Videos habt, folgt einfach den Related Links. In selbigen habe ich sowohl die eigentliche Android Dev Summit Website, wie auch die Playlist direkt auf Youtube verlinkt.

Related Links

FileSize - Entwicklung wird eingestellt

Erstellt am event Uhr von account_circle Boehrsi in label Boehrsi
FileSize - Entwicklung wird eingestellt Bild

In den letzten Wochen habe ich viel in mein altes Projekt FileSize geschaut. Angefangen hat alles mit notwendigen Changes, um weiter mit den Google Play Richtlinien kompatibel zu sein. Weiter ging es mit diversen Bugs die behoben wurden oder sogar ein neues Feature baute ich ein.
Dann kam die Überraschung der verpflichtenden Nutzung des Storage Access Framework open_in_new ab Android 10. Hier steckte ich ebenfalls viel Arbeit hinein. Ich bin in diesem letzten Bereich zu ca. 80 Prozent fertig, allerdings gibt es diverse Probleme, welche ich nicht wirklich zufriedenstellend lösen kann. Zum Ersten ist das SAF leider sehr langsam, sodass ein Scan nach großen Dateien statt wenigen Sekunden, mehrere Minuten dauern kann. Ebenfalls störend ist das initiale Einrichten, welches mittels mehreren Schritten durch den Nutzer geschehen muss. Ich kann dort leider nicht helfen und diverse Otto-Normal-Nutzer werden hier Probleme haben.
Als Programmierer habe ich außerdem das Problem, dass die Basis des Projekts schon älter ist und es entsprechend ohnehin ein paar Ecken und Kanten gibt, füge ich nun aber an diversen Stellen einen Pre- und Post-Android-10 Switch ein, steigert sich die Chance das Dinge kaputt gehen ungemein. Zu guter Letzt bietet z.B. die Files App open_in_new unter Android nun auch einen Bereich zum Aufräumen des Geräts. Neben großen Dateien findet man hier doppelte Dateien, Junk und Daten von nicht verwendeten Apps.
Ich habe mich schlussendlich, trotz der diversen Stunden der letzten Wochen, dazu entschieden FileSize nicht mehr weiterzuentwickeln. Die Nutzerzahlen sanken in den letzten Monaten stark und das zu Recht und die besagte Android 10 Integration ist aktuell nicht wirklich zufriedenstellend machbar. Somit macht es Sinn das Projekt einzustellen, vor allem da ich es nicht in der Qualität entwickeln kann, welche ich mir als Mindestvoraussetzung gesetzt habe. Apps mit ähnlicher Funktionalität gibt es mittlerweile und ich habe dadurch mehr Zeit mich auf meine aktuellen Flutter und Android Projekte zu fokussieren.
Ich werde FileSize im Laufe des Tages aus dem PlayStore entfernen und hoffe bald wieder eine Release würdige App zu haben, denn gar nichts im Store zu haben ist irgendwie etwas schade, vor allem wenn man diverse Projekte zu 90-95 Prozent fertig hat.

navigate_before Vorherige format_list_numbered  Seite 28 Nächste navigate_next