načítání...
menu
nákupní košík
Košík

je prázdný
a
b

E-kniha: iPhone -- vývoj aplikací - Jiří Vávrů

iPhone -- vývoj aplikací

Elektronická kniha: iPhone
Autor: Jiří Vávrů
Podnázev: vývoj aplikací

Kniha je pojatá tak, aby uživatel, který má základní znalosti v oblasti JavaScriptu a HTML5, byl schopen vytvořit funkční mobilní aplikaci. Kniha je vhodná pro začínající i pokročilé ... (celý popis)
Titul je skladem - ke stažení ihned
Médium: e-kniha
Vaše cena s DPH:  246
+
-
8,2
bo za nákup

ukázka z knihy ukázka

Titul je dostupný ve formě:
elektronická forma tištěná forma

hodnoceni - 69.2%hodnoceni - 69.2%hodnoceni - 69.2%hodnoceni - 69.2%hodnoceni - 69.2% 80%   celkové hodnocení
2 hodnocení + 0 recenzí

Specifikace
Nakladatelství: » Grada
Dostupné formáty
ke stažení:
EPUB, MOBI, PDF
Zabezpečení proti tisku a kopírování: ano
Médium: e-book
Rok vydání: 2012
Počet stran: 179
Rozměr: 24 cm
Úprava: ilustrace
Vydání: 1. vyd.
Skupina třídění: Programování. Software
Jazyk: česky
ADOBE DRM: bez
Nakladatelské údaje: Praha, Grada, 2012
ISBN: 978-80-247-4457-5
Ukázka: » zobrazit ukázku
Popis / resumé

Kniha je pojatá tak, aby uživatel, který má základní znalosti v oblasti JavaScriptu a HTML5, byl schopen vytvořit funkční mobilní aplikaci. Kniha je vhodná pro začínající i pokročilé vývojáře, kteří mají s JavaScriptem a HTML5 zkušenosti a chtějí se naučit využít své předchozí znalosti pro vývoj mobilních aplikací pro iPhone. Příručka je určená pro vývojáře, kteří chtějí začít vytvářet své vlastní mobilní aplikace pro iPhone a iPad.

Popis nakladatele

Tato kniha provede čtenáře krok za krokem vývojem nativních mobilních aplikací pro iPhone, nejúspěšnější mobilní platformu současnosti. Autor popisuje krok za krokem kompletní postup vývoje mobilní aplikace, od instalace vývojového prostředí, představení úspěšného frameworku Phonegap a Jquery Mobile, jeho vlastností a funkcí a názorně Vás provede krok po kroku vytvořením typické iPhone aplikace, testování na zařízení i emulátoru a její následný upload do Apple Appstore.Čtenář se tak naučí vše potřebné pro vývoj vlastních mobilních aplikací pro iPhone schopných využívat moderní technologie jako GPS, kompas, fotoaparát, souborový systém, vzdálená práce s daty a mnohé další za použití HTML5 a Javasrciptu. (vývoj aplikací)

Předmětná hesla
Zařazeno v kategoriích
Jiří Vávrů - další tituly autora:
iPhone -- vývoj aplikací iPhone
jQuery Mobile jQuery Mobile
 (e-book)
Programujeme pro Android -- 2., rozšířené vydání Programujeme pro Android
 
Recenze a komentáře k titulu
Zatím žádné recenze.


Ukázka / obsah
Přepis ukázky

Jiří Vávrů

 Naučte se vytvářet vlastní iPhone aplikace krok za krokem

 Dostaňte své aplikace do AppStore

 Vytvářejte vlastní uživatelské prostředí

 Pracujte s Google mapami

 Ideální i pro začátečníky

 Vše za pomoci HTML5, jQuery Mobile a PhoneGap

iPhone

vývoj aplikací

www.grada.cz

Tato kniha provede čtenáře krok za krokem vývojem nativních mobilních aplikací pro iPhone, nejúspěšnější mobilní platformu současnosti. Autor popisuje krok za krokem kompletní postup vývoje mobilní aplikace, od instalace vývojového prostředí, představení úspěšných frameworků PhoneGap a jQuery Mobile, jeho vlastností a funkcí a názorně vás provede krok po kroku vytvořením typické iPhone aplikace, testováním na zařízení i emulátoru a její následný upload do Apple AppStore. Čtenář se tak naučí vše potřebné pro vývoj vlastních mobilních aplikací pro iPhone schopných využívat moderní technologie jako GPS, kompas, fotoaparát, souborový systém, vzdálená práce s daty a mnohé další za použití HTML5 a Javasrciptu. O autorovi Jiří Vávrů je freelance programátor mobilních aplikací pro iPhone a Android založených na platformě HTML5, JavaScript a frameworku PhoneGap. Vývoji mobilních aplikací a mobilních webů se věnuje dva roky a vytvořil několik aplikací na výše uvedených platformách. Dále se věnuje vývoji mobilních aplikací za použití frameworku Sensa Touch a jeho oblíbené UI frameworky jsou Kendo UI a jQuery Mobile. Jeho další oblíbený programovací jazyk je PHP, především pak CakePHP framework, na kterém vytváří API rozhraní pro serverové části mobilních aplikací. V současné době pracuje na vlastním projektu mobilního vyhledávače restaurací a jejich nabídek s názvem Sněz.mě. Kniha obsahuje tato témata:  Návrh a vývoj mobilní aplikace pro platformu iOS  Použití frameworků jQuery Mobile a PhoneGap  Distribuce aplikace do Apple Appstore  Popis prostředí Xcode Kniha vám mimo jiné odpoví na tyto otázky:  Proč používat technologie pro vývoj multiplatformních aplikací pomocí

HTML5?

 Jaké možnosti přináší frameworky PhoneGap a jQuery Mobile?  Co znamená multiplatformní aplikace?  Jak navrhnout a programovat mobilní aplikaci pro iPhone?  Jak výslednou aplikaci dostat do Apple Appstore? Grada Publishing, a. s. U Průhonu 22, 170 00 Praha 7 tel.: +420 234 264 401 fax: +420 234 264 400 e-mail: obchod@grada.cz www.grada.cz

iPhone

vývoj aplikací

www.grada.cz

Ji

ř

í

Vávr

ů

iPhone

– vývoj aplikací



Jiří Vávrů

iPhone

vývoj aplikací


iPhone vývoj aplikací Jiří Vávrů Vydala Grada Publishing, a.s. U Průhonu 22, Praha 7 jako svou 4979. publikaci Odpovědná redaktorka Zuzana Malečková Sazba Tomáš Brejcha Počet stran 192 První vydání, Praha 2012 Vytiskly Tiskárny Havlíčkův Brod, a.s. © Grada Publishing, a.s., 2012 Cover Photo © allphoto.cz ISBN 978-80-247-4457-5 (tištěná verze) ISBN 978-80-247-8338-3 (elektronická verze ve formátu PDF) ISBN 978-80-247-8339-0 (elektronická verze ve formátu EPUB)

Upozornění pro čtenáře a uživatele této knihy

Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena

v papírové, elektronické či jiné podobě bez předchozího písemného souhlasu nakladatele. Neoprávněné

užití této knihy bude trestně stíháno.

Obsah 5

Obsah

1.

2.

4.

3.

Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 O autorovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Koncept knihy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Vývojové prostředí a výběr frameworku 1.1 PhoneGap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2 jQuery Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3 Výběr vývojového prostředí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4 Emulátory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5 Nastavení a konfigurace (stáhnutí PhoneGap pro Xcode, workspace) . . . . 16 1.6 Jednoduchá aplikace Hi World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.7 Spuštění v emulátoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Vývoj reálné aplikace krok za krokem 2.1 Vlastnosti a popis aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2 Use Case diagram aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2.1 Use Case přihlášení uživatele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.2 Use Case hlavní stránky aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.3 Use Case přidání nového příspěvku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2.4 Use Case výpis historie mých příspěvků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.5 Use Case Nastavení aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3 Založení nového projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4 Spuštění aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.5 Import důležitých knihoven pro běh aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.6 Úvodní strana – rozložení ovládacích prvků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.7 Inicializace aplikace a ověření funkčnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Přihlašování uživatele 3.1 Založení účtu pro aplikaci na Twitteru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2 Instalace pluginu ChildBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 Instalace pluginu jsOAuth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4 Přihlášení uživatele pomocí OAuth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.5 Odhlášení uživatele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.6 Doplňující funkce a stránky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Načítání Tweetů: JSON + AJAX a zpracování dat 4.1 Datový formát JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2 Zasílání requestu a zpracování odpovědi ze vzdáleného serveru . . . . . . . . . 51 4.3 Výpis načtených dat do ListView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6 iPhone – vývoj aplikací

Odesíláme Tweety na server

5.1 Přidání nové stránky s formulářem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.2 Získání a ošetření vstupu od uživatele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.3 Odeslání dat a získání odpovědi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Práce s GPS a Geolokací

6.1 Práce s GPS, získání GPS koordinátů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.2 Úprava odesílání Tweetů, přidání GPS souřadnic . . . . . . . . . . . . . . . . . . . . . . . . 66

Načítání vlastních Tweetů a práce s Google Maps

7.1 Načítání vlastních Tweetů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

7.2 Zobrazování na mapě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Testujeme aplikaci v iPhone emulátoru

8.1 Využití ladící konzole v Xcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

8.2 Využití ladících nástrojů v prohlížeči . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Testujeme aplikaci v reálném zařízení

9.1 Získání vývojářského certifikátu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

9.2 Nastavení telefonu pro vývoj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Hotovo a otestováno, aneb nahráváme aplikaci

do App Store

10.1 Certifikáty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

10.2 Vytvoření distribučního certifikátu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

10.3 Podepsání a nahrání certifikátu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

10.4 Přidání ID aplikace do iOS Developer program . . . . . . . . . . . . . . . . . . . . . . . . . 98

10.5 Vytvoření Provisioning certifikátu pro distribuci aplikace . . . . . . . . . . . . 100

10.6 Založení profilu aplikace v iTunes Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

10.7 Příprava aplikace a samotný upload aplikace ke schválení . . . . . . . . . . . 103

Rady na závěr

11.1 Odeberte PhoneGap pluginy, které vaše aplikace nevyužívá . . . . . . . . . 109

11.2 Inicializační funkce umisťujte do onDeviceReady . . . . . . . . . . . . . . . . . . . . 109

11.3 Zvolte správný UI framework pro svoji aplikaci . . . . . . . . . . . . . . . . . . . . . . 109

11.4 Používejte událost tap namísto onClick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

11.5 Minifikujte zdrojový kód pomocí komprimačních nástrojů . . . . . . . . . . . 110

5.

6.

7.

8.

9.

10.

11.

Obsah 7

Referenční manuál – PhoneGap 12.1 Accelerometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

12.1.1 accelerometer.getCurrentAcceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

12.1.2 accelerometer.watchAcceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

12.1.3 accelerometer.clearWatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 12.2 Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

12.2.1 Camera.getPicture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

12.2.2 CameraOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

12.2.3 CameraPopoverOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 12.3 Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

12.3.1 capture.captureAudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

12.3.2 capture.captureAudioOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

12.3.3 capture.captureImage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

12.3.4 capture.CaptureImageOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

12.3.5 capture.captureVideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

12.3.6 capture.captureVideoOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

12.3.7 captureError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

12.3.8 captureCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

12.3.9 captureErrorCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

12.3.10 configurationData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 12.4 Compass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

12.4.1 compass.getCurrentHeading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

12.4.2 compass.watchHeading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

12.4.3 compass.clearWatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

12.4.4 compassSuccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

12.4.5 compassOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

12.4.6 compassHeading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

12.4.7 compassError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 12.5 Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

12.5.1 connection.type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 12.6 Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

12.6.1 Contacts.create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

12.6.2 Contacts.find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

12.6.3 Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

12.6.4 ContactAddress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

12.6.5 ContactField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

12.6.6 ContactFindOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

12.6.7 ContactName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

12.6.8 ContactOrganization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

12.6.9 ContactSuccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

12.6.10 ContactError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

12.6.11 ContactFields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

12.6.12 contactFindOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

12.


8 iPhone – vývoj aplikací

12.7 Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

12.7.1 device.name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

12.7.2 device.cordova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

12.7.3 device.platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

12.7.4 device.uuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

12.7.5 device.version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 12.8 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

12.8.1 deviceready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

12.8.2 pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

12.8.3 resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

12.8.4 online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

12.8.5 offline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

12.8.6 batterycritical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

12.8.7 batterystatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.9 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

12.9.1 File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

12.9.2 FileReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

12.9.3 FileWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

12.9.4 FileSystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

12.9.5 FileEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

12.9.6 moveTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

12.9.7 copyTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

12.9.8 toURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

12.9.9 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

12.9.10 getParent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

12.9.11 createWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

12.9.12 file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

12.9.13 DirectoryEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

12.9.14 DirectoryReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

12.9.15 FileTransfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

12.9.16 FileUploadOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

12.9.17 FileUploadResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

12.9.18 Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

12.9.19 LocalFileSystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

12.9.20 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

12.9.21 FileError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

12.9.22 FileTransferError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 12.10 Geolocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

12.10.1 geolocation.getCurrentPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

12.10.2 geolocation.watchPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

12.10.3 geolocation.clearWatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

12.10.4 Coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

12.10.5 PositionError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

12.10.6 geolocationOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Obsah 9

12.11 Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

12.11.1 media.getCurrentPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

12.11.2 media.getDuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

12.11.3 media.pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

12.11.4 media.play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

12.11.5 media.seekTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

12.11.6 media.startRecord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

12.11.7 media.stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

12.11.8 MediaError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

12.11.9 mediaError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 12.12 Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

12.12.1 notification.alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

12.12.2 notification.confirm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

12.12.3 notification.beep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

12.12.4 notification.vibrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 12.13 Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.13.1 openDatabase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.13.2 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.13.3 SQLResultSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

12.13.4 SQLResultSetList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

12.13.5 SQLError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

12.13.6 localStorage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Důležité pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Důležité odkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Rejstřík . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

Koncept knihy 11

Úvod

HTML5 se prosazuje i na mobilních platformách, jako jsou iPhone, Android, BlackBerry nebo Bada.

Díky všeobecně výborné podpoře tohoto formátu je možné vytvářet univerzální aplikace pro mo

bilní zařízení. Prostředí PhoneGap a jQuery Mobile vám dovolí psát aplikace, které budou přenosné

na různé mobilní platformy, budou skvěle vypadat a navíc budou schopné využívat specifické vlast

nosti konkrétních zařízení. Pomocí PhoneGap je možné aplikaci v HTML5 zabalit tak, že bude plně

použitelná jako nativní aplikace a bude možné ji distribuovat do marketů. Jednoduše řečeno může

te vyvíjet pro všechny dnes dostupné mobilní platformy v rámci obrovsky úspěšného frameworku

PhoneGap, to vše v JavaScriptu a HTML5.

O autorovi

Jiří Vávrů je freelance programátor mobilních aplikací pro iPhone a Android založených na platformě

HTML5, JavaScript a frameworku PhoneGap. Vývoji mobilních aplikací a mobilních webů se věnuje

dva roky a vytvořil několik aplikací na výše uvedených platformách. Dále se věnuje vývoji mobilních

aplikací za použití frameworku Sensa Touch a jeho oblíbený UI framework je Kendo UI a jQuery Mo

bile. Jeho další oblíbený programovací jazyk je PHP, především pak CakePHP framework, na kterém

vytváří API rozhraní pro serverové části mobilních aplikací. V  současné době pracuje na vlastním

projektu mobilního vyhledávače restaurací a jejich nabídek s názvem Sněz.mě.

Koncept knihy

Kniha je pojata jako návod pro ty vývojáře, kteří by rádi začali vytvářet své vlastní mobilní aplikace

pro jednu z nejrozšířenějších mobilních platforem současnosti, iOS a její zařízení iPhone a iPad. Kni

ha je koncipována tak, aby uživatel, který má základní znalosti v  oblasti JavaScriptu a  HTML5, byl

schopen vytvořit krok za krokem funkční mobilní aplikaci a nahrát ji do App Store, ať už k prodeji, či ji

nabídnout zdarma. To vše bez znalostí nativního programování pro platformu iOS. Kniha je vhodná

i pro pokročilé vývojáře, kteří již mají s JavaScriptem a HTML5 zkušenosti a chtěli by se naučit použít

své předchozí znalosti pro vývoj mobilních aplikací pro iPhone a další platformy a také se dozvědět

spoustu užitečných informací o  uživatelském rozhraní, optimalizaci aplikace pro běh na reálném

zařízení, či rozšiřujících pluginech a  ušetřit tak obrovské množství času, jelikož vše potřebné tato

publikace obsahuje.

Kniha Vás provede krok za krokem třinácti kapitolami, od základního popisu jednotlivých nástrojů

pro vývoj, přes návrh UseCase aplikace, samotný vývoj až po návod pro nasazení aplikace do App

Store. Na konci knihy tak budete schopni vytvářet kvalitní mobilní aplikace pro několik platforem

současně, to vše za použití JavaScriptu.

Vývojové prostředí a výběr frameworku 13

1.

Vývojové prostředí

a výběr frameworku

Pro vývoj nativní mobilní aplikace bude v našem případě použito

dvou frameworků.

První má název PhoneGap (ve verzi 1.7) a díky jeho vlastnostem

je možno přistupovat ke standardním funkcím telefonu jako jsou

například GPS, fotoaparát, souborový systém, akcelerometr a mnohé

další.

Dalším frameworkem, který bude použit, je jQuery Mobile (ve verzi

1.1.0). Tento framework nám bude sloužit především k vytváření

jednotného a přívětivého uživatelského rozhraní.

Jako vývojové prostředí pro naši aplikaci bude použito Xcode studio

(je ale možno použít jakýkoliv jiný editor), pro testování aplikace

v iPhone simulátoru a na reálném zařízení budeme potřebovat Xcode

studio, v našem případě bude použito Xcode studio ve verzi 4.

Xcode studio a tedy i testování aplikace v iPhone emulátoru a na reálném zařízení

je možné pouze na zařízeních Macintosh. Pokud Mac nemáte, nemusíte si ho kvůli

vytvoření funkční aplikace pořizovat. Musíte ale počítat s tím, že aplikaci nebude

možno otestovat v iPhone emulátoru a ani v reálném iPhone zařízení. Většinu funkcí

budete moci reálně vyzkoušet pomocí emulátoru s názvem Ripple, a to vše v rámci

webového prohlížeče. O Ripple se ještě zmíním později dále v knize.

1.1 PhoneGap PhoneGap je aplikační platforma založená na HTML5, která umožňuje autorům aplikací přistupovat k nativním funkcionalitám iPhone a tyto aplikace umístit do aplikačních obchodů, v našem případě App Store. PhoneGap umožňuje vývoj aplikací i pro další platformy, jako Android, BlackBerry, Symbian, Windows Phone 7 a Bada, a to vše s minimálními změnami v kódu. Zjednodušeně je tedy možno říci, že vývojáři stačí aplikaci napsat pouze jednou a poté jen provést nezbytné změny pro nasazení na další platformu. Jistě v tomto sami vidíte obrovskou výhodu, a to především v  jednotnosti vývojového procesu a  ohromné časové úspoře. To vše při použití HTML a JavaScriptu. PhoneGap je open source implementací otevřených standardů, což znamená, že vývojáři a  firmy mohou používat PhoneGap pro mobilní aplikace, které jsou zdarma, placené, open source nebo jakákoliv jiná kombinace výše zmíněných.

14 iPhone – vývoj aplikací

PhoneGap jako multiplatformní nástroj pro vývoj mobilních aplikací umožňuje přistupovat k funk

cím telefonu, tato podpora se platformu od platformy liší. Pro lepší ilustraci je seznam podporova

ných funkcí pro iPhone i další platformy uveden níže v přehledné tabulce.

Obrázek č. 1: Seznam podporovaných vlastností PhoneGap frameworku

Více informací naleznete na webové adrese http://PhoneGap.com/.

1.2 jQuery Mobile

Unifikovaný framework pro tvorbu uživatelského mobilního rozhraní využívajícího HTML5 a  CSS3

vlastností, určený pro všechny současné populární mobilní platformy. Framework staví na jQuery

a jQuery UI frameworku. jQuery Mobile přináší také výhodu v lehce přizpůsobitelném a skinovatel

ném designu pomocí on-line nástroje ThemeRoller (http://jquerymobile.com/themeroller/index.php).

Více informací naleznete na webové adrese http://jquerymobile.com/.

1.3 Výběr vývojového prostředí

Samotný aplikační balíček určený pro spuštění aplikace na reálném iPhone zařízení je možno zkom

pilovat a vytvořit pouze za pomoci počítače Mac a vývojového studia Xcode. Pokud ale výše uvede

né nástroje nevlastníte, nemusíte věšet hlavu. Jelikož aplikační logika aplikace bude psaná za pomo

ci JavaScriptu, je možno velké množství funkcionalit vyzkoušet i rámci emulátoru s názvem Ripple.

Xcode 4 je vývojové prostředí od firmy Apple, je určeno pro vývoj aplikací pro iPhone/iPad a cel

kově celou Mac platformu. Běží na Mac OS X Snow Leopard a zahrnuje Xcode IDE, Instruments, iOS

Simulator a poslední SDK pro Mac OS X a iOS.

Abyste mohli vyvíjet pro iOS (iPhone/iPad/iPod), je nutné zaregistrovat se u Apple jako vývojář. To je

zdarma. Registrací získáte přístup ke všemu, co potřebujete k vývoji jak na iOS, tak i na OSX (v poz

dějších kapitolách bude vše podrobně popsáno). Po registraci máte přístup k SDK i k vývojovému

prostředí Xcode. Vše se stahuje z  Apple zdarma. Toto vše je podmíněno nákupem počítače Mac,

jinde totiž Xcode nerozeběhnete a nelze jej tedy jinde vyvíjet (existují samozřejmě různé postupy,

jak rozběhnout Xcode na Mac OS i pod Windows, ale to je mimo rámec této knihy).

S ohledem na maximální možnou použitelnost této publikace budeme zde uváděné příklady tes

tovat v  rámci zmiňovaného Ripple emulátoru. Použití Xcode a  vytvoření aplikačního balíčku pro

Vývojové prostředí a výběr frameworku 15

testování na reálném zařízení vytvoříme až v  pozdějším kroku, jakmile dokončíme a  otestujeme

aplikaci v  rámci Ripple emulátoru. Tím taktéž celý proces velmi zrychlíme, jelikož změny v  rámci

Ripple emulátoru dokážeme rychleji zapracovat, než kdybychom znovu a  znovu kompilovali kód

v rámci Xcode. Nyní si ale pojďme představit blíže některá vývojová prostředí.

S ohledem na výše uvedené jsme tedy v současné chvíli zcela nezávislí na výběru našeho editoru.

Zde uvedené příklady jsou psány v  open source vývojovém prostředí s  názvem Eclipse, které je

možno stáhnout na adrese http://www.eclipse.org/downloads/. Jedná se o open source vývojovou

platformu, která je pro většinu lidí známa jako vývojové prostředí (IDE) určené pro programování

v  jazyce Java. Flexibilní návrh této platformy dovoluje rozšířit seznam podporovaných programo

vacích jazyků za pomoci pluginů. Právě pluginy umožňují toto vývojové prostředí rozšířit například

o návrh UML, či zápis HTML nebo XML a získat tak velice robustní nástroj pro vývoj mobilních aplika

cí. Dalším aspektem pro výběr tohoto vývojového prostředí je i ta skutečnost, že za použití pluginu

sloužícího vývoji pro platformu Android získáme plnohodnotné vývojové prostředí, včetně emulá

toru Android zařízení pro vývoj nativních aplikací i pro tuto platformu. Více informací naleznete na

adrese http://developer.android.com/sdk/index.html.

Dalším nástrojem, který je možno doporučit, především díky jeho integraci jQuery Mobile, je nástroj

od firmy Adobe s názvem DreamWeaver. Jeho předností je již zmiňovaná integrace jQuery Mobile

společně s  dobře fungujícím IntelliSense doplňováním kódu a  v  neposlední řadě také souběžné

zobrazení editovaného kódu a zároveň okamžité zobrazení provedených změn v designu aplikace

a export aplikačního balíčku pro iPhone i Android přímo z DreamWeaveru. Nutno podotknout, že

tento nástroj je placený, 30denní testovací verze je ale ke stáhnutí zdarma. Více informací naleznete

na adrese http://www.adobe.com/cz/products/dreamweaver.html.

1.4 Emulátory

Xcode, iPhone a iPad emulátor

V rámci Xcode studio je možno testovat aplikace na iPhone a iPad, Xcode ve verzi 4 nabízí možnost

otestovat aplikace na iPhone a iPad ve verzi 4 a nižší. Pro každé emulované zařízení je možno mít

samostatné nastavení.

Obrázek č. 2: iPhone emulátor v rámci Xcode prostředí

+ iPhone – vývoj aplikací Ripple emulátor Ripple je multiplatformní mobilní emulátor, který je vyroben na míru pro vývoj a testování mobilních aplikací za pomoci HTML5. Ripple si klade za cíl eliminovat úskalí, jimž čelí mobilní vývojáři díky roztříštěnosti dnešní platformy na trhu s mobilními zařízeními. Ripple je zaměřen mimo jiné také na práci s PhoneGap frameworkem, který, jak již bylo uvedeno, nám umožňuje pracovat s  nativními funkcemi dnešních chytrých telefonů, a  to vše v  rámci JavaScriptu a HTML5! Ripple emulátor nám také umožňuje využití stávajících nástrojů k  provádění ladění JavaScriptu, HTML DOM inspekce, automatizovaného testování, stejně tak jako testování na více zařízeních a rozlišení displeje v reálném čase a bez nutnosti znovu restartovat emulátor. Díky Ripple máte možnost simulovat funkce jako GPS, kompas, akcelerometr, datové připojení, polohu displeje a  další. Emulátor jako takový je nabízen zdarma a  jeho používání je velice intuitivní a jednoduché. Emulátor je dostupný ve dvou provedeních, v  první jako plugin do Google Chrome prohlížeče, který jednoduše nainstalujete z  tohoto odkazu: https://chrome.google.com/webstore/detail/geelfh- phabnejjhdalkjhgipohgpdnoc. V dalším provedení jako samostatná aplikace, která je ke stáhnutí na tomto odkazu: https://bdsc.webapps.blackberry.com/HTML5/download/.

Obrázek č. 3: Ripple emulátor v rámci prohlížeče Google Chrome

1.5 Nastavení a konfigurace (stáhnutí PhoneGap pro Xcode, workspace) Abychom naši první aplikaci mohli otestovat, potřebujeme si připravit nový projekt a nastavit si vše potřebné. Připravíme si tedy podklady pro náš první projekt (dále jen workspace). Pojďme se podívat, co k tomu budeme potřebovat.

Pokud nepoužíváte Mac OS a nemůžete tedy stáhnout a používat Xcode, přeskočte

tuto kapitolu a pro svůj projekt si založte adresář pojmenovaný HiWorld, do kterého

budete přidávat postupně všechny části našeho prvního projektu. 1. Stáhnutí a  instalace Xcode – Xcode je možno stáhnout do Macintoshe přímo z  iTunes, a  to

pomocí odkazu http://iTunes.apple.com/us/app/xcode/id497799835?mt=12. Poté Xcode nainstalu

jeme klasickým způsobem.


Vývojové prostředí a výběr frameworku 17

2. Stáhnutí a  instalace PhoneGap – PhoneGap plugin nalezneme ke stáhnutí na adrese http://

PhoneGap.com/download. V závislosti na použitém operačním systému je nabídnut ke stáhnutí

instalátor. Tento instalátor nainstalujete klasickým způsobem. 3. Založení nového projektu v  Xcode studio  – po spuštění Xcode zvolte z  menu New a  poté

New Project. Uvidíte následující nabídku, viz obrázek č.  4. Poté klikněte na tlačítko Next pro

pokračování.

Obrázek č. 4: Nabídka s výběrem aplikace založené na PhoneGap frameworku

4. Na další obrazovce vyplňte položky Product Name a  Company Identifier, přičemž pole Pro

duct Name označuje název naší aplikace, například tedy „HiWorld“, a jako Company Identifier

zadejte řetězec „com.PhoneGap“, viz obrázek č. 5.

Obrázek č. 5: Zadání názvu aplikace

5. Po kliknutí na tlačítko Next zvolte adresář, do kterého nový projekt uložíte. 6. V tuto chvíli byste měli již vidět strukturu projektu uvnitř Xcode studia. Stiskněte tlačítko s nápi

sem Run nahoře v levém rohu. Po stisknutí tohoto tlačítka se spustí sestavení projektu. 7. Po spuštění projektu v  emulátoru bychom v  tuto chvíli měli vidět chybové hlášení, které nás

bude informovat o tom, že soubor s názvem index.html nebyl nalezen. Toto hlášení je v tuto chvíli

v pořádku a hned se dozvíte, jak situaci ošetřit. iPhone – vývoj aplikací

8. Chybového hlášení se zbavíme tak, že zkopírujeme adresář s názvem www do projektu. Kliknu

tím pravého tlačítka v levém navigačním okně zobrazíme kontextovou nabídku. Zde klikneme

na tlačítko s názvem Show in Finder, to nám otevře aktuální adresář projektu ve Finderu.

9. Zde uvidíme již vytvořený www adresář, který musíme přidat do našeho projektu.

10. Následující krok je důležitý! Myší chytněte www adresář a  přetáhněte jej do Xcode 4. Nesta

čí pouze přetáhnout www adresář do adresáře aplikace. Adresář musí být přetažen přímo do

Xcode 4, viz obrázek níže.

Obrázek č. 6: Adresář www musí být zkopírován zde

11. Po přetažení by se měla zobrazit obrazovka s několika doplňujícími nastaveními. Důležité: ujis

těte se, že jste zvolili správně volbu Create folder references for any added folders, a klikněte

na tlačítko Dokončit. Tímto krokem jsme úspěšně založili nový PhoneGap projekt pro iPhone v rámci Xcode studia. Ověření, že vše proběhlo v  pořádku a  náš projekt obsahuje soubory, které potřebujeme, provedeme tak, že na našem projektu nalezneme adresář s  názvem www, který by měl obsahovat soubor s  názvem index.html. Pokud jste soubor nalezli, je vše připraveno k  vytvoření naší první aplikace a otestování v simulátoru. O tom bude pojednávat následující podkapitola. 1.6 Jednoduchá aplikace Hi World V této podkapitole bude popsána velmi jednoduchá aplikace a její otestování v iPhone emulátoru. Hello World, či v  našem případě Hi World, je aplikace, která vypíše na výstupní zařízení (v  našem případě displej telefonu) text „Hi, world!“. Aplikace „Hi World“ se používá jako ukázka při výuce programování v určitém programovacím jazyce a mnoho studentů ji píše jako svůj první malý program. V prvním kroku nalezneme v rámci našeho projektu adresář s názvem www a v něm soubor s názvem index.html. Tento soubor otevřeme buďto přímo v  editoru Xcode, popřípadě v  jakémkoliv jiném textovém editoru. Jedná se o klasickou HTML stránku, která obsahuje klasické HTML tagy a několik meta tagů. Kód je okomentovaný, aby byl dobře pochopitelný i pro začátečníky.

Vývojové prostředí a výběr frameworku 19

<!DOCTYPE HTML> <HTML> <head> <title>Titulek stránky <meta name="viewport" content="width=device-width, initial- scale=1"> </head> <body> <h1> Hi, World! </body> </HTML> <!DOCTYPE HTML>: doctype definice HTML dokumentu, jedná se o nepárový tag <HTML>: Uvozovací značka HTML dokumentu <head>: Hlavička HTML dokumentu, bude obsahovat všechny v bu

doucnu obsažené skripty (PhoneGap, jQuery Mobile a další) <title>: Titulek stránky, při použití kódu pro nativní mobilní aplikace se

jedná o téměř nepodstatný tag, situace by se změnila, pokud

by se jednalo o mobilní web, v tom případě by tento tag měl

relativně velký význam <meta name="viewport": Toto nastavení říká prohlížeči, jak má rozmístit obsah na displej,

a informuje prohlížeč o tom, že stránka je optimalizovaná pro

mobily. Náš příklad říká prohlížeči, aby nastavil viewport na

šířku zařízení a zachoval měřítko <body>: Uvnitř tohoto tagu se bude vyskytovat všechen viditelný obsah

stránky naší mobilní aplikace. Ať už to tedy bude hlavička strán

ky, tlačítka, seznamy, vše bude obsaženo uvnitř tohoto tagu.

V tuto chvíli obsahuje pouze nápis „Hi, World!“ obalený v tagu

nadpisu <h1>. Tento nadpis tak bude jediná viditelná část

z naší aplikace, jakmile aplikaci spustíme v emulátoru Náš nový kód uložíme a přejdeme ke spuštění v emulátoru.

Zájemcům o hlubší problematiku mobilního webu v HTML5 doporučuji k pročtení

článek Mobilizujeme web v HTML5 na webu Zdroják.cz, více na http://www.zdrojak.cz/

clanky/mobilizujeme-web-v-HTML5/.

1.7 Spuštění v emulátoru Xcode 1. Ujistěte se, že aktivní SDK v levém horním menu je nastaveno na Simulator+version. 2. Stiskněte tlačítko s nápisem Run nahoře v levém rohu. 3. Po stisknutí tohoto tlačítka se spustí sestavení projektu a během několika okamžiků byste měli

vidět svou první aplikaci v iPhone emulátoru, viz obrázek č. 7.




       
Knihkupectví Knihy.ABZ.cz - online prodej | ABZ Knihy, a.s.
ABZ knihy, a.s.
 
 
 

Knihy.ABZ.cz - knihkupectví online -  © 2004-2019 - ABZ ABZ knihy, a.s. TOPlist