Android-Apps programmieren lernen für Dummies - Arnold Willemer - E-Book

Android-Apps programmieren lernen für Dummies E-Book

Arnold Willemer

0,0
20,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Sie wollen programmieren lernen, um eigene Apps für Ihr Android-Gerät zu entwickeln? Dann sind Sie hier richtig. Dieses Buch ist drei Bücher in einem: Sie lernen Java, begreifen die objektorientierte Programmierung und erhalten eine Einführung in die Android-App-Entwicklung. Wichtige Themen wie die Ansteuerung des Displays oder der Umgang mit der Grafik, den Sensoren und GPS werden Ihnen an kleinen Apps vorgeführt. Nebenher erfahren Sie noch so einiges über die Spieleprogrammierung und sogar, wie Sie JSON-Daten aus dem Internet in eine App einbinden. Freuen Sie sich auf die spannende Reise, die vor Ihnen liegt!

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 386

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Android-Apps programmieren lernen für Dummies

Schummelseite

SHORTCUTS AUSFÜHRUNG

Android-Studio startet die Apps über die folgenden Tastaturkürzel:

  + : App starten  + : Änderungen übernehmen und App neu starten  + : Debug starten

SHORTCUTS DEBUG-MODUS

Im Debug-Modus wirken folgende Shortcuts:

 : Step-over. Springt über die aktuelle Zeile, auch wenn sie einen Methodenaufruf enthält. : Step-into. Springt in die Methode, über deren Aufruf der Debugger gerade steht.  + : Step-out. Verlässt die aktuelle Methode, in der der Debugger steht. : Weiterlaufen (Resume). Die schrittweise Ausführung wird aufgelöst. Das Programm läuft bis zum nächsten Breakpoint.  + : Beende das Programm.

SHORTCUTS EDITOR

Im Editor gibt es

  + : Suche Verwendung  + + : zum letzten Bearbeitungspunkt zurück  + + : markierten Code korrekt einrücken  + : markierten Code kommentieren oder entkommentieren

VARIABLEN, ABFRAGEN UND SCHLEIFEN

Eine Variable beginnt mit dem Typnamen gefolgt von dem Variablennamen. Befehle in Java schließen mit Semikolon ab. Optional kann auch eine Initialisierung der Variablen erfolgen. Mehrere Variablen gleichen Typs können in einer Anweisung definiert werden, müssen dann aber durch Kommata getrennt werden.

Eine Abfrage prüft eine Bedingung und führt die nachfolgende Anweisung beziehungsweise den nachfolgenden Block nur aus, wenn die Bedingung zutrifft. Optional kann ein Zweig erstellt werden, der ausgeführt wird, wenn die Bedingung nicht zutrifft.

Eine while-Schleife wiederholt die zugehörige Anweisung beziehungsweise den nachfolgenden Block, solange die Bedingung erfüllt ist.

Eine for-Schleife enthält in ihrer Klammer eine Startanweisung zur Initialisierung, die einmal vor Betreten der Schleife ausgeführt wird. Es folgt die Bedingung, unter der die Schleife läuft. Im letzten Element der Klammer steht die Schlussanweisung, die am Ende jedes Durchlaufs ausgeführt wird.

DIE GRAFIKPRIMITIVE DES CANVAS

Der Canvas ist die Zeichenfläche, die typischerweise als Parameter der Methode onDraw übergeben wird. Die Klasse bietet folgende Methoden zum Zeichnen.

drawLine zieht eine Linie von der Koordinate (xStart, yStart) zur Koordinate (xEnde, yEnde).

drawRect zeichnet ein gefülltes Rechteck von der Koordiante links oben zur zweiten Koordinate rechts unten.

drawText zeichnet den Inhalt von text als Text an die Koordinate (xStart, yStart). Die Position ist die linke untere Ecke des Strings. Ist yStart 0, ist die Schrift nicht zu sehen, da sie oberhalb des Canvas landet, der seinen Nullpunkt links oben hat.

drawCircle zeichnet einen Kreis mit dem Mittelpunkt an der Koordinate (xStart, yStart). Als weiterer Parameter wird der Radius, also der halbe Durchmesser angegeben.

LEBENSZYKLUS EINER ACTIVITY

onCreate – onDestroy: Die Activity wird erzeugt beziehungsweise entsorgt.onStart – onStop: Die Activity wird sichtbar beziehungsweise verschwindet.onResume – onPause: Die Activity kommt in den Vordergrund, nachdem sie sichtbar wurde, beziehungsweise wird aus den Vordergrund verdrängt.

LISTENER UND IHRE METHODEN

OnTouchListener (onTouch) wird bei der Berührung einer selbstgeschriebenen View ausgelöst.OnClickListener (onClick) reagiert auf die Berührung eines Buttons.OnItemClickListener (onItemClick) reagiert auf die Berührung eines Listenelements bei einer ListView.OnItemSelectedListener (onItemSelected) reagiert auf die Berührung eines Listenelements bei einem Spinner.OnCheckedChangeListener (onCheckedChange) reagiert auf den Wechsel der Auswahl eines Hakenelements (CheckedBox, RadioButton, RadioGroup).OnFocusChangeListener (onFocusChange) reagiert, wenn ein Element den Fokus erhält oder verliert.OnDateSetListener (onDateSet) reagiert auf Änderungen im DatePicker.LocationListener (onLocationChanged, …) reagiert auf das Verändern einer Standortposition (GPS).OnChronometerTickListener (onChronometerTick) reagiert auf das Ticken eines Timers (Chronometer).OnCompletionListener (onCompletion) wird aktiviert, wenn der MediaPlayer ein Stück fertig abgespielt hat.SensorEventListener (onSensorChanged) reagiert auf neue Events eines Sensors.

Android-Apps programmieren lernen für Dummies

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

© 2022 Wiley-VCH GmbH, Boschstraße 12, 69469 Weinheim, Germany

Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.

Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.

Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.

Coverfoto: © elenabsl – stock.adobe.comKorrektur: Matthias Delbrück, Dossenheim/Bergstraße

Print ISBN: 978-3-527-71880-1ePub ISBN: 978-3-527-83458-7

Über den Autor

Arnold V. Willemer hat an der Universität Frankfurt/Main sein Diplom in Informatik abgelegt. Anschließend hat er viele Jahre als Software-Entwickler gearbeitet. Seit 2016 ist er an der Hochschule Flensburg tätig, vor allem in den Bereichen Programmierung und Netzwerke.

Seit 2001 schreibt er Bücher zu den verschiedensten Informatikthemen, etwa Programmiersprachen wie Java, C++ oder Python. Aber er befasst sich auch gern mit Betriebssystemen und Netzwerken. Vor allem interessieren ihn da UNIX und Linux. Leider kam er nie in die engere Wahl für den Literatur-Nobelpreis und auch auf den Friedenspreis des Deutschen Buchhandels wartet er seit Jahren vergeblich.

Tatsächlich motiviert ihn die Aussicht auf Preise weniger als die Herausforderung, komplexe Themen Anfängern möglichst leicht verständlich in leicht zu bewältigenden Schritten nahezubringen.

Danksagung

Meine Lektorin Andrea Baulig musste sehr viel Geduld aufbringen, weil ich mehrere Anläufe benötigte, bis ich es schaffte, alles verständlich in die richtige Reihenfolge zu bringen. Und obwohl ich einen Abgabetermin gerissen habe, blieb sie erstaunlich ruhig.

Inhaltsverzeichnis

Cover

Titelblatt

Impressum

Über den Autor

Einleitung

Konventionen in diesem Buch

Törichte Annahmen über den Leser

Wie dieses Buch aufgebaut ist

Symbole, die in diesem Buch verwendet werden

Wie es weitergeht

Teil I: Werkzeugbeschaffung und Einrichtung

Kapitel 1: Entwicklungsumgebung

Anforderungen an den Entwickler-PC

Smartphone oder Tablet

Gestatten: Android Studio

Weitere Hilfen aus dem Internet

Kapitel 2: Das »leere« Projekt von Android Studio

Die erste App

Übersicht über die IDE

Android Virtual Device Manager

Emulator starten

Falsche SDK-Version

Nichts anfassen, nur gucken

Teil II: Wir programmieren

Kapitel 3: Eine Mini-App für die ersten Programmierschritte

Erste eigene Programmschritte

Variablen und Typen

Ausgabe von Ergebnissen

Eingaben zu Ausgaben verrechnen

Eigene Projekte

Kapitel 4: BMI: Abfragen und Schleifen

Das Layout für Ihre BMI-App

Abfragen in Java

Java bringt Leben in den BMI

Texte statt BMI-Werte

Automatische Neuberechnung bei Eingabe

Eine neue Methode zur Berechnung des BMI

Eigene Projekte

Kapitel 5: Lotto: Zufall, Arrays und Schleifen

Arrays in Java

Zufällige Lottozahlen

Eine Würfel-App

Java-Schleifen

Sortieren

Darstellen der Lottozahlen in der ListView

Eigene Projekte

Kapitel 6: Brüche in Klassen

Klasse

Die Klasse als Datenstruktur

Methoden zur Multiplikation

Konstruktoren der Klasse Bruch

Der Destruktor und die Müllabfuhr

Private Attribute

Erweiterte Erbschaft

Abstrakte Klassen und Interfaces

Packages und Importe

Eigene Projekte

Teil III: Ein eigenes grafisches Spiel

Kapitel 7: Das Spiel Minesweeper als View

Das Spiel Minesweeper

Das Minesweeper-Projekt

Eine eigene View

Grafik in der View mit onDraw

Wir zeichnen ein Spielfeld

OnTouchListener reagieren auf Tatschen

Die Spiellogik

Ein Button für ein neues Spiel

Markieren

MineSweeperView meldet Spielende

Das gedrehte Display

Eigene Projekte

Kapitel 8: Die Highscore-Liste

Chronometer: Die tickende TextView

Der Name des Spielers

Zeit und Datum des Triumphs

Die Highscore-Liste in der Datenbank

Mit dem Menü zur Highscore-Liste

Anzeige der Highscore-Liste

Eigene Projekte

Teil IV: Wechselnde Displays und ihre Daten

Kapitel 9: Wechselspiel der Bildschirme

Ein Quiz

Android-eigene Activitys

Daten sichern: SharedPreferences

Lebenszyklus einer Activity

Ein Datenmodell für ein Quiz

Die App stellt Fragen

Sicherung des Quiz-Zustands

Ein Menü für das Quizspiel

Neue Fragen für das Quiz

Änderung einer Aufgabe

Eigene Projekte

Kapitel 10: Fragmente einer Activity

Mehrere Fragmente in einer Activity

Bildschirmnavigation mit Fragmenten

Kapitel 11: Zugriff auf Dateien und das Internet

JSON

Externe Dateien

Daten aus dem Internet lesen

Wie ein Netzwerk tickt

Eigene Projekte

Teil V: Ortskenntnis und Sensoren

Kapitel 12: Wo bin ich?

Der Spion in der Tasche

Positionsbestimmung per GPS

Die Berechtigungen anfordern

Location: Der Manager und sein Listener

Zusammenfassung: Anzeige von GPS-Daten

Einen Kartenausschnitt beschaffen und integrieren

In OMS-Droid Karten online navigieren

Kapitel 13: Sensoren

Ein Sensor-Projekt

Sensor-Manager

Sensor-Ereignissen nachspüren

Eigene Projekte

Kapitel 14: Multimedia: Video und Audio

Berechtigungen

Beispiel-App für ein Foto

Auslaufmodell startActivityForResult

Video

Audioaufnahme und -wiedergabe

Abspielen von Klangressourcen

Eigene Projekte

Teil VI: Der Top-Ten-Teil

Kapitel 15: Die Top 10 der Emulator-Gemeinheiten

Der Emulator benötigt das Virtual Flag der CPU

Zickig im Umgang mit virtuellen Kollegen

Laaaaaangsam

Wenig Speicher

Fettleibigkeit

Stürzt bei Nichtbeachtung ab

Startet manchmal kommentarlos nicht

Mangel an Fähigkeiten

Eine Sperrdatei

Unverzichtbar

Kapitel 16: Die Top-10-Strategie für benutzbare Apps

Planen Sie Ihre Funktionalität

Befragen Sie potentielle Benutzer

Gruppieren und Trennen

Prototypen erstellen und verwerfen

Testen Sie die Bedienung zuerst selbst

Programmierer sind keine Anwender (und umgekehrt)

Erstbenutzer suchen

Benutzertest mit lautem Denken

Fragen stellen

Tester freundlich behandeln

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Tabellenverzeichnis

Kapitel 4

Tabelle 4.1: BMI-Werte und ihre Bedeutung

Tabelle 4.2: Spannungsabfall an LEDs

Kapitel 9

Tabelle 9.1: Der Lebenszyklus einer Activity

Illustrationsverzeichnis

Kapitel 1

Abbildung 1.1: Webseite zum Download von Android Studio

Abbildung 1.2: Installation auf dem Mac nach dem Download

Kapitel 2

Abbildung 2.1: Auswahl des Projektstils

Abbildung 2.2: Konfiguration des Projekts

Abbildung 2.3: Android Studio mit geladenem Projekt

Abbildung 2.4: Zugang zum AVD-Manager

Abbildung 2.5: Der AVD-Manager mit den Emulatoren

Abbildung 2.6: Auswahl einer neuen Emulator-Hardware im AVD-Manager

Abbildung 2.7: Ein erster Gruß des Emulators

Abbildung 2.8: Das Projekt kann nicht übersetzt werden.

Abbildung 2.9: Auswahl der SDK im Dialog Project Structure

Abbildung 2.10: Modi des Editors

Abbildung 2.11: TextView im Designer

Kapitel 3

Abbildung 3.1: Die Werkzeugleiste mit dem Käfer als Debug-Symbol

Abbildung 3.2: Die App wartet auf den Debugger.

Abbildung 3.3: Die Werkzeugleiste zur Steuerung des Debuggers

Abbildung 3.4: Das Listing unter Debug-Kontrolle

Abbildung 3.5: Ergebnisse im Logcat

Abbildung 3.6: Ergebnisse im Toast

Abbildung 3.7: Eintrag der id im Designer

Abbildung 3.8: Die Tischfläche in voller Schönheit

Abbildung 3.9: Zentrieren eines Elements

Abbildung 3.10: Alle Elemente werden oben auf dem Display angeordnet.

Abbildung 3.11: Elemente markieren

Abbildung 3.12: Vertikale Kette

Abbildung 3.13: Fehlermeldung!

Abbildung 3.14: Android Studio schlägt Ihnen eine Methode vor.

Abbildung 3.15: App zur Berechnung von Fläche und Umfang eines Rechtecks

Kapitel 4

Abbildung 4.1: Beschriftung und Eingabe auf dieselbe Höhe bringen.

Abbildung 4.2: In der Höhe zentrieren.

Abbildung 4.3: Die BMI-Activity im Design

Abbildung 4.4: Der BMI-Screen

Abbildung 4.5: Der Dialog für eine weitere Sprachdatei

Kapitel 5

Abbildung 5.1: Eine App voller Zufälle

Abbildung 5.2: Lottozahlen im Debugger

Abbildung 5.3: Die Anzeige der Lottozahlen, links vor der ersten Ziehung

Abbildung 5.4: Ein Wechselgeldautomat

Kapitel 6

Abbildung 6.1: Der Klasse einen Namen geben

Abbildung 6.2: Ein Vererbungsbaum

Kapitel 7

Abbildung 7.1: Ein Minesweeper-Spiel

Abbildung 7.2: Eine Klasse erstellen

Abbildung 7.3: Der Ort für die Klasse

Abbildung 7.4: Der Name für die Klasse

Abbildung 7.5: Erster View-Test mit kaum erkennbarer Diagonale

Abbildung 7.6: Eine gerasterte View

Abbildung 7.7: Das Raster mit X gefüllt

Abbildung 7.8: Quadratische Felder mit Überhang

Abbildung 7.9: Quadratische Felder ohne Überhang

Abbildung 7.10: Das Spiel merkt sich Berührungen als Kreuze.

Abbildung 7.11: Das Spiel zeigt die Nachbarminen.

Abbildung 7.12: Das Spiel senkrecht und waagerecht

Abbildung 7.13: Ausrichtung einer weiteren Layout-Datei

Abbildung 7.14: Im Querformat

Kapitel 8

Abbildung 8.1: Der Spielername im Portrait-Modus

Abbildung 8.2: Drei Punkte verweisen auf das Optionsmenü.

Abbildung 8.3: Das aufgeklappte Optionsmenü

Abbildung 8.4: Erstellen eines neuen Layouts

Abbildung 8.5: Die fertige Highscore-Tabelle

Abbildung 8.6: Der DatePicker im Rädchenmodus

Abbildung 8.7: Der DatePicker im Kalendermodus als Dialog

Kapitel 9

Abbildung 9.1: Der Begrüßungsbildschirm im Layout-Designer

Abbildung 9.2: Wähl-Aktion in der Emulation

Abbildung 9.3: Die Quiz-App stellt eine Aufgabe.

Abbildung 9.4: Der Menü-Designer

Abbildung 9.5: Eingabe einer Quizfrage

Kapitel 10

Abbildung 10.1: Einfügen der FragmentContainerView

Abbildung 10.2: Fragment in Activity

Abbildung 10.3: Zwei Fragmente in einer Activity

Abbildung 10.4: Ausrichtung einer weiteren Layout-Datei

Abbildung 10.5: Im Querformat

Abbildung 10.6: Zwei Fragmente nebeneinander in einer Activity

Abbildung 10.7: Projektstruktur

Abbildung 10.8: Auswählen eines Fragments

Abbildung 10.9: Der Navigationsgraph

Kapitel 12

Abbildung 12.1: Der Dialog für die Berechtigung zur Standortbestimmung

Abbildung 12.2: Die Anzeige der Location-Bestandteile

Abbildung 12.3: Erzeugen einer PNG-Datei aus OSM

Abbildung 12.4: Links mehrere Welten, rechts Deutschland

Abbildung 12.5: Die Karte wird auf die GPS-Position positioniert.

Kapitel 13

Abbildung 13.1: Die Sensorsimulatoren des Emulators

Abbildung 13.2: Weitere Sensoren, darunter auch der Lichtsensor

Kapitel 14

Abbildung 14.1: Ein minimales Aufnahmestudio

Abbildung 14.2: Das Aufnahmestudio im Record-Modus

Orientierungspunkte

Cover

Titelblatt

Impressum

Über den Autor

Inhaltsverzeichnis

Einleitung

Fangen Sie an zu lesen

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Seitenliste

1

2

3

4

7

8

9

23

24

25

26

27

28

29

30

31

32

33

34

35

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

375

376

377

379

380

383

384

385

386

Einleitung

Dieses Buch richtet sich an Menschen, die gern programmieren lernen wollen und dabei vor allem Anwendungen für ihr Android-Smartphone im Blick haben. Auch wenn das Buch keine Kenntnisse in der Programmierung voraussetzt, wird es deutlich einfacher werden, wenn Sie bereits programmieren können.

Aber selbst wenn Sie schon Erfahrungen in der Programmierung haben, könnte dieses Buch vielleicht genau das Buch sein, das Sie sich wünschen. Die Programmierung von Android-Apps greift ausgiebig auf die Techniken der objektorientierten Programmierung zurück. Sollten Sie da noch die eine oder andere Lücke haben, wird sich diese hier schließen.

Das Buch erläutert also die ersten Schritte, die objektorientierte Programmierung und die Programmierung in einer Android-Umgebung. Damit es nicht langweilig wird, habe ich versucht, die theoretischen Grundlagen dort zu erläutern, wo sie in der Android-Programmierung gebraucht werden.

Konventionen in diesem Buch

Für Schlüsselwörter, Bezeichner und ähnliche Dinge, verwende ich die nichtproportionale Schrift. Wenn ich Begriffe erläutere, werden Sie kursive Schrift sehen.

Dateien und Pfade werden ebenfalls in kursiver Schrift gesetzt.

Menüs, Buttons oder Beschriftungen von Programmen oder Webseiten werden in KAPITäLCHEN dargestellt.

Auch URLs werden in nichtproportionalerSchrift gesetzt. Im Falle von eBooks mag es sogar funktionieren, diese direkt anzuklicken. Ob das bei Ihnen klappt, hängt aber von Ihrer technischen Umgebung ab.

Ich werde Sie solange siezen, bis wir uns persönlich kennenlernen und Sie mir erklären, von mir geduzt werden zu wollen. Danach dürfen Sie gern mit einem Rotstift durch das Buch gehen und jedes »Sie« durch ein »Du« ersetzen.

Törichte Annahmen über den Leser

Sie müssen nicht programmieren können, um dieses Buch zu verstehen. Gewisse Vorerfahrungen wären hilfreich, werden aber nicht vorausgesetzt. Ich erkläre alles.

Eine törichte Annahme ist, dass Ihnen der Umgang mit Android-Geräten nicht fremd ist. Warum sollten Sie Apps für etwas programmieren wollen, mit dem Sie selbst nicht umgehen können?

Die Programmierung von Android-Apps können Sie nicht auf einem Smartphone durchführen. Sie benötigen einen Computer. Daran führt kein Weg vorbei. Dieser Computer kann Linux, Windows oder macOS nutzen. Er sollte nicht an Altersschwäche leiden und reichlich Platz auf der Festplatte haben. Wenn der Hauptspeicher knapp und der Internetzugang langsam ist, wird es vielleicht etwas zäh. Dann müssen Sie halt etwas Geduld mitbringen.

Wie dieses Buch aufgebaut ist

Wir haben viel vor. Immerhin hat alles zwischen die Buchdeckel gepasst. Ihre Aufgabe ist es, zu lesen, zu verstehen und vor allem, selbst nachzuvollziehen. Denn mit dem Programmieren ist es wie mit dem Gitarrespielen. Sie lernen es nicht durch Zuschauen und Zuhören, sondern nur dadurch, dass Sie es selbst versuchen.

Teil I: Werkzeugbeschaffung und Einrichtung

In Kapitel 1 werde ich Ihnen erzählen, wie Sie Ihren Arbeitsplatz für die App-Programmierung herrichten. So viel kann ich schon verraten: Die Entwicklungsumgebung ist kostenlos.

Im Kapitel 2 werden Sie bereits eine erste App einrichten. Die kann allerdings nur »Guten Tag« sagen.

Teil II: Wir programmieren

In diesem Grundgerüst werden Sie in Teil II Ihre ersten Schritte in Java machen. Sie werden in Kapitel 3 erfahren, wie man Zahlen und Texte verarbeitet und wie man unter Android Ein- und Ausgaben realisiert.

Anhand einer BMI-App werden Sie in Kapitel 4 Abfragen und weitere Eingabeelemente wie Radio-Buttons kennenlernen. Diese App kann nicht nur das Übergewicht des Autors beziffern, sondern auch zeigen, wie man mehrsprachige Apps organisiert.

Nicht nur dem Zufall, sondern auch den Zahlenkolonnen sind Sie in Kapitel 5 auf der Spur. Sie werden Schleifen und Listen kennenlernen.

Die Grundlagen der objektorientierten Programmierung stehen in Kapitel 6 auf dem Menü, und zwar am Beispiel der guten alten Bruchrechnung.

Teil III: Ein eigenes grafisches Spiel

Wenn Sie Spiele programmieren wollen, werden Sie Grafiken erzeugen wollen und auf die Aktionen des Anwenders reagieren müssen. In Kapitel 7 werden Sie ein Spiel erstellen und dabei die Grundlagen von Java und objektorientierter Programmierung noch einmal vertiefen. In Kapitel 8 werden wir für das Spiel eine Highscore-Liste erstellen, um Datenbanken und Listenanzeigen kennenzulernen.

Teil IV: Wechselnde Displays und ihre Daten

Smartphone-Apps müssen aufgrund des kleinen Bildschirms immer wieder die Displays wechseln. In Kapitel 9 erfahren Sie, wie man eine solche App erstellt und wie sie die Daten übergibt. In Kapitel 10 schauen wir kurz auf Fragmente und in Kapitel 11 betrachten wir, wie man Dateien exportiert oder aus dem Internet lädt.

Teil V: Ortskenntnis und Sensoren

Fast jedes Smartphone hat einen GPS-Empfänger an Bord und in Kapitel 12 werden Sie sehen, wie man dieses anspricht und damit Landkarten ansteuert. Da das GPS-System auch ein prima Spitzel ist, müssen Sie den Anwender dafür um Erlaubnis bitten.

In Kapitel 13 schauen wir uns Sensoren an, welche Licht und Beschleunigung registrieren.

Für den Schluss habe ich mir in Kapitel 14 das Thema Multimedia aufgehoben. Sie nutzen die Kamera für Fotos und Filme und setzen Mikrofon und Audiowiedergabe mit einer kleinen Diktaphon-App ein.

Teil VI: Der Top-Ten-Teil

Im Top-Ten-Teil finden Sie Trost, wenn Sie sich über den Emulator ärgern, und gute Strategien, wie Sie darauf Rücksicht nehmen, dass ein Smartphone-Display naturgemäß keine Großbildleinwand ist.

Symbole, die in diesem Buch verwendet werden

Damit Sie bestimmte Informationen schneller wiederfinden, habe ich das Buch mit Symbolen verziert:

Was hinter so einem Symbol steht, sollten Sie sich merken. Es ist quasi die Aufforderung, einen Spickzettel anzulegen.

Dieses Symbol zeigt an, dass es etwas technischer wird. Sie sollten es sich nicht gar so zu Herzen nehmen, wenn Sie nicht auf Anhieb verstehen, was bei so einem Symbol steht. Stellen Sie sich vor, dass der Informatiker in mir durchgegangen ist. Übergehen Sie es aber nicht von vornherein! Ich hatte ja schließlich meinen Grund, es aufzuschreiben.

Manchmal kann man sich das Leben vereinfachen. Die Glühbirne weist Ihnen den Weg.

Mit diesem Symbol möchte ich Sie darauf hinweisen, dass Ihre Aufmerksamkeit gefragt ist. Vielleicht sollten Sie den Text dazu sicherheitshalber zwei Mal lesen.

Wenn das Warndreieck erscheint, mache ich mir etwas Sorgen. Schauen Sie bitte genauer hin. Sie könnten in eine Situation geraten, die Ihnen nicht gefällt.

Hier plaudere ich mal aus dem Informatikerkästchen. Das müssen Sie sich nicht merken und es auch nicht unbedingt lesen, um an Ihr Ziel zu gelangen.

Hier stelle ich Ihnen eine Aufgabe, die Sie versuchen sollten, selbst zu lösen, bevor Sie weiterlesen. Ich stelle Ihnen die Aufgabe, weil ich denke, dass Sie alles für die Lösung Nötige parat haben müssten. Programmieren lernt man durch eigenes Handeln. Wenn Sie die Aufgabe nicht allein lösen können, verlieren Sie nicht den Mut! Ich werde alles anschließend erläutern. Aber den meisten Gewinn haben Sie, wenn Sie selbst auf die Lösung kommen.

Wie es weitergeht

Sie werden hoffentlich das Buch lesen. Dafür habe ich es nämlich geschrieben. Und in diesem besonderen Fall ist es vielleicht gar nicht schlecht, wenn Sie es zwei Mal lesen. Ein noch so kleines Android-Programm enthält so viel theoretischen Hintergrund, dass ich erst im Laufe des Buches alles erklären kann. Ich rechne also damit, dass manche Zusammenhänge erst beim zweiten Lesen richtig klar werden. Gönnen Sie sich die Zeit!

Ich werde Ihnen unter diesem Symbol immer wieder einmal vorschlagen, etwas selbst zu versuchen, wenn ich das Gefühl habe, Sie müssten nun alle notwendigen Informationen bereits zusammenhaben. Das sollten Sie dann auch wahrnehmen. Gleich anschließend werde ich eine Lösung vorschlagen, anhand derer Sie Ihre Ideen kontrollieren können.

In einigen Kapiteln unterbreite ich Ihnen Vorschläge für eigene Projekte. Damit schlage ich Ihnen etwa vor, wie Sie die Beispiel-App noch erweitern und das gerade Gelernte umsetzen könnten. Diese Projekte sind durchaus etwas anspruchsvoller und es ist völlig in Ordnung, wenn Sie daran einige Tage herumbasteln. Selbst ein Scheitern und späteres Wiederaufnehmen gehört zum Plan. Hier ist wirklich der Weg das Ziel. Darum halte ich in diesen Fällen eine Musterlösung für kontraproduktiv.

Ich habe für dieses Buch eine Webseite erstellt: http://willemer.de/app4d. Dort finden Sie Korrekturen und Verweise, die bei der Drucklegung noch nicht zur Verfügung standen.

Auch die im Buch beschriebenen Projekte habe ich dort zum Download bereitgestellt. Sie finden sie ebenso auf der Webseite des Verlags zum Buch: http://www.wiley-vch.de/ISBN9783527718801

Teil I

Werkzeugbeschaffung und Einrichtung

IN DIESEM TEIL…

Bevor wir unsere erste App stricken, sollten wir uns Stricknadeln und Wolle beschaffen. Dazu werden wir sowohl Hardware als auch Software brauchen.

Kapitel 1

Entwicklungsumgebung

IN DIESEM KAPITEL

Entwicklungsumgebung AndroidStudioVirtuelle SmartphonesEchte Smartphones einbinden

Ich bin sicher, Sie besitzen bereits einen Computer. Falls nicht, wird es bitter. Kaufen Sie einen. Überraschenderweise können Sie durchaus auch ohne Smartphone oder Tablet Android-Apps programmieren. Aber da Sie ja offenbar Apps für diese Geräte entwickeln wollen, werden Sie vermutlich auch (mindestens) eines davon besitzen.

Anforderungen an den Entwickler-PC

Sie werden in diesem Buch zwar lernen, Programme für Smartphones und Tablets unter Android zu programmieren, aber entwickelt werden die Programme auf einem Computer. Und Sie werden auf lange Sicht froh darüber sein, die Quelltexte nicht mit der virtuellen Tastatur auf dem kleinen Display Ihres Smartphones bearbeiten zu müssen.

Das Betriebssystem Ihres PCs ist dabei weitgehend egal. Ich entwickle auf einem Linux-System, die meisten Programmierer werden vermutlich ein Windows-System verwenden. Aber es ist auch möglich, Android-Apps auf einem Mac zu erstellen.

Die Entwicklungsumgebung wird Ihrem PC nicht sehr viel mehr abverlangen als ein gängiges Office-Paket, aber Sie werden die Beispiele ausprobieren wollen. Das geht zwar auch mit einem angekoppelten Smartphone, aber etwas einfacher wird es, wenn Sie den Emulator der Umgebung verwenden. Dieser Emulator tut so, als wäre er ein Smartphone. Ein komplettes Smartphone in einem PC zu simulieren, stellt allerdings Anforderungen an Ihre Hardware:

Das Virtual-Flag Ihres Prozessors muss eingeschaltet sein. Das benötigt der Emulator, weil er eine sogenannte virtuelle Maschine ist. Gehen Sie erst einmal davon aus, dass das Virtual-Flag in Ordnung ist. Wenn nicht, wird sich der Emulator schon melden. Reparieren Sie nichts, was nicht kaputt ist!

Bei einigen, vor allem älteren PCs ist das virtuelle Flag im BIOS beziehungsweise im UEFI abgeschaltet. Leider ist die Konfiguration bei jedem Computer etwas anders. Falls Sie diese Einstellung nicht selbst finden können, vertrauen Sie Ihrer Suchmaschine den Typ Ihres PCs sowie die Stichworte »UEFI« und »Virtual« an und Sie werden sicherlich eine Seite finden, die Ihnen weiterhilft.

Der Hauptspeicher (RAM) sollte nicht auf Kante gestrickt sein. Der Emulator beherbergt schließlich ein komplettes Android-System. Das benötigt natürlich auch das eine oder andere Gigabyte extra.

Auf der Festplatte sollten Sie auch noch ordentlich Platz haben. Allein für jede Android-Version, die im Emulator getestet werden soll, geht davon deutlich mehr als ein Gigabyte stiften.

Diese Speichermengen müssen Sie herunterladen und sich darum durch Ihre Internetleitungen quälen. Dementsprechend sollten Sie auch in dieser Beziehung gut ausgestattet sein – oder mit großzügigen Pausen rechnen.

Smartphone oder Tablet

Da Sie vor allem am Anfang hauptsächlich den Emulator nutzen werden, ist ein Android-Gerät nicht zwingend erforderlich. Aber es wäre natürlich sehr schade, wenn Sie die erstellten Apps nicht auch mal in freier Wildbahn testen könnten.

Dazu müssen Sie Ihr Smartphone per USB an den Entwicklungs-PC anschließen. Anschließend wird Ihre Entwicklungsumgebung auf das Gerät zugreifen wollen, um Programme installieren, starten und überwachen zu können. Diese Berechtigungen müssen Sie für Ihren PC aber zunächst Ihrem Smartphone abringen.

Starten Sie Ihr Smartphone und gehen Sie dort in die Einstellungen.

Wechseln Sie auf den Punkt

SYSTEM

.

Dort gibt es einen Punkt

ÜBER DAS TELEFON

.

Gegen Ende der Liste finden Sie die Build-Nummer.

Diese tippen Sie sieben Mal an. Kein Scherz. Das haben sich die Entwickler bei den Gebrüder Grimm abgeschaut.

Anschließend erscheint eine Meldung, welche den Entwicklermodus bestätigt.

Bei manchen Geräten gibt es einen Eintrag ENTWICKLEROPTIONEN. Dort schalten Sie die Option USB-DEBUGGING ein.

Das Umschalten in den Entwicklermodus erlaubt den Zugang über USB. Sie schalten damit die sogenannte Android Debug Bridge (ADB) frei. Die ADB ermöglicht die Ausführung von Kommandozeilenprogrammen auf Ihrem Smartphone über USB. Dies nutzt die Entwicklungsumgebung zum Ausführen Ihrer Programme.

Die ADB kann aber auch nützlich sein, wenn Ihr Display zerbrochen ist und Sie Ihr Smartphone auf direktem Weg nicht mehr steuern können. Wenn es zuvor im Entwicklermodus war, bleibt Ihnen immerhin die Möglichkeit über die ADB an Ihre Daten zu kommen. Für eine genaue Beschreibung fehlt hier der Platz. Falls Sie einmal dafür Verwendung haben, weiß Ihre Suchmaschine mehr darüber.

Sie müssen Ihrem Smartphone noch erlauben, Apps aus unbekannter Quelle zu installieren. Andere Installationsquellen als Google lehnt ein Android-Gerät aus Sicherheitsgründen und zum Schutz der Einnahmen von Google ab. Wenn Sie allerdings Ihre eigenen Programme entwickeln, stammt Ihr Programm zwangsläufig nicht aus Google Play. Auch diesen Schalter finden Sie in den Einstellungen Ihres Smartphones.

Es kann sein, dass Ihr Android-Gerät sich etwas anders verhält als hier beschrieben. Hersteller haben manchmal putzige Ideen. Falls sich Ihr Gerät nicht an dieses Buch hält, rügen Sie es dafür ordentlich und bitten Sie eine Suchmaschine um Hilfe.

Gestatten: Android Studio

Nun benötigt Ihr Computer ein Programm, in dem Sie den Programmcode eintippen, ihre Bildschirme gestalten und die fertigen Ergebnisse übersetzen und testen können. Ein solches Programm bezeichnet man als integrierte Entwicklungsumgebung oder auf plattdeutsch Integrated Development Environment beziehungsweise, da man solche Wortungetüme nicht gut aussprechen kann, IDE.

Der Kern einer solchen Entwicklungsumgebung besteht aus einem Übersetzer für die verwendete Programmiersprache. In unserem Fall ist dies ein Java-Compiler. Der sorgt nicht nur dafür, dass die eingetippten Programmzeilen in Apps verwandelt werden, sondern unterstützt auch den Editor, damit bereits beim Eintippen rot wird, was später nicht funktioniert.

Eine Entwicklungsumgebung enthält eigentlich immer einen Editor. Der hilft Ihnen beim Eintippen Ihrer Programme. In einer Entwicklungsumgebung fragt ein guter Editor immer wieder den Übersetzer, ob das, was der Entwickler gerade eintippt, möglicherweise ausgemachter Blödsinn ist. Sollte das nicht der Fall sein, färbt der Editor die Quelltexte ein. Das erleichtert oft den Überblick und etwas Farbe tut auch Programmierern gut.

Wenn das Programm einen guten Zwischenstand erreicht hat, kann es die Entwicklungsumgebung zum Test starten. Das ist bei Android etwas anspruchsvoll, weil Android-Apps nicht direkt auf einem PC laufen. Es ist also notwendig, das Programm entweder auf einen Emulator oder auf ein per USB angeschlossenes Android-Gerät zu übertragen und dort zu starten.

Auch wenn es boshaft klingt, muss ich Ihnen sagen, dass Sie als Programmierer ständig Fehler machen werden. Das gehört zum Berufsbild. Gemein ist, dass Sie die Fehler nicht einmal anderen Leuten in die Schuhe schieben können. Um solche Fehler zu finden, können Sie laufende Programme schrittweise durchlaufen und sehen, was bei jedem Schritt passiert. Ein solches Vorgehen heißt

Debugging

und das dafür zuständige Werkzeug ist der

Debugger

, der von der Entwicklungsumgebung gesteuert wird.

Eine gute Entwicklungsumgebung bietet einige Assistenten, die dem Programmierer helfen, Routinearbeiten in grafischen Umgebungen mit der Maus zu erledigen. Beispielsweise können Sie das Display-Design fast vollständig zusammenklicken.

In den guten alten Zeiten entwickelte man Android noch unter Eclipse. Inzwischen ist Google aber auf Android Studio umgeschwenkt. Wenn Sie im Internet Beschreibungen finden, bei denen Eclipse erwähnt wird, könnte die betreffende Seite etwas älter sein.

Jetzt sind Sie vermutlich völlig heiß auf dieses tolle Programmierumgebung und wollen es auch haben. Im nächsten Schritt schauen wir mal, wo man so etwas herbekommt.

Android Studio können Sie hier kostenlos herunterladen: https://developer.android.com/studio Gleich zentral sehen Sie dort einen Button, der Sie zum Download auffordert (siehe Abbildung 1.1). Die Seite schlägt Ihnen die für Ihren Computer passende Version vor. Falls Sie nicht mit Ihrem Entwickler-PC unterwegs sind, können Sie über DOWNLOAD OPTIONS auch eine andere Version herunterladen.

Abbildung 1.1: Webseite zum Download von Android Studio

Vor dem Herunterladen dürfen Sie noch einen längeren Text lesen, der Ihre Englischkenntnisse vertieft und Google vor Schadensersatzansprüchen schützt. Sie müssen einen Haken setzen und erhalten dann die Möglichkeit, eine Datei herunterzuladen. Diese Datei können Sie auf Ihrem System einrichten. Das ist nicht komplizierter als bei Anwendungsprogrammen oder Computerspielen.

Einrichtung unter Linux

Für Linux wird eine Datei mit der Endung tar.gz heruntergeladen. Sie wird vermutlich bei Ihnen auch im Downloads-Verzeichnis landen. Entpacken Sie sie direkt im Heimatverzeichnis. Falls Sie mit dem grafischen Entpacken nicht klarkommen, hilft Ihnen der folgende Befehl am Terminal:

Es entsteht ein Verzeichnis namens android-studio, in dem sich unter bin/studio.sh ein Skript befindet. Bei seinem ersten Start dient das Skript als Installations-Tool.

Nach dem ersten Durchlauf ist dies das Startprogramm für Android Studio. Dieses Skript können Sie in das Anwendungsmenü übernehmen, wenn Sie Android Studio aus diesem heraus starten wollen.

Einrichtung unter Windows

Nach dem Download finden Sie in Ihrem Download-Verzeichnis eine Datei, die mit android-studio beginnt und auf .exe endet. Wenn Sie diese starten, beginnt die eigentliche Installation, die Sie zunächst nach den Administrator-Rechten fragt und dann in ein Setup führt. Darin klicken Sie so lange auf den Button NEXT, bis die Installation beginnt. Wenn Sie zuletzt auf den Button FINISH klicken, startet Android Studio zum ersten Mal.

Beim ersten Start fragt Android Studio, ob es die Konfiguration einer bisherigen Installation mitnehmen soll. Es bittet weiterhin darum, Ihre Daten für die anonyme Ausforschung an Google senden zu dürfen, lädt noch ein paar Kleinigkeiten nach und befragt Sie dann, ob Sie eine Standard- oder Custom-Installation wünschen. Wenn Sie nicht sicher sind, bleiben Sie beim Standard. Nachdem noch ein paar Dinge aus dem Internet nachgeladen wurden, können Sie zu guter Letzt auf FINISH klicken.

Einrichtung auf dem Mac

Wenn Sie die URL http://developer.android.com/studio mit einem Mac öffnen, wird Ihnen eine DMG-Datei angeboten. Nach dem Download befindet sich die Datei wie eine Festplatte auf dem Desktop. Das zugehörige Fenster öffnet sich, wie in Abbildung 1.2 zu sehen.

Abbildung 1.2: Installation auf dem Mac nach dem Download

Nun müssen Sie folgende Schritte ausführen:

Sie schieben das Android-Studio-Symbol auf den

APPLICATIONS

-Ordner.

Klicken Sie doppelt auf das Symbol

ANDROID STUDIO

.

Nun weist Sie Ihr Mac auf die Gefahren von Programmen aus dem Internet hin. Wenn Sie sich diesen Gefahren tapfer stellen wollen, können Sie das Programm nun starten.

Das Programm fragt, ob Sie die Einstellungen einer alten Android-Studio-Version übernehmen wollen oder ob dies eine erstmalige Installation ist.

Der Assistent zeigt, was er zu tun gedenkt. Sie antworten durch das Klicken auf den Button

NEXT

.

Sie können statt der Standard-Installation eine Custom-Variante wählen, wenn Sie dafür besondere Gründe haben. Bestätigen Sie mit

NEXT

.

Einen Überblick über das, was nun installiert wird, beenden Sie mit

FINISH

.

Nun werden haufenweise Dateien aus dem Internet geladen und installiert, bis die Leitung glüht. Anschließend bittet die Installation um das Administratorkennwort. Danach klicken Sie auf

NEXT

.

Nach der Installation beenden Sie den Assistenten mit

FINISH

. Daraufhin startet Android Studio automatisch und will als Erstes von Ihnen wissen, ob Sie ein neues Projekt anlegen oder ein existierendes übernehmen wollen. Es verhält sich also ab jetzt genauso wie auf den anderen Plattformen.

Weitere Hilfen aus dem Internet

Wenn sich bei der Entwicklung Fragen ergeben, geben Sie die entsprechenden Stichworte in die Suchmaschine Ihres geringsten Misstrauens. Dabei werden Sie vermutlich häufig auf Webseiten aus zwei Quellen stoßen:

Die Webseite

https://developer.android.com

enthält die offizielle Dokumentation für Android. Sie liefert die verbindliche und aktuelle Beschreibung auf Englisch und ist nicht unbedingt anfängerkompatibel.

Die Webseite

https://stackoverflow.com

ist eine beliebte und recht gut moderierte Frage-Antwort-Seite für Software-Entwickler mit guten Lösungen und Beispielen. Allerdings sollten Sie die Aktualität prüfen und hinreichend gut Englisch können.

Unter der URL http://willemer.de/informatik/android finden Sie meine Seiten zum Thema Android-Programmierung. Die sind zwar auf Deutsch, haben aber dafür manchmal eher einen Notizzettelcharakter. Die Seiten protokollieren meinen eigenen Einstieg in die Android-Programmierung unter anderem bei den Recherchen für dieses Buch und enthalten darüber hinaus eine Reihe von Notizen zu Themen, die es nicht in dieses Buch geschafft haben.

Kapitel 2

Das »leere« Projekt von Android Studio

IN DIESEM KAPITEL

Hello World auf AndroidÜbersicht über das Android-StudioDer Display-Designer und -EditorXML

Android Studio haben Sie nun erfolgreich installiert. Sie können damit die erste App erstellen und das erfordert nicht einmal viel Know-how, denn Android Studio wird Ihnen ein Gerüst bauen, das ohne Ihr Zutun eine freundliche Begrüßung auf das Display zaubert.

Die erste App

Beim ersten Start bietet Ihnen Android Studio an, Sie bei der Erstellung eines neuen Projekts zu unterstützen. Dazu erscheint ein Dialog wie in Abbildung 2.1.

Dort zeigt Android Studio stolz, welche Projekttypen es zu bieten hat. In den allermeisten Fällen benötigen Sie eine Empty Activity. Die ist auch schon vorgewählt. Sie müssen nur noch auf den NEXT-Button klicken.

Projektangaben

Android Studio wechselt zum nächsten Dialog (siehe Abbildung 2.2), in dem das Projekt näher beschrieben werden soll: Projektname, Ort auf der Festplatte, Programmiersprache und SDK.

Abbildung 2.1: Auswahl des Projektstils

Abbildung 2.2: Konfiguration des Projekts

Name

Sie können als Projektnamen ErsterVersuch wählen. Das ist sicher nicht besonders originell und es steht Ihnen frei, einen (fast) beliebigen anderen zu wählen.

Package

Wenn Sie den Projektnamen im Eingabefeld NAME eintippen, werden Sie sehen, dass sich auch die Eingabefelder von PACKAGE NAME und SAVE LOCATION ändern.

Der Name des Packages wird vor den Projektnamen gestellt. Dieser Paketname sollte weltweit eindeutig sein. Falls Sie Ihre App im Google Play anbieten wollen, wird das relevant. Diese Eindeutigkeit lässt sich leicht erreichen, wenn Sie eine Internet-Domain besitzen. Nach Konvention wird diese umgekehrt. So wird bei mir aus willemer.de der Packagebezeichner de.willemer.ersterversuch.

Save Location

Der Pfadname beschreibt, wo das Projekt auf Ihrer Festplatte abgelegt wird.

Language

Unter dem Eintrag LANGUAGE können Sie auswählen, ob Sie Ihre Android-Programme in Java oder Kotlin schreiben. Für dieses Buch musste ich mich auf eine von diesen Programmiersprachen festlegen, da ein ständiger Wechsel vielleicht drei Leser mehr bringt, aber alle Leser im Zustand völliger Verwirrtheit zurücklässt. Bei der Entscheidung half mir ein Blick auf die Entstehungsgeschichte.

Google hatte sich zunächst für Java als Programmiersprache für Android entschieden. Das hatte eine gute Tradition. Vorher hatte man Java ME (Mobile Edition) für die Programmierung von Mobiltelefonen verwendet.

Nach der Übernahme der Firma Sun im Jahre 2010 und damit der Rechte an Java verklagte Oracle die Firma Google als Hersteller von Android auf knapp neun Milliarden Dollar wegen der Nutzung von Java (vgl. https://www.golem.de/news/smartphone-google-gewinnt-im-android-streit-mit-oracle-vor-gericht-2104-155488.html). Dieser Prozess zog sich ein paar Jahre hin und es war nicht sicher, wer gewinnen würde.

2019 entdeckte Google seine Liebe zu Kotlin, einer seinerzeit relativ unbedeutenden Sprache, die von der Firma JetBrains entwickelt wurde (vgl. https://www.netzpiloten.de/kotlin-fuer-android). Hätte Oracle gewonnen und die Verwendung von Java eingeschränkt, hätte sich Google ohne Gesichtsverlust auf Kotlin zurückziehen können. Denn der Umstieg war ja längst angekündigt.

Im Jahr 2021 hat Google den Prozess aber doch endgültig vor dem Supreme Court gewonnen und es wird interessant werden, wie intensiv die Liebe zu Kotlin über die Jahre bleiben wird.

Es gibt ein paar interessante Neuerungen, die mit Kotlin eingeführt werden, wie etwa die Möglichkeit, Operatoren zu überladen. Eine wirkliche Revolution ist Kotlin nicht. Das erkennt man schon daran, dass man den Code der Sprachen maschinell ineinander überführen kann. Wir reden also im Wesentlichen von syntaktischem Zuckerguss. Kotlin macht ein paar Dinge anders und kürzer als viele andere Programmiersprachen.

Da sich dieses Buch vor allem an Programmieranfänger richtet, ist es sinnvoll, eine Sprache einzusetzen, die auch in anderen Bereichen oft zu finden ist. Damit bleibt Ihnen das Lernen einer neuen Programmiersprache erspart, wenn Sie eines Tages doch etwas anderes als Android programmieren wollen. Darüber hinaus hat Java den Charme, dass Sie sowohl im Freundeskreis als auch im Internet leicht Hilfe finden werden.

Ich hatte ursprünglich einen Kotlin-Kurs für den Anhang dieses Buches geschrieben. Ich habe ihn dann doch entfernt, als ich merkte, dass der Platz eng wird. Für diejenigen, die gern Kotlin lernen wollen, habe ich ihn auf meiner Webseite hinterlegt.

http://willemer.de/informatik/kotlin

Minimum SDK

Unter MINIMUM SDK befindet sich eine Klappbox, mit der Sie die minimale API auswählen können, unter der die App lauffähig sein.

API ist die Abkürzung für Application Programming Interface. Die API bildet die Schnittstelle, um ein Android-Gerät zu programmieren. Beispielsweise können Sie durch einen Aufruf der API einen Button auf dem Bildschirm erscheinen lassen.

Die API hat sich im Laufe der Jahre mit den verschiedenen Android-Versionen verändert. So sind beispielsweise Bedienelemente hinzugekommen oder haben sich in ihren Anforderungen weiterentwickelt. Darum sind die API-Versionen eng mit ihren jeweiligen Android-Versionen verknüpft. So stellt die Android-Version 6.0, genannt Marshmallow, die API 23 zur Verfügung.

An dieser Stelle wählen Sie aus, welche Mindest-API Ihre App voraussetzt und damit, wie alt ein Gerät sein darf. Sie würden natürlich gern alle Smartphones bedienen wollen. Allerdings müssen Sie dann auf bestimmte Features verzichten, die inzwischen hinzugekommen sind. Sie machen nicht viel falsch, wenn Sie die vorgewählte SDK einfach übernehmen.

Sie sollten die API nicht beliebig oft wechseln, weil dann jedes Mal die Bibliotheken der API aus dem Internet neu geladen werden müssen. Leider ist der Umfang einer solchen API recht ordentlich, sodass Sie dann eine gewisse Zwangspause einlegen müssten.

Mit dem Button FINISH schließen Sie den Assistenten ab. Android Studio wird nun die Umgebung für Ihre neue App zusammensetzen.

Übersicht über die IDE

Nach einer gewissen Zeit des Wartens erscheint ein Fenster mit dem Android-Studio, wie Sie es in Abbildung 2.3 sehen.

Abbildung 2.3: Android Studio mit geladenem Projekt

Die linke Spalte des Android-Studios enthält den Projekt-Explorer. Darin sehen Sie die Ordner app und Gradle Scripts. Beide wurden beim Anlegen des Projekts von Android Studio erzeugt. Im Ordner app interessieren uns die folgenden Ordner:

manifests: Hierin befindet sich die Datei AndroidManifest.xml. Wenn Sie die Datei doppelt anklicken, erscheint im Editor auf der rechten Seite der Inhalt.

Hier werden der Aufbau und die Rechte einer App abgelegt. Sie sehen jetzt schon, dass die MainActivity eingetragen ist, die den Ausgangspunkt für die App darstellen wird.

java: Hier sind die Java-Quellcodes versammelt. Sie sehen das Package, das Sie bei der Erstellung des Projekts angegeben haben, drei Mal. Wenn Sie das erste davon aufklappen, finden Sie die von Android Studio erstellte MainActivity. Wenn Sie diese doppelt anklicken, erscheint auf der rechten Seite ein Editor mit deren Inhalt.

Die anderen beiden Packages enthalten Unit-Tests, die aber zunächst nicht besonders interessant sind.

res: Hier befinden sich die Ressourcen Ihrer Anwendung. Android verfolgt die Philosophie, möglichst viele Ressourcen in Beschreibungsdateien auszulagern. Damit müssen Sie statische Elemente Ihrer App nicht explizit in Java programmieren. Wenn Sie res aufklappen, erscheint die Aufgliederung der Ressourcen:

drawable

: Hier befinden sich vor

allem Bilder, die in das Programm eingebunden werden sollen. Das könnten Raumschiffe für das Science-Fiction-Spiel sein oder die Icons, die für die Anwendung benötigt werden.

layout

: Hier wird die Anordnung der Kontrollelemente in einer Activity festgelegt. Vieles können Sie sich völlig ohne Programmierkenntnisse zusammenklicken. Prinzipiell könnten Sie so eine Anordnung auch im Java-Programm programmieren. Das ist inzwischen aber nicht mehr üblich. Wenn Sie

layout

öffnen, finden Sie die Datei

activity_main.xml

, die das Layout zur

MainActivity

darstellt.

values: Dort werden beispielsweise Texte in strings.xml abgelegt. Sie können zwar die Elemente auch direkt in den Layouts beschriften. Durch die Auslagerung in diese Datei wird es aber leichter, später die Sprache zu wechseln.

Auch Farben und Stile können Sie unter values definieren, damit der visuelle Eindruck der App an allen Stellen gleichartig bleibt.

Lassen Sie sich nicht von den vielen Details erschrecken. Sie werden sie Schritt für Schritt kennenlernen, wenn Sie es benötigen.

Freundlicherweise hat Android Studio bereits ein komplettes Programm automatisch erstellt. Zugegebenermaßen tut dieses nicht besonders viel. Er meldet nur ein »Hallo« an die Welt. Aber trotzdem es hilft uns, schon einmal die Umgebung zu erkunden, und erspart uns später Routinearbeit bei der Erstellung neuer Apps.

Android Virtual Device Manager

Android-Apps werden für Android-Geräte geschrieben und sind nicht unter den klassischen PC-Betriebssystemen ausführbar, auf denen Sie Ihre Programme entwickeln. Um Ihre Programme zu testen, bleiben Ihnen die Möglichkeiten, Ihr Android-Gerät über ein USB-Kabel mit dem Computer zu koppeln oder einen Emulator zu starten.

Wenn Sie ein Programm starten, wird Android Studio sich umschauen, ob ein Emulator oder ein Gerät über USB zur Verfügung steht. Dabei bevorzugt es ganz klar die echte Hardware. Welches Gerät verwendet wird, sehen Sie in der Zeile unterhalb der Menüleiste. In Abbildung 2.4 sehen Sie, dass in meinem Android-Studio ein Emulator für das Nexus 5X unter API 27 aktiv ist. Das wird bei Ihnen vermutlich geringfügig anders aussehen. Sie sehen aber sicherlich das