Android Developer Kurse von Google

Es gibt diverse Wege um sich Programmiersprachen beizubringen und selbiges gilt auch für die Entwicklung auf der Android Plattform. Ich habe mir zum Beispiel den Großteil selbst beigebracht und einiges an Java Kenntnissen aus meiner Schulzeit und Studienzeit eingebracht. Wenn auch ihr Interesse an der Android-Entwicklung habt, schaut euch vielleicht mal die folgenden Kurse direkt von Google an. Es gibt einen Einsteigerkurs, der sich Android Developer Fundamentals nennt und seit kurzem ist ebenfalls der Advanced Android Development Kurs verfügbar. Im ersten Kurs richtet ihr Android Studio ein und arbeitet mit der initialen Struktur eures Projekts, um eine gute User Experience zu erreichen. Weiter geht es mit Hintergrundaufgaben für eure App, die allgemeine Verwaltung eurer Daten und einem Ausblick. Der zweite Kurs hilft euch die User Experience weiter zu verbessern und soll eure Apps kleiner und schneller machen. Accessibility ist ebenfalls ein Thema, genau wie Geo Features und das Arbeiten mit Grafiken via z.B. Canvas Elementen. Ich selber habe die Kurse zwar nicht durchgearbeitet, aber vielleicht schaue ich sie mir mal an. Im allgemeinen sind sie für z.B. Unis gedacht, aber alle Unterlagen sind fürs Selbststudium vorhanden, sodass ihr die Aufgaben auch bequem von zuhause bearbeiten könnt. Alles ist in englischer Sprache vorhanden.
Android Builds mit Gradle automatisieren

Android ist eine große Plattform und die Entwicklung erfolgt dankenswerterweise in einer recht beliebten Sprache (Java oder alternativ in Kotlin). Doch neben dem eigentlichen entwickeln müssen die Apps auch gebaut werden. Dafür haben wir Gradle, welches für kleine Projekte von Haus aus gut eingerichtet ist, aber bei komplexen Projekten sollte man sich in diesem Bereich tiefer einarbeiten. Denn auch wenn der Einstieg mitunter verwirrend ist, vor allem was den Scope von Variablen und die Verfügbarkeit von Tasks oder ähnlichem angeht, so lohnt sich die Investition von Zeit hier wirklich. Dabei gibt es Dinge die man einfach lernen muss, wie z.B. die verschiedenen Kontexte (z.B. signingConfigs, buildTypes, flavors und den durchaus hilfreichen afterEvaluate). Weiter geht es dann mit eigenen Tasks, welche auf Variablen arbeiten können und durch doLast unabhängig vom restlichen Projekt Dinge, wie z.B. das Deployment übernehmen können. In diesem Kontext ist vor allem die commandLine Funktion interessant, da diese mit dem CI direkt interagieren kann. Hier kann man eine komplette Kette mit z.B. SSH Setup -> Git Clone -> Build -> Signing -> Deploy via Curl aufbauen, sofern man etwas Erfahrung mitbringt. Sehr spannend und gut für die Übersicht ist die Möglichkeit Funktionen zu nutzen und diese mittels apply from: in andere Dateien auszulagern. Ich kann nur ein weiteres Mal empfehlen, vor allem für größere Projekte, hier einen Einstieg zu wagen. Ich habe in den Related Links ein paar Ressourcen zum Thema hinterlegt und falls ihr Fragen oder Anregungen habt, meldet euch gerne in den Kommentaren.
Ludum Dare 40 - Game Jam an diesem Wochenende

Über den Ludum Dare Game Jam habe ich schon das eine oder andere Mal geschrieben und von Zeit zu Zeit mache ich sogar selber mit. Ziel ist es innerhalb von 48 oder 72 Stunden ein Spiel zu entwickeln und dabei ein Theme zu erfüllen. Aktuell läuft die letzte Abstimmungsphase open_in_new bezüglich des Themes. Das Event selbst startet am 02. Dezember, um 03:00 Uhr Nachts und geht bis zum 05. Dezember. Entweder alleine oder im Team könnt ihr dann ein Spiel entwickeln. Die Programmiersprache, der Stil, die Engine und ähnliche Entscheidungen sind dabei komplett euch überlassen. Der Ludum Dare geht schon in die 40. Runde und ich werde dieses Mal leider nicht dabei sein, da meine Zeit dies nicht zulässt. Ich überlege aber meinen eigenen kleinen privaten Game Jam in der freien Zeit rund um Weihnachten und Neujahr zu machen. Je nachdem wie sich diese Idee entwickelt, gibt es natürlich auch wieder neue Beiträge im Blog diesbezüglich. Wie sieht es bei euch aus, interessiert euch das Thema oder macht ihr vielleicht sogar selber bei Game Jams mit?
CSS Flexbox - Websites modern strukturieren

Während ich meine neue Seite gestalte, welche ich vermutlich bald als kleine Vorschau / Beta Version vorstellen werde, möchte ich schon einmal über eine extrem praktische Ressource sprechen. Es geht um den A Complete Guide to Flexbox Beitrag open_in_new auf css-tricks.com open_in_new. Hier findet ihr extrem viele Informationen zum großartigen Flexbox System für CSS. Selbiges nutze ich für die neue Seite an diversen Stellen, denn es funktioniert einfach großartig und macht vieles einfacher. Vor allem wenn es um die mittige Positionierung von Inhalten geht oder ab darum Inhalte anders darzustellen, sobald die Bildschirmgröße sich ändert. Solltet ihr also z.B. Responsive Designs erstellen wollen oder aber einfach nur weniger Aufwand betreiben wollen, beim Erstellen eurer Seiten, schaut euch das ganze ruhig mal an. Es ist nativ mit CSS 3 nutzbar, die großen Browser scheinen es durchgehend zu unterstützen und allem voran ergibt der Aufbau Sinn und fühlt sich weniger nach einem Hack an. Ich kann mir durch die Nutzung diverse unnötige CSS Klassen usw. sparen und vermutlich sogar ein paar JavaScript Teile.
Skills für Alexa entwickeln

Auch wenn ich aktuell mit meiner neuen Website, meinen Android-Projekten und ein paar weiteren Ideen gut beschäftigt bin, so bin ich immer an neuem interessiert. Da passt es gut, dass ich seit einigen Wochen Alexa im Hause habe, was ich nebenbei erwähnt noch im Blog verarbeiten werde. Alexa bzw. die Echo Dots bieten mit ihren Skills die Möglichkeit selbst Software zu schreiben, welche man dann über die Stimme steuern kann. Ich selbst möchte dies auf jeden Fall mal ausprobieren, vor allem da es auch eine Java Schnittstelle gibt. Leider fehlt mir aktuell noch eine gute Idee, aber diese wird noch kommen und wenn es nur ein kleiner Test wird. Ich werde mir am Wochenende mal einen Entwickler-Account zulegen und dann etwas herum probieren. Meine eventuellen Fortschritte werde ich natürlich auch hier im Blog festhalten. Wenn ihr Ideen habt, meldet euch einfach in den Kommentaren.
Android Architecture Components

Als Android Entwickler baut man sehr unterschiedliche Dinge, doch in der Basis hat jeder Entwickler die identische Aufgabe. Eine App zu bauen die auf dem Android System stabil und schnell läuft. Die Funktionen selbst unterscheiden sich gravierend, doch dies dürfte logisch sein. Um die Standards zu erfüllen, sowohl was die allgemeinen Aufgaben, wie auch was die speziellen Funktionen angeht, muss man unter anderem oft Daten speichern, transferieren, verwalten und natürlich anzeigen. Das Ganze sollte entsprechend des Android Lifecycles erfolgen, denn sonst rennt man früher oder später in Probleme. Diese ganzen Schritte zu verbinden ist oft nicht leicht und normalerweise nutzt man diverse Libraries, um z.B. Netzwerkdaten mit den eigentlichen Modellen zu verbinden und zusätzlich müssen die Daten natürlich auch mit der UI synchronisiert werden. Hierfür gibt es die allgemeinen Bibliotheken, die vermutlich jeder kennt und die eine oder andere spezielle, die der jeweilige Entwickler bevorzugt. Da es sich hier aber um allgemeine Probleme handelt, hat auch das Android Team selbst nun eine Lösung für die Probleme vorgestellt. Auf den Namen Android Architecture Components hört die neue Sammlung von Komponenten.
Atom - Mein Editor für Webinhalte

Während ich für die meisten Programmieraufbauen mit IntelliJ Idea oder Eclipse unterwegs bin, nutze ich für die Entwicklung meiner neuen Website den Atom Editor. Vor allem für die Entwicklung von Webinhalten, wie z.B. HTML, CSS und JavaScript bietet sich dies an. Ich habe zusätzlich noch sehr viele Markdown Dokumente dabei. Dies ist meinem Static Site Generator Hugo geschuldet, denn Markdown ist dort die Standard Content Sprache. Atom bietet durch sein Plugin System, sowohl für Markdown selbst, wie auch für Hugo Inhalte (z.B. Config-Dateien) Syntax-Highlighting. Die UI ist übersichtlich und schlicht, der Editor schnell und bis dato hatte ich auch keine größeren Probleme. Lediglich ein paar kleine Aussetzer beim automatischen Erkennen des Dateityps gab es hin und wieder. Alles in allem konnte ich mich mit dem Editor sehr schnell anfreunden und konnte vor allem schnell und effektiv arbeiten. Atom macht definitiv Spaß und ist einen Blick wert, wenn man einen feinen, anpassbaren und schnellen Editor sucht, welcher vor allem für Script-Sprachen oder Webinhalte genutzt werden soll. Nutzt ihr Atom oder seid ihr mit einem anderen Editor oder einer umfangreichen IDE unterwegs?
Youtube Lets Plays - Hardware, Settings und Upload

Aktuell plane ich mit Freunden mal wieder ein Youtube Video zu erstellen. Es wird vermutlich Rainbow Six Siege als Hauptkomponente beinhalten und zusätzlich könnten andere Spiele darin vorgekommen. Im Rahmen der Planung ist mir aufgefallen, dass ich seit langer Zeit einen abschließenden Beitrag für meine Youtube Lets Play - How To Reihe schreiben wollte. Dies verbinde ich nun. Es geht heute um die von mir genutzte Hardware und wie ich meine Videos hoch lade, sowie die genutzten Render-Settings. Diese Themenbereiche beschreibe ich kurz und im Rahmen meiner Nutzung. Ich hoffe, dass auch wenn ich nur nebenbei Videos im kleinen Rahmen Videos erstelle, meine kurzen Tipps dem einen oder anderen helfen.
Android Studio 3.0 - Finaler Release

Eine neue Major Version von Android Studio hat das Licht der Welt erblickt. Der Release 3.0 bringt direkten Kotlin Support und auf der anderen Seite ziehen auch neue Java 8 Features ein. Der Layout Editor wurde verbessert und auch die Adaptive Icons aus Android O können nun schnell und einfach eingebunden werden. Ebenfalls für Android API Level 26 oder höher gibt es nun XML Fonts und Downloadable Fonts Support. Wer IoT mag darf sich über Android Things Unterstützung Out-of-the-Box freuen. Das ganze basiert auf IntelliJ 2017.1. Gewohntermaßen wurden Build-Zeiten verbessert und Instant Run weiter optimiert. Der Emulator erhielt diverse Verbesserungen und kann nun mit OpenGL ES 3.0 umgehen und auch Proxys können dort konfiguriert werden. Wer APKs debuggen will kann sich freuen, denn selbiges Feature, sowie der Android Profiler, wurden ebenfalls stark verbessert und erweitert. Abgerundet wird der Spaß mit einer neuen Version des Layout Inspectors und einem neuen Device File Explorer. Alles sehr nette Features, die mit nur wenigen Anpassungen in großen Projekten und quasi keinen in kleinen Projekten einhergehen sollten. Ich selbst nutzte schon recht lange die Preview-Versionen, freue mich aber für meine privaten Projekte auf die finale 3.0 wechseln zu können. Auch auf der professionellen Ebene ist dies aktuell in Planung.
Mobile Developer's Guide To The Galaxy Version 17 erschienen

Schon wieder ist ein Jahr vergangen und das bedeutet viel neues im Mobile-Bereich der Softwareentwicklung. Dort den Anschluss zu behalten ist nicht leicht, denn es gibt zwar vieles im Internet, aber dort das richtige zu finden ist wiederum eine Herausforderung. Genau zu diesem Zweck gibt es den Mobile Developers Guide. Hier werden diverse Themen aus dem genannten Kosmos angesprochen, erklärt und zusammengefasst. Sicherlich ist diese Quelle nicht für alle Fragen die Antwort, aber vor allem für einen Überblick oder Einstieg in den genannten Themenkomplex ist sie extrem praktisch. Ich kannte den Guide schon aus Uni Zeiten und freute mich damals sehr zu erfahren, dass er von Enough Software erstellt und vertrieben wird. Mit der Firmenübernahme durch Open Xchange änderte sich zwar einiges, doch der Guide blieb. Nun also unter neuem Dach wird die aktuelle 17. Version des Guides vertrieben und steht euch kostenlos zum Download zur Verfügung. Auch eine Print-Version könnt ihr kostenlos bestellen. Für beides folgt einfach den Related Links. Dieses Mal freue ich mich übrigens besonders den Guide zu erwähnen, denn ich selbst konnte meinen Teil dazu beitragen. Als Mitautor des Android Kapitels schrieb ich einiges zu neuen Entwicklungen und aktualisierte alte Inhalte. Falls ihr euch den Guide schnappt, was ich nebenbei nur empfehlen kann, freue ich mich über Rückmeldungen in den Kommentaren. Wenn ihr immer auf dem neusten Stand bleiben wollt, folgt doch dem Mobile Dev Guide Twitter Account open_in_new.

