Inhaltsverzeichnis Vorwort von Hal Abelson 11 Vorwort des Autors 13 V.1 Danksagung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Einleitung E.1 E.2 E.3 17 Aufbau und Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Teil 1 Vorbereitung auf die erste eigene App 27 1 Vorbereitung und Installation 29 1.1 30 30 33 38 43 46 51 1.2 1.3 1.4 2 Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Computer-Plattform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Android-Plattform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Java-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zugangsdaten für App Inventor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation der App Inventor Setup Software . . . . . . . . . . . . . . . . . . . . . . . . Android-Endgerät einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Entwicklungsumgebung 57 2.1 2.2 58 59 61 63 64 66 67 68 69 72 75 77 78 79 84 84 87 87 2.3 2.4 Willkommen bei App Inventor! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . App Inventor „Designer“. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Projekt anlegen im Designbereich . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Fünf Funktionsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Inventar an Komponenten aus der Palette . . . . . . . . . . . . . . . . . . . . 2.2.4 Gestaltung mit Komponentenobjekten im Viewer . . . . . . . . . . . . . . 2.2.5 Objekte strukturieren unter Components und Media . . . . . . . . . . . 2.2.6 Komponenteneigenschaften einstellen unter Properties . . . . . . . . . 2.2.7 App-Projekte verwalten und speichern . . . . . . . . . . . . . . . . . . . . . . App Inventor „Blocks Editor“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 App-Funktionen entwickeln aus Blöcken . . . . . . . . . . . . . . . . . . . . . 2.3.2 Generische Blockgruppen unter Built-In . . . . . . . . . . . . . . . . . . . . . 2.3.3 Komponentenspezifische Blöcke unter My Blocks . . . . . . . . . . . . . . 2.3.4 Apps implementieren und bearbeiten im Editor . . . . . . . . . . . . . . . Android-Phone integrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Smartphone mit Blocks Editor verbinden . . . . . . . . . . . . . . . . . . . . . 2.4.2 Neustart bei „Hängern“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3 Beenden der Arbeitssitzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Inhaltsverzeichnis 2.5 3 Startschwierigkeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Wenn der Blocks Editor nicht startet . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Wenn die Verbindung zum Smartphone stockt . . . . . . . . . . . . . . . . 2.5.3 Bei sonstigen Problemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.4 Das AI-Forum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 89 92 94 95 Einstieg in die App-Entwicklung 99 3.1 3.2 100 103 104 108 109 110 113 116 118 120 122 124 127 130 133 135 136 138 144 150 155 3.3 3.4 Das Projekt „Lachsack“ anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Benutzerschnittstelle gestalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Komponente „Label“ einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Komponentennamen vergeben . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Eigenschaften einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Offene Angelegenheit „Umlaute“ beachten . . . . . . . . . . . . . . . . . 3.2.5 Interaktive Komponente „Button“ ergänzen . . . . . . . . . . . . . . . . . 3.2.6 Mediendatei hochladen und einbinden . . . . . . . . . . . . . . . . . . . . . 3.2.7 Optimierung des App-Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.8 Nichtsichtbare Komponente „Sound“ . . . . . . . . . . . . . . . . . . . . . . App-Funktionalität entwickeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Interaktive App-Logik entwerfen . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Funktionale Blockstruktur implementieren . . . . . . . . . . . . . . . . . . . 3.3.3 Projekt lokal sichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.4 Falls das Lachen ausbleibt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . App erzeugen und installieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Direkte Installation auf dem Smartphone . . . . . . . . . . . . . . . . . . . . 3.4.2 Ein passendes Icon für die App . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.3 Online-Installation per Barcode . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.4 Download der APK-Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.5 Android-Market . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teil 2 Einsteiger-Projekte zum Aufwärmen 159 4 161 Grundbegriffe und zentrale Konzepte 4.1 4.2 4.3 5 Die AI-Referenzen 5.1 5.2 5.3 6 Eigenschaften und Eigenschaftsblöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Ereignisse und Ereignisroutinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Methoden und Methodenblöcke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Grafische Benutzeroberfläche 6.1 6.2 6.3 6.4 6 167 Komponenten-Referenz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Block-Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Konzept-Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 175 Texte anzeigen mit Label. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aktionen auslösen mit Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Optionen auswählen mit CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text eingeben mit TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 178 182 188 Inhaltsverzeichnis 6.5 6.6 6.7 6.8 7 Multimedia 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8 Vertraulichen Text eingeben mit PasswordTextBox . . . . . . . . . . . . . . . . . . Meldungen aufzeigen mit Notifier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bildschirmanzeige ordnen mit Screen Arrangement . . . . . . . . . . . . . . . . . . Aktionen beim App-Start ausführen mit Screen . . . . . . . . . . . . . . . . . . . . . 205 Varianten für den Medienzugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Grundprinzip Synergie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Lokale und Online-Bilder anzeigen mit Image . . . . . . . . . . . . . . . . . . . . . . 210 Fotos machen und anzeigen mit Camera . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Bilder managen mit ImagePicker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Tonsignale und Vibration mit Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Audiodateien wiedergeben mit Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Filme abspielen mit VideoPlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Audio aufnehmen mit SoundRecorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Beispielprojekt 8.1 8.2 191 194 197 201 245 Ergonomisches Re-Design zum Media Center . . . . . . . . . . . . . . . . . . . . . . 245 Multiple Screens für das Media Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Teil 3 Auf dem Weg zum App-Entwickler 255 9 257 Einmaleins der Programmentwicklung 9.1 9.2 9.3 9.4 9.5 Elemente der Datenverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.1 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.2 Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.3 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Farben einsetzen mit Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1 Vordefinierte Farben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.2 Beliebige Farben selber mischen . . . . . . . . . . . . . . . . . . . . . . . . . Zahlen verarbeiten mit Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.1 Grundrechenarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.2 Wissenschaftliches Rechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.3 Zufallszahlen generieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.4 Sortieren und konvertieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.5 Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programmzustände prüfen mit Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.1 Die booleschen Wahrheitswerte . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.2 Verknüpfungsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Texte und Zeichenketten bearbeiten mit Text . . . . . . . . . . . . . . . . . . . . . . 9.5.1 Vergleichen und sortieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.2 Verknüpfen und verändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.3 Inhalte prüfen und heraussuchen . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.4 Strings zerlegen und Listen generieren . . . . . . . . . . . . . . . . . . . . . 7 258 259 260 262 262 263 263 265 265 266 266 267 268 268 269 269 271 271 273 274 275 Inhaltsverzeichnis 9.6 Container-Strukturen definieren mit Definition . . . . . . . . . . . . . . . . . . . . . . 9.6.1 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6.2 Prozeduren und Argumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6.3 Prozeduren mit Rückgabewerten . . . . . . . . . . . . . . . . . . . . . . . . . . 9.7 Listen verwalten mit List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.7.1 Listeninhalt prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.7.2 Listenelemente suchen und auslesen . . . . . . . . . . . . . . . . . . . . . . . 9.7.3 Einträge ergänzen, ersetzen und entfernen . . . . . . . . . . . . . . . . . . 9.8 Programmablauf steuern mit Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.8.1 Bedingte Anweisungen und Verzweigungen (if-then-else) . . . . . . 9.8.2 Schleifen zur Listenverarbeitung (foreach) . . . . . . . . . . . . . . . . . . . 9.8.3 Generische Schleifen (while) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.8.4 Apps kontrolliert beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9 Hinweise zur Programmentwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9.1 Mehr Arbeitsfläche durch komprimierte Blockdarstellung . . . . . . . 9.9.2 Mehr Durchblick mit Kommentaren . . . . . . . . . . . . . . . . . . . . . . . . 9.9.3 Warn- und Fehlerhinweise bei der Live-Entwicklung . . . . . . . . . . . 9.9.4 Testen und Debuggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9.5 Schneller und bequemer entwickeln . . . . . . . . . . . . . . . . . . . . . . . 9.10 Beispielprojekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.10.1 Ein klassischer Taschenrechner . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.10.2 Ratespiel mit Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.10.3 Vokabeltrainer Deutsch – Englisch . . . . . . . . . . . . . . . . . . . . . . . . . 10 Speichern und Datenbanken 278 279 281 284 286 287 288 289 290 292 295 298 306 307 307 310 311 314 318 319 319 327 332 345 10.1 Daten lokal speichern mit TinyDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Variablenwerte als persistente Daten sichern . . . . . . . . . . . . . . . . . 10.1.2 Laden lokaler Daten aus einem Wörterbuch . . . . . . . . . . . . . . . . . 10.1.3 Datenbestand auf Systemebene löschen . . . . . . . . . . . . . . . . . . . . 10.2 Daten im Web speichern mit TinyWebDB. . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Das Wörterbuch in die Cloud auslagern . . . . . . . . . . . . . . . . . . . . 10.2.2 Gemeinsame Datenbasis für Master- und Client-Apps . . . . . . . . . 346 348 352 354 355 358 365 Teil 4 Ansprechende Apps entwickeln 369 11 Grafik und Animation 371 11.1 Malen wie auf einer Leinwand mit Canvas . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 Bunte Tupfer mit verschiedenen Pinselstärken . . . . . . . . . . . . . . . 11.1.2 Strichzeichnungen mit dem Finger . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.3 Ein Malprogramm mit Undo-Funktion . . . . . . . . . . . . . . . . . . . . . . 11.2 Animationen mit Ball und ImageSprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Grafikobjekte bewegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2 Kollisionserkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.3 Ein 2D-Squash-Spiel mit dynamischer Animation . . . . . . . . . . . . . 8 372 374 379 382 385 390 392 396 Inhaltsverzeichnis 11.3 Automatisierte Vorgänge steuern mit Clock . . . . . . . . . . . . . . . . . . . . . . . . 11.3.1 Beliebige Animationen von außen steuern . . . . . . . . . . . . . . . . . . 11.3.2 Keyframe-Animation mit dem Finger . . . . . . . . . . . . . . . . . . . . . . . 11.3.3 Ein Wecker mit Timer-Ereignissen . . . . . . . . . . . . . . . . . . . . . . . . . 12 Sensoren 417 12.1 Orientierung messen mit dem OrientationSensor. . . . . . . . . . . . . . . . . . . . 12.1.1 Grundlagen der sensorischen Orientierungsmessung . . . . . . . . . . 12.1.2 Ein Marschkompass mit grafischer Richtungsanzeige . . . . . . . . . . 12.1.3 Eine Wasserwaage mit grafischer Neigungsanzeige . . . . . . . . . . . 12.2 g-Kraft messen mit dem AccelerometerSensor . . . . . . . . . . . . . . . . . . . . . . 12.2.1 Grundlagen der Beschleunigungsmessung . . . . . . . . . . . . . . . . . . 12.2.2 Rhythmisches Schütteln zum Klang eines Shakers . . . . . . . . . . . . . 12.2.3 Per Schieberegler die Messempfindlichkeit regeln . . . . . . . . . . . . 12.2.4 Balancespiel mit Ganzkörpereinsatz . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Geo-Position bestimmen mit dem LocationSensor . . . . . . . . . . . . . . . . . . . 12.3.1 Hintergründe zu GPS und ortsbezogenen Diensten . . . . . . . . . . . 12.3.2 Über Geokoordinaten und Dezimaltrennzeichen . . . . . . . . . . . . . . 12.3.3 Ein Geotracker zum Erfassen von Streckenprofilen . . . . . . . . . . . . 12.3.4 Geocaching mit dem Smartphone . . . . . . . . . . . . . . . . . . . . . . . . . 13 Kommunikation 399 402 407 411 418 419 421 425 429 429 432 435 439 445 446 448 452 463 475 13.1 Aufgabenstellung: Autofahrer-Assistenzsystem . . . . . . . . . . . . . . . . . . . . . 13.1.1 Bedarf, Funktionen und Anforderungen . . . . . . . . . . . . . . . . . . . . 13.1.2 Modulare Gestaltung der App-Struktur . . . . . . . . . . . . . . . . . . . . . 13.1.3 Schaltzentrale mit multiplen Screens . . . . . . . . . . . . . . . . . . . . . . . 13.2 Telefonieren per Kurzwahlliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.1 Rufnummern auswählen mit PhoneNumberPicker . . . . . . . . . . . . . 13.2.2 Eigene Kurzwahlen selektieren mit ListPicker . . . . . . . . . . . . . . . . . 13.2.3 Telefonnummer anrufen mit PhoneCall . . . . . . . . . . . . . . . . . . . . . 13.3 SMS vollautomatisch managen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3.1 Rückantwort mit optionaler Geoposition generieren . . . . . . . . . . . 13.3.2 Vorlesen und Sprachausgabe mit TextToSpeech . . . . . . . . . . . . . . 13.3.3 Diktieren und Spracherkennung mit SpeechRecognizer . . . . . . . . 13.3.4 SMS empfangen, auswerten und senden mit Texting . . . . . . . . . . 13.4 Datenaustausch per Schnittstelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.4.1 Apps und Web-Services mitnutzen per ActivityStarter . . . . . . . . . 13.4.2 Fußgänger-Navigation mit integrierten Google Maps . . . . . . . . . . 13.4.3 Auto-Navigation mit integrierter Google Navigation . . . . . . . . . . 13.4.4 Beliebige Activities ermitteln und nutzen mit ADB . . . . . . . . . . . . 13.4.5 Kontakte selektieren mit EmailPicker und ContactPicker . . . . . . . . 13.4.6 E-Mails verschicken mit integriertem Android Mailer . . . . . . . . . . 9 477 477 479 480 483 485 488 490 492 495 496 498 501 504 505 511 517 520 522 526 Inhaltsverzeichnis Teil 5 Nützliches für den Entwickler 537 14 Spezielle Funktionsbereiche 539 14.1 Anwendungsspezifische Komponenten. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1.1 Zwitschern mit Twitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1.2 Strichcodes lesen mit BarcodeScanner . . . . . . . . . . . . . . . . . . . . . 14.1.3 Online abstimmen mit Voting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2 Dedizierte Komponentengruppen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.1 Online Multiplayer Games mit GameClient . . . . . . . . . . . . . . . . . . 14.2.2 Datenaustausch mit BluetoothClient und BluetoothServer . . . . . . 14.2.3 Roboter steuern mit der Gruppe „Lego Mindstorms“ . . . . . . . . . . 15 Tipps & Tools 549 15.1 Arbeiten mit dem Android Emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.1 Individuelle Konfiguration im Entwicklerforum . . . . . . . . . . . . . . . . 15.1.2 Standardversion mit App Inventor . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.3 Bedienung des Emulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.4 Integration in die AI-IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Unterstütze Medienformate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2.1 Audioformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2.2 Bildformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2.3 Videoformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2.4 Neues vom Entwicklerforum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3 Kontrolle mit der Java-Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3.1 Konsole aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3.2 Ladevorgänge von AI überwachen . . . . . . . . . . . . . . . . . . . . . . . . . 15.3.3 Statusinformationen nutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4 Einrichtung des Sprachmoduls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.1 Text-to-Speech installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.2 Sprachsynthese-Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4.3 Bei Problemen mit der Sprachausgabe . . . . . . . . . . . . . . . . . . . . . Anhang A.1 A.2 A.3 A.4 10 549 550 551 552 555 556 557 557 558 558 559 559 560 562 563 564 565 567 571 Auf der Website zum Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online-Quellen und interessante Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.1 Offizielle Ressourcen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2.2 Initiativen, Tutorials und Beispielsammlungen . . . . . . . . . . . . . . . . A.2.3 Hintergründe, Historie und Ausblick . . . . . . . . . . . . . . . . . . . . . . . Original-Vorwort von Hal Abelson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stichwortverzeichnis 539 540 541 542 543 543 544 546 571 572 572 573 574 574 576 579 Kapitel 1 Vorbereitung und Installation Im Unterschied zu vielen anderen Büchern und Themengebieten, in denen Besonderder Vorbereitung und Installation der benötigten Systemumgebung und heiten der Software – wenn überhaupt – nur ein kurzer Textabschnitt zugebilligt wird, Beta-Phase widmet dieses Buch ein ganzes Kapitel dieser wichtigen Ausgangsarbeit. Dies hat mehrere Gründe. So handelt es sich bei AI um eine Entwicklungsumgebung in der Beta-Phase (fortgeschrittene Testphase vor der finalen Version eines Software-Produkts), in der besonders bei der Installation beziehungsweise dem Software-Zugang einige Besonderheiten zu berücksichtigen und zu erklären sind, die bei einem späteren, stabilen finalen Release voraussichtlich weniger von Bedeutung sein werden. So ist man beim derzeitigen Einsatz von AI noch sehr „nah“ an den Entwicklungsprozessen und auch den Entwicklern von Google, die mit sehr viel Engagement an dem Ausbau, der Verbesserung und der etwaigen Fehlerbehebung von AI arbeiten, und bekommt etwaige Anpassungen oder Neuerungen relativ zeitnah und direkt mit. Ebenso ist zu berücksichtigen, dass sich sowohl dieses Buch als auch AI selbst vor allem an den unerfahrenen Einsteiger mit geringen beziehungsweise keinen Erfahrungen in der Entwicklung und Programmierung von Software-Anwendungen richten. Insofern kann davon ausgegangen werden, dass für einen Teil der Leserschaft das selbstständige Einrichten einer Entwicklungsumgebung nicht zwangsläufig zum Tagesgeschäft gehört und eine schrittweise Anleitung durchaus hilfreich sein kann. Dass dieser Bedarf selbst bei den frühen und technikorientierten Beta-Nutzern von AI besteht, haben nicht zuletzt auch die vielen diesbezüglichen Fragen auf der AI Google Group gezeigt. Im gegenwärtigen Beta-Stadium handelt es sich bei AI noch nicht um ein voll- Computer und ständig abgerundetes Produkt, das neben einer ausführlichen Produktdoku- Smartphone mentation auch über eine umfangreiche Installationsanleitung beziehungs- vorbereiten weise eine komfortable, vollautomatisierte Installationsroutine verfügt, wie dies bei kommerziell ausgereiften Software-Produkten üblich ist. Nichtsdestotrotz sind die bereits integrierten Funktionen stabil und werden in der Regel auch bei zukünftigen Anpassungen beibehalten beziehungsweise ausgebaut. Die hier getroffenen Aussagen beziehen sich also vor allem auf den Ins- 29 Kapitel 1: Vorbereitung und Installation tallationsprozess und dessen Dokumentation, der noch einer gewissen Dynamik unterworfen ist. Die Prioritäten der engagierten Google-Entwickler liegen derzeit vor allem auf der Weiterentwicklung der technischen Funktionalität und Leistungsfähigkeit von AI, sodass die Anleitung durch den bisweilen noch holprigen Installationsprozess anderen Autoren beziehungsweise deren Büchern – wie dem vorliegenden – überlassen bleibt. Und schließlich ist für das Entwickeln von Apps mit AI auch mehr als nur eine einzelne Arbeitsplattform vorzubereiten, denn entwickelt wird zugleich auf dem Computer und dem Android-Smartphone. 1.1 Systemvoraussetzungen Entwicklung Bei den Systemvoraussetzungen für die Entwicklung von Android-Apps ist auf dem Smart- zwischen den beiden beteiligten Plattformen Computer (fortan PC) und phone oder Android-Endgerät (fortan Smartphone) zu unterscheiden. Obwohl theoreEmulator tisch auch bis zu einem gewissen Grad ausschließlich auf dem PC entwickelt werden könnte und auch dort die selbst erstellten Apps auf einem HandySimulator beziehungsweise sogenannten Emulator getestet werden könnten, ist das Ziel der Entwicklungsarbeit doch ohnehin, die App auf dem mobilen Endgerät zu verwenden. Insofern werden wir in diesem Buch – wo immer möglich – einen Teil der Entwicklungsarbeit von vornherein direkt auf dem Smartphone vornehmen. Sensoren zur Positionsbestimmung (z.B. GPS) und sonstige Funktionselemente des mobilen Endgeräts müssen dann auch nicht aufwendig auf dem PC simuliert werden, sondern können direkt auf dem Smartphone schon während der Entwicklung genutzt werden. Aus historischer Sicht wurden Endgerät-Emulatoren vor allem in den Anfangszeiten des offenen Betriebssystems Android bei der App-Entwicklung mit der Programmiersprache Java eingesetzt, noch bevor überhaupt beziehungsweise ausreichend Android-Endgeräte verfügbar waren. Im Kapitel „Tools & Tricks“ in diesem Buch wird die alternative Arbeitsweise mit dem Emulator kurz vorgestellt. Grundsätzlich ist zu empfehlen, bei der Installation in der Reihenfolge der nun folgenden Abschnitte vorzugehen. 1.1.1 Computer-Plattform Unterstützte Die eigentliche App-Entwicklung mit AI findet auf dem PC statt. Hierbei Betriebs- unterscheiden sich die Anforderungen der Entwicklungsumgebung AI nicht systeme von denen anderer Software-Produkte. Schon heute unterstützt AI die gän- gigen Betriebssysteme und Computer-Plattformen. Welches Betriebssystem 30 Systemvoraussetzungen auf Ihrem Computer installiert ist, wird in der Regel beim Hochfahren des Rechners auf der Anmeldeseite angezeigt. Derzeit kann AI auf allen handelsüblichen Computern mit folgenden Betriebssystemen betrieben werden: 쐽 Windows: Windows XP, Windows Vista, Windows 7 쐽 Macintosh (mit Intel-Prozessor): Mac OS X 10.5, 10.6 쐽 GNU/Linux: Ubuntu 8+, Debian 5+ Im Unterschied zu klassischen lokalen Entwicklungsumgebungen wird nur ein relativ geringer Anteil der AI-Software direkt auf Ihrem PC installiert. Der größte Teil der Software ist webbasiert, sodass Sie den überwiegenden Teil Ihrer Entwicklungsarbeit auch direkt in einem Web-Browser vornehmen und über diesen Client auf die eigentliche AI-Software zugreifen, die auf einem entfernten Server von Google läuft. Bei diesem Ansatz des sogenannten Cloud Computing ist sichergestellt, dass Sie immer mit der aktuellsten Version von AI arbeiten und dies grundsätzlich von jedem entsprechend konfigurierten PC im Internet aus tun können. Entsprechend werden später auch Ihre App-Projekte nicht mehr lokal auf Ihrer Festplatte gespeichert, sondern können ebenso zentral auf einem von Google bereitgestellten Server verwaltet werden. Voraussetzung dafür ist natürlich, dass Sie bei der Arbeit mit AI immer online sind und über ein Google-Konto verfügen. Aber keine Sorge, die Arbeit mit AI gestaltet sich für Sie als Benutzer nicht wesentlich anders als bei herkömmlichen lokalen Anwendungen. Webbasierte Installation dank Cloud Computing Auch bei der Auswahl des bevorzugten Web-Browsers lässt Ihnen AI eine Unterstützte große Auswahl aus den gängigen Produkten. Generell ist zu empfehlen, Web-Browser immer die aktuellste Version des gewünschten Browsers zu verwenden. Derzeit können Sie folgende Browser einsetzen: 쐽 Mozilla Firefox 3.6 und höher 쐽 Apple Safari 5.0 und höher 쐽 Google Chrome 4.0 und höher 쐽 Microsoft Internet Explorer 6 und höher Um zu erfahren, welche Browser-Version auf Ihrem PC installiert ist, bieten die meisten Browser in der Menüleiste unter dem Menüpunkt „Hilfe“ einen Eintrag „Über ...“ an. Bei dessen Auswahl wird die installierte Browser-Version angezeigt, wie in Bild 1.1 am Beispiel von Mozilla Firefox Version 3.6.8 auf dem Betriebssystem Windows XP zu sehen ist. 31 Kapitel 1: Vorbereitung und Installation Bild 1.1: Anzeige der installierten BrowserVersion Aktualisierung Sollten Sie feststellen, dass Sie über eine ältere als die oben in den Mindes Browsers destanforderungen angegebene Browser-Version verfügen, bieten Ihnen die meisten Browser auch gleich eine bequeme Aktualisierungsmöglichkeit an. So finden Sie beispielsweise bei Mozilla Firefox unter dem gleichen Menüpunkt „Hilfe“ auch den Eintrag „Nach Updates suchen ...“ (siehe Bild 1.1), dessen Aufruf eine automatisierte Aktualisierung startet. Ansonsten suchen Sie einfach mit einem passenden Suchbegriff wie beispielsweise „Firefox Update“ in Ihrer bevorzugten Suchmaschine. Online- Da es sich bei AI um ein sehr dynamisches Produkt handelt, das gerade Informationen während der Beta-Phase und damit auch zum Zeitpunkt der Drucklegung dieses Buchs fortwährenden Veränderungen unterworfen ist, kann es natürlich vorkommen, dass sich auch die Systemanforderungen im Laufe der Zeit verändern. Um immer auf dem aktuellen Stand zu sein, empfiehlt es sich für Sie als AI-Nutzer, auch direkt auf dem Online-Angebot zu AI nachzulesen, ob es Aktualisierungen und Änderungen gibt. Wo immer möglich, werden deshalb in diesem Buch entsprechende direkte Verweise auf die zum Druckzeitpunkt vorhandenen Online-Informationen zu AI angegeben. 32 Systemvoraussetzungen Online-Updates und aktuelle Hinweise zu den Systemanforderungen Den aktuellsten Stand der von AI unterstützten Systeme finden Sie online unter: http://appinventor.googlelabs.com/learn/setup/ Grundsätzlich gilt auch hier die Faustformel: Je aktueller Ihre PC-Systemum- Je aktueller, gebung ist, desto wahrscheinlicher ist es auch, dass diese von AI unterstützt desto besser wird. Davon auszunehmen sind natürlich Systemumgebungen, die sich ebenfalls erst in einem Beta-Stadium befinden und bei denen es noch nicht unterstützte Leistungsmerkmale beziehungsweise die üblichen anfänglichen Kompatibilitätsschwierigkeiten gibt. Bei offiziellen Software-Releases, die Sie als Einsteiger vermutlich auf Ihrem System verwenden, wird diese Ausnahme jedoch selten zutreffen. Die oben genannte Faustformel gilt in ähnlicher Weise ebenso für die eingesetzte Android-Plattform. 1.1.2 Android-Plattform Die Systemanforderungen an das eingesetzte Android-Endgerät sind einerseits überschaubarer, bergen aber aufgrund des noch jungen AndroidMarkts bisweilen mehr Unwägbarkeiten als bei den etablierten ComputerPlattformen und -Betriebssystemen. Die verhältnismäßig kurzen ReleaseZyklen der fortwährend überarbeiteten und erweiterten Android-Betriebssystemversionen erfordern auch entsprechende Anpassungen an die zuliefernden Software-Produkte wie eben auch AI. Aber auch die GoogleEntwickler setzen dabei auf den Grundsatz der Abwärtskompatibilität. Dies bedeutet, dass neue Android-Versionen nach Möglichkeit immer auch den vollen Funktionsumfang älterer Versionen unterstützen, sodass beispielsweise ältere Android-Apps auch auf den neuesten Android-Endgeräten laufen können. Dieser Grundsatz gilt natürlich nur in diese Richtung, sodass speziell für neuere Android-Endgeräte entwickelte Apps nicht zwangsläufig auch von älteren Android-Smartphones unterstützt werden müssen. Vor der Veröffentlichung einer App auf einem Markt ist es von daher immer sinnvoll, die App auf verschiedenen Android-Versionen auszuprobieren, um sicherzugehen, dass diese auf möglichst vielen Endgeräten läuft und entsprechend von möglichst vielen Nutzern verwendet werden kann. Ebenso sind gegebenenfalls herstellerspezifische Oberflächen, wie beispielsweise Sense auf den Android-Endgeräten des Herstellers HTC, zu berücksichtigen. Abwärtskompatibles mobiles Betriebssystem 33 Stichwortverzeichnis Symbole < 268 = 268 Numerisch 1970 402 2D-Animation 385 2D-Echtzeitgrafik 371 3D-Echtzeitgrafik 371 3G 34 A Abwärtskompatibilität 33 AccelerationChanged 431 AccelerometerSensor 430 Accuracy 451, 467 Action 507 Activity 505 Activity Starter 505 ActivityClass 507 ActivityError 510 ActivityPackage 507 ActivityStarter 306, 505 ADB 49, 92, 520 Android Debug Bridge 49 add items to list 289, 335 AddDays 401 AddHours 401 AddMinutes 401 AddMonths 401 AddSeconds 401 AddWeeks 401 AddYears 401 AfterActivity 510 After-Ereignis 240 AfterPicking 222, 486 AfterPicture 218 AfterScan 541 AfterSoundRecorded 237, 240 AfterSpeaking 497 A-GPS 446 AI-Forum 56, 95 Subforen 95 Aktiv bleiben 52 Akzelerometer 34, 429 Algorithmus 257 Alignment 109 alphanumerische Zeichen 271 Altitude 451 altitude 457, 467 AND 269 AndExplorer 153, 208 Android offenes Betriebssystem 210 Android Debug Bridge 520 ADB 317 Android Developers 558, 572 Android Logs 317 Android Mailers 526 Android Manifest 154 Android Virtual Devices 549 Android-Entwicklerforum 550, 558 Android-Market 155 Angle 420 Angry Birds 371 Animation 371, 385 Ausgangsposition 390 Geschwindigkeit 391 Richtung 391 Animationspfad 385 Anwendungsmenü 143 Anwendungssymbol 138, 143 APK 148 APP_INVENTOR_RESULT 306 append to list 289 AppInventor Blog 573 AppInventor Extender 573 App-to-App 476, 520 App-to-Web 476, 520 Arbeitsbereich 61 Arbeitsspeicher 345 Argument 166, 282 Argumente 281 ASCII 273 579 Stichwortverzeichnis ASCII-Zeichentabelle 272 Asset 206, 212, 226 Assets 154, 562 asynchrone Webkommunikation 357 Audioformate 557 Audioplayer 227 Ausdruck 320 Ausgangseigenschaften 79 Ausschnittfenster 80 Auswahlkasten Checkbox 182 Automatic 109 Automatisierung 401 Autorotation 53 AVAILABLE 468 Available 420, 431 AvailableProviders 450, 468 AVD 549 B BackgroundColor 69, 109 Ball 385 Barcode 145 Generator 145 Scanner 145 Barcode-Scanner 54, 541 Basic 105 bedingte Anweisung 291–292 Befehl 76 BeforeSpeaking 497 Benutzerfreundlichkeit 103 Bereichsmenü 61 Beschleunigungsmesser 34 Beschleunigungssensor 429 Beta-Phase 29, 43 Closed-Beta-Phase 43 Bewegungsprofil 452 Bilddatei 116 Bilder-Galerie 220 Bildformate 557 Block 75 block collapsing 308 Blockauswahl 75 Block-Referenz 258 Blocks 170 Blocks Editor 40, 72 Blockstrukturen 79 Blocktyp 129 Bloggen 540 580 Bluetooth 544 BluetoothClient 544, 546 BluetoothServer 545 boolesche Logik 268 boolesche Werte 269 Bottom-up 245 bottom-up 476 Bounce 393 Breitengrad 448, 451 Bubblesort 267 Buddy-Tracking 447 Built-In 77, 257 Button 105, 178 Button-Generator 141 C Caches 463 Calculator 321 Camera 215 Canvas 372 case sensitive 271, 288 ceiling 267 CheckBox Auswahlbox 182 Checkpoint 71 choose 294 Clear 373 Client-App 365 Clock 400 Clock.Now 457, 468, 483 close screen 306, 327, 483 close-screen-with-result 306 Cloud 209, 346, 355 Cloud Computing 31, 355, 505 CollidedWith 395 Color 263 Compilersprachen 311 Complaint Warnhinweis 312 Completed 235 Components 67, 167 Computeranimation 388 Concatenation Textverknüpfung 185 Concepts 172 ContactName 486, 524 ContactPicker 523 Container 278 contains 274 Stichwortverzeichnis Content URL 207 Control 290 Copy & Paste 253, 318 Country 497 CurrentAddress 451, 457, 467 D Data Store 347 DataUri 508 Dateimanager 208 Daten 255 Datenbankabfrage 340 Datenstrukturen 260, 286 Datentypen 259 Datum 412 Deactivate 312 Debugger 316 Debugging 194, 302 Decoder 556 def variable 279 Deinstallieren 142 dekrementiert 300 Delete 107 Design 61 Designer 59, 103 Dezimaltrennzeichen 449 Diktiergerät 237 Disjunktion 269 Distanz 471 Do it 315 DoScan 541 downcase 273, 336 Download 359 Downloadzeit 226 Drag 379 Dragged 374, 379, 394 DrawCircle 374, 377 DrawLine 374 DrawPoint 373, 376 Dummy Socket 285 Duration 401 E e 511 EDGE 144 edge 393 EdgeReached 392 Editor 79 eGovernment 543 Eigenschaften 109, 161 Ausgangseigenschaften 161 Eigenschaftsblöcke 161 Eigenschaftsmenü 82 Elements 488 ElementsFromString 488 else-do 294 else-return 294 Email 526 EmailAddress 486, 524 Embedded Computing 548 Emulator 30, 93, 549 Enabled 239, 420, 431, 450 Encoder 556 Endlosschleife 291, 301 eng 497 Entwicklungszyklus 100 Ereignis 125, 163 Ereignisbehandlungsroutine Ereignisroutine 125 Event Handler 125 Ereignisbehandlungsroutinen 163 Ereignisblock 163 Ereignisroutinen 163 Ereignissteuerung 125 Ergebniswert 284 Ergonomie 103, 210 eSpeak for Android 564 Event Handler Ereignisbehandlungsroutine 125 eVoting 543 Export 72 ExtraKey 509 Extras Software 46 ExtraValue 509 F false 235, 269 FAQ 56 Farbe 263 Farb-Formel 264 Farbwert 263, 284 Fehlermeldung 90 fehlertolerant 312 Fehlervermeidung 312 File URL 207 Fill parent 109 Flatrate 228 581 Stichwortverzeichnis floor 267 flüchtiger Speicher 345 FontBold 109 FontItalic 109 FontSize 109 FontTypeface 109 foreach 295 format as decimal 267 FormatDateTime 483 For-Schleife 295 Fotoalbum 210, 220 Fotokamera 215 Funktionsbereiche 63 Funktionsmenü 61, 75 Funktionstasten 479 G GameClient 543 GBR 497 generisch 77 generische Blöcke 257 geo 508 Geocaching 463 geografische Koordinaten 448 Geotracker 453 Geo-Tracking 452 Geräte-Manager 50 get start text 306 GetText 499 g-Faktor 429 g-Kraft 429 global 280 globale Variable 280 Google Maps 511 Google Navigation 463, 517 Google TV 34 GPRS 144 GPS 34, 445 GPS-Track 452 Gradmaß 391 Grafik 371 Grundrechenarten 265 g-Sensor 429 GUI 176 H Haltepunkte 317 HasAccuracy 467 HasAltitude 467 HasLongitudeLatitude 467 582 Haus vom Nikolaus 381 Hausadresse 451 HD-Qualität 371 Header 248 Heading Richtung 391 Height 109 HelloPurr 133 Hintergrund 401 Hintergrundbild 210 Hinweisfenster Notifier 194 Höhe 451 Höhenprofil 452 Holzlabyrinth 439 HSDPA 144 HTML5 558 http 508 I Icon 138 Launcher 139 Menu 139 Icon Design Guidelines 139 IconMenu 251 IDE 57 if 292 ifelse 293, 330 if-then 292 if-then-else 292 Image 116, 211 image 218 ImagePath 221, 223 ImagePicker 220 ImageSprite 385 Implementierung 79 Index 288 Indexposition 290 initialisieren 286 Inkonsistenzen 312 inkrementiert 299 Input 103 Instant 402 Instants 411 Intent 507, 567 Interaktive Komponenten 114 Interpretersprache 311 Interval 388 is a list? 287 is a number? 268 is in list? 288 Stichwortverzeichnis is list empty? 287 Issues Tracker 111 Iteration 291, 295 J Java 1.6 38 Java 6 38 Java Control Panel 41, 560 Java System Logs 317 Java VM 90 Java Web Start 40, 73, 560 Funktionstest 40 JNLP-Datei 40 Launcher 41 Java-Applet 39 Java-Konsole 559 Java-Laufzeitumgebung 38 Java VM 38 JRE 38 Java-Test-Webpage 38 JNLP 73 JNLP-Datei 89 join 273 Jukebox 210 K kalibrieren 424 kein Bild 119 Keyframe-Animation 408 Keyframes 408 kinästhetische Wahrnehmung 433 Kommentare 310 Kompass 34, 421 elektronisch 419 kompilieren 311 Komponenten 64 Komponentenobjekt 106 Objekt 67 Konfigurationstasten 479 Konjunktion 269 Konkatenation 273 Konstante 280 Kontextmenüs 310 Kontrollstrukturen 262, 290 Konvergenz 476 Konvertierung 271 Koordinatenwerte 372 Kurswinkel 465, 471 Kurzwahlliste 483 L Label 105 Textfeld 176 Lachsack 99, 561 Lagesensor 34, 419 Längengrad 448, 451 Language 497 Latitude 449, 451 latitude 457, 467 LatitudeFromAddress 451 Laufzeit 79, 109 LEGO© MINDSTORMS© 546 length 274 length of list 287 Life-Looging 447 LIFO 460 List 286 Liste 261, 286 Listenelemente 286 ListPicker 482, 488 Live-Entwicklung inkrementell 311 Live Development 311 Location-based Services 446 LocationChanged 451, 457 LocationSensor.Enabled 483 Logbuch 452 Log-Dateien 317 Logic 235, 268 Logik 182 boolesche Werte 182 lokale Variable 376 lokaler Speicher 345 Longitude 448, 451 longitude 457, 467 LongitudeFromAddress 451 LostFocus 332 M M2M 501 Machine-to-Machine M2M 475 Magnitude 420 mailto 530 Majuskel 273 make a list 286 make text 185, 273 MakePhoneCall 490 Malen 383 583 Stichwortverzeichnis Marschkompass 421 Master-App 365 max 267 Media 68 Media Center 246 Mediendatei maximale Dateigröße 232 Medientypen 205 Medienzugriff 206 Ausgangseigenschaft 206 interner Speicher 207 Internet 207 SD-Speicherkarte 207 Meldungsbereich 61 Message 502 MessageReceived 502 messageText 502 Messgenauigkeit 451 Methoden 165, 260 Methodenblöcke 165 Mikroblogging 540 min 267 MinimumInterval 121, 225, 228 Minuskel 273 MIT 546 Mitteilungsbereich 61 MMOG 543 MMORPG 543 Mobile Augmented Reality 34, 418 Mobile Computing 548 Modularisierung 477, 480 Moorhuhn 371 MoveTo 395 MP3 229 Multi-Caches 463 Multilanguage Support 111 Multimedia 205 Multiple Screens 201, 246, 249, 480 Musikinstrument 432 My Projects 61, 69 N name 281 Namensvergabe 108 Navi-Setup 512 NAVSTAR GPS 445 negate 267 New 101 nichtflüchtiger Speicher 345 584 nichtsichtbare Komponente 121 Norden 420 Notationsform Liste 287 Notifier Hinweisfenster 194 Notifier.AfterChoosing 341 Notifier.ShowChooseDialog 341 Null-Block 279 Nullmeridian 448 number 265, 502 Nutzungsbedingungen 228 NXT Lego 546 NxtColorSensor 547 NxtDirectCommands 547 NxtDrive 547 NxtLightSensor 547 NxtSoundSensor 547 NxtTouchSensor 547 NxtUltrasonicSensor 547 O OAuth 541 Objekt Komponentenobjekt 67 Objektblöcke 161 Online Multiplayer Games 543 Online-Ladestatus 359 Opazität 263 OpenGL ES 371 Operand 269, 320 Operator 269, 320 OR 269 OrientationChanged 421 OrientationSensor 419 OrientationSensor.Yaw 423 Orthodrome 470 ortsgebundene Dienste 446 Osten 420 Output 103 P p/ms Geschwindigkeit 391 Package 148 Package for Phone 72 PaintColor 373, 386 Palette 64, 105 Panel 143 Stichwortverzeichnis Papierkorb 81 Parameter 166 passive gps 468 PasswordTextBox 191 Pause 225, 231 persistente Daten 346 PhoneCall 490 PhoneNumber 486, 490, 502 PhoneNumberPicker 485 PI 279 Pico TTS 566 Picture 218, 486, 524 Pitch 419–420 Pixel 109 Plausibilitätstests 285 Play 225, 227 Player 227 PNG 140 Pong 385 position in list 288 Potenzieren 302 Primärfarben 263 procedure 281 procedureWithResult 284 Projects 61 Properties 68 Provider 450, 468 provider 468 ProviderLocked 450 ProviderName 450 Prozedur 262, 281 Pseudocode 125 Q QR-Code 54, 145 Query 508 QWERTZ-Tastatur 191 R Radius 386 random fraction 267 random integer 267, 338 RCX Lego 546 ReceivingEnabled 502 Redo 83 Referenz 117 Komponenten 64 Referenz-Dokumentation Reference Documentation 167 Referenztypen 167 Block-Referenz 170 Komponenten-Referenz 167 Konzept-Referenz 172 Remove Complaint 312 removeListItem 290 replace list item 290 RequestBallot 542 ResolveActivity 509 Result 499, 541 Resume 225, 228 return 284 RGB-Farbe 263, 284 RGB-Farbtabelle 264 Roboter Lego 546 Robotik 548 Roll 419–420 Roll-Nick-Gier-Winkel 419 Roll-Pitch-Yaw Angle 419 RPY 419 Rückgabewert 284 Rückkopplung 225 akustisch 225 haptisch 225 visuell 225 S Save 71 Save As 71 Saved 83 Schaltzentrale 479 Schema 508 Schiebefenster 80 Schieberegler 435 Schleife 291 Schleifen 262, 295 Schnelltasten 318 Schnittstelle 504 Schnittstellen-Komponente 504 Schrittgröße 391 Schrittintervall 391 Screen 201 Screen Arrangement 197 Verschachtelung 198 Screen1 67, 102 SDK 550, 558 585 Stichwortverzeichnis SD-Karte 152 segment 274 select list item 288, 338 semantische Fehler 314 SendBallot 542 SendMessage 502 set global 280 Setup Software 46, 92 Sexagesimalformat 449 Shaker 432 Shaking 431 Signatur 74 Sinneskanal 224 Skin 549 SMS 492 Short Message Service 492 Texting 501 Software Development Kit 550 Software Engineering 477, 480 Softwaretechnik 480 Sonderzeichen 110 Sound 120, 224 sound 240 SoundRecorder 237 Source 226, 231, 234 Speak 497 SpeechRecognizer 498 Speech-to-Text 498 Speed 388 split 276 split at first 276 split at spaces 276 Split-Element 276 Split-Methoden 275 Spracheingabe 498 Spracherkennung 498 Sprachsynthese 496, 563 Squash-Spiel 388 Start 231, 234, 237, 239 StartActivity 510 StartedRecording 237 starts at 274 status 468 StatusChanged 451 stereoskopisches 3D 371 Steuerzeichen 296 Stop 225, 231, 237 Stop Watching 316 Stopp 240 StoppedRecording 237 586 Strecke 470 Streckenprofil 452 String 271 Subscreen 247 Süden 420 Synergie 209 syntaktische Fehler 314 Syntax 76 Syntaxregeln 314 Systemkamera 217 SystemTime 401 Systemzeit 402, 411 T Tablets 34 Tag 347 TakePicture 217 Taschenrechner 319 Telefonieren 483 Telemetrie 475 Terminkalender 414 test 292 Testen 315 Testplattform 355 Text 271 text 272 text= 271 text> 272 TextBox 188 TextColor 109 Textfeld Label 176 Texting SMS 501 Textstring 260 TextToSpeech 496 Text-to-Speech 36, 496, 563 Textur 118 Texturierung 118 then-do 292 then-return 294 Timer 400–401, 483 TimerAlwaysFires 401 TimerEnabled 401 TimerInterval 400–401 TinyDB 347 TinyWebDB 357, 454 Title 69 Tonaufnahme 237 Stichwortverzeichnis Tonsignale 224 Top-down 245 top-down 476 Touch 379 Touched 374, 376 touchedSprite 376 Track Log 452 Traditional Caches 463 Transparenz 263 trim 273 true 235, 269 TTS 563 TTS Extended Service 497, 567 Twitter 540 Twitter API 541 Typeblocking 318 Typkonvertierung 260 U Ubiquitous Computing 548 Uhrzeit 411 Umlaute 110 UMTS 144 Unbekannte Quellen 54 Undo 83, 382 Uniform Resource Identifier 508 upcase 273 Upload 116, 359 Upload File 117 URI 508 URI-Schema 530 URL 508 URN 508 USA 497 USB-Debugging 52, 54 USB-Treiber 49 UserEmailAddress 542 UserId 542 UTC 402 V Variable 218, 262, 279, 299 Variablenwert 279 Verbindungsbutton 84 Vergleichsoperatoren 268 Verknüpfungsoperatoren 269 Verknüpfungssymbol 143 Verschachtelung 330 Verzweigung 262, 291–292 Vibrate 225, 227 Videobereich 235 Videoformate 558 Videoplayer 232 Viewer 66 Virtual Reality 418 Visible 109, 235, 252 Vokabeltrainer 333 vorprüfende Schleife 299 Voting 542 W Warnhinweis Complaint 312 Wasserwaage 425 Watch 316 Web 2.0 540 Web URL 207 Webcam 212–213 Web-Services 505 Wecker 412 Westen 420 while 298, 300 While-Schleife 299 Widget 143 Width 109 WLAN 34 X XAccel 431 Y YAccel 431 Yaw 419–420 YouTube 507 Z ZAccel 431 Zahlenblock 265 Zählschleife 291, 295 zentrieren 322 Zieldistanz 465 Zoom In 80 Zoom Out 80 Zoom-Schieber 80 Zufallsgenerator 267 Zufallszahl 266, 330 ZXing 541 587
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
advertisement