Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort
13
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
21
1.2.3 Alles geht
25
1.3 Was ist so toll an Android?
25
1.3.1 OsmAnd Karten & Navigation
26
1.3.2 Google Sky Map
27
1.3.3 Hoccer
28
1.3.4 c:geo
30
1.3.5 Barcode & QR Scanner
31
1.3.6 Öffi
32
1.3.7 Wikitude World Browser
33
1.3.8 Sprachsuche
35
1.3.9 Cut the Rope
36
1.3.10 Shaky Tower
37
2 Ist Java nicht auch eine Insel?
39
2.1 Warum Java?
39
2.2 Grundlagen
41
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
46
2.4 Klassen implementieren
47
2.4.1 Attribute
47
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
59
2.5.1 Listen
59
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
79
3.6 Fehlersuche
81
3.6.1 Einen Stacktrace lesen
81
3.6.2 Logging einbauen
85
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
97
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
104
4.2.5 Die Build-Skripte
107
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
133
5.1 Wie viele Stechmücken kann man in einer Minute fangen?
133
5.1.1 Der Plan
134
5.1.2 Das Projekt erzeugen
134
5.1.3 Layouts vorbereiten
136
5.1.4 Die »GameActivity«
137
5.2 Grafiken einbinden
140
5.2.1 Die Mücke und der Rest der Welt
140
5.2.2 Grafiken einbinden
141
5.3 Die Game Engine
144
5.3.1 Aufbau einer Game Engine
144
5.3.2 Ein neues Spiel starten
145
5.3.3 Eine Runde starten
146
5.3.4 Den Bildschirm aktualisieren
147
5.3.5 Die verbleibende Zeit herunterzählen
154
5.3.6 Prüfen, ob das Spiel vorbei ist
158
5.3.7 Prüfen, ob eine Runde vorbei ist
160
5.3.8 Eine Mücke anzeigen
161
5.3.9 Eine Mücke verschwinden lassen
166
5.3.10 Das Treffen einer Mücke mit dem Finger verarbeiten
171
5.3.11 »Game Over«
171
5.3.12 Der Handler
173
5.4 Der erste Mückenfang
177
5.4.1 Retrospektive
178
5.4.2 Feineinstellungen
179
5.4.3 Hintergrundbilder
181
5.4.4 Elefanten hinzufügen
182
6 Sound und Animation
185
6.1 Sounds hinzufügen
186
6.1.1 Sounds erzeugen
186
6.1.2 Sounds als Ressource
188
6.2 Sounds abspielen
189
6.2.1 Der MediaPlayer
189
6.2.2 Den MediaPlayer initialisieren
190
6.2.3 Zurückspulen und Abspielen
191
6.3 Einfache Animationen
193
6.3.1 Views einblenden
193
6.3.2 Wackelnde Buttons
196
6.3.3 Interpolation
199
6.4 Fliegende Mücken
203
6.4.1 Grundgedanken zur Animation von Views
204
6.4.2 Geschwindigkeit festlegen
204
6.4.3 Mücken bewegen
205
6.4.4 Bilder laden
208
6.4.5 If-else-Abfragen
210
6.4.6 Zweidimensionale Arrays
211
6.4.7 Resource-IDs ermitteln
212
6.4.8 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
228
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
241
7.3.3 Spinner und Adapter
244
8 Kamera und Augmented Reality
247
8.1 Die Kamera verwenden
247
8.1.1 Die »CameraView«
248
8.1.2 »CameraView« ins Layout integrieren
252
8.1.3 Die Camera-Permission
254
8.2 Bilddaten verwenden
255
8.2.1 Bilddaten anfordern
255
8.2.2 Bilddaten auswerten
257
8.2.3 Tomaten gegen Mücken
259
9 Sensoren und der Rest der Welt
265
9.1 Himmels- und sonstige Richtungen
265
9.1.1 Der »SensorManager«
266
9.1.2 Rufen Sie nicht an, wir rufen Sie an
267
9.1.3 Die Kompassnadel und das »Canvas«-Element
269
9.1.4 View und Activity verbinden
272
9.2 Wo fliegen sie denn?
273
9.2.1 Sphärische Koordinaten
273
9.2.2 Die virtuelle Kamera
275
9.2.3 Mücken vor der virtuellen Kamera
276
9.2.4 Der Radarschirm
281
9.3 Beschleunigung und Erschütterungen
287
9.3.1 Ein Schrittzähler
287
9.3.2 Mit dem »SensorEventListener« kommunizieren
290
9.3.3 Schritt für Schritt
292
9.4 Hintergrund-Services
295
9.4.1 Eine Service-Klasse
295
9.4.2 Service steuern
297
9.4.3 Einfache Service-Kommunikation
299
9.5 Arbeiten mit Geokoordinaten
302
9.5.1 Der Weg ins Büro
302
9.5.2 Koordinaten ermitteln
304
9.5.3 Karten und Overlay
306
10 Smartwatch und Android Wear
315
10.1 Welt am Handgelenk
315
10.2 Phone ruft Uhr
317
10.2.1 Notifications
318
10.2.2 »WearableExtender«
319
10.2.3 Interaktive Notifications
320
10.3 Ein Wear-Projekt
321
10.3.1 »wear«-Modul hinzufügen
321
10.3.2 Rund oder eckig?
323
10.4 Uhr ruft Phone
324
10.4.1 Buttons verdrahten
325
10.4.2 Wear-Apps installieren
326
10.4.3 Den Service fernsteuern
326
10.4.4 NodesAPI-Nachrichten empfangen
328
10.5 Wear 2.0
330
10.5.1 Complications
330
10.6 Fazit
333
11 Tipps und Tricks
335
11.1 Views mit Stil
335
11.1.1 Hintergrundgrafiken
335
11.1.2 Styles
337
11.1.3 Themes
338
11.1.4 Button-Zustände
339
11.1.5 9-Patches
340
11.1.6 Shape Drawables
341
11.1.7 Shader, Path-Effekte und Filter
343
11.2 Dialoge
345
11.2.1 Standarddialoge
345
11.2.2 Eigene Dialoge
351
11.2.3 Toasts
353
11.3 Layout-Gefummel
354
11.3.1 RelativeLayouts
354
11.3.2 Layout-Gewichte
355
11.4 Homescreen-Widgets
356
11.4.1 Widget-Layout
357
11.4.2 Widget-Provider
357
11.4.3 Das Widget anmelden
358
12 Apps veröffentlichen
361
12.1 Vorarbeiten
361
12.1.1 Zertifikat erstellen
361
12.1.2 Das Entwicklerkonto
364
12.1.3 Die Entwicklerkonsole
364
12.2 Hausaufgaben
367
12.2.1 Updates
367
12.2.2 Statistiken
369
12.2.3 Fehlerberichte
370
12.2.4 In-App-Payment
372
12.2.5 In-App-Produkte
373
12.2.6 Die »Billing API Version 3« initialisieren
376
12.2.7 Ein In-App-Produkt kaufen
377
12.3 Alternative Markets
379
12.3.1 Amazon AppStore
379
12.3.2 Fazit
381
Index
383