Rheinwerk Computing < openbook >

 
Inhaltsverzeichnis
Vorwort
Teil I Grundlagen
1 Android – eine offene, mobile Plattform
2 Hallo Android!
3 Von der Idee zur Veröffentlichung
Teil II Elementare Anwendungsbausteine
4 Wichtige Grundbausteine von Apps
5 Benutzeroberflächen
6 Multitasking
Teil III Gerätefunktionen nutzen
7 Telefonieren und surfen
8 Sensoren, GPS und Bluetooth
Teil IV Dateien und Datenbanken
9 Dateien lesen, schreiben und drucken
10 Datenbanken
Teil V Multimedia und Produktivität
11 Multimedia
12 Kontakte und Organizer
A Einführung in Kotlin
B Jetpack Compose
C Häufig benötigte Codebausteine
D Literaturverzeichnis
E Die Begleitmaterialien
Stichwortverzeichnis

Ihre Meinung?
Spacer
<< zurück
Android 11 von Thomas Künneth
Das Praxisbuch für App-Entwickler
Buch: Android 11

Android 11
Pfeil 2 Hallo Android!
Pfeil 2.1 Android-Projekte
Pfeil 2.1.1 Projekte anlegen
Pfeil 2.1.2 Projektstruktur
Pfeil 2.1.3 Bibliotheken
Pfeil 2.2 Benutzeroberfläche
Pfeil 2.2.1 Grafiken
Pfeil 2.2.2 Texte
Pfeil 2.2.3 Views
Pfeil 2.2.4 Oberflächenbeschreibungen
Pfeil 2.3 Programmlogik und -ablauf
Pfeil 2.3.1 Activities
Pfeil 2.3.2 Benutzereingaben
Pfeil 2.3.3 Der letzte Schliff
Pfeil 2.4 Zusammenfassung
 
Zum Seitenanfang

2    Hallo Android! Zur vorigen ÜberschriftZur nächsten Überschrift

Die erste eigene App ist schneller fertig, als Sie vielleicht glauben. Dieses Kapitel führt Sie in leicht nachvollziehbaren Schritten zum Ziel.

Seit vielen Jahrzehnten ist es schöne Tradition, anhand des Beispiels »Hello World!« in eine neue Programmiersprache oder Technologie einzuführen. Dahinter steht die Idee, erste Konzepte und Vorgehensweisen in einem kleinen, überschaubaren Rahmen zu demonstrieren. Google bleibt dieser Tradition treu: Wenn Sie in Android Studio ein neues Projekt anlegen, entsteht eine minimale, aber lauffähige Anwendung, die den Text »Hello World« ausgibt. Im Verlauf dieses Kapitels erweitern Sie diese Anwendung um die Möglichkeit, einen Nutzer namentlich zu begrüßen. Ein Klick auf Fertig schließt die App.

[»]  Hinweis

Sie finden die vollständige Version des Projekts sowie alle weiteren Beispiele auf der Seite https://www.rheinwerk-verlag.de/android-11_4891/. Alternativ können Sie auch das Repository unter https://github.com/tkuenneth/begleitmaterialien-zu-android-11 klonen. Um sich mit den Entwicklungswerkzeugen vertraut zu machen, rate ich Ihnen aber, sich die fertige Fassung erst nach der Lektüre dieses Kapitels anzusehen.

 
Zum Seitenanfang

2.1    Android-Projekte Zur vorigen ÜberschriftZur nächsten Überschrift

Projekte fassen alle Artefakte einer Android-Anwendung zusammen. Dazu gehören unter anderem Quelltexte, Konfigurationsdateien, Testfälle, aber auch Grafiken, Sounds und Animationen. Natürlich sind Projekte keine Erfindung von Android Studio, sondern bilden eines der Kernkonzepte praktisch aller modernen Entwicklungsumgebungen. Grundsätzlich können Sie mit beliebig vielen Projekten gleichzeitig arbeiten. Projekte werden über die Menüleiste angelegt, (erneut) geöffnet und geschlossen. Ein Android-Studio-Hauptfenster bezieht sich aber stets auf ein Projekt. Wenn Sie ein vorhandenes Projekt öffnen, fragt die IDE normalerweise nach, ob Sie es in einem neuen oder im aktuellen Fenster bearbeiten möchten. Im letzteren Fall wird das aktuelle Projekt geschlossen. Sie können dieses Verhalten übrigens im Settings-Dialog auf der Seite Appearance & BehaviorSystem Settings unter Project Opening ändern.

Projekte können aus einem oder mehreren Modulen bestehen. Google nutzt dieses Konzept unter anderem, um Projekte für Smartwatches zu strukturieren. Diese bestehen oft aus einem Teil für das Smartphone oder Tablet sowie einem für das Wearable. »Klassische« Android-Apps kommen üblicherweise mit einem Modul aus. In diesem Fall nennt der Assistent das Modul app. Beispiel-Apps von Google verwenden als Modulnamen gelegentlich Application.

 
Zum Seitenanfang

2.1.1    Projekte anlegen Zur vorigen ÜberschriftZur nächsten Überschrift

Um ein neues Projekt anzulegen, wählen Sie in der Menüleiste des Hauptfensters FileNewNew Project. Alternativ können Sie im Willkommensbildschirm auf Start a new Android Studio project klicken. In beiden Fällen öffnet sich der Assistent Create New Project, der Sie in wenigen Schritten zu einem neuen Android-Projekt führt. Auf der ersten Seite, Select a Project Template, legen Sie dessen grundlegenden Inhalt fest. Selektieren Sie, wie in Abbildung 2.1 dargestellt, auf der Registerkarte Phone and Tablet bitte Empty Activity, und klicken Sie danach auf Next.

Projektvorlage auswählen

Abbildung 2.1    Projektvorlage auswählen

Auf der nun angezeigten Seite Configure Your Project machen Sie wichtige Angaben zu Ihrer App. Der name wird später auf dem Gerät bzw. im Emulator angezeigt. Bitte geben Sie dort »Hallo Android« ein. Bei der Vergabe des Package Name müssen Sie sorgfältig vorgehen, vor allem, wenn Sie eine Anwendung in Google Play veröffentlichen möchten. Denn der Paketname, den Sie hier eintragen, referenziert genau eine App, muss also eindeutig sein. Gelegentlich wird der Package Name deshalb auch Application ID genannt. Idealerweise folgen Sie den Namenskonventionen für Kotlin- oder Java-Pakete und tragen in umgekehrter Reihenfolge den Namen einer Ihnen gehörenden Internetdomain ein, gefolgt von einem Punkt und dem Namen der App. Verwenden Sie nur Kleinbuchstaben, und vermeiden Sie Sonderzeichen, insbesondere das Leerzeichen.

Das Projekt konfigurieren

Abbildung 2.2    Das Projekt konfigurieren

Bitte tragen Sie »com.thomaskuenneth.androidbuch.halloandroid« als Package name ein. Unter Save location legen Sie den Speicherort des Projekts fest. Als Programmiersprache verwenden wir Kotlin. Die übrigen Einstellungen können Sie unverändert lassen. Der Dialog sollte in etwa Abbildung 2.2 entsprechen. Mit Finish schließen Sie den Assistenten. Android Studio wird nun eine Reihe von Dateien anlegen und das neue Projekt einrichten.

Kurzer Rundgang durch Android Studio

Danach sollte das Hauptfenster der IDE in etwa Abbildung 2.3 entsprechen. Es enthält unter anderem eine Menüleiste (unter macOS sowie manchen Linux-Distributionen erscheint diese stattdessen am oberen Bildschirmrand), eine Toolbar, mehrere Editorfenster für die Eingabe von Java- bzw. Kotlin-Quelltexten und anderen Dateiformaten, einen Designer für die Gestaltung der Benutzeroberfläche, eine Statuszeile sowie mehrere Werkzeugfenster.

Beginnt der Name eines solchen Fensters mit einer Ziffer, können Sie es über die Tastatur anzeigen und verbergen. Drücken Sie hierzu die angegebene Zahl zusammen mit der (Alt)-Taste. Auf dem Mac verwenden Sie (cmd).

Das Hauptfenster nach dem Anlegen eines Projekts

Abbildung 2.3    Das Hauptfenster nach dem Anlegen eines Projekts

Werkzeugfenster erscheinen im unteren, linken oder rechten Bereich des Hauptfensters. Ihre Position lässt sich über den Eintrag Move To des Kontextmenüs steuern, das Sie durch Anklicken des Fenstertitels mit der rechten Maustaste aufrufen. Ein Beispiel ist in Abbildung 2.4 zu sehen. Situationsabhängig kann eine ganze Reihe von zusätzlichen Menüpunkten enthalten sein.

Die Aufteilung des Android-Studio-Hauptfensters lässt sich praktisch nach Belieben den eigenen Bedürfnissen anpassen. Beispielsweise können Sie Werkzeugfenster als schwebende Panels anzeigen lassen (View Mode • Float) oder bei Nichtgebrauch automatisch ausblenden (View Mode • Dock Unpinned). Über das Window-Menü übernehmen Sie Ihre Anpassungen als Standard. Restore Default Layout kehrt zu den zuletzt gespeicherten Standardeinstellungen zurück.

Kontextmenü eines Werkzeugfensters

Abbildung 2.4    Kontextmenü eines Werkzeugfensters

Eine Statuszeile am unteren Rand des IDE-Hauptfensters zeigt situationsabhängige Informationen an, beispielsweise die aktuelle Cursorposition oder den Fortschritt eines Build-Vorgangs. Ganz links befindet sich ein Symbol, mit dem Sie drei Werkzeugfensterbereiche ein- und ausblenden können. Klicken Sie es mehrere Male an, und achten Sie darauf, wie sich das Android-Studio-Fenster verändert. Lassen Sie sich dabei nicht irritieren, denn sobald Sie mit der Maus über das Symbol fahren, erscheint ein Pop-up-Menü mit allen verfügbaren Werkzeugfenstern. Das ist praktisch, wenn die Werkzeugfensterbereiche nicht sichtbar sind. Innerhalb eines Bereichs können Sie die Reihenfolge der Fenster übrigens per Drag & Drop nach Belieben ändern. Auch das Verschieben in einen anderen Werkzeugfensterbereich ist möglich.

Der Dialog Settings enthält zahlreiche Optionen, um das Aussehen und Verhalten der IDE Ihren Vorstellungen anzupassen. Sie erreichen ihn über FileSettings. Unter macOS finden Sie den Menüpunkt unter Android Studio. Öffnen Sie den Knoten Appearance & Behavior, und klicken Sie dann auf Appearance. Wie in Abbildung 2.5 zu sehen, können Sie beispielsweise ein Theme einstellen. Darcula färbt Android Studio – das Wortspiel lässt es bereits vermuten – dunkel ein. Falls Sie möchten, können Sie die Standardschriften gegen von Ihnen gewählte Fonts austauschen. Setzen Sie hierzu ein Häkchen vor Use custom font, und wählen Sie in der Klappliste daneben die gewünschte Schrift und Größe aus.

Der Dialog »Settings«

Abbildung 2.5    Der Dialog »Settings«

Klicken Sie im Abschnitt Appearance & Behavior bitte auf System Settings. Unter Startup/Shutdown können Sie einstellen, ob beim Start das zuletzt bearbeitete Projekt automatisch geöffnet werden soll. Ist das Häkchen bei Reopen last project on startup nicht gesetzt, erscheint der Willkommensbildschirm. Er enthält eine Liste der kürzlich verwendeten Projekte. Das ist praktisch, wenn Sie mit mehreren Projekten im Wechsel arbeiten. Klicken Sie das gewünschte Projekt einfach im Willkommensbildschirm an.

[+]  Tipp

Sie können im Willkommensbildschirm angezeigte Projekte zu Gruppen zusammenfassen. Klicken Sie hierzu im linken Bereich des Fensters mit der rechten Maustaste auf eine freie Stelle, und wählen Sie dann New Project Group. Danach klicken Sie das Projekt, das Sie einer Gruppe hinzufügen möchten, ebenfalls mit der rechten Maustaste an, und wählen dann die gewünschte Gruppe aus dem Untermenü Move To Group aus.

Confirm application exit legt fest, ob eine Rückfrage erscheint, wenn Sie Android Studio durch Anklicken des Fensterschließsymbols oder über die Menüleiste verlassen. Unter Project Opening können Sie konfigurieren, ob Projekte in einem neuen Android-Studio-Hauptfenster geöffnet werden. Wenn Sie Open project in the same window auswählen, schließt die IDE das aktuelle Projekt und öffnet danach das neue. Confirm window to open project in lässt Ihnen in einem entsprechenden Dialog die Wahl. Mit Default directory können Sie das Verzeichnis festlegen, das beim Anlegen von neuen Projekten und dem Datei öffnen-Dialog angezeigt wird.

Da Android Studio kontinuierlich weiterentwickelt und von Fehlern befreit wird, empfehle ich Ihnen die gelegentliche Suche nach Aktualisierungen. Sie können dies mit HelpCheck for Update jederzeit selbst auslösen. Es ist allerdings bequemer, dies der IDE zu überlassen. Öffnen Sie in den Settings den Knoten Appearance & BehaviorSystem Settings, und klicken Sie dann auf Updates. Sofern dies nicht bereits der Fall ist, aktivieren Sie die Option Automatically check updates for. In der Klappliste rechts daneben sollten Sie Stable Channel auswählen. Kanäle legen fest, welche Aktualisierungen eingespielt werden. Der Stable Channel enthält nur ausreichend erprobte Änderungen. Die anderen Kanäle liefern Updates schneller aus, allerdings sind diese oftmals noch fehlerbehaftet oder experimentell.

Damit möchte ich unseren kleinen Rundgang durch Android Studio beenden. Im folgenden Abschnitt stelle ich Ihnen die Struktur von Android-Projekten vor.

 
Zum Seitenanfang

2.1.2    Projektstruktur Zur vorigen ÜberschriftZur nächsten Überschrift

Android-Apps bestehen aus einer ganzen Reihe von Artefakten, die als baumartige Struktur dargestellt werden können. Das Android-Studio-Werkzeugfenster Project bietet hierfür mehrere Sichten an, unter anderem Project, Packages und Android. Sichten wirken als Filter, d. h., nicht jedes Artefakt (eine Datei oder ein Verzeichnis) ist unbedingt in allen Sichten zu sehen.

Die Sicht Project entspricht weitestgehend der Repräsentation auf Ebene des Dateisystems. Sie visualisiert die hierarchische Struktur eines Projekts. Packages gruppiert Dateien analog zu Java-Paketen, soweit dies sinnvoll ist. Diese Sicht werden Sie möglicherweise eher selten verwenden. Am praktischsten für die Entwicklung ist wahrscheinlich die Sicht Android, die in Abbildung 2.6 zu sehen ist. Sie zeigt eine vereinfachte, in Teilen flach geklopfte Projekt-Struktur und gestattet dadurch den schnellen Zugriff auf wichtige Dateien und Verzeichnisse. Thematisch zusammengehörende Artefakte werden nämlich auch dann gemeinsam dargestellt, wenn sie physikalisch in unterschiedlichen Verzeichnissen liegen.

Die Struktur einer Android-App

Abbildung 2.6    Die Struktur einer Android-App

Das Werkzeugfenster Project stellt Sichten entweder als Registerkarten oder als Klappliste dar, was Sie mit dem Kommando Group Tabs im Kontextmenü des Fensters einstellen können. Um es zu öffnen, klicken Sie den Fenstertitel mit der rechten Maustaste an.

Lassen Sie uns nun einen ersten Blick auf wichtige Dateien und Verzeichnisse werfen. Aktivieren Sie hierzu die Sicht Android. Sie sehen zwei Knoten, app und Gradle Scripts, von denen Sie bitte den letzteren aufklappen. Die Datei build.gradle kommt zweimal vor, die Dateien gradle.properties, settings.gradle und local.properties jeweils einmal. Unter Umständen sehen Sie noch weitere Dateien, zum Beispiel proguard-rules.pro und gradle-wrapper.properties. Diese Dateien berühren fortgeschrittene Themen und können fürs Erste außen vor bleiben.

local.properties wird automatisch von Android Studio generiert und sollte nicht von Hand bearbeitet werden. Sie enthält einen Eintrag, der auf das für das Projekt verwendete Android SDK verweist. settings.gradle listet alle Module eines Projekts sowie den Projektnamen auf. Unser Hallo-Android-Projekt besteht aus einem Modul: app. Die Datei settings.gradle wird aktualisiert, sobald ein Modul hinzugefügt oder gelöscht wird. Viele Apps benötigen nur ein Modul. Mit gradle.properties können Sie Einfluss auf den Build-Vorgang nehmen, zum Beispiel indem Sie Variablen setzen.

Wieso ist die Datei build.gradle eigentlich mehrfach vorhanden? Eine Version bezieht sich auf das Projekt als Ganzes, und zu jedem Modul gehört eine weitere Ausprägung. Da Hallo Android aus einem Modul (app) besteht, gibt es build.gradle also zweimal. Lassen Sie uns einen Blick auf die Version für das Modul app werfen: Ein Doppelklick auf build.gradle (Module: app) öffnet die Datei in einem Texteditor. Wie das aussehen kann, sehen Sie in Abbildung 2.7. Bitte nehmen Sie zunächst keine Änderungen vor. Sie können das Editorfenster jederzeit durch Anklicken des Kreuzes auf der Registerkarte oder durch Drücken der Tastenkombination (Strg)+(F4) schließen. Auf dem Mac ist es (cmd)+(W).

Die Datei »build.gradle« im Editor von Android Studio

Abbildung 2.7    Die Datei »build.gradle« im Editor von Android Studio

Der Block android { } enthält Informationen, die Sie beim Anlegen des Projekts eingegeben haben. Beispielsweise entspricht applicationId dem Package name. minSdkVersion gibt an, welche Android-Version auf einem Gerät mindestens vorhanden sein muss, damit man die App nutzen kann. Ist diese Voraussetzung nicht erfüllt, wird die Installation abgebrochen, und Google Play zeigt das Programm in so einem Fall gar nicht erst an. Beispielsweise ist erst ab Android 4.x ein Zugriff auf Kalenderdaten über offizielle Schnittstellen möglich. Eine App, die diese nutzt, ist auf sehr alten Geräten mit Gingerbread oder gar Cupcake nicht lauffähig. Falls Sie keinen Wert setzen, geht Android davon aus, dass die App ab der ersten Android-Version lauffähig ist. Um potenzielle Probleme zu vermeiden, sollten Sie minSdkVersion deshalb auf jeden Fall angeben.

Die targetSdkVersion legt fest, gegen welche Android-Version eine App entwickelt, optimiert und getestet wurde. Man könnte auch sagen, unter der sich die App am wohlsten fühlt. Im Laufe der Zeit hat Google immer wieder das Aussehen oder Verhalten von Systembausteinen in einer Weise geändert, die Auswirkungen auf Apps hat. Um Inkompatibilitäten vorzubeugen, werden ältere Apps in einem Kompatibilitätsmodus gefahren. Das Attribut targetSdkVersion gibt also an, bis zu welcher Plattformversion dies aus Sicht der App nicht nötig ist.

minSdkVersion und targetSdkVersion erwarten den sogenannten API-Level. Für Android 1.5 (Cupcake) war dieser beispielsweise 3, Android 2.x (Froyo) hatte API-Level 8, Lollipop und Nougat entsprechen den API-Levels 21 respektive 24. Android 10 hat den API-Level 29.

[+]  Tipp

Unter https://developer.android.com/guide/topics/manifest/uses-sdk-element.html finden Sie eine vollständige Aufstellung aller API-Levels. In der Klasse android.os. Build.VERSION_CODES sind entsprechende Konstanten definiert.

Plattformen können mit dem SDK Manager installiert und gelöscht werden. Dieses Buch beschreibt die Anwendungsentwicklung mit Android 11. Aus diesem Grund basieren die meisten Beispiele auf API-Level 30.

versionCode und versionName repräsentieren die Versionsnummer Ihrer App. Während versionCode eine Zahl ist, die zur Auswertung durch Programmcode dient, enthält das Attribut versionName die Versionsnummer in einer für den Anwender verständlichen Form, zum Beispiel 1.2 oder 1.2.3. Google schlägt vor, für die erste veröffentlichte Version einer App versionCode auf 1 zu setzen und mit jedem Update beispielsweise um 1 zu erhöhen. Sie sollten stets beide Werte angeben. compileSdkVersion und buildToolsVersion geben Aufschluss darüber, welche Android-Plattform für die Entwicklung verwendet wurde und welche Build Tools eingesetzt wurden. Wenn nach dem Öffnen eines Projekts unerklärlich viele Fehler moniert werden, wurden entweder die Plattform oder die Build Tools noch nicht in der »gewünschten« Version heruntergeladen.

Übrigens müssen Sie die Datei build.gradle nicht unbedingt in einem Texteditor bearbeiten, um beispielsweise buildToolsVersion oder compileSdkVersion zu ändern. Das geht viel bequemer über den Dialog Project Structure. Sie öffnen ihn mit File • Project Structure.

Lassen Sie uns nun einen Blick auf das Modul app werfen; es enthält die Zweige manifests, java und res. Quelltexte werden unter java abgelegt. Das gilt auch dann, wenn Sie Ihre Apps in Kotlin schreiben. com.thomaskuenneth.androidbuch.halloandroid erscheint dreimal. Das mag irritieren, vor allem, wenn Sie schon mit anderen Entwicklungsumgebungen gearbeitet haben. Bitte denken Sie daran, dass die Sicht Android eine optimierte und, wenn Sie so möchten, künstliche Sicht auf ein Projekt darstellt. Ein Paket enthält die Klasse ExampleInstrumentedTest, ein zweites ExampleUnitTest und das dritte schließlich MainActivity. Um die Testklassen müssen Sie sich zunächst nicht kümmern. Übrigens können Sie bequem neuen Quelltext hinzufügen, indem Sie ein Paket mit der rechten Maustaste anklicken und New • Kotlin File/Class wählen.

Der Zweig res besteht aus mehreren Unterknoten. Beispielsweise enthält values die Datei strings.xml. Sie nimmt Texte auf, die später im Quelltext oder in Beschreibungsdateien für die Benutzeroberfläche referenziert werden. Hierzu wird von den Werkzeugen des Android SDK eine Klasse mit Namen R generiert, die Sie allerdings nicht von Hand bearbeiten dürfen. Deshalb ist sie in der Sicht Android auch nicht vorhanden. Im Unterknoten layout wird die Benutzeroberfläche einer App definiert. Haben Sie noch ein klein wenig Geduld, wir kommen in diesem Kapitel noch dazu. drawable und mipmap enthalten die Grafiken einer App. Das Programm-Icon liegt in mipmap, alle anderen in drawable. Bitmaps können in unterschiedlichen Auflösungen (Pixeldichten) abgelegt werden. Sie landen in Unterverzeichnissen, die einem bestimmten Namensmuster folgen. Mehr dazu etwas später. Für Vektorgrafiken ist das Bereitstellen in unterschiedlichen Größen natürlich nicht nötig. Sie liegen in drawable.

Der Unterknoten manifests enthält die Datei AndroidManifest.xml. Sie ist die zentrale Beschreibungsdatei einer Anwendung. In ihr werden unter anderem die Bestandteile des Programms aufgeführt. Wie Sie später noch sehen werden, sind dies sogenannte Activities, Services, Broadcast Receiver und Content Provider. Die Datei enthält aber auch Informationen darüber, welche Rechte eine App benötigt und welche Hardware sie erwartet.

Bitte öffnen Sie mit einem Doppelklick die Datei AndroidManifest.xml, um sich einen ersten Eindruck von ihrer Struktur zu verschaffen. Es gibt ein Wurzelelement <manifest> mit einem Kind <application>. Android-Apps bestehen neben den weiter oben bereits genannten anderen Bausteinen aus mindestens einer Activity. Hierbei handelt es sich stark vereinfacht ausgedrückt um eine Bildschirmseite. Verschiedene Aspekte einer Anwendung, wie Listen, Übersichten, Such- und Eingabemasken, werden als eigene Activities realisiert und als Unterelemente von <application> in AndroidManifest.xml eingetragen.

[»]  Hinweis

Wenn Sie einen Blick auf Googles Entwicklerdokumentation zur Manifestdatei werfen, stellen Sie fest, dass es neben <application> eine ganze Reihe Kinder von <manifest> gibt. Das Tag <uses-sdk> gibt beispielsweise die Zielplattform an. Schon seit dem Wechsel von Eclipse auf Android Studio werden diese Angaben aber nicht mehr direkt in das Manifest eingetragen, sondern in build.gradle gepflegt. Beim Bauen der Anwendung werden sie dann automatisch in das Manifest übernommen.

 
Zum Seitenanfang

2.1.3    Bibliotheken Zur vorigen ÜberschriftZur nächsten Überschrift

Bevor Sie im nächsten Abschnitt erste Erweiterungen an Hallo Android vornehmen, möchte ich Ihr Augenmerk noch einmal auf die Datei build.gradle für das Modul app richten. Sie enthält den Abschnitt dependencies { } mit Verweisen auf externen Code. Wie das aussehen kann, ist beispielhaft in Listing 2.1 dargestellt.

dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'

}

Listing 2.1    Projekt-Abhängigkeiten

fileTree() bindet .jar-Dateien im Unterverzeichnis libs ein und macht deren Inhalt im Projekt verwendbar. Wenn Sie also eine vorhandene und kompatible Java-Bibliothek in Ihrer App nutzen möchten, müssen Sie diese nur in den Ordner kopieren.

Die Schlüsselwörter implementation, testImplementation und androidTestImplementation legen fest, wie bzw. wann die referenzierten Bibliotheken verwendet werden können. Beispielsweise würden die Bestandteile des Testframeworks JUnit in der fertigen App nur unnötig Platz verbrauchen. Deshalb wird mit testImplementation festgelegt, dass sie nur beim Ausführen von Tests verfügbar sind. Gleiches gilt für sogenannte Instrumentation Tests. Solche Frameworks binden Sie mit androidTestImplementation ein.

Bibliotheken, die immer zur Verfügung stehen sollen, referenzieren Sie mit implementation. Der Projektassistent hat unter anderem org.jetbrains.kotlin:kotlin-stdlib, androidx.appcompat:appcompat und androidx.constraintlayout:constraintlayout eingebunden. kotlin-stdlib ist die Standardklassenbibliothek von Kotlin. Sie ist nötig, um Ihre App in Kotlin schreiben zu können. Die anderen beiden, constraintlayout und appcompat, gehören zu Googles Jetpack.

Hinter dem Bibliotheksnamen wird die zu verwendende Versionsnummer angegeben. Dabei sind auch Bereiche möglich. Man könnte beispielsweise durch Hinzufügen des Plus-Zeichens konfigurieren, Version 1.2.3 oder neuer zu verwenden. Das gilt allgemein aber als schlechter Stil, weil sich das Verhalten der App beim Bauen und zur Laufzeit nicht mehr ohne Weiteres reproduzieren lässt. Beides kann ja direkt oder indirekt durch die Version der Bibliothek beeinflusst werden. Besser ist deshalb, stets vollständige Versionsnummern zu verwenden.

[»]  Hinweis

Wo Android Studio bzw. das Build System Gradle nach Bibliotheken sucht, ist in der zweiten, projektweit gültigen Datei build.gradle hinterlegt. In den Blöcken buildscript { } und allprojects { } befindet sich jeweils ein Unterelement repositories { }, das üblicherweise die Einträge jcenter() und google() enthält.

In den folgenden Kapiteln werden Sie viele Aspekte von Jetpack und AndroidX kennenlernen. Zunächst kümmern wir uns aber um eine Reihe von Grundlagen. Als Erstes werde ich Ihnen zeigen, wie in Android Grafiken und Texte gespeichert werden und wie man in einer App auf diese zugreift.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
Zur Rheinwerk-Konferenz für Kotlin
 Buchempfehlungen
Zum Rheinwerk-Shop: Kotlin

Kotlin


Zum Rheinwerk-Shop: Praxisbuch Usability und UX

Praxisbuch Usability und UX


Zum Rheinwerk-Shop: Flutter und Dart

Flutter und Dart


Zum Rheinwerk-Shop: App-Design

App-Design


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2023
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern