Associate Android Developer Certification
Ich bin Android Entwickler, dies kann im Prinzip jeder von sich behaupten. Aber im Gegensatz zum z.B. Netzwerkbereich gibt es nichts um dies zu beweisen ohne das man eine App oder dergleichen inklusive Quellcode zeigt und erklärt. Google ändert dies nun und stellt interessierten die Associate Android Developer Certification by Google zur Verfügung. Für diese muss gelernt und implementiert werden. Ca. 150 Dollar kostet der Spaß, welchen ihr nach der Lernphase binnen 48 Stunden umsetzen müsst. Das ganze wird anschließend teils von Software und teils von Menschen geprüft. Zuletzt genannte bitten bei erfolgreicher Absolvierung der Implementierungsphase dann um ein direktes Interview. Dieses wird zwar Remote durchgeführt, aber direkt mit einem menschlichen Gegenüber. Dadurch möchte man vermutlich Schummler entlarven. Ob eine Zertifizierung nun viel aussagt oder nicht sei dahingestellt, ich persönlich finde dies ist eine gute Aktion. Ich selber werde mir das ganze mal ansehen und zu gegebener Zeit dann vermutlich auch selber durchführen.
Android Experiments - Neue Ideen für Android
Android ist uns allen bekannt als Handybetriebssystem und dort gibt es quasi Apps für alles. Doch was wenn man Ideen-Technisch etwas mehr aus seinem Gerät herausholen will, was sowohl im Bereich Hardware, wie auch im Bereich Software gilt. Hier kommt Android Experiments ins Spiel, denn dort wird aus eurem Handy schnell mal eine dynamisch animierte Wettersimulation, ihr nutzt euer Gerät als 3D Mouse für die 3D Software Blender oder ihr steuert ein Spiel auf eurem Smartphone mittels eurer Android Watch. Diverse weitere gute und interessante Ideen findet ihr auf der unten verlinkten Plattform. Ich habe gestern mal etwas gestöbert und muss sagen, dass eine oder andere spannende ist dabei und ich finde es erfrischend auch nach der etwas längeren Zeit die es das ganze System schon gibt noch neue Ideen und Umsetzungen zu entdecken.
Android Instant Apps - Erster Test läuft
Google hat für einen ersten ausgewählten Entwicklerkreis die neue Android Instant App Funktion freigeschaltet. Dies Betrifft die Apps BuzzFeed, Wish, Periscope und Viki. Also eher englische / amerikanische Apps die einigen in Deutschland nichts sagen werden, aber trotzdem zeigt dies das es voran geht. Außerdem kann man ein kleines Formular open_in_new ausfüllen und selbst Interesse bekunden. Zusätzlich gibt es bereits einen Guide open_in_new, um seine App bereit für Instant Apps zu machen. Meiner Meinung nach ist der Ansatz extrem interessant, denn er ermöglicht nach einem kurzen Download Teile einer App ohne Installation zu starten. So kann ein Shop z.B. den schnellen Kauf von Produkten ermöglichen, ohne das man erst in der App lange navigieren muss, obwohl man z.B. auf der mobilen Website des Shops bereits den Artikel entdeckt hat. Die weiteren Einsatzzwecke sind vielseitig und sogar für meine Apps und Projekte kommt Instant Run in Frage. Ich bin gespannt auf die Entwicklungen der nächsten Monate in diesem Bereich, wie sieht es bei euch aus?
Android Studio 2.3 - Beta 1
Seit einigen Tagen teste ich die frisch erschienene Android Studio 2.3 - Beta 1. Sie bringt ein Update der Basis IDE IntelliJ von Version 2016.1 auf 2016.2 und zusätzlich wurde der Run Knopf vom Instant Run Knopf getrennt. Somit kann man nun immer direkt entscheiden ob man schnelle, aber in manchen Situationen unsichere oder langsamere aber immer korrekte Anwendungen seiner Änderungen möchte. Zusätzlich gibt es durch den Build Cache open_in_new optimierte Build Zeiten. Der Layout Editor wurde massiv überarbeitet, für die bessere Nutzung optimiert und an neue Funktionen, wie z.B. das ConstraintLayout, weiter angepasst. Weitere Optimierungen gab es im Lint Bereich und auch einige Fehler beim Data Binding wurden aus der Welt geschafft. Alles in allem wirkt es an vielen Stellen etwas flüssiger beim täglichen Arbeiten.
Bilder laden mit Picasso
Letztes Wochenende habe ich mich etwas mit dem laden und verwalten von Bildern auseinander gesetzt. Dabei wollte ich das Rad nicht neu erfinden und ohne wirklich großen Aufwand Bilder laden und anschließend aus dem Cache holen können. Die Aufrufe sollten nicht unnötig komplex sein und ich wollte soweit es geht auf die normalen Android Strukturen zugreifen, vor allem im UI Bereich. Denn dort sind mir native Dinger lieber, als selbst gebaute Strukturen, die dann Probleme mit Themes oder Styles haben. Meine Wahl fiel nach ein paar Vergleichen zwischen Fresco open_in_new und Picasso open_in_new auf letzteres. Es wirkte etwas einfacher und ist bereits etablierter. Dafür bietet Fresco neuere Ansätze und Ideen. Hier muss man also selber wissen was einem gerade besser gefällt. Ich habe mir Picasso geschnappt und mit nur einer Zeile konnte ich asynchron Bilder laden, diese aus dem Cache neu holen und das ganze funktionierte auch UI technisch sehr schön. In einer ListView kam alles z.B. schön via Fade-In Effekt ins Sichtfeld, sobald man scrollte. Falls ihr also mal Bilder laden wollt, schaut euch Picasso mal an.
Android UiAutomatorViewer zur UI Analyse
Android Apps bestehen im allgemeinen aus XML Dateien für das Design und jeder Menge Java Code für die eigentliche Implementierung. Nun gibt es manchmal Situationen wo man sich fragt warum die eigene UI komisch aussieht oder wie andere Apps Dinge gelöst haben. Vor allem bei sehr komplexen Schachtelungen, vielleicht kombiniert mit System Komponenten wie z.B. der WebView, kann dies schwer werden zu debuggen. Doch eigentlich hat man alle Tools dafür direkt zur Hand, sofern man das Android SDK installiert hat. Denn der UiAutomatorViewer liegt dort direkt im android-sdk/tools/ Ordner und kann dort auch geöffnet werden. Er bietet eine UI und lässt euch einfach und schnell Screenshots + XML Screenshots erstellen. Beides zusammen erlaubt euch die UI unter die Lupe zu nehmen und dürfte beim finden des einen oder anderen Problems helfen oder falls ihr vorhabt UI Automation Tests zu erstellen. Mir hat das kleine Tool bereits bei einem komplexen Problem auf der Arbeit geholfen und ich kann euch bei Bedarf nur empfehlen es mal anzuschauen. Relativ gute und kurz zusammen gefasste Tipps und Informationen zum UiAutomatorViewer gibt es auf gitbooks.io open_in_new.
Google und die EU - Thema Android
Google und die EU liegen aktuell im Clinch wegen Android und wie Google mit seiner dortigen Marktmacht umgeht. Denn die EU wirft Google hier vor den Wettbewerb zu beherrschen und dadurch zu manipulieren das sie ihre Apps mit Android bündeln. Die Art und Weise wie die EU das ganze betrachtet ist allerdings sehr “einseitig” und erinnert an die damalige Aktion mit Microsoft und dem Internet Explorer. Auch diese fand ich schon albern, doch dieses Mal geht es etwas weiter. Denn zum einen ist die EU der Meinung iOS und Android seien keine direkten Konkurrenten und zum anderen kann man Android sehr wohl ohne die Google Apps anbieten. Diverse Anbieter z.B. aus China tun dies, was auf anderen Plattformen übrigens soweit ich weiß nicht möglich ist. Das Google etwas verlangt, um selber auch mit dem eigentlich offenen Android Umsatz zu machen, ist meiner Meinung nach nicht verwerflich, vor allem da die Hersteller in diesem Bereich dadurch auch einige Vorteile haben. Vor allem aber die Entwickler haben dadurch eine Basis mit einer Plattform, Tools und diversen weiteren Dingen, welche das Leben der Entwickler einfacher machen. Googles Antwort ist deutlich und zumindest für mich nachvollziehbar. Die Ausführungen der EU hingegen wirken etwas undurchdacht und kurzsichtig. Ich bin gespannt was sich hier ergibt und hoffe sowohl für die Kunden, wie auch die Entwickler, dass es keine Probleme geben wird.
Android Extensions - Fragmentierung bekämpfen
Das Android System ist riesig. Es gibt viele Hersteller, viele Versionen die auf dem Markt aktiv sind und somit auch sehr viele verschiedene API Level die Entwickler beachten müssen. Dies schafft Fragmentierung, welche man bekämpfen muss. Denn wenn die Umstellung von Geräten auf neuere Versionen nicht schnell genug oder sogar gar nicht stattfindet, können die Nutzer neue Funktionen nicht genießen und die Entwickler müssen mit Altlasten jonglieren. Doch wie soll man dies tun, es gibt viele sehr günstige Smartphones die wenig Updates kriegen, Hersteller die sehr viele Geräte auf den Markt bringen und es nicht schaffen Updates zu liefern und selbst die die sich verpflichten einen bestimmten Zeitraum Updates bereitzustellen halten sich nicht immer daran. Google sieht hier nur die Möglichkeit selbst einen Teil der Updates direkt bringen zu können und zwar in Form der Android Extensions. Durch eine Einschränkung der erlaubten Veränderbarkeit des Kern-Android-Systems will Google eine feste Basis schaffen und diese dann unabhängig von Providern und Herstellern aktualisieren. Soll heißen ein API Level wird vielleicht nicht angehoben, aber für eine ältere Version können trotzdem Patches kommen, welche direkt von Google, vermutlich auch direkt über den Play Store zum Nutzer kommen. Dadurch erweitert sich die Funktionalität, Fehler können behoben werden und alles in allem gibt es einfach schnelle Updates. Ich dachte im ersten Moment dies macht es für Entwickler noch schlechter zu Überblicken welche Version mit was kompatibel ist, doch eigentlich wird es nicht wirklich schlimmer. Dadurch das jedes z.B. Lollipop Gerät ja alle Extensions für die Version hätte, reicht es im Prinzip weiterhin anzugeben welche Funktion die jeweilige Version unterstützt, vielleicht mit einem kleinen Zusatz was durch Extensions hinzugefügt wird und was direkt im Kern dabei ist. Manchmal für Entwickler ein Blick mehr, dafür aber ein guter Versuch die Fragmentierung zu bekämpfen. Aktuell ist einiges hier noch Vermutung, aber ich hoffe Google wird es so wie wir denken umsetzen, es wäre ein guter Ansatz.
Google räumt im Play Store auf
Der Google Play Store ist die Haupt-Plattform für Android Apps. Dementsprechend sollte man den Apps darin vertrauen können. Dies bedeutet weder Viren sollen darüber verteilt werden, noch Apps die den Nutzer ungewollt ausspionieren und zusätzlich sollte man auch dem Bewertungssystem vertrauen können. Bei der Menge an Apps ist dies nicht immer einfach und somit hat Google vor wenigen Tagen ein Update ihrer Erkennungssoftware ausgerollt. Dieses hat, nachdem die letzten Updates eher die Punkte Sicherheit und Spionagesoftware aufgriffen, den Schwerpunkt Manipulationen der Bewertungen zu bekämpfen. Soll heißen, dass Anbieter die sich mehrere tausend 5-Sterne Bewertungen kaufen, nun weniger Spaß haben werden. Ich finde dies ist eine gute Erweiterung, denn auch Apps die vielleicht nicht direkt den Nutzer angreifen, aber durch Manipulation vor anderen Apps stehen, schaden dem ganzen System und sollten bekämpft werden.
Material Design - Eigene Plattform für das Design Konzept
Material Design ist Googles aktuelles Design Konzept, welches sowohl auf Android, wie auch im Web in Google Produkten verwendet wird. Doch die Konzepte und diverse Libraries die dieses umsetzen, sind frei für jedermann verfügbar und nutzbar. Damit dies besser umgesetzt werden kann, hat Material Design nun mit material.io eine eigene Plattform erhalten. Auf dieser gibt es die allgemeinen Ideen hinter dem Ansatz, hilfreiche Links und Tools, sowie eine Galerie mit Beispielen. Ich persönlich finde den Ansatz wirklich gut, da er einen realen Hintergrund hat, sich also an physikalischen Dingen in der echten Welt orientiert und ich ihn somit tatsächlich verstehen und nachvollziehen kann. Falls euch das ganze auch interessiert schaut mal in die Related Links, dort findet ihr den Link zur Plattform.