Suche
Neues vom Androiden-Planeten

Planet Android: Android KTX vereinfacht mobile Entwicklung mit Kotlin

Marcel Richters
Planet Android

Andoid KTX bietet umfassende Unterstützung für das Programmieren mit Kotlin, AngularFire unterstützt jetzt den Google Cloud Storage und der Android Emulator wurde aufpoliert. Dazu sorgen die neuen Bilder von Samsungs Dockingstation „DeX Pad“ für Diskussionen in den sozialen Netzwerken.

Einfacher coden mit Android KTX

Kotlin – das ist eine Programmiersprache, die ihren Namen von einer kleinen Insel in der Ostsee hat. Und es scheint so, als richte sich ein allseits beliebter grüner Roboter so langsam auf dieser Insel ein. Seit Mitte 2017 unterstützt Google bereits Kotlin neben Java und C++ als eine von drei Sprachen mit „First-class Support“ auf allen Systemen mit Android.

Diese Woche haben die Damen und Herren aus Mountain View Android KTX vorgestellt. Dabei handelt es sich um eine Reihe von Erweiterungen, die das Codeschreiben von Kotlin auf dem mobilen Betriebssystem vereinfachen soll. Android KTX bietet einen API-Layer für Kotlin, der auf dem Android Framework und der Support Library aufsetzt.

Der Layer ist in zwei Teile aufgeteilt: Der Teil für das Framework steht ab sofort im GitHub-Repo von Android zur Verfügung, der für die Library soll zeitnah folgen. Kotlin-Projekte mit Android KTX auszustatten ist nicht weiter schwierig. Einfach den folgenden Code in das build.gradle-Verzeichnis des App-Moduls laden und los geht’s:

repositories {
    google()
}

dependencies {
    // Android KTX for framework API
    implementation 'androidx.core:core-ktx:0.1'
    ...
}

Wichtig ist, dass die APIs noch nicht final sind und noch Breaking Changes implementiert werden könnten. Ein Codebeispiel macht aber klar, wieso es schon jetzt interessant ist, sich mit KTX zu beschäftigen. So sieht ein Codebeispiel in Kotlin aus:

view.viewTreeObserver.addOnPreDrawListener(
       object : ViewTreeObserver.OnPreDrawListener {
           override fun onPreDraw(): Boolean {
               viewTreeObserver.removeOnPreDrawListener(this)
               actionToBeTriggered()
               return true
           }
       })

Und so derselbe Code mit Kotlin für Android KTX:

view.doOnPreDraw { actionToBeTriggered() }

Neues Package-Prefix: androidx

Mit Android KTX gibt es auch Änderungen bei der Benennung der Packages der Android Support Library. So werden zukünftig Packages mit dem Prefix androidx.*, statt wie zuvor mit android.* benannt. Die Unterscheidung soll es einfacher machen, zwischen APIs, die mit der Plattform gebündelt sind, und statischen APIs für Entwickler, die auf verschiedenen Android-Versionen arbeiten, zu unterscheiden.

Diese Änderungen sind allerdings erst der Anfang. In den kommenden Monaten sollen Verbesserungen aus der Community und basierend auf deren Feedback eingearbeitet werden. Sobald die Stabilität sichergestellt ist, soll Android KTX fester Teil der Android Support Library werden, wie es in einem Post im Android Developers Blog heißt.

Android Emulator emuliert jetzt in Version 27.1.7

Das letzte Update des Android Emulators fiel eher spärlich aus. ANGLE fürs Rendering in Windows wurde in der Grundeinstellung ausgestellt, und eine Fehlfunktion bei Shift+B (ja, wirklich nur das Schreiben des Großbuchstabens) wurde behoben. Diesmal hat sich etwas mehr getan.

Quick Boot wurde überarbeitet, um effizienter mit AVD-Snapshots zu arbeiten. So werden Snapshots jetzt schneller gesichert, da in vielen Fällen nur die Unterschiede zwischen der aktuellen Version und dem vorherigen Snapshot aufgezeichnet werden. QEMU sollte jetzt in der Version 2.9 problemlos mit dem Emulator laufen. Die I/O wurde optimiert und deren Thread Locking ist nun etwas feiner granuliert. Diese Änderung soll die Performance des Emulators spürbar erhöhen. Ebenfalls neu ist die Implementierung des HAXM-Backends für QEMU.

Zu guter Letzt wurde die Swiftshader-Implementierung an OpenGL ES 3.0 angepasst: Das Emulatorfenster ist jetzt rahmenlos und es gab kleinere Bugfixes. Wer also den Emulator nutzt, um verschiedene Geräte vom Smartphone über den Fernseher bis zur Uhr zu simulieren und Apps zu testen, kann sich über die Neuerungen freuen. Details zur neuesten Version gibt es in den Release Notes der Android Studios.

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

DDD Summit 2018
Nicole Rauch

Domain-Driven Design für Einsteiger

mit Nicole Rauch (Softwareentwicklung und Entwicklungscoaching)

Heiße News bei AngularFire

AngularFire unterstützt ab sofort die Nutzung von Cloud Storage über Firebase. So lassen sich Binär-Dateien direkt über den Browser up- und downloaden. Zu einer App hinzugefügt, erlaubt AngularFire das Managen von Cloud Storage Buckets. Und das alles „ohne eine Zeile Servercode“, wie die Entwickler stolz verkünden.

Wer es noch nicht kennt: AngularFire ist die offizielle Angular Library für Firebase, Googles Entwicklerplattform für Web- und Mobilanwendungen. Die Bibliothek kombiniert Angular, Firebase und RxJS und dient als Serverless-Backend für Entwickler. Schon vor der Einführung von Cloud Storage wurden Echtzeitdatenbanken, Firebase-Authentifizierung und Cloud Firestore unterstützt.

Besonderes Augenmerk haben die Entwickler auf die Sicherheit gelegt. Die neue Implementierung von Cloud Storage für Firebase wird mit einem Set von Sicherheitsregeln für Server ausgeliefert. So soll sichergestellt werden, dass nur passende Formate hochgeladen und nur von berechtigten Usern genutzt werden. Beispielsweise wird mit dem Tag <input type="file" access=".png,.jpg"> Uploads auf .png- und .jpg-Dateien beschränkt. Diese Restriktion beschränkt sich aber nur auf die Client-Seite. Cloud Storage wird weiterhin alle Dateien akzeptieren. Um den Storage Bucket zu sichern, müssen entsprechende Regeln im /images-Pfad eingesetzt werden:

service firebase.storage {
 match /b/{bucket}/o {
   match /images {
     // Cascade read to any image type at any path
     match /{allImages=**} {
       allow read;
     }
     // Allow write files to the path "images/*", subject to the constraints:
     // 1) File is less than 5MB
     // 2) Content type is an image
     match /{imageId} {
       allow write: if request.resource.size < 5 * 1024 * 1024
                    && request.resource.contentType.matches('image/.*');
     }
   }
 }
}

Diese Regeln lassen unbeschränkten Lesezugang zum /images-Pfad zu. Uploads können allerdings nur erfolgen, wenn die Datei dem Content-Typen image/.* entspricht (also .jpg, .png, .jpeg, etc.) und nicht größer als 5 MB ist.

Die Implementierung von Google Cloud Storage ist laut einem Blogeintrag der Angular-Entwickler nicht weiter kompliziert. Auf dem Angular-Blog gibt es auch detaillierte Informationen dazu, wie AngularFire mit dem Google Cloud Storage zusammenarbeitet.

Jetzt wird es hässlich?

Dass Evan Blass eine verlässliche Quelle für News rund um grüne Roboter ist, dürfte inzwischen bekannt sein. So verbreiteten sich die Bilder des neuen „DeX Pad“ von Samsung wie ein Lauffeuer:

Und was soll man sagen? Schön ist die Dockingstation für das Samsung Galaxy S9 wirklich nicht, da haben einige Kommentatoren in den Sozialen Netzwerken schon recht. Aber – so der berechtigte Einwand von Blass – immerhin ist sie funktional.

So bietet das DeX Pad zwei USB-Anschlüsse, einen HDMI- sowie einen USB-C-Eingang und der Clou: Das daran angeschlossene Smartphone lässt sich als Touchpad und Tastatur benutzen. Beim Vorgänger, der „DeX Station“, war das noch nicht möglich. Allerdings war diese dafür um einiges dekorativer. Warten wir mal ab, ob Samsung es beim dritten Versuch schafft, Funktionalität und Design zu vereinen.

Der Planet Android ist bunt, dreht sich schnell, entwickelt sich ständig weiter. Wir bleiben neugierig und beobachten ihn weiter – bis bald!

Geschrieben von
Marcel Richters
Marcel Richters
Marcel hat Soziologie an der Goethe-Universität in Frankfurt am Main studiert und danach als E-Commerce-Manager gearbeitet. Seit Februar 2018 unterstützt er das Team von JAXenter als Redakteur. Daneben arbeitet er als freier Journalist in der Mainmetropole.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: