Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
13
Materialien zum Buch
14
1 Einleitung
15
1.1 Für wen ist dieses Buch?
15
1.1.1 Magie?
16
1.1.2 Große Zahlen
16
1.1.3 Technologie für alle
17
1.1.4 Die Grenzen der Physik
18
1.2 Unendliche Möglichkeiten
20
1.2.1 Baukasten
20
1.2.2 Spiel ohne Grenzen
22
1.2.3 Alles geht
25
1.3 Was ist so toll an Android?
26
1.3.1 Magic Earth Navigation & Karten
26
1.3.2 Sky Map
28
1.3.3 c:geo
29
1.3.4 barcoo - QR Scanner
30
1.3.5 Öffi
31
1.3.6 Sprachsuche
32
1.3.7 Cut the Rope
34
1.3.8 Asphalt Nitro
35
2 Ist Java nicht auch eine Insel?
39
2.1 Warum Java?
39
2.2 Grundlagen
42
2.2.1 Objektorientierung - Klassen und Objekte
42
2.2.2 Konstruktoren
44
2.3 Pakete
45
2.3.1 Packages deklarieren
45
2.3.2 Klassen importieren
47
2.4 Klassen implementieren
48
2.4.1 Attribute
48
2.4.2 Methoden
51
2.4.3 Zugriffsbeschränkungen
53
2.4.4 Eigene Konstruktoren
56
2.4.5 Lokale Variablen
58
2.5 Daten verwalten
60
2.5.1 Listen
60
2.5.2 Schleifen
62
2.6 Vererbung
63
2.6.1 Basisklassen
63
2.6.2 Polymorphie
66
3 Vorbereitungen
69
3.1 Was brauche ich, um zu beginnen?
69
3.2 Schritt 1: Android Studio installieren
71
3.3 Schritt 2: Das Android SDK
72
3.4 Ein neues App-Projekt anlegen
75
3.5 Android Studio mit dem Handy verbinden
78
3.6 Fehlersuche
80
3.6.1 Einen Stacktrace lesen
80
3.6.2 Logging einbauen
84
3.6.3 Schritt für Schritt debuggen
86
4 Die erste App
89
4.1 Sag »Hallo«, Android!
89
4.1.1 Die »MainActivity«
91
4.1.2 Der erste Start
96
4.2 Bestandteile einer Android-App
98
4.2.1 Activities anmelden
99
4.2.2 Permissions
100
4.2.3 Ressourcen
102
4.2.4 Generierte Dateien
103
4.2.5 Die Build-Skripte
106
4.3 Benutzeroberflächen bauen
111
4.3.1 Layout bearbeiten
111
4.3.2 String-Ressourcen
116
4.3.3 Layout-Komponenten
118
4.3.4 Weitere visuelle Komponenten
121
4.4 Buttons mit Funktion
122
4.4.1 Der »OnClickListener«
122
4.4.2 Den »Listener« implementieren
123
4.5 Eine App installieren
126
4.5.1 Installieren per USB
126
4.5.2 Installieren mit ADB
127
4.5.3 Drahtlos installieren
128
5 Ein Spiel entwickeln
131
5.1 Wie viele Stechmücken kann man in einer Minute fangen?
131
5.1.1 Der Plan
132
5.1.2 Das Projekt erzeugen
132
5.1.3 Layouts vorbereiten
134
5.1.4 Die »GameActivity«
134
5.2 Grafiken einbinden
138
5.2.1 Die Mücke und der Rest der Welt
138
5.2.2 Grafiken einbinden
140
5.3 Die Game Engine
142
5.3.1 Aufbau einer Game Engine
142
5.3.2 Ein neues Spiel starten
144
5.3.3 Eine Runde starten
144
5.3.4 Den Bildschirm aktualisieren
145
5.3.5 Die verbleibende Zeit herunterzählen
152
5.3.6 Prüfen, ob das Spiel vorbei ist
156
5.3.7 Prüfen, ob eine Runde vorbei ist
158
5.3.8 Eine Mücke anzeigen
159
5.3.9 Eine Mücke verschwinden lassen
164
5.3.10 Das Treffen einer Mücke mit dem Finger verarbeiten
169
5.3.11 »Game Over«
169
5.3.12 Der Handler
171
5.4 Der erste Mückenfang
176
5.4.1 Retrospektive
177
5.4.2 Feineinstellungen
177
5.4.3 Hintergrundbilder
179
5.4.4 Elefanten hinzufügen
180
6 Sound und Animation
183
6.1 Sounds hinzufügen
184
6.1.1 Sounds erzeugen
184
6.1.2 Sounds als Ressource
186
6.2 Sounds abspielen
187
6.2.1 Der MediaPlayer
187
6.2.2 Den MediaPlayer initialisieren
189
6.2.3 Zurückspulen und Abspielen
189
6.3 Einfache Animationen
191
6.3.1 Views einblenden
192
6.3.2 Wackelnde Buttons
195
6.3.3 Interpolation
198
6.4 Fliegende Mücken
203
6.4.1 Grundgedanken zur Animation von Views
203
6.4.2 Geschwindigkeit festlegen
203
6.4.3 Mücken bewegen
205
6.4.4 Bilder laden
207
6.4.5 If-else-Abfragen
209
6.4.6 Zweidimensionale Arrays
210
6.4.7 Resource-IDs ermitteln
212
6.4.8 Profiling
213
6.4.9 Retrospektive
214
7 Internetzugriff
217
7.1 Highscores speichern
217
7.1.1 Highscore anzeigen
217
7.1.2 Activities mit Rückgabewert
219
7.1.3 Werte permanent speichern
220
7.1.4 Rekordhalter verewigen
221
7.2 Bestenliste im Internet
227
7.2.1 Die Internet-Erlaubnis
229
7.2.2 Eine »ScrollView« für die Highscores
229
7.2.3 Der HTTP-Client
230
7.3 Listen mit Adaptern
239
7.3.1 »ListViews«
239
7.3.2 ArrayAdapter
242
7.3.3 Spinner und Adapter
244
8 Kamera und Augmented Reality
249
8.1 Die Kamera verwenden
249
8.1.1 Die »CameraView«
250
8.1.2 »CameraView« ins Layout integrieren
254
8.1.3 Die Camera-Permission
256
8.2 Bilddaten verwenden
261
8.2.1 Bilddaten anfordern
261
8.2.2 Bilddaten auswerten
263
8.2.3 Tomaten gegen Mücken
265
9 Sensoren und der Rest der Welt
271
9.1 Himmels- und sonstige Richtungen
271
9.1.1 Der »SensorManager«
272
9.1.2 Rufen Sie nicht an, wir rufen Sie an
273
9.1.3 Die Kompassnadel und das »Canvas«-Element
275
9.1.4 View und Activity verbinden
278
9.2 Wo fliegen sie denn?
279
9.2.1 Sphärische Koordinaten
280
9.2.2 Die virtuelle Kamera
281
9.2.3 Mücken vor der virtuellen Kamera
283
9.2.4 Der Radarschirm
287
9.3 Beschleunigung und Erschütterungen
294
9.3.1 Ein Schrittzähler
294
9.3.2 Mit dem »SensorEventListener« kommunizieren
297
9.3.3 Schritt für Schritt
299
9.4 Hintergrund-Services
302
9.4.1 Eine Service-Klasse
303
9.4.2 Service steuern
305
9.4.3 Einfache Service-Kommunikation
306
9.5 Arbeiten mit Geokoordinaten
309
9.5.1 Der Weg ins Büro
310
9.5.2 Koordinaten ermitteln
311
9.5.3 Karten und Overlay
314
10 Smartwatch und Android Wear
321
10.1 Welt am Handgelenk
321
10.2 Phone ruft Uhr
323
10.2.1 Notifications
324
10.2.2 »WearableExtender«
325
10.2.3 Interaktive Notifications
326
10.3 Ein Wear-Projekt
327
10.3.1 »wear«-Modul hinzufügen
327
10.3.2 Rund oder eckig?
329
10.3.3 Wear-Apps installieren
330
10.4 Uhr ruft Phone
330
10.4.1 Buttons verdrahten
331
10.4.2 Den Service fernsteuern
332
10.4.3 NodesAPI-Nachrichten empfangen
333
10.5 Wear 2.x
335
10.5.1 Complications
336
10.6 Fazit
339
11 Tipps und Tricks
341
11.1 Views mit Stil
341
11.1.1 Hintergrundgrafiken
341
11.1.2 Styles
343
11.1.3 Themes
344
11.1.4 Button-Zustände
345
11.1.5 9-Patches
346
11.1.6 Shape Drawables
347
11.1.7 Shader, Path-Effekte und Filter
349
11.2 Dialoge
351
11.2.1 Standarddialoge
351
11.2.2 Eigene Dialoge
357
11.2.3 Toasts
359
11.3 Layout-Gefummel
360
11.3.1 »RelativeLayouts«
361
11.3.2 Layout-Gewichte
361
11.3.3 View Binding
362
11.3.4 Layouts mit Animationen
364
11.3.5 Homescreen-Widgets
366
11.3.6 Widget-Layout
367
11.3.7 Widget-Provider
367
11.3.8 Das Widget anmelden
369
11.4 Teilen und Empfangen
371
11.4.1 Daten versenden
371
11.4.2 Geteilte Daten entgegennehmen
374
11.4.3 Speichern ohne Genehmigung
377
11.5 Daten speichern leicht gemacht
381
11.5.1 Ein Einkaufszettel als App
382
11.5.2 Daten verwalten mit Paper
385
11.6 Öffentliche Webservices abfragen
388
11.6.1 Alle Wetter
389
11.6.2 Webservices abfragen mit Retrofit
391
11.7 Activities aus Fragmenten
398
11.7.1 Fragmente anlegen
398
11.7.2 Fragmente managen
402
12 Apps veröffentlichen
405
12.1 Vorarbeiten
405
12.1.1 Zertifikat erstellen
405
12.1.2 Das Entwicklerkonto
408
12.1.3 Die Entwicklerkonsole
408
12.2 Hausaufgaben
411
12.2.1 Updates
411
12.2.2 Statistiken
412
12.2.3 Datenschutz
414
12.2.4 Fehlerberichte
415
12.2.5 In-App-Payment
417
12.2.6 In-App-Produkte
418
12.2.7 Die »Billing API Version 3« initialisieren
421
12.2.8 Ein In-App-Produkt kaufen
422
12.3 Alternative Markets
424
12.3.1 Amazon AppStore
424
12.3.2 F-Droid
426
12.3.3 Fazit
432
Index
433