Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Scala Grundkurs

Scala auf Android-Systemen einsetzen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auch unter dem Android-Betriebssystem ist es möglich, Scala-Code auszuführen. Dabei lassen sich die Schwierigkeiten, die eine solche Umgebung bietet, wesentlich einfacher umgehen, als dies beispielsweise bei Sprachen wie Java möglich ist.

Transkript

Als eine Programmiersprache, die auf der Java Virtual Machine basiert, ist es naheliegend, Scala beispielsweise auch bei der Entwicklung von Android Applikationen zu nutzen. Schliesslich wird auch Java in diesem Zusammenhang genutzt, um beispielsweise solche Apps für Android zu entwickeln. In diesem Video zeige ich Ihnen daher, wie Sie das Standard Build Tool für Android Gradle im Zusammenhang mit Scala verwenden können. Zunächst einmal benötigen Sie hierfür ein zusätzliches Plugin mit der Bezeichnung gradle-android-scala-plugin. Dabei handelt es sich um ein Plugin der Community, dass leider nicht mehr in entsprechender Art und Weise gewartet wird. Zumindest der ursprüngliche Autor dieses Projektes saturday06 hat das Projekt nicht mehr weitergeführt. Nichtsdestotrotz, gibt es Möglichkeiten, anhand anderer GitHub User, dieses Projekt mit dem eigenen Android Projekt zu kombinieren. Und ich zeige Ihnen nun wie. Dafür beginne ich zunächst einmal mit der Erstellung einer Android Applikation. Dies beginne ich im Projektassistenten von IntelliJ IDEA. Diesen finde ich im Regelfall unter “file”, “new project". Ich wähle hier den Writer Android und vergebe einen Namen für meine Applikation. Beispielsweise ScalaApp. Bestätige mit “next”, wähle hier eine Android Version aus, wie ich das Ganze entwickeln möchte, bestätige wiederum mit “next”, lasse mir eine Empty Activity erzeugen, bestätige mit “next” und erstelle nun mein Projekt. Nach einer kurzen Initialisierung sehe ich nun die aktuelle Hauptklasse, MainActivity.java. Selbstverständlich möchte ich nun hier Scala Code ausführen. Dafür sind nun also noch einige Änderungen an der Projektstruktur nötig. Zunächst einmal beginne ich mit der Datei build.gradle auf der Projektebene, also im Ordner ScalaApp. Zusätzlich muss ich hier nun ein Repository definieren, wo sich die aktuelle Version des gradle-android-scala-plugins befindet. In dem Fall ist es ein Maven Repository, dass sich unter der url befindet: https://jitpack.io. Des weiteren benötige ich nun also die Abhängigkeit zu diesem Plugin. Dies wird weiterhin von einem GitHub User gewartet, mit diesem Namen. Des Weiteren ist dieses Plugin nun für die gradle Build Tools in Version 2.3 verfügbar. Allerdings verwende ich hier weiterhin die Version 2.2, denn ich habe leider festgestellt, dass im Zusammenhang mit IntelliJ IDEA noch einige Bugs bestehen. Neben dem Android-Scala-Plugin, benötige ich zusätzlich auch eine neuere gradle Version. Diese ändere ich über “gradle”, “wrapper”, “gradle-wrapper.properties”. Dort hebe ich die Version nun auf 3.3 an und synchronisiere nun mein Projekt. Das Plugin ist nun also verfügbar und ich kann es im Rahmen meiner App nutzen. Dafür muss ich also hier nun Konfigurationen vornehmen, die auf der App Ebene stattfinden. Das bedeutet im Ordner “app”, in der Datei build.gradle. Zunächst einmal muss ich das Plugin aktivieren. Dies tue ich über den Ausdruck: "apply plugin" und dann die Referenz zu dem Plugin: "jp.leafytree.android-scala" Außerdem aktiviere ich nun multiDexing. Diese Funktion ist nötig, da Scala unheimlich viele Klassen und Methoden erzeugt, anders als beispielsweise Java. Das passiert im Hintergrund und man sieht es oftmals nicht, obwohl man es innerhalb des eigenen Codes nutzt. Beispielsweise stellt jede Closure eine eigene Klasse dar. Da Android hier an seine Grenzen stößt, sollte man das multiDexing Verfahren aktivieren. Damit ist es möglich trotzdem mit einer hohen Menge an Klassen, eine Android App zu entwickeln. Alle anderen Einstellungen bleiben wie ursprünglich definiert, und ich füge nun noch die Einstellungen für den Klassenpfad hinzu. Und zwar befinden sich meine Klassen nun im Ordner "source/main/scala". Dies definiere ich also über den Ausdruck "sourceSets". Selbstverständlich benötige ich nun noch eine Abhängigkeit zur Scala Library. Diese trage ich unterhalb von "dependencies" ein. In dem Fall verwende ich nun die Scala Version 2.11. Diese ist noch kompatibel mit dem aktuellen Android Scala Plugin. Als nächstes synchronisiere ich mein Projekt erneut. Mein Projekt ist nun soweit vorbereitet, als dass ich nun Scala Klassen erstellen könnte. Das bedeutet, ich erstelle hier einen Ordner, mit der Bezeichnung Scala. Als nächstes kopiere ich die Referenz der aktuellen Main Activity. Und erstelle einen solche Klasse in Form einer Scala-Klasse, im Ordner Scala. Ähnlich wie auch bei einer normalen Java-Klasse, erweitere ich nun die App Compatibility Activity, auch kurz AppCompatActivity. Danach überschreibe ich die Funktion, bzw. Methode "onCreate" und setzte nun die "ContentView" auf das "xml" meiner Aktivität. In dem Fall also "R.layout.activity_main". Da ich nun also eine Scala-Klasse habe, die dieselbe Implementierung wie die Java-Klasse hat, kann ich die Java-Klasse nun entfernen. Insofern ich nun alles richtig konfiguriert habe, kann ich meine App, beispielsweise auf einem Android Simulator, ausführen. Innerhalb meines Android Emulators sehe ich also nun die ScalaApp Anwendung. Diese wurde also auf Basis von Scala-Klassen gebaut, statt einer Java Klasse. Um also Android mit Scala zu kombinieren, benötigt man für das Build Tool Gradle einen Gradle-Android-Scala-Plugin. Um sicher zu stellen, dass Scala auch nicht an seine Grenzen stößt innerhalb einer Android App, sollte man immer das MultiDexing aktivieren. Ich habe Ihnen dann noch beispielhaft eine Activity gezeigt, die ich auf Basis von Scala implementiert habe. Von dort aus kann man dann einen weiteren Scala Code entwickeln, der dann innerhalb der App abgebildet wird. Selbsverständlich muss man sich dafür entscheiden, ob man Android mit Scala entwickeln möchte. Dafür möchte ich zunächst einmal die Vorteile erwähnen. Die üblichen Vorteile sind selbstverständlich die, die man auch bei der Bewertung zwischen Java und Scala hat. Wer also die Scala Programmiersprache Java vorzieht, sollte auch hier bei Android auf Scala zurückgreifen. Des Weiteren ist ein solches mobiles System wie Android vor allem sehr asynchron, das bedeutet, dass viele Aktivitäten darauf basieren, dass bestimmte Dinge erst in der Zukunft passieren. Z.B. durch einen Abruf von einem Webserver. Und umso mehr, beispielsweise durch Verbindungsabbrüche, gibt es hier Fehlerszenarien. Und die Java Programmiersprache eignet sich leider nicht genauso gut, wie beispielsweise Scala, um solche Fehlerszenarien korrekt zu behandeln. Besonders die Übersichtlichkeit leidet in diesem Fall meistens. Nichtsdestotrotz gibt es selbstverständlich auch Probleme, wenn man Android mit Scala verwendet. Zum einen erzeugt Scala standardmäßig eine hohe Anzahl von Klassen. Dafür benötigt man also das MultiDexing Feature. An und für sich ist das erstmal nichts negatives, ist aber anders als beispielsweise bei normalen Java Apps. Des weiteren führt die hohe Anzahl von Klassen dazu, dass die Installation der Anwendung etwas länger dauert. Denn beim Installationsprozess verwandelt Android diese Klassen und deren Code zunächst einmal in ein kompakteres Format, um die Anwendungen schneller starten zu können. Die Zeit für diesen Prozess dauert natürlich umso länger, je grösser entsprechend der Code ist. Des weiteren wurde bei der Entwicklung der Android API’s darauf geachtet, für die Schwächen von Java aufzukommen. Im Umkehrschluss bedeutet das, dass Android viele Mechanismen hat, die dafür dienen, um beispielsweise mit asynchronen Vorgängen umzugehen. Diese sind also in einer Java typischen Syntax abgebildet und müssten zunächst einmal, insofern man sie mit Scala ähnlicher Syntax verwenden möchte, in eigene Mechanismen übersetzt werden. Nichstdestotrotz ist Ihnen hier freigestellt, Ihre eigene Syntax innerhalb von Scala zu verwenden und das Ganze zu kapseln oder auch direkt einfach die reguläre Android API zu verwenden.

Scala Grundkurs

Entdecken Sie die Möglichkeiten und Eigenschaften der modernen Programmiersprache Scala.

4 Std. 44 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:12.04.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!