Boehrsi.de - Blog and Community

Boehrsi.de Header Image

Empfohlen in Code

Weitere Kategorien

Blog Beiträge

Ludum Dare 37 Retro - Spriter Animationssoftware

event Erstellt am Di. 21.03.17 - 20:40 Uhr von Boehrsi
Ludum Dare 37 Retro - Spriter Animationssoftware Image Ludum Dare 37 Retro - Spriter Animationssoftware Image

Es ist schon etwas her das der Ludum Dare 37 stattfand, doch vergessen habe ich nicht das ich ankündigte über ein paar meiner genutzten Tools und Techniken zu schreiben. Da diese weiterhin genauso relevant sind, hole ich dies nun nach. Anfangen werde ich mit der Software welche ich zur Erstellung von Animationen nutzte, denn dies war auch mein Vorgehen beim letzten Ludum Dare. Ich nutzte Spriter, eine kostenpflichtige, kleine und praktisch Software. Diese erlaubt es verschiedene Grafiken miteinander zu verbinden. Dabei sind verschiedene Ansätze möglich, ich entschied mich für Knochen basierte Animationen. Ich erstellte also zuerst simple 2D Grafiken, die ich als Bild-Set importierte und packte diese so oft wie benötigt in die jeweilige Szene. Den verschiedenen Elementen ordnete ich Knochen zu. Dadurch weiß das Programm wie es die verschiedenen Elemente physikalisch zu betrachten hat. Folgend stellte ich Verbindungen zwischen den Knochen her und setzte an verschiedenen Stellen in der Timeline Punkte. An diesen Keyframes hat man nun also feste Positionen für die verschiedenen Teile des zu animierenden Objekts und das Programm errechnet basierend darauf die Verbindungen und realistischen Übergänge. So sehen Schritte dann wie wirkliche Bewegungen aus oder Pflanzen wiegen sich passend im Wasserstrom. Dabei erreicht man selbst mit wenig Erfahrung einiges, etwas herumprobieren ist aber natürlich trotzdem nötig. Ich binde im unteren Teil ein Video meiner Fortschritte ein, welche zwar nicht gigantisch, aber für einen ersten Versuch durchaus brauchbar sind. Das Programm selbst hat eine übersichtliche UI und alle Funktionen die ich für den Anfang brauchte. Spriter Pro kostet knapp 60 Dollar, doch auch eine kostenlose Version mit abgespeckten Funktionen ist verfügbar. Falls ihr vorhabt Animationen zu erstellen, schaut euch Spriter ruhig mal an, den entsprechenden Link gibt es in den Related Links.

Weiterlesen…

Related Links
Bildquelle: boehrsi.de

I'm a coder - KW 10

event Erstellt am So. 12.03.17 - 23:08 Uhr von Boehrsi
I'm a coder - KW 10 Image I'm a coder - KW 10 Image

Warum bin ich eigentlich Programmierer oder warum wollte ich es werden? Dies ist das heutige Thema meiner I'm a Coder News. Irgendwie war für mich schon sehr früh klar das ich etwas im Bereich Informatik machen möchte. Ich interessierte mich schnell für Software und auch für Hardware. Während meiner Schulzeit nutzte ich IT bezogene Fächer und mein Informatikstudium brachte mich dann noch weiter auf den Weg in Richtung Softwareentwickler. Während meines Studiums arbeitete ich parallel als IT-Support, wo ich zu einem großen Teil Hardware bezogene Aufgaben übernahm und etwas programmierte. Dabei stellte ich fest das Hardware zwar interessant ist und ich gerne alle paar Jahre einen neuen Gaming-Rechner aufbaue und alle übrigen Teile in Systemen meiner Familie verbaue, ich es aber ungern auf Dauer täglich machen würde. Vor allem die Abwechslung und die nötige Herausforderung beim Erkennen und Lösen von Problemen fehlte mir, denn meistens tauschte ich lediglich Komponenten. Genau dieses Erkennen von Problemen und verschiedene Lösungswege zu erarbeiten ist nämlich meine Hauptmotivation bei der Entwicklung von Software. Ich oder jemand anders hat eine Aufgabe und um diese zu lösen müssen eine Reihe von Teilproblemen erkannt und entsprechend verteilt und gelöst werden. Genau dieses herangehen, welches auch bei sehr ähnlichen Problemen unterschiedlich sein kann und natürlich auch die schlussendliche Lösung sind für mich die Motivation hinter dem Programmieren.

Teil der Sammlung
Bildquelle: boehrsi.de

I'm a coder - KW 9

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

Heutiges Thema meiner Coder News sind neue coole Techniken, wie z.B. Cloud Dienste, neue APIs und grundsätzlich alles was man mal ausprobieren möchte, aber dann auf Limitierungen stößt die einen zum eventuellen Umdenken zwingen. Denn aktuell bin ich in der Situation eine kleine App zu basteln und für diese habe ich mich entschieden auf Firebase zu setzen. Firebase ist Googles relativ neue Plattform für diverse Funktionen, darunter auch eine Realtime-Database welche ich für mein Projekt nutze. Dort werden Daten nicht relational, sondern als großes JSON Konstrukt abgelegt und verwaltet. Dies fordert einen zum Umdenken auf, wenn man vorher aus dem SQL Bereich kam. Soweit so gut, alles läuft nach einigen Anläufen und es geht wirklich gut von der Hand. Doch dann kommt man an Punkte an denen die neue Technik sich anders verhält als man es sich wünscht und Dinge schlicht nicht möglich sind. Dazu gehört bei mir der Wunsch nach einem Query, welches ähnlich dem LIKE %SEARCH_STRING% SQL Statement ist. Dies ist schlicht nicht möglich bzw. vorhanden. Dadurch habe ich nun eine neue Technik, die ich eigentlich nur ausprobieren will weil sie neu und interessant ist, auf der anderen Seite aber eigentlich nicht exakt das ist was ich brauche. Somit stelle ich mir quasi selbst ein Bein, denn ich möchte die Basis nun nicht mehr ändern. Ich vermute ich werde Mittel und Wege finden alles entsprechend zu implementieren, doch im Prinzip verfehle ich dadurch mitunter Einsatzgebiete der jeweiligen Tools oder Plattformen. Neues zu nutzen ist also gut zum Lernen, doch man verbeißt sich leider auch leicht. Zumindest mir geht es so, wie sieht es da bei euch aus? Schafft ihr den Absprung in solchen Situationen oder zieht ihr das Ganze dann auch eher durch? Für mich ist der Hauptgrund weiterzumachen übrigens das ich weiter lernen möchte mit Firebase umzugehen, denn die Plattform ist extrem mächtig und wird mir sicherlich noch einmal gute Dienste in Projekten leisten, wofür ich sie aber erst einmal wirklich durchdringen muss.

Teil der Sammlung
Bildquelle: boehrsi.de

ConstraintLayout 1.0 erschienen

event Erstellt am Mo. 27.02.17 - 10:00 Uhr von Boehrsi
ConstraintLayout 1.0 erschienen Image ConstraintLayout 1.0 erschienen Image

Das ConstraintLayout ist Googles Versuch komplizierte und tiefe Layout-Hierarchien zu vereinfachen. Dabei sollen dann gleich noch moderne Ideen des Bereichs Layout-Erstellung im Allgemeinen eingebracht werden. Automatische Anpassung von Größen und die dynamische Anordnung von Elementen sind hier Stichworte. Im Prinzip hat man ein stark optimiertes RelativeLayout vor sich, mit welchem umfangreiche Layouts responsive und simple erstellt werden können sollen. Dazu gibt es einen komplett neuen UI Editor in Android Studio. Das neue Layout wurde in den letzten Monaten immer weiter entwickelt und hat nun den 1.0 Status erreicht. Die beste Version des UI Editors ist aktuell in der Android Studio 2.3 RC 1 Version enthalten. Das ConstraintLayout selbst ist über das Support Repository nutzbar. Ich selbst habe bis dato noch nicht mit dem neuen Layout gearbeitet, werde es aber definitiv für eine meiner neuen Apps ausprobieren. Habt ihr schon mit den vorherigen Beta Version gearbeitet, falls ja meldet euch gerne in den Kommentaren. Weitere Informationen findet ihr in den Related Links.

Related Links

I'm a coder - KW 8

event Erstellt am So. 26.02.17 - 21:40 Uhr von Boehrsi
I'm a coder - KW 8 Image I'm a coder - KW 8 Image

Abwechslungsreiche Aufgaben sind heute das Thema, denn auch in der Softwareentwicklung gibt es nicht nur immer wieder dieselben Dinge. In diesem Kontext meine ich nicht den Unterschied zwischen Bug und Feature, sondern eher in welchem Bereich man gerade innerhalb der Anwendung unterwegs ist. Ich denke hier an Bereiche wie Netzwerk, User Interface, Business Logic, Abstraktions-Layer, Performance Optimierung und so weiter. Denn zum einen wird durch einen häufigen Wechsel die Vielfalt der Fähigkeiten der Entwickler verbessert und zum anderen lernt man die gesamte Anwendung kennen, wenn man gemeinsam Dinge implementiert. So entsteht weniger Inselwissen und falls einer der Entwickler mal ausfällt kann einer anderer besser einspringen. Vor allem im professionellen Bereich ist dies sehr wichtig. Deswegen begrüße ich es, dass in meinem Arbeitsleben aktuell darauf geachtet wird das zum einen das Wissen verteilt wird und zum anderen auch das quasi alle Entwickler gemeinsam über die Aufgabenverteilung nachdenken bzw. ein gewisses Mitspracherecht haben und der Lead nicht alles ohne weitere Rückfragen blind vergibt.

Teil der Sammlung
Bildquelle: boehrsi.de

Android Entwicklung - Meine Must Have Libraries

event Erstellt am Mo. 20.02.17 - 22:48 Uhr von Boehrsi
Android Entwicklung - Meine Must Have Libraries Image Android Entwicklung - Meine Must Have Libraries Image

Ich programmiere Android Apps und ich habe einen Blog, da sollte es doch eigentlich naheliegend sein das ich mal Libraries erwähne mit denen ich aktuell entwickle. Die Betonung liegt hier auf sollte, denn bis dato habe ich diesen Themenbereich tatsächlich eher spärlich behandelt. Dies soll sich innerhalb der nächsten Wochen ändern. Denn ich werde nun immer mal wieder Libraries vorstellen die ich gerne und häufig nutzte. Ihr seid herzlich eingeladen auch eure Favoriten in den Kommentaren zu erwähnen, denn ich schaue mir gerne neues an und probiere etwas herum. Solltet ihr also Vorschläge für Libraries haben die ihr gut findet, meldet euch doch einfach unter dieser News. Vielleicht habe ich sie ohnehin auf der Liste oder aber schaue sie mir mal an. Mit dabei sein werden z.B. Dagger, FragmentArgs, OkHttp, Retrofit, Butterknife und Project Lombok.

Bildquelle: boehrsi.de

I'm a coder - KW 7

event Erstellt am So. 19.02.17 - 23:12 Uhr von Boehrsi
I'm a coder - KW 7 Image I'm a coder - KW 7 Image

Heute mal wieder eine Kleinigkeit aus meiner Coding Welt, das Thema ist Produktivität und wann man sich wirklich produktiv fühlt. Denn häufig hat man Aufgaben die sich in ihrer Größe stark unterscheiden. Vor allem im professionellen Bereich tritt dies häufig auf. Denn manchmal hat man viele Bugs, die man teilweise schnell nacheinander beheben kann und sich dementsprechend produktiv fühlt, doch dies ist dann eher kurz der Fall. Denn auch wenn man vielleicht viel in Sachen Tickets erreicht hat, so ist der allgemeine Einfluss der Arbeit eher minimal. Da ist es dann eher relevant eine oder zwei Wochen an einer großen Aufgabe zu arbeiten und am Ende ein neues Feature zu implementieren oder ein neues Konstrukt für die Basis der Anwendung. Hier hat man dann aber wiederum das Risiko nicht in der gesetzten Zeit fertig zu werden und am Ende gar nichts im festgelegten Zeitraum geschafft zu haben. Hier ist es also wichtig, dass man wie bereits von mir angesprochen, die Arbeitspakete ordentlich und lösbar einteilt. Grundsätzlich ist es aber nach meiner Erfahrung auf jeden Fall gut und wichtig Abwechslung zu haben. Also größere Aufgaben die sich mit kleineren abwechseln. Das sorgt für einen ausgeglichenen Alltag und wenig Frustration.

Teil der Sammlung
Bildquelle: boehrsi.de

Eigene Java Libraries veröffentlichen mit JitPack.io

event Erstellt am Sa. 18.02.17 - 09:45 Uhr von Boehrsi
Eigene Java Libraries veröffentlichen mit JitPack.io Image Eigene Java Libraries veröffentlichen mit JitPack.io Image

Eigene Java Libraries entstehen vermutlich recht häufig, denn Java ist nun einmal die Basis von Android und ein paar Klassen auszugliedern und diese bei GitHub zu verwalten ist auch kein Akt. Doch wie bekommt man diese nun einfach und schnell zu anderen Usern? Man könnte eigene Wege gehen oder schauen wo man seine Pakete hin exportieren kann, sodass sie in den Repositories gefunden werden. Aber es gibt auch eine praktische Alternative, vor allem wenn ihr bereits bei z.B. GitHub seid. Ihr könnt sie mit JitPack.io veröffentlichen. Auf diesem Weg müsst ihr für eure JVM und Android Libraries lediglich ein paar Konfigurationsinformationen in eurem Repository ablegen und schon kann man sie via compile 'com.github.User:Repo:Version' in Gradle einbinden. Dafür erstellt ihr GitHub Releases und schon gibt es die entsprechende neue Version. Außerdem kann auch immer die aktuellste Snapshot Version oder ein bestimmter Commit geholt werden und zusätzlich lässt sich mit JavaDoc auch direkt eine Dokumentation verfügbar machen. BitBucket und GitLab werden auch unterstützt. Ich selber nutze die Plattform für eine kleine Library die ich zwar noch nicht fertig habe, aber bereits via JitPack.io einbinde. Dazu vermutlich nächste Woche etwas mehr. Falls ihr auch Interesse habt euren Code auf diesem Wege zu verteilen, schaut einfach mal in die Related Links. Die Dokumentation ist übersichtlich und gut gemacht und es gibt zwei Anleitungen für Java und Android. Ich brauchte glaube ich zwei bis drei Commits bis alles lief, aber alles in allem ging der Vorgang gut von der Hand.

Related Links
Bildquelle: jitpack.io

I'm a coder - KW 6

event Erstellt am So. 12.02.17 - 19:57 Uhr von Boehrsi
I'm a coder - KW 6 Image I'm a coder - KW 6 Image

Heute ist mal wieder Sonntag und somit wird es Zeit für eine I'm a coder News. Dieses Mal soll es ein wenig um die richtige Aufteilung von Arbeitspaketen gehen. Wie auch schon in den letzten Beiträgen können die folgenden Dinge meiner Meinung nach sowohl bei privaten Projekten, wie auch im professionellen Bereich eingesetzt werden. Denn eigentlich ist die Regel hier recht einfach: „Lieber viele kleine Schritte nacheinander, als einen Großen“. Dies bietet mehr Möglichkeiten Fehler zu entdecken und zu korrigieren und der Fortschritt kann besser verfolgt werden. Die Zerteilung von Arbeitspaketen ist übrigens nicht nur während der Planungsphase wichtig, auch während der Implementierung können neue Komponenten entdeckt werden, die für ein bestimmtes Ticket relevant sind. Diese können dann innerhalb des eigentlichen Tickets implementiert werden oder aber man gliedert sie aus und bearbeitet diesen Teil zuerst und packt das eigentliche Ticket dann oben drauf. Das bietet einfacherer Reviews und man ist flexibler, wenn z.B. andere Personen von den kleineren Teilen des Tickets bereits profitieren können. Ein wenig mehr Aufwand in Form von Tickets erstellen oder Git Commits entsteht vielleicht, ist aber meiner Meinung nach zu verschmerzen. Wie geht ihr in diesem Bereich vor und vor allem warum tut ihr dies entsprechend?

Teil der Sammlung
Bildquelle: boehrsi.de

I'm a coder - KW 5

event Erstellt am So. 05.02.17 - 19:51 Uhr von Boehrsi
I'm a coder - KW 5 Image I'm a coder - KW 5 Image

Ich schreibe, wie schon mehrfach erwähnt, aktuell an einem Web-Service, dieser kann von angemeldeten Nutzern genutzt werden und bietet eine API für alle interessierten Clients. Dabei habe ich für mich festgestellt wie hoch die initialen Hürden sind und wie gut es nach dem ersten Einstieg voran geht. Denn obwohl ich nebenbei schon recht lange daran arbeite, sind noch nicht viele Endpoints gegeben und damit auch nicht viel Funktionalität. Doch nachdem nun die Authentication und Authorization fertig ist läuft es quasi wie von selbst. Neue Endpoints sind aufgrund der gegebenen Grundstruktur nun einfach umzusetzen, die Methoden und Klassen für einen schnellen Zugriff sind bereits vorhanden und allgemein ist nun ein Flow vorhanden der ein schnelles und effektives Arbeiten erlaubt. Schreiben tue ich dies um euch falls ihr am Anfang eines solchen Projekts steht Hoffnung zu geben, denn der Anfang kann wirklich etwas frustrierend sein. Dazu sei auch noch gesagt, dass es mittlerweile viele Tools und Dienste gibt, welche euch gerade im Bereich der Authentication und Authorization vieles abnehmen. Einziger Nachteil für einige ist, dass ihr euch dann auf andere Anbieter für Logins verlasst, doch sofern ihr nichts gegeben Google und Konsorten habt ist dies nicht zwangsläufig ein Problem. Alles in allem kann ich nur sagen, dass ein solides Framework als Basis, eine große Anzahl an Tutorials und eine aktive Community bei Startproblemen helfen und sofern man den ersten Einstieg geschafft hat es durchaus gut voran gehen kann. Zur besseren Einordnung abschließend noch der Hinweis ich schreibe eine REST ähnliche Spring Boot Anwendung.

Teil der Sammlung
Bildquelle: boehrsi.de