Project Treble - Android bekommt Vendor Interface
Android ist vielfältig und so auch die Carrier und Hersteller die die Geräte vertreiben und bauen. Damit man ein Gerät nutzen kann muss die Android-Software an die Hardware angepasst werden, durch Treiber und ähnliches. Anschließend kommen weitere Anpassungen vom konkreten Hersteller des Geräts hinzu und auch der Carrier packt oben drauf noch etwas Code. Alles in allem ist recht viel Arbeit nötig und dies ist vor allem bei Updates ein Problem. Denn sobald sich der Android Unterbau ändert müssen sehr viele Stellschrauben gedreht werden, bis alles wieder läuft. Dieser Aufwand ist teilweise hoch und zeitaufwendig, sodass dieser Punkt sicherlich bezüglich schlechter Updatepolitik eine gewisse Relevanz hat. Google will dagegen mit dem neuen Vendor Interface vorgehen, was mit Android O integriert wird. Es schafft eine Abstraktionsebene, sodass Vendor spezifischer Code bei einem Update quasi gar nicht mehr angefasst werden muss, denn die darunterliegende API kann weiterhin unverändert angesprochen werden. Im Prinzip tut man hier dasselbe was man schon für die App Entwickler tut. Denn sofern nicht umfangreiche Änderungen vorgenommen werden, kann man seine alte App bei der Veröffentlichung einer neuen Android Version auch ohne Probleme auf dieser nutzen. Kleinere Anpassungen sind natürlich weiterhin nötig und neue Features funktionieren natürlich auch nur nach Integration selbiger. Ich hoffe das Vendor Interface wird ein Erfolg und bringt etwas mehr Updates für uns alle und selbige vor allem schneller.
Android App Lifecycle übersichtlich dargestellt
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.
Vektorgrafiken in Android Studio
Vektorgrafiken sind durchaus praktisch und vielseitig, denn sie lassen sich skalieren und anderweitig manipulieren, sodass sie bestens zu den Anforderungen von so mancher App passen. Solltet ihr nun, ähnlich wie ich, nicht für jede App neue Icons machen wollen und zusätzlich das Material Design Icon Set gut finden, dann solltet ihr unter Umständen weiterlesen. Denn vielleicht ist es noch nicht bei allen angekommen, dass man mit wenigen Klicks direkt in Android Studio besagtes Icon Set mittels eines Dialogs open_in_new durchsuchen und einbinden kann. Also keine manuelle Suche mehr auf der Material Icons Website open_in_new, mit anschließendem kopieren und anpassen. Ich selber nutze die Funktion seitdem ich sie entdeckt habe sehr umfangreich, denn ein einheitliches Icon Schema über diverse Android Apps hinweg, macht in meinem Kopf durchaus Sinn. Vor allem spart man sich mit dem integrierten Dialog aber einiges an überflüssiger Arbeit. Solltet ihr übrigens selbst Vektorgrafiken erstellt haben, so könnt ihr diese ebenfalls über den Dialog einbinden.
PAX - Android Lizenzabkommen
Das Android Ökosystem ist eines der größten und diverse Anbieter arbeiten in diesem Bereich. Diverse Patente aus extrem vielen Bereichen gehören mit zu diesem Ökosystem und auch wenn man mit dem selben System arbeitet, so heißt dies nicht das man auch im Bereich Patente zusammenarbeitet. Denn auch wenn man gemeinsam neue Software und Hardware entwickelt, so möchte jeder für sich doch seinen Umsatz und vor allem Gewinn machen. Trotzdem haben sich nun unter anderem Google, Samsung, HTC und LG zusammengeschlossen und tauschen untereinander Android relevante Patente aus. Somit soll eine schnellere und bessere Weiterentwicklung stattfinden und Patentstreits in diesem Bereich sollen der Vergangenheit angehören. Ich hoffe die Gruppe erweitert sich noch weiter, denn auch wenn Patente durchaus ihre Berechtigung haben, sie sollten sinnvoll eingesetzt werden und Weiterentwicklungen nicht blockieren.
Android und Java 8 - Auf Wiedersehen Jack
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.
Android Studio 2.4 - Ersten Previews erschienen
Obwohl erst vor kurzem Version 2.3 final erschien gibt es nun bereits drei Preview Versionen von Android Studio 2.4. Im Unterbau wurde auf eine neue IntelliJ Version (2017.1) aktualisiert und Instant Run erhielt weitere Fehlerbehebungen. Im Bereich Build-System wurde das Incremental Dexing verbessert und vor allem bei größeren Projekten sollte die Zeit welche fürs Konfigurieren benötigt wird nun geringer sein. Ein neuer Device File Explorer soll es dem Nutzer außerdem ermöglichen einfach und schnell direkt auf dem Gerät Dateien zu manipulieren. Die Preview 2 beinhaltete Fehlerbehebungen für den Updateprozess von Android Studio selbst und die Preview 3 brachte neben einige Bug-Fixes Support für die Android O Developer Preview open_in_new. Aktuell nutze ich noch die stabile Version 2.3, werde aber vermutlich im Laufe der Woche aktualisieren. Zusätzlich kann noch erwähnt werden das die Android Studio Seite überarbeitet wurde und vor allem die Informationen zu den Preview Versionen nun wesentlich ansehnlicher präsentiert werden.
Android Studio 2.3 - Finaler Release
Bereits vor einiger Zeit erwähnte ich die Entwicklung zu Android Studio 2.3 und nun ist die finale Version erschienen. Diese bringt neben diversen Neuerungen, nach Aussagen der Entwickler, eine der stabilsten und fehlerfreiesten Versionen die sie jemals entwickelt haben. Trotzdem sind Neuerungen natürlich auch vorhanden und dazu gehört z.B. Support für die finale Version des ConstraintLayout und den dazugehörigen Layout Editor. Außerdem gibt es nun WebP Support, wodurch besser komprimierte Assets möglich sind. Spannend finde ich den App Link Assistant, welcher euch auf einfache Weise Deep Links in eure App erstellen lässt. Hinzu wurde noch einiges an Instant Run getan, der Build Cache standardmäßig aktiviert und Copy / Paste Support während der Emulator Nutzung ist nun gegeben. Schöne finde ich außerdem den optimierten Material Icon Wizard, welcher euch erlaubt nach bestimmten Icons zu suchen und diese direkt aus dem Material Icon Katalog einzubinden. Weitere kleine Änderungen gab es natürlich auch noch, für eine komplette Liste folgt dem Link zum Blog Beitrag im Android Developer Blog, dort findet ihr alle weiteren relevanten Informationen. Das Update steht als automatisches Update, sowie als normaler Download zur Verfügung. Für einen schnellen Überblick habe ich das Info Video zum Release im unteren Teil der News eingebunden.
ConstraintLayout 1.0 erschienen
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.
Android Entwicklung - Meine Must Have Libraries
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.
Eigene Java Libraries veröffentlichen mit JitPack.io
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.