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
24
1.3 Was ist so toll an Android?
25
1.3.1 MagicEarth
25
1.3.2 Google Sky Map
27
1.3.3 Hoccer
28
1.3.4 c:geo
29
1.3.5 Barcoo - QR Scanner
30
1.3.6 Öffi
31
1.3.7 Wikitude World Browser
32
1.3.8 Sprachsuche
33
1.3.9 Cut the Rope
35
1.3.10 Asphalt Nitro
36
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
77
3.6 Fehlersuche
79
3.6.1 Einen Stacktrace lesen
80
3.6.2 Logging einbauen
83
3.6.3 Schritt für Schritt debuggen
85
4 Die erste App
87
4.1 Sag »Hallo«, Android!
87
4.1.1 Die »MainActivity«
89
4.1.2 Der erste Start
94
4.2 Bestandteile einer Android-App
96
4.2.1 Activities anmelden
97
4.2.2 Permissions
98
4.2.3 Ressourcen
100
4.2.4 Generierte Dateien
102
4.2.5 Die Build-Skripte
105
4.3 Benutzeroberflächen bauen
109
4.3.1 Layout bearbeiten
109
4.3.2 String-Ressourcen
114
4.3.3 Layout-Komponenten
117
4.3.4 Weitere visuelle Komponenten
119
4.4 Buttons mit Funktion
120
4.4.1 Der »OnClickListener«
121
4.4.2 Den »Listener« implementieren
121
4.5 Eine App installieren
125
4.5.1 Installieren per USB
125
4.5.2 Installieren mit ADB
125
4.5.3 Drahtlos installieren
127
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
139
5.3 Die Game Engine
142
5.3.1 Aufbau einer Game Engine
142
5.3.2 Ein neues Spiel starten
143
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
176
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
188
6.2.3 Zurückspulen und Abspielen
189
6.3 Einfache Animationen
191
6.3.1 Views einblenden
191
6.3.2 Wackelnde Buttons
194
6.3.3 Interpolation
198
6.4 Fliegende Mücken
202
6.4.1 Grundgedanken zur Animation von Views
203
6.4.2 Geschwindigkeit festlegen
203
6.4.3 Mücken bewegen
204
6.4.4 Bilder laden
207
6.4.5 If-else-Abfragen
208
6.4.6 Zweidimensionale Arrays
210
6.4.7 Resource-IDs ermitteln
211
6.4.8 Retrospektive
213
7 Internetzugriff
215
7.1 Highscores speichern
215
7.1.1 Highscore anzeigen
215
7.1.2 Activities mit Rückgabewert
217
7.1.3 Werte permanent speichern
218
7.1.4 Rekordhalter verewigen
219
7.2 Bestenliste im Internet
225
7.2.1 Die Internet-Erlaubnis
226
7.2.2 Eine »ScrollView« für die Highscores
227
7.2.3 Der HTTP-Client
228
7.3 Listen mit Adaptern
237
7.3.1 »ListViews«
237
7.3.2 ArrayAdapter
239
7.3.3 Spinner und Adapter
242
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
258
8.2.1 Bilddaten anfordern
259
8.2.2 Bilddaten auswerten
261
8.2.3 Tomaten gegen Mücken
263
9 Sensoren und der Rest der Welt
269
9.1 Himmels- und sonstige Richtungen
269
9.1.1 Der »SensorManager«
270
9.1.2 Rufen Sie nicht an, wir rufen Sie an
271
9.1.3 Die Kompassnadel und das »Canvas«-Element
273
9.1.4 View und Activity verbinden
276
9.2 Wo fliegen sie denn?
277
9.2.1 Sphärische Koordinaten
277
9.2.2 Die virtuelle Kamera
279
9.2.3 Mücken vor der virtuellen Kamera
280
9.2.4 Der Radarschirm
285
9.3 Beschleunigung und Erschütterungen
291
9.3.1 Ein Schrittzähler
292
9.3.2 Mit dem »SensorEventListener« kommunizieren
294
9.3.3 Schritt für Schritt
297
9.4 Hintergrund-Services
299
9.4.1 Eine Service-Klasse
300
9.4.2 Service steuern
301
9.4.3 Einfache Service-Kommunikation
303
9.5 Arbeiten mit Geokoordinaten
306
9.5.1 Der Weg ins Büro
306
9.5.2 Koordinaten ermitteln
308
9.5.3 Karten und Overlay
310
10 Smartwatch und Android Wear
319
10.1 Welt am Handgelenk
319
10.2 Phone ruft Uhr
321
10.2.1 Notifications
321
10.2.2 »WearableExtender«
323
10.2.3 Interaktive Notifications
324
10.3 Ein Wear-Projekt
325
10.3.1 »wear«-Modul hinzufügen
325
10.3.2 Rund oder eckig?
327
10.4 Uhr ruft Phone
328
10.4.1 Buttons verdrahten
329
10.4.2 Wear-Apps installieren
330
10.4.3 Den Service fernsteuern
330
10.4.4 NodesAPI-Nachrichten empfangen
332
10.5 Wear 2.x
333
10.5.1 Complications
334
10.6 Fazit
337
11 Tipps und Tricks
339
11.1 Views mit Stil
339
11.1.1 Hintergrundgrafiken
339
11.1.2 Styles
341
11.1.3 Themes
341
11.1.4 Button-Zustände
342
11.1.5 9-Patches
343
11.1.6 Shape Drawables
345
11.1.7 Shader, Path-Effekte und Filter
346
11.2 Dialoge
348
11.2.1 Standarddialoge
349
11.2.2 Eigene Dialoge
354
11.2.3 Toasts
356
11.3 Layout-Gefummel
358
11.3.1 »RelativeLayouts«
358
11.3.2 Layout-Gewichte
359
11.4 Homescreen-Widgets
360
11.4.1 Widget-Layout
360
11.4.2 Widget-Provider
361
11.4.3 Das Widget anmelden
362
11.5 Teilen und Empfangen
364
11.5.1 Daten versenden
364
11.5.2 Geteilte Daten entgegennehmen
367
11.5.3 Speichern ohne Genehmigung
370
11.6 Daten speichern leicht gemacht
374
11.6.1 Ein Einkaufszettel als App
375
11.6.2 Daten verwalten mit Paper
378
11.7 Öffentliche Webservices abfragen
381
11.7.1 Alle Wetter
381
11.7.2 Webservices abfragen mit Retrofit
384
12 Apps veröffentlichen
391
12.1 Vorarbeiten
391
12.1.1 Zertifikat erstellen
391
12.1.2 Das Entwicklerkonto
394
12.1.3 Die Entwicklerkonsole
394
12.2 Hausaufgaben
397
12.2.1 Updates
397
12.2.2 Statistiken
399
12.2.3 Datenschutz
400
12.2.4 Fehlerberichte
401
12.2.5 In-App-Payment
403
12.2.6 In-App-Produkte
404
12.2.7 Die »Billing API Version 3« initialisieren
406
12.2.8 Ein In-App-Produkt kaufen
408
12.3 Alternative Markets
410
12.3.1 Amazon AppStore
410
12.3.2 F-Droid
412
12.3.3 Fazit
418
Index
419