Obsah Předmluva Poděkování Úvodem Blokový jazyk pro mobilní telefony Co můžete v prostředí App Inventor dělat? Hrát si Tvořit prototypy Vytvářet aplikace na míru Vyvíjet plnohodnotné aplikace Učit se a učit ostatní
Proč se v prostředí App Inventor dobře pracuje Nemusíte si pamatovat a zadávat příkazy Volíte si z nabízených voleb Ne všechny bloky do sebe zapadají S událostmi pracujete přímo
Jaké můžete vytvářet aplikace? Hry Vzdělávací software Aplikace sledující, kde se nacházíte Aplikace využívající pokročilé technologie SMS aplikace Aplikace pro řízení robotů Složité aplikace Aplikace s přístupem k webu
Kdo může vytvářet aplikace? Styly používané v této knize Jak s touto knihou pracovat Zpětná vazba od čtenářů Zdrojové kódy ke knize Errata
15 17 19 19 20 20 20 20 21 21
21 21 21 21 22
22 22 22 22 23 23 23 23 23
23 24 25 26 26 26
KAPITOLA 1
Ahoj, kocoure Co se naučíte Prostředí App Inventor Design komponent
27 28 28 29
3
K2131_sazba.indd 3
17.4.2014 9:04:29
Obsah
Nápis Přidání tlačítka Přidání mňoukání
31 32 34
Definování chování komponent Mňoukající kocour Přidání předení Zatřesení telefonem
34 34 36 39
Sbalení aplikace ke stažení Sdílení aplikace Variace Shrnutí
39 40 41 41 ČÁST I 12 APLIKACÍ NA MÍRU
KAPITOLA 2
Kreslení Co se naučíte Začínáme Design komponent Tlačítka barev Uskupení komponent Přidání kreslicího plátna Uspořádání spodních tlačítek a přidání snímku
Definování chování komponent Přidání události pro vykreslení tečky při dotyku Přidání události pro vykreslování křivek Přidání obslužných rutin událostí tlačítkům Uživatel si může pořídit snímek Změna velikosti tečky
Hotová aplikace: Kreslení Variace Shrnutí
45 46 46 46 47 47 48 49
50 51 53 55 56 57
60 60 60
KAPITOLA 3
Krtek Co budeme vytvářet Co se naučíte Začínáme Design komponent
63 63 64 64 65
4
K2131_sazba.indd 4
17.4.2014 9:04:29
Obsah
Řízení chování komponent Pohyb krtka Tvorba procedury PresunKrtka Počítání skóre Vynulování skóre Akce při zásahu krtka
Hotová aplikace: Krtek Variace Shrnutí
68 68 68 71 73 74
74 74 75
KAPITOLA 4
Auto SMS Co se naučíte Začínáme Design komponent Řízení chování komponent Zadání vlastní odpovědi Uložení vlastní odpovědi do databáze Načtení vlastní odpovědi při spuštění aplikace Přečtení příchozí zprávy nahlas Rozšíření odpovědi o údaje o aktuálním místě Zaslání údajů o umístění v odpovědi
Hotová aplikace: Auto SMS Variace Shrnutí
77 78 79 79 80 82 83 84 86 88 89
90 90 91
KAPITOLA 5
Beruška Co budeme tvořit Co se naučíte Design komponent Začínáme Rozpohybování berušky Přidání komponent Definice chování
93 93 94 94 95 95 95 96
Zobrazení úrovně nasycení
98
Přidání komponenty Tvorba proměnné: Sytost Vykreslení linky sytosti Vyhladovění
98 98 99 100
5
K2131_sazba.indd 5
17.4.2014 9:04:29
Obsah
Přidání mšice Přidání komponenty ImageSprite Ovládání mšice Beruška si pochutná na mšici Detekce srážky berušky s mšicí Návrat mšice
Přidání tlačítka opětovného spuštění Přidání žáby Žába honí berušku Žába požírá berušku Návrat berušky
Přidání zvukových efektů Variace Shrnutí
101 101 102 102 103 104
105 106 106 107 107
108 109 109
KAPITOLA 6
Průvodce Paříží Co se naučíte Design komponent Nastavení vlastností komponenty ActivityStarter Nastavení chování komponent Sestavení seznamu lokací Uživatel si volí lokaci Otevření map s vyhledáváním
Nastavení virtuální prohlídky Vyhledávání adres konkrétních map Definování seznamu dataURIs Úprava chování události ListPicker.AfterPicking
Variace Shrnutí
111 111 111 112 113 113 114 115
116 116 117 117
119 119
KAPITOLA 7
Androide, kde mám auto? Co se naučíte Začínáme Design komponent Nastavení chování komponent Zobrazení aktuálního umístění Uložení aktuální pozice Zobrazení cesty do uloženého umístění
121 121 121 122 124 124 126 127
6
K2131_sazba.indd 6
17.4.2014 9:04:29
Obsah
Trvalé uchování uloženého místa Načtení uloženého místa při spuštění aplikace
129 130
Kompletní aplikace: Androide, kde mám auto? Variace Shrnutí
132 132 132
KAPITOLA 8
Prezidentský kvíz Co se naučíte Začínáme Design komponent Definice chování komponent Definování proměnné index Zobrazení první otázky Procházení otázek
Jednodušší přizpůsobování kvízu Jak bloky fungují
Přepínání obrázku při jednotlivých otázkách Jak bloky fungují
Kontrola odpovědí Jak bloky fungují Jak bloky fungují
Hotová aplikace Prezidentský kvíz Variace Shrnutí
135 135 136 136 138 139 139 140
143 145
145 146
147 148 149
150 150 152
KAPITOLA 9
Xylofon Co vytvoříme Co se naučíte Začínáme Design komponent Sestavení kláves Tvorba tlačítek prvních tónů Přidání komponenty Sound Napojení zvuků na tlačítka Android a načítání zvuků Zapracování zbývajících tónů
Zaznamenání a přehrání tónů Přidání komponent
153 153 154 154 154 155 155 155 156 158 158
159 160
7
K2131_sazba.indd 7
17.4.2014 9:04:29
Obsah
Záznam tónů Přehrání tónů Přehrání tónů se správným zpožděním
Variace Shrnutí
161 163 164
166 166
KAPITOLA 10
Tvorba a vyplňování kvízů Co se naučíte Začínáme Design Komponent Nastavení chování komponent Záznam uživatelských zadání Vymazání otázky a odpovědi Zobrazení otázek a odpovědí na více řádcích Uložení otázek a odpovědí do databáze Načtení dat z databáze
Hotová aplikace Vytvoř kvíz Vyzkoušej se: aplikace umožňující vyzkoušet si kvíz uložený v databázi Vyzkoušej se: úprava bloků načítajících kvíz z databáze Jak bloky fungují
Hotová aplikace Vyzkoušej se Variace Shrnutí
169 170 171 171 172 173 174 175 178 180
183 184 184 185
186 186 186
KAPITOLA 11
Centrála Co se naučíte Začínáme Design komponent Definice chování komponent Jak bloky fungují Přidání člena do skupiny Odesílání zpráv Vzhlednější zobrazení seznamu Protokolování odesílaných zpráv Uložení seznamu do databáze Načtení seznamu z databáze
Hotová aplikace Centrála Variace Shrnutí
189 190 190 190 191 193 193 195 196 198 200 200
202 202 203
8
K2131_sazba.indd 8
17.4.2014 9:04:29
Obsah
KAPITOLA 12
Dálkový ovladač robota Co se naučíte Začínáme Design komponent
205 205 206 206
Neviditelné komponenty Viditelné komponenty
207 207
Chování komponent
210
Spojení s robotem Zobrazení seznamu robotů Navázání spojení Řízení robota Detekce překážek ultrazvukovým senzorem
Variace Shrnutí
210 210 211 213 216
217 217
KAPITOLA 13
Amazon v knihkupectví Co se naučíte Co je API? Design komponent Nastavení chování
219 219 220 222 224
Vyhledávání podle hesla Vyhledávání podle kódu ISBN Nenechte uživatele čekat Načtení knihy Vylepšení zobrazení
Přizpůsobení rozhraní API Variace Shrnutí
224 225 226 227 228
228 230 230 ČÁST II MANUÁL INVENTORU
KAPITOLA 14
Architektura aplikace Komponenty Chování Aplikace jako recept Aplikace jako sada obslužných rutin událostí
233 234 234 235 235
9
K2131_sazba.indd 9
17.4.2014 9:04:29
Obsah
Typy událostí Obslužné rutiny událostí mohou klást otázky Obslužné rutiny událostí mohou opakovat bloky Obslužné rutiny událostí si pamatují Obslužné rutiny událostí umí komunikovat s webem
Shrnutí
237 239 240 240 241
241
KAPITOLA 15
Sestrojení a ladění aplikace Principy softwarového inženýrství Pište aplikace pro skutečné lidi s reálnými problémy Předvedení prototypu budoucím uživatelům Postupný vývoj Promyslete si aplikaci předem Komentujte kód Rozděl, rozlož a panuj Porozumění jazyku: kreslení na papír Ladění aplikace Sledování proměnných Testování jednotlivých bloků Inkrementální vývoj s nástrojem Do It Aktivace a deaktivace bloků
Shrnutí
243 243 244 244 244 245 245 246 247 250 250 252 253 253
254
KAPITOLA 16
Programování paměti aplikace
255
Pojmenované paměťové buňky Vlastnosti Definování proměnných Nastavení a načtení proměnné Vložení výrazu do proměnné
255 255 256 258 258
Zvýšení hodnoty proměnné Sestavování složitých vzorců Zobrazení proměnných
259 259 260
Shrnutí
261
KAPITOLA 17
Tvorba animovaných aplikací Vložení komponenty Canvas do aplikace Souřadnicový systém komponenty Canvas
263 263 264
10
K2131_sazba.indd 10
17.4.2014 9:04:29
Obsah
Animace objektů pomocí časových událostí Definujeme pohyb Rychlost
Vysokoúrovňové funkce animací Dosažení okraje obrazovky Události CollidingWith a NoLongerCollidingWith
Interaktivní animace Definování animace bez časovače Shrnutí
265 266 266
267 267 268
269 270 272
KAPITOLA 18
Aplikace se rozhoduje: podmínkové bloky Ověřování splnění podmínek pomocí bloků if a ifelse Naprogramování rozhodnutí buď/nebo Programování podmínek uvnitř podmínek Programování komplexních podmínek Shrnutí
273 274 275 276 277 280
KAPITOLA 19
Programování seznamů Vytvoření proměnné typu list Výběr položky na seznamu Index a procházení seznamu Příklad: Procházení seznamu barev
Vstupní formuláře a dynamické seznamy Definování dynamického seznamu Přidání položky Zobrazení seznamu Odstranění položky ze seznamu
Seznam tvořený seznamy Shrnutí
281 282 283 283 284
287 287 287 288 289
291 293
KAPITOLA 20
Opakovací bloky: iterace Řízení provádění aplikace – větvení a smyčky Opakování funkcí na seznamu pomocí bloku foreach Smyčky zblízka Píšeme udržovatelný kód
Druhý příklad s blokem foreach – zobrazení seznamu
295 295 296 298 298
299
11
K2131_sazba.indd 11
17.4.2014 9:04:29
Obsah
Opakování pomocí bloku while Synchronní zpracování dvou seznamů blokem while Počítání vzorců pomocí bloku while
Shrnutí
301 301 301
304
KAPITOLA 21
Definování procedur: opětovné využití bloků Vyhýbání se redundanci Definování procedury Volání procedury Čítač programu Přidání parametrů do procedury Procedura vracející hodnotu Bloky využívané ve více aplikacích Druhý příklad: vzdalenostMeziBody Shrnutí
305 307 309 309 310 310 314 315 316 318
KAPITOLA 22
Pracujeme s databázemi
319
Trvalé ukládání dat do databáze TinyDB Načtení dat z databáze TinyDB Uložení a sdílení dat v databázi TinyWebDB Ukládání dat do databáze TinyWebDB Vyžádání dat z databáze TinyWebDB a jejich zpracování GetValue a GotValue v akci
320 321 322 323 324 325
Složitější příklad událostí GetValue a GotValue Vyžádání dat s různými příznaky Zpracování více příznaků v události TinyWebDB.GotValue
326 328 329
Nastavení webové databáze Shrnutí
329 331
KAPITOLA 23
Senzory Tvorba aplikací zjišťujících polohu GPS Odečet pozice v App Inventoru Hlídání hranic Poskytovatelé údajů o pozici: GPS, WiFi a Cell ID
333 333 334 336 337 337
Senzor orientace
338
Parametr Roll
339
12
K2131_sazba.indd 12
17.4.2014 9:04:29
Obsah
Posun libovolným směrem pomocí vlastností Angle a Magnitude Telefon jako kompas
Akcelerometr Reakce na zatřesení telefonem Nasazení komponenty AccelerometerSensor Detekce volného pádu Detekce zrychlení pomocí nastavených hodnot
Shrnutí
340 340
342 342 342 343 343
345
KAPITOLA 24
Komunikace s webovými rozhraními API Komunikace s API generátory obrázků Nastavení grafu ve vlastnosti Image.Picture Dynamické sestavování URL adresy pro tvorbu grafu
Komunikace s datovými rozhraními API Webové rozhraní API Přístup k rozhraní API prostřednictvím komponenty TinyWebDB
Tvorba vlastního rozhraní API komunikujícího s App Inventorem Přizpůsobení kódu šablony Zapouzdření rozhraní Yahoo! Finance API
347 349 351 352
355 356 356
358 359 360
Shrnutí
361
Rejstřík
363
13
K2131_sazba.indd 13
17.4.2014 9:04:30