Boehrsi.de - Blog and Community

Boehrsi.de Header Image

Empfohlen in Code

Weitere Kategorien

Blog Beiträge

I'm a coder - KW 17

event Erstellt am Di. 02.05.17 - 20:44 Uhr von Boehrsi
I'm a coder - KW 17 Image I'm a coder - KW 17 Image

Nachdem ich bereits seit einigen Wochen versuche die vor einiger Zeit ausgelassene I'm a Coder News aufzuholen, will ich dies nun endlich nachholen. Das Thema sind Annotations. Also kleine, meistens durch ein @ gekennzeichnete, Strings an Klassen, Methoden, Feldern und wo man sie nicht noch alles findet. Sie erlauben uns diverse Dinge einfacher umzusetzen und ersparen meistens unnötigen Boilerplate Code. Allerdings sollte man immer aufpassen alle Annotations unter allen Entwicklern gleichermaßen bekannt zu machen, denn sonst wird der Code unverständlich. Sofern aber alle Entwickler eines Projekts mit Annotations arbeiten, wird der Code schnell übersichtlich und teilweise sogar besser verständlich. Allem voran wird er aber minimiert und entsprechend auch die Schreibarbeit. Beispiele sind hier Butter Knife, eine Annotation basierte Möglichkeit, um diverse Operationen rund um Views in Android zu vereinfachen. Ebenfalls im Android Bereich, allerdings wesentlich tiefgehender, ist Dagger unterwegs. Dagger wird für Dependency Injection genutzt und nutzt dabei umfangreich Annotations. Beide Libraries verwende ich ausgiebig in privaten, wie auch in professionellen Projekten. Ich kann euch nur raten Annotations mal genauer unter die Lupe zu nehmen, vor allem im Java und Android Bereich sind selbige schon umfangreich in Nutzung.

Teil der Sammlung
Bildquelle: boehrsi.de

I'm a coder - KW 16

event Erstellt am Sa. 29.04.17 - 15:12 Uhr von Boehrsi
I'm a coder - KW 16 Image I'm a coder - KW 16 Image

Heute geht es um Reviews, denn auch wenn sie häufig eher störend oder langwierig scheinen, so haben sie durchaus ihre Berechtigung. In meinen privaten Projekten gibt es sie nicht wirklich, höchstens Tests durch Freunde oder Kollegen gibt es. Aber niemand schaut sich meinen Code an. Auf der Arbeit sieht dies anders aus, denn nur nach dem Vier-Augen-Prinzip landet etwas auf dem Entwicklungs-Branch. Mit dieser Haltung verhindert man Unachtsamkeitsfehler und auch die Code Guidelines werden mit höherer Wahrscheinlichkeit eingehalten. Manchmal ergibt sich daraus Mehrarbeit, aber dafür ist der Code hoffentlich ordentlicher und vor allem richtiger. Privat fände ich dies von Zeit zu Zeit glaube ich auch praktisch, allerdings nicht dauerhaft. Denn wenn ich für mich ein paar Zeilen schreibe, möchte ich nicht unbedingt auf Kleinigkeiten hingewiesen werden, welche mir vielleicht sogar klar oder eventuell auch egal waren. Wie sieht es bei euch aus, macht ihre Reviews und wie findet ihr dieses Vorgehen?

Teil der Sammlung
Bildquelle: boehrsi.de

Android App Lifecycle übersichtlich dargestellt

event Erstellt am Mi. 26.04.17 - 10:00 Uhr von Boehrsi
Android App Lifecycle übersichtlich dargestellt Image Android App Lifecycle übersichtlich dargestellt Image

Der Lifecycle einer Android App ist für Entwickler einer solchen kontinuierlich relevant. Soll heißen man muss immer wieder darauf achten wann man Aktionen durchführt. Dies gilt auch wenn man die eigentliche Logik, so wie es sein sollte, von der UI trennt. Denn die Eigenheiten des Android Systems sollten beachtet werden, sonst gibt es spätestens wenn Speichermangel herrscht und die App vom System weggeräumt wird Probleme beim erneuten Aufrufen. Allerdings gibt es nicht nur ein bis zwei Methoden die beachtet werden sollten, sondern diverse und diese unterscheiden sich auch noch für Activities und Fragments. Aus diesem Grund kann ich euch das GitHub Projekt android-lifecycle ans Herzen legen. Selbiges findet ihr in den Related Links. Es stellt bildlich und vor allem übersichtlich die Abläufe dar und erläutert die Zusammenhänge zusätzlich mit einigen wenigen Worten. Immer wieder hilfreich es als Tab offen zu haben oder vielleicht sogar in ausgedruckter Form.

Related Links
Bildquelle: github.com

I'm a coder - KW 15

event Erstellt am Mo. 24.04.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 15 Image I'm a coder - KW 15 Image

Diese Woche möchte ich ein paar Worte darüber verlieren warum ich eigentlich Android als Plattform meiner Wahl gewählt habe. Selbiges war schon recht früh klar, da meine ersten Smartphones durchweg Android Geräte waren. Kombiniert man dies nun damit das ich gerne entwickle, begann automatisch das Interesse am selber Erstellen von Apps. Zu Beginn eher minimal, doch später wurde es mehr. Innerhalb des Studiums konnte ich dann noch einige Chancen ergreifen Android Code zu schreiben und somit festigte sich das Interesse. Java Vorwissen aus dem schulischen Umfeld erleichterte den Einstieg hier immens. Konkurrenten waren bekanntlich Microsoft, was mich leider noch nie wirklich reizte, zusätzlich waren sie etwas zu spät für mich dran und Apple. Letztere ist nicht gerade meine Lieblingsfirma und somit standen die Chancen schlecht, dass ich für diese Plattform entwickle. Den Todesstoß für eine eventuelle Entwicklung von iOS Apps war aber definitiv die Hürde einen Mac besitzen zu müssen. Denn nur so kann man die Apps ordentlichen bauen und deployen. Das ist der Hauptgrund warum ich immer einen großen Bogen um iOS gemacht habe. Somit werden wohl auch kleinere Experimente im Gaming-Bereich, welche ich tatsächlich mal vorhabe irgendwann in die freie Wildbahn zu entlassen, nie auf iOS landen, außer sie sollten in irgendeiner Art und Weise erfolgreich sein. Alles in allem blieb ich bei meiner Hauptplattform also einfach bei den von mir genutzten Geräten und den bekannten Sprachen. Etwas langweilig könnte man nun sagen, allerdings beschäftige ich mich nebenbei ja mit diversen anderen Sprachen und Themen im Bereich Entwicklung. Ich persönlich bin mit einer festen Basis (Java + Android) und einem größeren Blick über den Tellerrand übrigens meistens gut gefahren und kann diese Art der Fokussierung nur empfehlen. Dabei meine ich nicht die konkrete Plattform + Sprache, sondern die gute Basis und zusätzlich der Sprung in fremde Gewässer.

Teil der Sammlung
Bildquelle: boehrsi.de

I'm a coder - KW 14

event Erstellt am So. 16.04.17 - 14:19 Uhr von Boehrsi
I'm a coder - KW 14 Image I'm a coder - KW 14 Image

Wer programmiert muss irgendwie den Überblick behalten, sowohl im Bereich Issues, wie auch bei der allgemeinen Dokumentation. Außerdem möchte man seine Software vielleicht verteilen und dies vielleicht sogar Open Source. Wie ich dies mache möchte ich heute in meiner wöchentlichen I'm a Coder Rubrik mit euch teilen, denn das Thema lautet Versionsverwaltungsplattformen und Kollaborationstools. Ich selber habe einige private Projekte, wobei auch diese noch einmal in verschiedene Kategorien gehören. Zum einen entwickle ich zum Spaß kleinere Spiele und nehme mit diesem z.B. am Ludum Dare Game Jam Teil. Dies sind aktuell keine ernsten Projekte, sondern eher kleine, lustige und lehrreiche Versuche. Weiter geht es mit lockeren Projekten mit Freunden und Kollegen, auch hier probieren wir eher herum. Ein Beispiel ist hier die Entwicklung eines Minecraft Mods, was allerdings direkt am Start wieder eingeschlafen ist. Als nächstes kommen private Projekte relevanterer Natur, teilweise Open Source, teilweise Closed Source. Die höchste Stufe bei meinen privaten Projekten sind ernst gemeinte Projekte, gemeinsam mit Freunden und Kollegen, welche dann zum Großteil vorerst Closed Source bleiben. In diesen Bereichen gibt es dann noch Abstufungen und Zwischenschritte, denn die Grenzen sind schwammig. Ich nutze sehr unterschiedliche Plattformen, um diese ganzen Bereich abzudecken, dazu findet ihr mehr im unteren Teil der News. Alle Tools die ich aktuell nutze sind kostenfrei, zumindest im Rahmen wie ich sie nutze (weniger als 5 Personen, bzw. keine oder wenige private Repositories bei manchen Anbietern).

Weiterlesen…

Teil der Sammlung
Bildquelle: boehrsi.de

HTML Inhalte vertikal zentrieren mit CSS

event Erstellt am So. 09.04.17 - 11:34 Uhr von Boehrsi
HTML Inhalte vertikal zentrieren mit CSS Image HTML Inhalte vertikal zentrieren mit CSS Image

Während man eine Website baut kommt es hin und wieder vor das man Inhalte vertikal in einem Bereich zentrieren möchte. Dabei gibt es den Fall das Text zentriert werden soll oder aber Blockelemente. Für beide Fälle sind unterschiedliche Herangehensweisen nötig. Zusätzlich ist die Frage ob man die Größe der Elemente kennt und ob weitere Parameter relevant sind von Bedeutung. Je nach Fall baut man sich dann etwas auf, was mitunter eher wie ein Hack anmutet, als wie eine ordentliche Implementierung. Will man dann noch ältere Techniken unterstützen muss man noch einmal anders vorgehen. Diese ganzen Fälle, in einem übersichtlichen Formular welches am Ende Code ausspuckt, gibt es in den Related Links auf der Website howtocenterincss.com. Man wählt einfach alle zutreffenden Punkte aus und schon hat man ein Code-Snippet. Ich habe die Seite erst gestern genutzt und bin zufrieden.

Related Links

I'm a coder - KW 13

event Erstellt am Fr. 07.04.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 13 Image I'm a coder - KW 13 Image

Zum Programmieren gehört es sich Gedanken zu machen und etwas zu planen. Dabei ist es natürlich wichtig Tools zu haben und seine Planungen entsprechend zu notieren und zu verwalten. Doch nicht immer sind Tools oder Dienste am PC der richtige Weg. Von Zeit zu Zeit sollte man analoge Dinge, also Zettel und Stifte, bevorzugen. So ist zumindest meine Meinung und genau das ist auch der Grund warum ich für diverse Dinge verschiedene Blöcke habe, um dort Gedanken, Ideen, Ansätze und Lösungsvorschläge aufzuschreiben und vor allem auch aufzuzeichnen. Ich unterteile dort nach privaten Projekten, meinen Ideen für Gaming-Projekte und bezüglich Arbeitsprojekten. Dafür habe ich dann entsprechend Blöcke oder Notizhefte dabei und übertrage meine Gedanken direkt. Vor allem die Möglichkeit dies völlig frei und ohne einen festen Rahmen tun zu können hilft mir oft sehr. Ich skizziere dabei viel und notiere Ansätze nur grob. Später überlege ich noch einmal und übertrage wirkliche gute Ideen am PC in entsprechende Verwaltungstools. Danach folgt dann die Umsetzung. Durch diesen Flow arbeite ich mich an die Ideen oder Probleme heran und konnte bis dato fast alles gut lösen und habe obendrein noch einige Ideen welche ich später angehen möchte. Falls auch ihr im Coding Bereich aktiv seid, denkt auch mal über die guten analogen Methoden zur Sortierung eurer Gedanken und Ideen nach, dies hilft manchmal ungemein.

Teil der Sammlung
Bildquelle: boehrsi.de

I'm a coder - KW 12

event Erstellt am Fr. 31.03.17 - 10:00 Uhr von Boehrsi
I'm a coder - KW 12 Image I'm a coder - KW 12 Image

Wie angekündigt kommt dieser News etwas zwischen durch, denn durch meinen Urlaub hatte sich alles etwas verzögert. Am Ende der Woche, um genau zu sein am Sonntag, gibt es natürlich auch die gewohnte I'm a Coder News, sodass der wöchentliche Rhythmus wieder gegeben ist. Doch was ist heute eigentlich das Thema? Ganz einfach, nicht programmieren. Wie man das verstehen soll, im Kontext einer Newsreihe die sich rund um das Thema Softwareentwicklung dreht? Eigentlich ganz einfach, es geht um all die Dinge die man neben der eigentlichen Entwicklung macht und machen muss. Dabei meine ich gar nicht so sehr Dinge die in den Bereich DevOps fallen, sondern eher unnötige Dinge wie Upgrades von Frameworks und damit verbundene langwierige Probleme, Stress mit der IDE, plötzlich fehlerhafte Konfigurationsdateien und so weiter. Die Liste ist lang und der Weg steinig, denn so etwas passiert leider immer wieder. Einige der genannten Dinge haben zumindest nach der Behebung Vorteile, so bringen Updates oder Upgrades meistens neue Funktionen oder bessere Performance. Aber von Zeit zu Zeit funktionieren eigentlich stabile Dinge plötzlich nicht mehr, dann beginnt eine anstrengende und unnötige Suche nach Fehlern, die eigentlich keine sein sollten. So geschah es z.B. bei meinem komplexen Projekt rund um Spring Boot, dort konnte ich plötzlich nichts mehr fehlerfrei ausführen, obwohl zuvor alles lief. Nach einigem hin und her bekam ich die Probleme in den Griff, aber dennoch empfand ich sie als absolut unnötig. Doch was kann man gegen solche Dinge tun?

Weiterlesen…

Teil der Sammlung
Bildquelle: boehrsi.de

Android und Java 8 - Auf Wiedersehen Jack

event Erstellt am Mi. 29.03.17 - 18:33 Uhr von Boehrsi
Android und Java 8 - Auf Wiedersehen Jack Image Android und Java 8 - Auf Wiedersehen Jack Image

Der neue Jack Compiler sollte Dinge vereinfachen und Overhead vermeiden. Doch scheinbar hat man die Pläne geändert, denn vor einigen Tagen wurde entsprechendes im Android Developer Blog kundgetan. Man wird sich von Jack verabschieden und dafür wieder auf die alten Bekannten javac und dx setzen. Dort ist die Integration von neuen Funktionen und die entsprechende Unterstützung in Android Studio besser umsetzbar und vor allem komplexere Dinge wie Annotation Processors und ähnliches können somit ohne großen Aufwand weiter genutzt und erweitert werden. Angekündigt wurde das ganze schon vor 14 Tagen, somit kann man schon bald mit Anpassungen in Android Studio rechnen. Vielleicht wird die finale Version 2.4 schon mit den entsprechenden Änderungen beim Build Tooling ausgestattet sein.

Related Links

Lombok Probleme in Eclipse

event Erstellt am Mo. 27.03.17 - 21:08 Uhr von Boehrsi
Lombok Probleme in Eclipse Image Lombok Probleme in Eclipse Image

Ich nutze viel und umfangreich Lombok, ein Tool welches massiv die Erstellung von Boilerplate Code minimiert. Doch leider hatte ich nach den letzten Aktualisierungen von Eclipse (Neon.3) einige Probleme. In einem umfangreichen Spring Boot Projekt, mit Gradle als Build-Tool, wurden die von Lombok generierten Klassen nicht gefunden, allerdings nur wenn ich direkt in Eclipse alles ausführte. Via Shell oder via Gradle Task aus Eclipse heraus gab es keine Probleme. Da ich mit einem Spring Boot Projekt arbeite und dementsprechend auch die entsprechende Tool Suite nutze, war es mir aber durchaus wichtig, dass das direkte bauen und neustarten via Eclipse funktioniert. Somit habe ich gestern und heute sehr viel herumprobiert. Dies beinhaltete alles zu aktualisieren (Eclipse und alle Abhängigkeiten innerhalb des Projekts), den Workspace komplett neu zu erstellen und das GIT erneut zu klonen, Lombok neu zu installieren und Anpassungen an der eclipse.ini vorzunehmen. Letzteres brachte dann auch den Erfolg, denn so simple wie auch unnötig die Lösung erscheint, mir half nach all den oben genannten Schritten für den javaagent einen absoluten Pfad anzugeben. Dies gilt auch wenn Lombok direkt im Eclipse Verzeichnis liegt, denn -javaagent:lombok.jar funktionierte nicht -javaagent:C:\Path\To\Your\lombok\lombok.jar hingegen ohne Probleme. Ich bin mir nicht sicher ob einer der weiteren erwähnte Punkte mit zur Lösung beigetragen hat, deswegen habe ich sie zur Sicherheit mit aufgeführt, aber erst nach dem Umstellen auf einen absoluten Pfad funktionierte alles. Solltet ihr also ähnliche Probleme haben, versucht dies auch mal.

Related Links