SerServAlyzevalyze - Release Version 2.0
Vor einiger Zeit habe ich in meiner Status News zu den aktuellen Projekten auch meine erste App Servalyze erwähnt. In diesem Kontext wies ich darauf hin, dass es erst einmal nichts neues für diese App geben wird. Doch als ich sie mir nochmal anschaute, fielen mir ein paar Dinge auf die mich wirklich störten, sodass ich doch noch einmal Hand anlegen musste. Dabei habe ich gleich meine neu erlernten Fähigkeiten eingesetzt und die App nicht nur um Funktionen erweitert, sondern auch grundlegend aufgeräumt, von Bugs befreit und etwas schneller, sowie robuster gegen Fehler gemacht. Die kompletten Release Notes gibt es im unteren Teil der News. Falls auch ihr Interesse an einer kleinen App für Server (IP / Domain) oder Web (HTTP) Monitoring habt, so schaut euch die App einfach mal an. Die nötigen Links gibt es in den Related Links und falls ihr Fragen, Wünsche oder ähnliches habt, ruhig direkt unter der News in den Kommentaren melden.
Android Studio 2.0 - Beta 2
In der letzten Zeit gab es wirklich viele Android Studio Updates, zumindest wenn man die Canary Builds nutzt. Über die Versionen 5 und 6 schrieb ich zuletzt, nun sind wir bereits bei Beta 2. Dazwischen gab es die Alphas bzw. Canary Builds 7 bis 9. In diesen wurde neben dem allgemeinen Update auf IntelliJ IDEA 15.0.3, diverse Fehlerbehebungen durchgeführt. Vor allem auf Instant Run, Multi-Dexing und allgemein langsame Builds wurde geachtet. Leider gab es in diesen Builds etwas mehr Probleme, als in den vorherigen Versionen. Dies liegt vor allem an den Optimierungen im Bereich Instant Run, da hier ziemlich komplexe Dinge durchgeführt werden und diese noch nicht so funktionieren wie man es sich wünscht. Teilweise wurden deswegen einige Funktionen wieder deaktiviert. Die Beta 1 wurde komplett übersprungen, da auf den letzten Metern ein Blocker gefunden wurde und nun befinden wir uns auf der aktuellen Version Beta 2. In dieser wurde an der Performance geschraubt und der Support für komplexe Code Generierung (z.B. durch Dependency Injection open_in_new via Dagger 2 open_in_new) wurde wieder stabilisiert. Denn gerade in diesem Bereich gab es in den vorherigen Versionen, wie ich leider selber feststellen musste, diverse Instabilitäten. Instant Run soll nun wieder stabiler laufen und auch diverse Probleme mit Addons wurden behoben. Als Hinweis wird angegeben, dass zuvor via Debug installierte Apps einmalig deinstalliert werden sollten, um Probleme mit Instant Run zu vermeiden. Falls ihr übrigens immer mit realen Geräten arbeitet, kann ich nur empfehlen mal wieder einen Blick auf den Emulator zu werfen, dieser ist verdammt schnell geworden und kann nun wesentlich mehr. Weitere und detailliertere Infos gibt es in den Related Links. Im unteren Teil der News habe ich noch ein Youtube Video eingebunden, dieses gibt einen schnellen Einblick in Android Studio 2.0.
Android Studio 2.0 - Preview 5 und 6 veröffentlicht
Heute vor einer Woche gab es wieder ein größeres Update im Bereich der Android Studio 2.0 Preview Versionen. Diese laufen aktuell bereits ziemlich stabil und werden bei mir im produktiv Einsatz genutzt. Ich persönlich konnte dabei keine gravierenden Probleme feststellen. Etwas instabil sind dort eher die neuen Gradle + Gradle Plugin Versionen, welche manchmal Probleme beim bauen machen. Doch wie auch immer, zurück zum Update, welches diverse Optimierungen im Instant Run Bereich brachte. Sofern ein direkter Hot Swap nicht möglich ist, ist nun auch der Cold Swap, also eigentlich ein komplett neues Deployment, optimiert wurden. Dabei werden inkrementelle Builds ausgeliefert und somit nach Möglichkeit nur die Änderungen angewendet. Umso neuer dabei die Android Version, umso optimierter kann das ganze geschehen. Dazu gibt es aber mehr auf der Android Tools Project Site open_in_new. Die zweite große Baustelle bei diesem Update war Lint, welches nun wesentlich besser mit “Unused Resources” und der Entfernung von diesen umgehen kann. Zusätzlich wurden die Prüfungen für inkompatible API Calls verbessert und einige weitere neue Checks eingebaut. Abschließend wurde in diesem Update noch am Data binding, den experimentellen Test Artifacts und der Code completion gearbeitet. Ein durchaus großes Update, welches hier und dort wohl auch ein paar Probleme einführte. Diese werden in Version 6, welche heute veröffentlicht wurde, angegangen. Version 6 ist somit ein reiner Bug fix Release. Sobald ich meine nervige Erkältung hinter mir habe, werde ich die neue Version natürlich auch wieder ausgiebig testen und falls nötig über eventuelle Probleme berichten.
GOgroove Palbot - Test und Video
Ich habe schon lange nach einem kleinen Lautsprecher gesucht, welchen ich an mein Handy oder Tablet anschließen und unterwegs nutzen kann. Doch viele sind teuer und bieten Funktionen die interessant, für mich aber leider nicht relevant sind. Da kam mir der GOgroove Palbot gerade richtig, denn im ansprechenden Android Design und mit einer ordentlichen Power für die Größe, war ich sehr angetan von dem guten Stück. Dazu kommt ein interner, via USB Ladbarer Akku und ein vertretbarer Preis von aktuell 27,99 Euro (GOgroove Palbot via Amazon). Anschließen kann man ihn einfach via 3,5 mm Klinke, über ein aufrollbares Kabel. Ein USB auf Micro-USB Kabel ist dabei, ein Ladegerät selbst nicht, da man ihn z.B. auch direkt am PC laden kann. Der gute wiegt 0,5kg, ist ca 10 x 12 x 8cm groß und verfügt über 2 x 2W Lautsprecher + einen passiven Subwoofer. Mit meinem ersten Palbot hatte ich leider Akku Probleme, habe aber umgehend Ersatz vom Hersteller erhalten. Aktuell nutze ich den guten beim Kochen, für Musik und Youtube Videos. Falls euch das gute Stück interessiert, schaut in den unteren Teil der News, dort habe ich ein kleines selbst erstelltes Test-Video eingebunden.
Weekly Coding Question - Neue Reihe im Blog
Ich programmiere auf der Arbeit und ich programmiere zu Hause. Dabei nutze ich Java für Android, PHP für die Homepage und diverse weitere Sprachen. Dazu die nötigen Tools, IDEs, Toolchains und was es nicht noch alles gibt. Außerdem schaue ich mir gerne neue Techniken an. Egal ob komplett neue Sprachen, Architekturmuster oder allgemeine Entwicklungsansätze. Doch es gibt unglaublich viel in diesem Bereich und man hat ja leider nur begrenzt Zeit. Aus diesem Grund muss man sich oft entscheiden. Diese Entscheidungen, die Wege zu diesen und vielleicht auch die eine oder andere Diskussion, die ich eigentlich mit mir selber führen würde, möchte ich gerne mit euch teilen. Dabei wird es nicht wie in den meisten News ein Problem mit einer Lösung oder eine reine Info geben, sondern meine Gedankengänge und meine Ideen. Nicht unbedingt abschließende Entscheidungen, sondern eher Ansätze und Möglichkeiten solltet ihr von News dieser Reihe erwarten. Ich persönlich erhoffe mir den einen oder anderen Kommentar und neue Ansichten zu Themen die ich interessant finde. Denn genau diese Gespräche in den Kommentaren sind für mich der Lohn den ich bekomme, wenn ich diesen Blog betreibe. Ich plane einmal pro Woche, zum Wochenende hin einen Beitrag zu veröffentlichen. Ca. fünf Themen habe ich bereits, falls ihr Vorschläge habt bin ich wie gewohnt aber auch offen für diese.
Android Studio 2.0 bekommt Instant Run
Wer Software entwickelt verbringt die eine oder Minute mit dem Warten auf die Durchführung des Build Prozesses. Dies ist nun mal so und schnellere Wege sind meistens sehr teuer und häufig nicht zu 100 Prozent wie man sie gerne hätte. Doch nun hat Google angekündigt, dass Android Studio 2.0 eine Instant Run Funktion bekommt. Soll heißen, ihr ändert Code oder Ressourcen und nach wenigen Sekunden sind die Änderungen auf eurem Gerät. Kein langes Warten und keine komplette Neuinstallation ist mehr nötig. Natürlich gibt es hier und dort Ausnahmen und aktuell ist gerade mal die erste Preview Version, mit nur einem Teil der späteren Möglichkeiten verfügbar, aber das ganze klingt auf jeden Fall sehr gut. Ich werde die Tage mal in die Preview rein schauen und freue mich bereits auf die fertige Version.
Android App Entwicklung - Design Guidelines
Neben den Coding Guidelines sollte man auch auf ein konsistentes Design achten. Denn auch wenn vielleicht nicht alles was in den gegebenen Regelwerken beschrieben ist auf die eigene App angewendet werden kann, so gibt es diverse Dinge die man zumindest etwas beachten sollte. Abstände, die Größe von Objekten, Farbkompositionen und bestimmte Usability Tipps sollte man deswegen gelesen und nach Möglichkeit auch verstanden haben. So nutze ich gerade die Tipps zu Metrics & Keylines open_in_new, um eine meiner alten Apps aufzupolieren. Sie sieht dadurch wesentlich besser aus und wird auch bald im Store präsentiert, bzw. hier im Blog erwähnt. Ihr könnt euch dann ja selber ein Bild machen. Allgemein kann ich nur empfehlen sich die Dinge, die von Google zu Material Design als Informationen zur Verfügung gestellt werden, zumindest grundlegend anzusehen. Sie sind in englisch verfasst, mit diversen Bildern zu Erklärung versehen und dürften vielen Problemen und Fragen im Bereich Design entgegenwirken.
Android Studio 1.5 Update veröffentlicht
Also Android Entwickler ist es durchaus interessant das Android Studio 1.5 veröffentlicht wurde. Dabei sollt es egal sein ob man professionell oder nur als Hobby Android Apps entwickelt, denn aktuelle und verbesserte Software gefällt uns doch allen. Android Studio 1.5 bringt diverse neue Lint Checks, z.B. für Android TV, Android Auto und verschiedene unsichere Funktionen. Innerhalb von XML Dateien können CustomViews nun mit ihrem kurzen Namen (ohne Package usw.) via Autovervollständigung genutzt werden und der Memory Monitor wurde optimiert. Einige weitere neue Features wurden eingefügt (Deep Link und App Link Support, Support für weitere VectorDrawables) und wie gewohnt diverse Bugs behoben. Weitere Informationen findet ihr in den Related Links.
GIT Server Verwaltung mit Gitolite
In meinem ersten GIT Beitrag beschrieb ich mein Setup, um GIT auf meinem Server für die Entwicklung von Android Apps nutzen zu können. In diesem Zuge wurde ich auf zwei weitere Lösungen hingewiesen. Zum einen auf GitLab, welches eine umfangreiche Software ist. Sie bietet ein komfortables Web-Interface, Verwaltungsmöglichkeiten und gemeinsames Arbeiten, es geht hier also um ein quasi selbst gehostetes kleines GitHub. Und zum anderen empfahl man mir als kleinere Lösung für die reine Verwaltung von Repositories Gitolite. GitLab sieht extrem interessant und umfangreich aus, ist für meinen Zweck aber zu komplex. Denn ich arbeite quasi nur alleine an meinen Projekten und sobald ich sie doch öffentlich zugänglich mache, landen sie bei GitHub. Zusätzlich bedarf GitLab des einen oder anderen Pakets und diverser Einstellungen, welche vermutlich nicht direkt mit meiner Server Konfiguration funktionieren würden. Gitolite hingegen könnte noch interessant werden und ich werde es vielleicht in der Zukunft testen. Es ermöglicht schnell und einfach, wiederum über ein Git Repository, die Verwaltung von Nutzern und Repositories. Ihr müsst euch um nichts weiter kümmern, als die Nutzer und Repositories in die Config-Dateien einzutragen und schon geht es los. Auch wenn ich nur einen Nutzer habe, so ist die Erstellung neuer Repos vielleicht bald interessant, falls ich mehrere kleine Projekte starte. Die Installation von Gitolite ist dabei relativ simpel und wird im entsprechenden GitHub Projekt open_in_new sehr gut auf englisch beschrieben. Ich ziere mich aktuell noch einen Test durchzuführen, da ich bereits mehrere Repositories aktiv nutze und diese funktionierende Infrastruktur nicht beschädigen möchte. Falls ihr Erfahrungen mit Gitolite habt, meldet euch mal in den Kommentaren und erzählt wie ihr damit klar kommt und wie ihr es nutzt.
Android Programmierung kann lustig sein
Android Programmierung erfordert Logik, Wissen bezüglich Programmierung allgemein und mathematische Grundlagen sollten auch gegeben sein. Dann folgt viel Training, daraus entwickelt sich Erfahrung und noch diverse weitere Dinge müssen bedacht werden. Das klingt nicht wirklich lustig, muss ich zugeben. Doch das es seitens Google auch die eine oder andere Portion Humor gibt sieht man sogar versteckt in der Android API. So wurde ich heute auf der Arbeit auf die tatsächlich vorhandene Methode isUserAGoat() hingewiesen. Diese befindet sich in der UserManager Klasse, welche Informationen zum Nutzer zurück gibt. Hintergrund ist das Spiel Goat Simulator, welches vielen Lesern ein Begriff sein dürfte. Die Beschreibung der Methode ist recht unterhaltsam und die Implementierung prüft tatsächlich ob das genannte Spiel auf dem Smartphone vorhanden ist. Meiner Meinung nach ein lustiges kleines Easter Egg und eine witzige Idee von Google. In den Related Links findet ihr den Eintrag in der Android Dokumentation zur genannten Methode.