}w!"#$%&'()+,-./012345<ya

Rozměr: px
Začít zobrazení ze stránky:

Download "}w!"#$%&'()+,-./012345<ya"

Transkript

1 }w!"#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Aplikace pro vyhledání a nákup letenek BAKALÁŘSKÁ PRÁCE Radek Zábranský Brno, jaro 2013

2 Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Radek Zábranský Vedoucí práce: doc. RNDr. Vlastislav Dohnal, Ph.D. ii

3 Poděkování V první řadě bych rád poděkoval doc. RNDr. Vlastislavu Dohnalovi, Ph.D. za vedení práce. Dále pak Oliveru Dlouhému za příležitost tvorby této aplikace pro jeho společnost Skypicker a Jozefu Képesimu za podporu při implementaci komunikace mé aplikace se serverem Skypickeru. V neposlední řadě bych rád poděkoval i Bc. Ivetě Rebrové za testování aplikace na starší verzi systému Android, Bc. Filipu Hyžovi za pomoc se sázením textu v L A TEX a Sofii Karpowiczové za finální korekturu. iii

4 Klíčová slova mobilní aplikace, Android, Skypicker, letenky, Java, Google Maps iv

5 Shrnutí Cílem práce bylo vytvoření mobilní aplikace na platformu Android pro společnost Skypicker. Aplikace je zjednodušením existující webové aplikace a slouží k vyhledání a nákupu letenek zejména nízkonákladových aerolinek. Po spuštění aplikace se zobrazí mapa, na které uživatel označí oblast, kam chce letět. Dále může uživatel nastavit různé parametry vyhledávání, zejména místo a interval odletu. Po vyhledání letů se zobrazí jejich seznam, ze kterého si uživatel může některý let vybrat, a po přechodu na stránku zobrazenou ve webovém prohlížeči jej zakoupit. Textová část popisuje nástroje použité pro vývoj aplikací na Android a strukturu Android aplikací. Druhá polovina práce se věnuje způsobu použití Google Maps v Android aplikacích, architektuře aplikace Skypicker, některým detailům implementace a principu komunikace se serverovou částí systému. v

6 Obsah Úvod Vývoj aplikací pro Android Vývojové prostředí a ADT Android SDK Emulátor DDMS LogCat Struktura Android aplikace AndroidManifest.xml Zdrojové kódy jazyka Java (soubory.java) Activity Service, Content Provider a Broadcast Receiver Fragment Uživatelské rozhraní Složky drawable a values Použití Google Maps v aplikacích API klíč Google Play Services Úpravy AndroidManifest.xml MapFragment Aplikace Skypicker Funkční požadavky a uživatelské rozhraní Architektura aplikace Helper LoaderActivity MainActivity Flight FlightsFragment a FlightsAdapter Detaily implementace Kruh na mapě a změna jeho velikosti Kód pro API 11 a vyšší Změna intervalu vyhledávání Změna délky pobytu Komunikace aplikace se serverem Literatura

7 Úvod Webová stránka 1 brněnské firmy Skypicker vznikla teprve v roce 2012 [2], ale už nyní ji navštěvuje několik tisíc uživatelů denně, a to nejen z České republiky, ale z celé Evropy a dokonce i ze zámoří. Služba, kterou na webu nalézáme, slouží k rychlému a pohodlnému vyhledávání leteckých spojení odkudkoliv kamkoliv. Mezi hlavní přednosti Skypickeru a výhody oproti konkurenci patří zejména rozsáhlá databáze letů. Web je však i přes její velikost schopen rychle nalézat lety vyhovující rozmanitým kritériím vyhledávání. Další výhodou je také nízká cena nalezených spojení, která pramení zejména z toho, že se Skypicker nebojí nabídnout svým uživatelům např. let z Prahy do Finska přes italský Milán, protože celková cena je o několik desítek euro nižší než u přímého letu. Velmi zajímavá je možnost vyhledat nejlevnější lety kamkoliv, což ocení zejména lidé, kteří chtějí levně navštívit nějakou cizí zemi, ale nezáleží jim na tom kterou. V neposlední řadě uživatelé oceňují příjemné, přehledné a jednoduše použitelné uživatelské rozhraní s mapou, které je navrženo tak, aby uživatel nemusel při vyhledávání vůbec použít klávesnici. Všechna kritéria vyhledávání, včetně země odletu a cílové destinace, lze nastavit jednoduše pouze s použitím myši. Web je nicméně navržen pro použití na PC a ve většině mobilních webových prohlížečů se nezobrazuje správně, což jej na mobilních zařízeních činí nepoužitelným. Aby mohli uživatelé Skypickeru vyhledat a zakoupit nějaký let i s použitím svého mobilního telefonu, bylo tedy nutné navrhnout a vyvinout mobilní verzi aplikace Skypicker. Bylo rozhodnuto o vývoji mobilních aplikací pro dva na trhu nejzastoupenější mobilní operační systémy - Android a ios. 2 Bude také vyvinuta mobilní verze webu pro použití na ostatních mobilních zařízení. Vývoj aplikace Skypicker pro operační systém Android a popis jejího návrhu a implementace je právě hlavním předmětem této bakalářské práce. V prvních dvou kapitolách popisuji princip vývoje Android aplikací a nástroje při vývoji používané. Ve třetí kapitole Operační systém firmy Apple používaný zejména na zařízeních iphone a ipad. 2

8 popisuji způsob použití Google Maps 3 v Androidu, které jsou, stejně jako na webu Skypickeru, použité i v jeho mobilních aplikacích. V páté nejrozsáhlejší kapitole popisuji grafické zobrazení a způsob použití Skypicker Android aplikace uživatelem, její strukturu a některé detaily implementace. Část kapitoly je také věnována způsobu, jakým aplikace komunikuje se serverem Skypickeru. 3. Internetová mapová technologie firmy Google zobrazitelná na webu a použitelná jako součást aplikací různých platforem. 3

9 1 Vývoj aplikací pro Android Vývoj aplikací pro operační systém Android probíhá zejména v programovacím jazyce Java. Kromě Javy je nutné, aby vývojář alespoň na základní úrovni rozuměl jazyku XML. Každý, kdo splňuje tyto dva požadavky, může začít vyvíjet aplikace pro Android. V této kapitole se zabývám nástroji, které jsou k vývoji potřebné a nebo jej usnadňují. 1.1 Vývojové prostředí a ADT Snad každý, kdo někdy programoval aplikace v Javě, používal k práci nějaké vývojové prostředí (IDE 1 ), např. BlueJ, NetBeans, IntelliJ IDEA nebo Eclipse. Přestože všechna tato vývojová prostředí lze použít pro vývoj aplikací pro Android, ne všechna jsou pro to vhodná. Je to zejména z důvodu, že některá poskytují možnosti pro usnadnění vývoje. Pro vývoj aplikace Skypicker jsem zvolil vývojové prostředí Eclipse. Google toto IDE přímo podporuje, doporučuje a nabízí pro něj zásuvný modul ADT 2 (ADT Plugin), který v něm usnadňuje tvorbu Android aplikací. [4] ADT umožňuje snadno vytvořit nový Android projekt, vytvořit uživatelské rozhraní aplikace apod. ADT dále do Eclipse integruje i nástroje Android SDK, o kterých píši dále. 1.2 Android SDK Android SDK 3 je ucelená sada vývojových nástrojů určených pro tvorbu a testování Android aplikací. Sada obsahuje zejména Android knihovny včetně dokumentace, emulátor Android zařízení a debugger DDMS a je dostupná pro všechny hlavní desktopové operační systémy Integrated Development Environment. 2. Android Development Tools. 3. Software Development Kit. 4. Windows, Linux i Mac OS X. [6] 4

10 1. VÝVOJ APLIKACÍ PRO ANDROID Emulátor Pokud vývojář nemá k dispozici zařízení, na kterém běží Android, nebo chce svoji aplikaci testovat na zařízeních s jinými parametry, než jaké má jeho fyzické zařízení, je možné ke spuštění a testování aplikací využít právě emulátor. Tento velmi silný nástroj, který vývojáři značným způsobem usnadňuje testování jeho aplikace, je program, který na počítači vývojáře spustí virtuální zařízení s Androidem. Je s ním poté možno pracovat jako se skutečným fyzickým zařízením a pomocí myši simulovat dotyky obrazovky a interagovat tak se zařízením a vyvíjenou aplikací. Emulátor je možno spustit s různými parametry, jako je například verze operačního systému Android, která na něm bude spuštěna, velikost displeje, velikost RAM paměti apod DDMS DDMS 5 je nástroj, který slouží ke komunikaci s již běžícím emulátorem nebo s připojeným fyzickým zařízením. Slouží k získávání aktuálních informací o stavu zařízení, jako je seznam spuštěných procesů, využití procesoru, paměti, sít ových připojení apod. V případě emulátoru je možné simulovat události, které nepřicházejí skrz dotykovou vrstvu displeje. Mezi tyto události lze zařadit například příchozí hovor, přijatou SMS zprávu nebo přijatou informaci o GPS lokaci. Lze také simulovat pohyb zařízení i jeho do otočení horizontální polohy LogCat LogCat je nástroj integrovaný v DDMS, který umožňuje snadno nahlédnout do logu zařízení, kam aplikace mohou zapisovat různé informace o svém stavu. Systém zde také zapisuje informace o případné neočekávané chybě v běhu aplikace, která způsobí její pád. Přístup k těmto informacím je klíčový při vývoji a testování aplikací. 5. Dalvik Debug Monitor Server. 5

11 2 Struktura Android aplikace Aby mohla být Android aplikace zkompilována, musí její projekt obsahovat jisté soubory a dodržovat jistou strukturu. V této kapitole popisuji nejdůležitější a nejzásadnější soubory této struktury. Také charakterizuji prvky, ze kterých se aplikace mohou skládat. 2.1 AndroidManifest.xml AndroidManifest.xml umístěný v kořenovém adresáři projektu je soubor nezbytný pro každou aplikaci. Systém jej čte, aby zjistil základní informace o aplikaci, které musí znát předtím, než je schopen aplikaci spustit. Mimo jiné manifest obsahuje následující: Uvádí jméno balíku (package) aplikace jazyka Java. Tento balík slouží jako jednoznačný identifikátor aplikace pro systém. Uvádí verzi aplikace. Deklaruje oprávnění, která aplikace potřebuje pro svůj správný běh. Žádosti o tato oprávnění jsou uživateli zařízení prezentovány při instalaci aplikace a je vyžadováno jejich odsouhlasení. Mezi tato oprávnění patří například využívání internetového připojení nebo používání některých hardwarových zařízení, kterými přístroj disponuje. Uvádí minimální úroveň API 1, kterou musí zařízení podporovat, aby na něm bylo možné aplikaci spustit. Popisuje komponenty, ze kterých se aplikace skládá. Mezi tyto komponenty se řadí objekty typu Activity, Service, Content Provider a Broadcast Receiver. Tyto komponenty popisuji v následující části kapitoly. Uvádí vstupní bod(y) aplikace. 1. S novými verzemi Androidu se rozšiřují knihovny Androidu o nové třídy a stávající třídy o nové metody, které nemusí telefony se starší verzí Androidu podporovat. 6

12 2. STRUKTURA ANDROID APLIKACE Informace o souboru AndroidManifest.xml vychází zejména z [13]. 2.2 Zdrojové kódy jazyka Java (soubory.java) Soubory zdrojových kódů jazyka Java jsou v Android projektu uloženy v adresáři src/jméno_balíku/ 2. Mohou tu být soubory obsahující libovolné třídy použité v aplikaci, ale zejména jsou zde soubory obsahující jednotlivé komponenty Android aplikace (viz 2.1) Activity Aktivita (Activity) je základním stavebním kamenem každé Android aplikace, která má nějaké uživatelské rozhraní. Reprezentuje jednu obrazovku aplikace, se kterou uživatelé interagují. Například jednoduchá ová aplikace může být složena ze tří aktivit - aktivity, která zobrazí přijaté y, aktivity, která otevře konkrétní a umožní jeho přečtení, a aktivity, která slouží k napsání a odeslání nového u. Přestože tyto aktivity spolupracují, aby daly uživateli pocit práce s jednou aplikací, jsou ve skutečnosti nezávislé. Pokud to ová aplikace dovolí, mohou jiné aplikace spustit kteroukoliv z těchto aktivit. Například aplikace galerie, ve které se zobrazují obrázky a fotografie uložené v zařízení, může spustit aktivitu, která slouží k napsání a odeslání nového u, aby uživatel mohl obrázek odeslat. Každá aktivita musí být ve svém vlastním.java souboru a musí rozšiřovat (extend) třídu Activity. O aktivitě říkáme, že má tzv. životní cyklus, což je několik stavů, ve kterých se aktivita může za běhu operačního systému nacházet. O přechod mezi těmito stavy se stará operační systém, který vždy volá patřičnou metodu aktivity, aby ji informoval, že se mění její stav, a umožnil jí na to nějakým způsobem reagovat. Třída Activity, kterou musí každá aktivita rozšiřovat, má definované metody pro každou takovou změnu stavu. Pokud chce vývojář na změnu stavu reagovat, musí ve své aktivitě 2. Jméno_balíku označuje systém podložek korespondující se jménem balíku uvedeném v souboru AndroidManifest.xml a v každém souboru.java pomocí příkazu package. 7

13 2. STRUKTURA ANDROID APLIKACE překrýt patřičnou metodu a v ní implementovat kód, který se provede, když taková změna nastane. Nejzásadnějším stavem a metodou jemu odpovídající je stav, kdy je aktivita vytvořena, aby byla zobrazena uživateli. Jedná se o stav Created (vytvořena) a metodu oncreate(bundle), v níž by měl vývojář implementovat kód pro prvotní inicializaci aktivity. Mezi další důležité stavy se řadí Resumed (spuštěna), což označuje stav, kdy už je aktivita inicializovaná, je na popředí a uživatel s ní může interagovat. Dále stav Paused (pozastavena), do něhož se aktivita přepne, je-li překryta jinou aktivitou, ale pořád alespoň z části viditelná. 3 Pokud je aktivita z tohoto stavu vrácena zpět na popředí, je zavolána metoda onresume(), po níž je aktivita opět přepnuta do stavu Resumed. Do stavu Stopped (zastavena) se aktivita přepne, překryje-li jiná aktivita aktivitu úplně (s aktivitou tedy není nijak možné interagovat). Pokud aktivita na popředí nebo nějaká jiná část operačního systému zařízení potřebuje pro svůj běh místo v operační paměti, jehož aktuálně není dostatek, může systém ukončit proces aplikace a tím i zrušit aktivity s touto aplikací spojené. Uživatel zařízení ale o tom není nijak informován a při návratu do dané aplikace očekává, že bude ve stejném stavu, v jakém ji opustil. Tento stav lze zachovat například překrytím metody onsaveinstancestate(bundle), do jejíhož parametru Bundle (balík) lze ukládat hodnoty různých proměnných metodami putint(string, int), putstring(string, String) apod. Parametr metody oncreate(bundle) je právě balík z předchozího běhu dané aktivity, ze kterého lze pomocí metod typu getint(string, int) uložené hodnoty získat Service, Content Provider a Broadcast Receiver Tyto tři komponenty, ze kterých se může aplikace skládat, se v aplikaci Skypicker nepoužívají, a proto je popíši jen velmi stručně. Služba (Service) je komponenta, která nemá žádné uživatelské rozhraní a běží na pozadí telefonu. Taková služba může například přehrávat hudbu, zatímco uživatel používá jinou aplikaci. Poskytovatel obsahu (Content Provider) spravuje přístup k ur- 3. Aktivity nemusí zabírat celý displej. 8

14 2. STRUKTURA ANDROID APLIKACE čitému zdroji dat. Je součástí Android aplikace, která obyčejně poskytuje uživatelské rozhraní pro práci s danými daty. Content Provider také může být využit ostatními aplikacemi přímo, které přistupují k poskytovaným datům pomocí klienta Content Provideru. Přijímač vysílání (Broadcast Receiver) reaguje na oznámení vysílaná pro celý systém. Původce takových vysílání je obyčejně operační systém, který informuje aplikace o událostech, jako je například nízký stav baterie. Oznámení mohou vysílat i aplikace Fragment Android byl původně navržen jako operační systém pro telefony a obecně zařízení s menšími displeji. Avšak s nástupem tablet s Androidem bylo potřeba pozměnit koncept, kdy celý displej byl téměř vždy zaplněn jednou aktivitou. Tablety mají mnohem větší displej než telefony a aby byl náležitě využit, musela by aktivita obsahovat velké množství prvků uživatelského rozhraní. Tím pádem by byla i celá implementace velmi rozsáhlá a zdrojový kód by se mohl stávat nepřehledným. Navíc by muselo být vytvořeno více verzí té samé aplikace. Jedna verze pro tablety, kde by mohlo být vše na jedné obrazovce v jedné aktivitě, a druhá verze pro telefony, kde by muselo obrazovek a aktivit být více. Fragmenty byly představeny ve verzi Android 3.0 právě s nástupem tabletů, ale i na starších verzích Androidu je jich možné díky knihovně zpětné kompatibility využít. Tato knihovna umožňuje vývojářům používat třídy a knihovny tříd, představené až v novějších verzích Androidu, zpětně až do API verze 4 4. Pokud chce vývojář používat fragmenty i na starších verzích Androidu, musí tuto knihovnu naimportovat do svého projektu a poté používat třídy v ní obsažené. Použití fragmentů s touto knihovnou se příliš neliší od jejich použití na verzích Androidu, které je nativně podporují. O fragmentech lze přemýšlet jako o modulárních sekcích spuštěné aktivity, které mají svůj vlastní životní cyklus, přijímají své vlastní vstupy a lze je do spuštěné aktivity libovolně přidávat a odebírat. 4. Android

15 2. STRUKTURA ANDROID APLIKACE Tím je umožněno použít úplně stejné fragmenty v aplikaci spouštěné na telefonu i na tabletu. Pokud bych se vrátil k příkladu ové aplikace z kapitoly o aktivitách a implementoval funkcionalitu zobrazení přijatých ů jako jeden fragment a zobrazení jednoho konkrétního u jako druhý fragment, mohl bych na telefonu po kliknutí na nějaký v prvním fragmentu vyměnit v zaštit ující aktivitě fragment za druhý, ve kterém by se zobrazil celý vybraný . Na tabletech, které mají mnohem větší displeje, by mohly být oba fragmenty zobrazeny v jedné aktivitě zároveň. Aby mohl být fragment použit, musí být vsazen do nějaké aktivity a jeho životní cyklus je poté přímo ovlivněn životním cyklem aktivity. Fragment může být do aktivity vsazen přímo vložením do XML souboru definujícím její uživatelské rozhraní (viz 2.3). Pokud ale chceme fragmenty v aktivitě mezi sebou měnit, musíme je již od začátku do aktivity vkládat pomocí Java kódu. Poté je vhodné v uživatelském rozhraní definovat jistý kontejner (například Linear Layout), do kterého budeme za použití FragmentTransaction fragmenty vkládat. V následujícím příkladu je ukázáno, jakým způsobem je možné v aktivitě vložit fragment MyFragment do kontejneru LinearLay out. Aby bylo možné tento kontejner, definovaný v souboru s uživatelským rozhraním, v kódu dohledat, je nutné, aby měl přidělený jednoznačný identifikátor id. (viz 2.3) V následujícím příkladu má kontejner identifikátor container. MyFragment myfragment = new MyFragment(); FragmentTransaction ft = getfragmentmanager(). begintransaction(); ft.add(r.id.container, myfragment); ft.commit(); Nejprve je vytvořena nová instance fragmentu MyFragment, poté je pomocí metody getfragmentmanager() získána reference na objekt, který aktivitě spravuje její fragmenty, a pomocí metody begin Transaction() získán objekt, který umožní provést danou transakci. Metoda add(int, Fragment) poté přidá daný fragment do kontejneru a metoda commit() provede příslušné změny. Výměnu fragmentu v kontejneru je možné provést pomocí metody replace(int, Fragment). Pokud je při transakci zavolána 10

16 2. STRUKTURA ANDROID APLIKACE metoda addtobackstack(string), uživatel se poté může vrátit do stavu před provedením transakce pomocí tlačítka zpět na jeho zařízení. 2.3 Uživatelské rozhraní Uživatelské rozhraní se obvykle tvoří mimo Java kód v XML souborech uložených v adresáři res/layout/. V těchto souborech jsou definovány jednotlivé prvky rozhraní, typicky s přiřazeným unikátním identifikátorem id. Toto rozhraní je poté načteno a zobrazeno aktivitou pomocí metody setcontentview(int), kde parametrem této metody je jednoznačný číselný identifikátor souboru s příslušným rozhraním. Přístup k jednotlivým prvkům rozhraní je možný pomocí metody findviewbyid(int), kde parametrem této metody je opět jednoznačný číselný identifikátor příslušného prvku. Tímto je umožněno oddělit designovou část aplikace od samotného zdrojového kódu. Stejně tak je možné vytvořit více složek s rozhraními se speciálními názvy, ve kterých budou uložena rozhraní optimalizovaná pro různé velikosti obrazovek, hustoty pixelů na displeji nebo verze Androidu. Systém pak na základě názvu složky vybere před spuštěním aplikace nejvhodnější rozhraní, které pak použije pro zobrazení v aktivitě. 2.4 Složky drawable a values Posledními důležitými složkami a soubory, které zmíním, jsou složky res/drawable/, res/values/ a soubory v nich obsažené. Tyto složky obsahují konstantní data používaná v aplikaci. Ve složce drawable bývají typicky uloženy obrázky použité v aplikaci a ve složce values zase např. textové popisky použité v aplikaci. Stejně jako u uživatelských rozhraní podporuje systém uložení těchto dat do různých složek se speciálními názvy a systém poté vybere nejvhodnější složku pro použití. Je například možné nechat systém automaticky zvolit vhodné textové popisky podle jazyka, který je v systému nastaven, pokud jsou ovšem pro daný jazyk k dispozici překlady. 11

17 3 Použití Google Maps v aplikacích Operační systém Android poskytuje možnost zobrazení Google Maps v aplikacích. Způsob jejich použití se nicméně v nedávné době změnil. V Google Maps Android v1 se k použití map v aplikaci používal prvek MapView, který vývojář do aplikace vložil a v němž se mapa zobrazovala. Od 3. prosince 2012 je ale MapView zavrhované (deprecated) a od 18. března 2013 není pro nové aplikace vůbec možné získat API klíč map verze 1, který je nutný pro jejich správné fungování. [11] Co je API klíč a jak jej získat, popisuji v následující části, která se věnuje Google Maps Android v API klíč Pro správné fungování Google Maps Android je nutné, aby si vývojář nechal vygenerovat privátní API klíč. Ten vloží do souboru AndroidManifest.xml ve své aplikaci a tím je Googlu umožněno aplikaci jednoznačně identifikovat a sledovat její přístup ke Google Maps serverům. Klíč je možné vygenerovat nástrojem keytool, který je obsažen v Android SDK. Nástroj vygeneruje unikátní SHA-1 otisk, který po přihlášení a vložení do Google APIs Console 1 slouží k vygenerování unikátního API klíče. Podrobný postup je možno nalézt v dokumentaci k Google Maps Android v Google Play Services Google Maps Android v2 využívají k provozu knihovny obsažené v Google Play Services, což je soubor služeb, který je automaticky nainstalován a aktualizován na každém zařízení s Androidem ve verzi 2.2 nebo vyšší. Pokud soubor služeb Google Play Sevices není v zařízení nainstalován, nebo je deaktivován, aplikace s Google Maps Android v2 nebude na takovém zařízení použitelná k přihlášení je nutný Google účet

18 3. POUŽITÍ GOOGLE MAPS V APLIKACÍCH Google Play Services jsou také volitelnou součástí Android SDK a pokud jich chce vývojář využívat, musí na tuto knihovnu ve svém projektu odkázat. Podrobný návod lze nalézt v dokumentaci Google Play Sevices. 3 Google Play Services nicméně nejsou podporovány Android emulátory, a proto není testování aplikace s Google Maps Android v2 na emulátoru možné. Je tedy nutné použít skutečné zařízení. [12] 3.3 Úpravy AndroidManifest.xml Pro správné použití Google Maps Android v2 v aplikaci je nutné, aby soubor AndroidManifest.xml 2.1 obsahoval následující náležitosti. Vygenerovaný API klíč 3.1, který se do manifestu přidává jako potomek tagu <application> vložením následujícího tagu, <meta-data android:name="com.google.android.maps.v2. API_KEY" android:value="api_klíč" /> kde API_klíč je unikátní API klíč obdržený z Google APIs Console. Definici povolení pro příjem map a jeho deklaraci, <permission android:name="jméno.balíku.permission. MAPS_RECEIVE" android:protectionlevel="signature" /> <uses-permission android:name="jméno.balíku.permission. MAPS_RECEIVE" /> kde jméno.balíku je jméno balíku uvedené v manifestu a v každém zdrojovém souboru jazyka Java. Další povolení, která mapy pro svůj správný běh potřebují, deklarované v manifestu standardním způsobem

19 3. POUŽITÍ GOOGLE MAPS V APLIKACÍCH android.permission.internet android.permission.access_network_state android.permission.write_external_storage com.google.android.providers.gsf. permission.read_gservices Informaci o použití OpenGL ES v2 4, která informuje externí služby o tomto nároku aplikace s Google Maps Android v2. Zejména to má za důsledek nezobrazování aplikace v obchodě Google Play uživatelům, kteří mají zařízení bez podpory OpenGL ES v2. [8] Tato informace se do manifestu přidává následujícím zpusobem: <uses-feature android:glesversion="0x " android:required="true"/> 3.4 MapFragment Je patrné, že Google se od představení fragmentů snaží vývojáře tlačit k jejich používání. Google Maps Android v2 se totiž do uživatelského rozhraní vkládají právě jako fragment, konkrétně Map Fragment. Tento fragment, který rozšiřuje základní třídu fragmentů Fragment, byl do Android SDK přidán v API 12, tedy ve verzích Androidu 3.1.x. Ale i zařízení s Androidem nižší verze mohou Google Maps Android v2 použít, a to za pomoci knihovny zpětné kompatibility (viz (2.2.3). Poté je místo fragmentu MapFragment použit SupportMapFragment. 4. Rozhraní pro zobrazování 3D grafiky. 14

20 4 Aplikace Skypicker V této kapitole věnuji vlastní implementaci aplikace Skypicker, jejíž tvorba je hlavním předmětem této bakalářské práce. V aplikaci je použita knihovna zpětné kompatibility, čímž by mohlo být dosaženo zpětné kompatibility až k verzi Android 1.6. Jelikož je ale v aplikaci také použita externí knihovna android-numberpicker 1, je aplikace Skypicker podporována pouze do verze Android 2.2.x. Tato knihovna, která umožňuje použití třídy NumberPicker na zařízeních s Androidem starším než ve verzi 3.0, kdy byla do standardního SDK přidána, podporuje Android až od verze 2.2.x. To ale není velký problém, protože Android ve verzích starších než 2.2.x běží k 3. dubnu 2013 pouze na 1,8 % všech zařízení s Androidem a toto zastoupení měsíc od měsíce klesá. [14] Přestože je aplikace použitelná na tabletech, nebyl na ně při implementaci brán ohled. Aplikace je tedy optimalizovaná pro použití na telefonech a nepodporuje otočení na šířku. Pokud je jazyk zařízení nastaven na češtinu, je aplikace spuštěna v češtině, jinak v angličtině. 4.1 Funkční požadavky a uživatelské rozhraní Vlastní návrh aplikace je prostý. Uživateli je zobrazena mapa vycentrovaná na stát, ve kterém se aktuálně nachází. Nad mapou je úzký panel, ve kterém je kromě loga Skypickeru přehled informací o aktuálním nastavení parametrů vyhledávání, tlačítko pro otevření menu a tlačítko pro vyhledání letů. Parametry vyhledávání jsou země, ze které chce uživatel letět, interval, během kterého chce letět a doba setrvání v cílové destinaci. Menu slouží zejména pro nastavení těchto parametrů. Je v něm také možné změnit vyhledávání na pouze jednosměrné lety. V takovém případě se nastavená doba setrvání v cílové destinaci ignoruje. Výběr cílové destinace probíhá kliknutím na mapu, na které se zobrazí kruh vymezující oblast, do které se budou lety vyhledávat. Pomocí značky přichycené k okraji kruhu lze měnit velikost této

21 4. APLIKACE SKYPICKER oblasti. Po kliknutí na tlačítko vyhledávání je zobrazen seznam nalezených letů seřazených od nejlevnějšího po nejdražší. Uživateli je umožněno kliknutím na let otevřít ve svém webovém prohlížeči stránku, která ho provede rezervací patřičných letenek. Použitím tlačítka zpět je možné vrátit se zpět na mapu. Snímky obrazovek jsou k nahlédnutí v další sekci na obrázcích 4.4 a Architektura aplikace V následující části popisuji architekturu aplikace, zejména popis jednotlivých tříd jazyka Java v aplikaci použitých. Obsah souboru AndroidManifest.xml zde nerozebírám, jelikož prakticky kopíruje obsah nastíněný v kapitolách 2.1 a 3.3. Na následujících dvou stranách je zobrazen diagram tříd aplikace. Aby bylo možné zařadit tyto obrázky do textu, musel být diagram rozdělen na dva a také musely být skryty privátní atributy tříd. Na prvním diagramu jsou zobrazeny aktivity aplikace a třídy s nimi spojené, na druhém je poté zobrazen fragment zobrazující lety (viz 4.2.5) a související třídy. Mezi tímto fragmentem a hlavní aktivitou aplikace (4.2.3) existuje vztah, který není možné na diagramu znázornit. Fragment může být za běhu aplikace do aktivity přidán. Aktivita může vždy mít pouze jeden fragment. 16

22 4. APLIKACE SKYPICKER Obrázek 4.1: Diagram tříd (aktivity) 17

23 4. APLIKACE SKYPICKER Obrázek 4.2: Diagram tříd (FlightsFragment) Helper Soubor Helper.java popisuje třídu Helper, která obsahuje metody používané v obou aktivitách aplikace. Metody byly vyčleněny do této třídy, aby bylo zabráněno duplicitě kódu. Jsou využívané pro kontrolu dostupnosti internetu, který je pro fungování aplikace stěžejní, a také pro stažení souborů ze serveru Skypickeru. Detaily komunikace se serverem popisuji dále v této kapitole. 18

24 4. APLIKACE SKYPICKER LoaderActivity V souboru LoaderActivity.java je obsažena první ze dvou aktivit této aplikace. Slouží k inicializaci aplikace a přechod na hlavní aktivitu aplikace. Využívá uživatelského rozhraní loader.xml, které nenabízí žádný způsob interakce uživatele s aplikací. 4.3 Obrázek 4.3: LoaderActivity Aktivita si nejprve za pomoci metody třídy Helper ověří, zda je zařízení připojené k internetu. Pokud není, je uživateli zobrazen dialog vyzývající ho k připojení. Nabízí mu možnost ověřit dostupnost internetu znovu a možnost přejít do nastavení telefonu pro aktivaci připojení k internetu. Pokud si uživatel ani jednu z možností nevy- 19

25 4. APLIKACE SKYPICKER bere, nebo internetové připojení není stále k dispozici, aplikace bude ukončena, jelikož bez internetového připojení pozbývá smyslu. Pokud je vše v pořádku, aktivita zavolá metodu execute() na nově vytvořené instanci privátní třídy GetPositionAndStart Task, což je třída rozšiřující třídu AsyncTask, která slouží k provedení operací mimo hlavní vlákno aplikace. GetPositionAndStartTask pomocí metody třídy Helper stáhne ze serveru Skypickeru všechna možná místa, ze kterých lze letět, dále na serveru zavolá službu, která podle IP adresy zjistí zemi, ve které se zařízení aktuálně nachází. Pokud nastane nějaká chyba, je uživateli opět zobrazen dialog, který ho o nastalé chybě informuje, vyzve ho k opakování později a donutí ho aplikaci zavřít. Tuto operaci je nutné provést mimo hlavní vlákno operace, protože pokus o komunikaci s jiným zařízením v hlavním vlákně aplikace končí na Android 3.0 a novějším vyvoláním výjimky NetworkOnMainThread Exception. Na starších verzích Androidu je možné takovou komunikaci provést, ale je to silně nedoporučeno, jelikož taková akce může způsobit, že aplikace nebude na nějakou dobu reagovat. Na to může operační systém zareagovat dokonce i zobrazením dialogového okna, které uživatele informuje o tom, že spuštěná aplikace nereaguje, a nabídne mu její ukončení. [10] Pokud jsou data stažena v pořádku, je nutné kromě názvu země, ve které se uživatel nachází, zjistit ještě její GPS souřadnice, aby se na ně mohla mapa v následující aktivitě zaměřit. K tomu využívám třídu Geocoder, která ovšem nefunguje 100% spolehlivě, a proto se někdy nepodaří GPS souřadnice dané země získat. Je to známý problém, jenž má vlastní záznam na webové stránce, která slouží pro hlášení problémů Googlu s jeho službami. 2 Tato chyba nicméně nenastává často a jelikož jediný dopad na funkčnost aplikace je to, že se mapa nezaměří na zemi, ve které se uživatel nachází, je to v aplikaci ponecháno takto. Po (pokusu o) zjištění GPS souřadnic země, ve které se uživatel nachází, předá GetPositionAndStartTask všechna získaná data hlavní aktivitě aplikace a aktivitu LoaderActivity ukončí

26 4. APLIKACE SKYPICKER MainActivity V tomto nejrozsáhlejším souboru projektu se nachází hlavní aktivita celé aplikace, MainActivity. Tato aktivita je zodpovědná za téměř veškerou interakci uživatele s aplikací. Zobrazuje panel s informacemi o parametrech vyhledávání, umožňuje uživateli tyto parametry změnit a umožňuje provést samotné vyhledání letů. Stará se také o zobrazení mapy, o možnost označení cílové oblasti na mapě a změnu její velikosti. Po vyhledání letů vymění mapu za seznam nalezených letů a umožní vrátit se zpět k mapě. Aktivita má také na starosti uložení stavu aplikace v případě jejího odchodu do pozadí, aby mohlo být vše obnoveno do původního stavu v případě, že je aplikace operačním systémem zastavena. Vzhled aktivity se zobrazenou mapou je na obrázku. 4.4 Inicializace MainActivity Aktivita po svém startu zobrazí uživateli dialog s nápovědou, která se týká způsobu používání aplikace. Uživatel může v dialogu zaškrtnout, že již nechce, aby se nápověda při startu zobrazovala. V tom případě je informován, že nápovědu může kdykoliv znovu otevřít v menu. Do nastavení aplikace, která jsou v systému pevně uložená a neměnná ani při restartování zařízení, je toto uživatelovo přání uloženo. Aktivita si tedy vždy před zobrazením nápovědy ověřuje v nastaveních, zda má nápovědu zobrazit nebo ne. Aktivita využívá uživatelského rozhraní main.xml, ve kterém je vytvořeno rozložení horního panelu a vytvořen kontejner pro fragmenty. Aktivita poté získá reference na všechny objekty rozhraní, se kterými je potřeba za běhu pracovat. Pokud již nebyla v některém z předchozích běhů vytvořena instance třídy SupportMapFragment a tento přidán do kontejneru pro fragmenty, aktivita tuto instanci získá a pomocí tříd FragmentManager a FragmentTransaction fragment do kontejneru přidá. Probíhá to způsobem zmíněným v kapitole o fragmentech Pokud existuje uložený stav z předchozího běhu aktivity, je tento obnoven, pokud ne, je aktivita inicializována na výchozí hodnoty. Je také inicializováno menu, ve kterém je možné změnit počáteční zemi vyhledávání, interval odletu, dobu setrvání v cílové destinaci, 21

27 4. APLIKACE SKYPICKER Obrázek 4.4: MainActivity s MapFragmentem případně zda si uživatel přeje vyhledávat pouze jednosměrné lety. Dále je v menu možné vyhledat lety kamkoliv. V tom případě není potřeba, aby byla na mapě označena nějaká oblast, případně se tato ignoruje, a uživateli jsou zobrazeny nejlevnější lety ze zvolené země úplně Dále jsou nastaveny posluchače (listener) ke všem prvkům, se kterými uživatel interaguje. Jedná se o třídy, jejichž metody jsou zavolány, například pokud uživatel klikne na tlačítko vyhledávání, nebo pokud je například změněn stav zaškrtávacího boxu v nápovědě. Také je nastaven posluchač, jehož kód se vykoná, pokud je změněn zásobník fragmentů. Do zásobníku fragmentů lze při výměně fragmentů 22

28 4. APLIKACE SKYPICKER pomocí třídy FragmentTransaction tuto změnu uložit, aby bylo poté možné se k ní vracet. Tento posluchač slouží pouze k tomu, aby v případě přechodu na zobrazení seznamu letů byla na horním panelu zobrazena šipka umožňující návrat zpět na mapu, a aby byla opět schována, pokud k návratu na mapu dojde a další vyvolání akce zpět by znamenalo ukončení aplikace. Všechny předchozí kroky se děly v metodě oncreate(bundle). Jelikož ale během vykonávání kódu v této metodě nejsou objekty a metody mapy ještě inicializovány a jejich použití by způsobovalo chyby, je nutné veškeré nastavení mapy provést až v metodě onresume(). Zde opět přichází na řadu stav uložený z předchozího běhu aktivity. Pokud nějaký existuje, jsou jeho hodnoty použity pro inicializaci mapy. Tyto hodnoty jsou souřadnice, na které je mapa zaměřena, její přiblížení, dále zda byl na mapě při předchozím běhu umístěn kruh, případně jeho umístění a poloměr. Pokud žádný stav s předchozího běhu neexistuje, je mapa inicializována na výchozí přiblížení a zaměření je nastaveno na souřadnice získané v LoaderActivity. Pokud nebylo možné v LoaderActivity kvůli problémům s třídou Geocoder (viz 4.2.2) souřadnice získat, je uživateli v dialogu zobrazeno oznámení a zaměření mapy se v takovém případě nezmění. Je nastaveno na výchozí hodnotu při inicializaci mapy, což je zaměření na souřadnice, kde se nultý poledník protíná s rovníkem. Posledním krokem při inicializaci aktivity je zavolání metody, která ověří, zda nejsou datumy nastavené jako interval vyhledávání zastaralé. Je totiž možné, že předchozí běh aktivity se konal před několika dny a po obnovení uloženého stavu z tohoto běhu se nastaví interval tak, jak byl nastaven předtím. V takovém případě by se mohlo stát, že by vyhledávací interval zasahoval do minulosti. Přestože je server proti takovým vyhledávacím parametrům chráněný a jednoduše nevrátí v intervalu v minulosti žádné lety, není žádoucí nechat uživatele vyhledávat lety v minulosti. Běh MainActivity a interakce s uživatelem Zde popisuji některé zásadní akce, které může uživatel provádět, a metody, které se o obsluhu těchto akcí starají. 23

29 4. APLIKACE SKYPICKER Nejzásadnější akcí je zcela jistě vyhledání letů. O to se stará metoda performsearch(boolean). Parametr boolean má metoda z toho důvodu, že inicializace vyhledání letů může být uživatelem provedena ze dvou různých míst a je potřeba mezi těmito možnostmi rozlišovat. V obou případech je zavolána metoda execute(double...) 3 privátní třídy GetFlights Task, což je obdoba třídy GetPositionAndStartTask z LoaderActivity (viz 4.2.2) sloužící k vyhledání letů a výměnu fragmentu MapFragment za FlightsFragment se zobrazenými výsledky vyhledávání. Rozdíl je v tom, že v případě vyhledávání letů kamkoliv z menu nejsou parametry předané metodě execute(double...) žádné, při vyhledání pomocí tlačítka vyhledávání na horní liště jsou metodě předány parametry odpovídající souřadnicím středu kruhu a jeho poloměru. Vzhled aktivity po vyhledání letů je patrný na obrázku 4.5. Dalšími důležitými operacemi jsou umístění kruhu na mapu a změna jeho velikosti. Umístění se děje jednoduše pomocí zavolání metody třídy GoogleMap, což je instance mapy, referenci na níž získávám v metodě oncreate(bundle). Pokud už je nějaký kruh na mapě umístěn a uživatel klikne na jiné místo na mapě, je pouze kruhu změněna pozice středu, což způsobí jeho přesun. Současně s umístěním kruhu je na mapu umístěna také instance třídy Marker, která tvoří značku (viz obrázek 4.4) používanou ke změně velikosti kruhu. Kruh má při prvním přidání na mapu nastaven poloměr na 250 km a uživatel jej může zvětšit až na 500 km či zmenšit až na 100 km. Maximální omezení je nastaveno z důvodu složitého vyhledávání při příliš velkém poloměru kruhu, minimální omezení je nastaveno, protože příliš malý kruh nevypadá na mapě dobře. I v rozmezí tohoto intervalu nemůže uživatel nastavit velikost kruhu na libovolnou velikost, ale poloměr se mění pouze po 25 kilometrových skocích. Důvodem pro tuto volbu je, aby se kruh nemusel při změně jeho velikosti příliš často překreslovat, což dělá po- 3. Parametr Double... značí možnost zavolání této metody s libovolným počtem hodnot typu Double. Tento zápis ze nazývá Varargs a jeho popis je k nahlédnutí například na následující webové stránce

30 4. APLIKACE SKYPICKER Obrázek 4.5: MainActivity s FlightsFragmentem malejším zařízením problémy. Implementaci umístění značky na dolní okraj kruhu a jejího použití pro změnu velikosti kruhu popisuji v kapitole Změna intervalu vyhledávání probíhá v dialogu zobrazeném po výběru patřičné položky v menu. Uživatel je nejprve dotázán, zda chce měnit počáteční nebo koncové datum intervalu. Poté je zobrazena instance třídy DatePickerDialog, ve které může uživatel vybrané datum změnit. Změna data je omezena na interval od dvou dnů po aktuálním dni 4 do půl roku po ak- 4. Den, kdy uživatel aplikaci používá. 25

31 4. APLIKACE SKYPICKER tuálním dni. Toto omezení lze nastavit pomocí metod setmin Date(long), resp. setmaxdate(long), které jsou volány na instanci třídy DatePicker, na níž je získána reference z instance DatePickerDialog. Toto omezení bohužel není možné nastavit na Androidu v nižší verzi než 3.0, a proto je uživatel zařízení s těmito staršími verzemi pouze informován o omezení intervalu s tím, že pokud nastaví datum mimo interval, bude jeho volba ignorována. Zároveň není možné nastavit koncové datum intervalu před počáteční. Podrobný způsob implementace popisuji v kapitole Nastavení doby setrvání v cílové oblasti, která může být maximálně 14 dní, je opět možné pomocí výběru příslušné položky z menu. Uživatel je opět prezentován dialogem, jenž je tentokrát vytvořen pomocí uživatelského rozhraní definovaného v numberpicker_dialog.xml. V rozhraní je na vrchu zobrazen zaškrtávací box, kterým uživatel může změnit vyhledávané lety pouze na jednosměrné. Pod ním jsou vedle sebe dvě instance třídy NumberPicker. V Androidu ve verzi 3.0 je použita standardní třída NumberPicker obsažená v Android SDK, ve starších verzích je použita třída z knihovny android -numberpicker, kterou zmiňuji na začátku kapitoly 4. Způsob vytvoření dialogu ze souboru uživatelského rozhraní a způsob, kterým používám dvě různé třídy se stejným jménem v jedné aplikaci, popisuji v kapitole Flight Soubor Flight.java obsahuje veřejnou třídu Flight, která reprezentuje nalezený let. Privátní parametry této třídy obsahují hodnoty, jako je výchozí místo letu, cílové místo letu, cena letu a podobně. Pro přístup k těmto parametrům má třída nadefinovány příslušné metody FlightsFragment a FlightsAdapter FlightsFragment.java obsahuje třídu FlightsFragment zodpovědnou za zobrazení nalezených letů. Tato třída rozšiřuje třídu 26

32 4. APLIKACE SKYPICKER ListFragment, což je speciální fragment obsažený v Android SDK, který umožní jednoduše zobrazit seznam položek. Vzhled každé položky je definován v rozhraní flights_row.xml, které je předáno jako parametr třídě FlightsAdapter. Ta je definovaná v souboru FlightsAdapter.java a rozšiřuje třídu ArrayAdapter, již ListFragment pro zobrazení seznamu používá. Kromě uživatelského rozhraní je FlightsAdapteru předán také List naplněný instancemi třídy Flight. Ty FlightsFragment vytvoří zpracováním výsledku vyhledání letů, který je mu předán z třídy GetFlights Task. FlightsAdapter má na starosti právě správné zobrazení informací o letu v každé z položek zobrazených v seznamu. 4.3 Detaily implementace Kruh na mapě a změna jeho velikosti Při inicializaci mapy je jí přiřazena nová instance třídy OnMapClick Listener, jejíž metoda onclick(latlng) je zavolána pokaždé, když uživatel klikne na mapu. Parametr této metody uchovává zeměpisné souřadnice, na kterých kliknutí proběhlo. Parametr je předán metodě putcircleonmap(latlng), která přidá kruh na mapu, nebo změní jeho polohu, pokud už na mapě nějaký kruh zobrazený je. Současně s umístěním kruhu je ale potřeba umístit na nejjižnější bod jeho hrany i značku, která slouží pro změnu jeho velikosti. Výpočet souřadnice bodu, na který značku umístit, probíhá v metodě get CircleBottomLatitude(double, double). Parametry této metody jsou zeměpisná šířka středu kruhu a jeho poloměr. Výpočet využívá vzdálenosti mezi rovnoběžkami převzaté z [15], která je prakticky stejná poblíž rovníku i pólů. Metoda se snaží skutečné vzdálenosti přiblížit pomocí znalosti umístění středu kruhu a jeho poloměru, jedná se ale pouze o aproximaci. Při dostatečném přiblížení je patrné, že značka není umístěna přesně na okraji kruhu. Pro potřeby aplikace je to ale dostačující, protože při běžném používání aplikace k takovému přiblížení nedojde a tento nedostatek tedy není patrný. Při inicializaci mapy je jí rovněž přiřazen další posluchač, který sleduje uživatelův záměr o pohyb se značkou. Tento posluchač obsahuje tři metody, jejichž kód je vykonán při začátku pohybu se značkou, během jejího pohybu a při ukončení pohybu, tedy kdy uživatel zvedne 27

33 4. APLIKACE SKYPICKER prst z displeje. Při začátku pohybu je v levém dolním rohu zobrazeno malé okénko s textem, které uživatele informuje o poloměru kruhu během změny jeho velikosti. Toto okénko je po ukončení pohybu opět skryto. Po ukončení pohybu jsou rovněž zavolány metody, které umístí značku zpět na nejjižnější bod hrany kruhu. Kromě tohoto se obsah tří metod definovaných v posluchači nijak neliší. Všechny tři volají metodu updatecircleradius(marker), které je jako parametr značka předána a část jejíhož zdrojového kódu zde uvádím: private void updatecircleradius(marker marker) { Location markerlocation = new Location(""); markerlocation.setlatitude(marker. getposition().latitude); markerlocation.setlongitude(marker. getposition().longitude); long newradius = (long) markerlocation. distanceto(circlelocation); newradius += CIRCLE_RADIUS_FACTOR / 2; newradius -= newradius % CIRCLE_RADIUS_FACTOR; if (newradius > CIRCLE_MIN_RADIUS && newradius < CIRCLE_MAX_RADIUS && newradius!= circle.getradius()) { circle.setradius(newradius); } else if (newradius <= CIRCLE_MIN_RADIUS && circle.getradius() > CIRCLE_MIN_RADIUS) { circle.setradius(circle_min_radius); } else if (newradius >= CIRCLE_MAX_RADIUS && circle.getradius() < CIRCLE_MAX_RADIUS) { circle.setradius(circle_max_radius); } } Z ukázky byly vynechány části kódu zodpovědné za aktualizaci informačního okénka informujícího uživatele o aktuálním poloměru kruhu. Umístění kruhu je vloženo do nové instance třídy Loaction, která pomocí metody distanceto(location) umí spočítat vzdá- 28

34 4. APLIKACE SKYPICKER lenost mezi dvěma zeměpisnými body. Proměnná circlelocation je proměnná třídy MainActivity, do které se ukládá poloha kruhu při její změně. Vypočítaná vzdálenost je uložena do proměnné new Radius, k níž je připočítána polovina statické proměnné CIRCLE_ RADIUS_FACTOR (dále faktor), která definuje skoky, po kterých je možné poloměr kruhu měnit (viz 4.2.3). Poté je od vzdálenosti odečten zbytek po jejím dělení faktorem. Těmito dvěma operacemi je dosaženo jednak toho, že se poloměr kruhu mění po definovaných skocích, a také toho, že poloměr bude vždy takový, aby okraj kruhu byl ke značce co nejdříve. Jako příklad uvedu vypočítanou vzdálenost mezi středem kruhu a aktuální pozicí značky 212 km. Pokud je faktor nastavena na 25, jak v aplikaci skutečně je, změní se vzdálenost pro přičtení její poloviny na 224,5 km. Zbytek po dělení vzdálenosti faktorem tedy vyjde 24,5 a po jeho odečtení od vzdálenosti získáme finální poloměr 200 km. Pokud je však aktuální vzdálenost mezi středem kruhu a značkou 213 km, získáme stejným výpočtem už finální poloměr 225 km. Zbytek metody kontroluje, zda vypočtená vzdálenost není menší nebo větší než minimální, resp. maximální poloměr, který kruh může být. V takovém případě je nastaven poloměr na tuto minimální, resp. maximální hodnotu, v opačném případě je nastaven na vypočtenou hodnotu. Speciální pozornost si zaslouží část podmínka if, resp. její část newradius!= circle.getradius(). Ta zajistí, že se poloměr kruhu nenastavuje, pokud by byl nastaven na stejnou hodnotu, kterou už má. Tím se zabrání překreslení kruhu, které je vždy uživatelem postřehnutelné, protože má za důsledek krátké zmizení výplně kruhu předtím, než je vykreslena znovu Kód pro API 11 a vyšší Některé objekty a metody použité v aplikaci byly do Android SDK přidány až v API 11 (Android 3.0), jelikož však aplikace zpětně podporuje zařízení až do API 8, což je také deklarováno v souboru AndoridManifest.xml, vývojové prostředí odmítá zdrojový kód s těmito objekty a metodami přeložit. Práci s těmito objekty a metodami se tedy musí vyčlenit do samostatných metod, před které je potřeba přidat speciální která způsobí, že kód v metodě bude vývojové prostředí kontrolovat, jako kdyby se kompilo- 29

35 4. APLIKACE SKYPICKER valo pro API 11 a vyšší. Tyto metody je poté nutné volat uvnitř bloku, který ověří, že verze API, na níž aplikace běží, je skutečně 11 nebo vyšší. Toto lze kontrolovat následující podmínkou: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { // kód určený pro API 11 a vyšší } Změna intervalu vyhledávání Změnu intervalu vyhledávání má na starosti metoda editdepartureinterval(boolean), jejíž parametr určuje, zda se bude měnit počáteční nebo koncové datum intervalu. Metoda vytvoří novou instanci třídy DatePickerDialog, které je jako parametr předán posluchač OnDateSetListener, kód jehož metody ondateset(datepicker, int, int, int) se vykoná, když uživatel potvrdí svojí volbu. Dalšími parametry předanými dialogu jsou výchozí hodnoty, na které se má nastavit. Tyto hodnoty jsou den, měsíc a rok aktuálně nastavené jako příslušné datum intervalu. Po inicializaci jsou poté na verzích Androidu 3.0 a vyšších následujícím způsobem nastaveny limity výběru data (viz 4.2.3): cal.add(calendar.month, 6); setcalendartodaysthreshold(cal, false); api11_setdatepickerminmaxdate(dpd, cal, false); cal.add(calendar.month, -6); cal.add(calendar.date, 2); setcalendartodaysthreshold(cal, true); api11_setdatepickerminmaxdate(dpd, cal, true); Tato ukázka pochází z inicializace dialogu pro výběr počátečního data intervalu. Nastavení limitů u dialogu pro výběr koncového data probíhá prakticky stejně s tím rozdílem, že jako minimální zvolitelné datum je nastaveno aktuální počáteční datum intervalu. Ukázka byla rovněž pro potřeby tohoto textu drobně upravena, její funkčnost ale zůstává stejná jako ve vlastním zdrojovém kódu aplikace. Proměnná cal je instancí třídy Calendar s nastaveným aktuálním časem. Čas tohoto kalendáře je posunut o 6 měsíců dopředu a 30

36 4. APLIKACE SKYPICKER datum, které nyní reprezentuje, je nastaveno jako maximální datum metodou api11_setdatepickerminmaxdate(datepickerdia log, Calendar, boolean). Parametr boolean této metody určuje, zda má metoda nastavit minimální nebo maximální datum. Proměnná dpd je reference na dialog, jehož hodnoty jsou právě nastavovány. Čas kalendáře je poté vrácen zpět do současnosti a posunut vpřed o dva dny. Datum, které je nyní kalendářem reprezentováno, je nastaveno jako minimální datum daného dialogu. Vždy před samotným nastavením dialogu je volána metoda set CalendarToDaysThreshold(Calendar, boolean), která v závislosti na parametru boolean nastaví čas v kalendáři na úplně první nebo na úplně poslední milisekundu daného dne. Bez toho se totiž stávalo, že vybral-li uživatel jako některé datum intervalu například maximální možné datum a potom se pokusil toto datum upravit znovu, aplikace byla ukončena s výjimkou IllegalArgumentException. Problém byl v tom, že datum, které lze v dialogu maximálně vybrat, se dialogu nastavuje pomocí milisekund uběhnutých od tzv. Unixové epochy 5. Navzdory tomu při tvorbě instance DatePickerDialog se výchozí datum dialogu předává pouze pomocí dne, měsíce a roku. Dialog ovšem toto datum převede na milisekundy uběhnuté od epochy a tyto porovná s milisekundami uběhnutými od epochy nastavenými jako maximální datum. Stávalo se tedy, že přestože se jednalo o stejný den, číslo reprezentující milisekundy uběhnuté od epochy nastavené jako výchozí datum dialogu bylo větší než číslo nastavené jako maximální datum dialogu, což vedlo ke zmíněné výjimce. Změna nastaveného data probíhá uvnitř metody posluchače onda teset(datepicker, int, int, int). V této metodě je potřeba zohlednit, zda je kód vykonáván na zařízení s Androidem 3.0 nebo novějším. Pokud ne, je potřeba ověřit, zda uživatelem nastavené datum je uvnitř dialogem prezentovaného intervalu (viz 4.2.3). V případě, že není, datum není změněno. Pokud ano, vykoná se na všech verzích Androidu stejný kód. Předpokládejme, že uživatel měnil nastavení počátečního data vyhledávacího intervalu. Poté jsou tři parametry typu int metody ondateset(datepicker, int, int, int), které reprezentují vybraný rok, měsíc a den, uloženy do příslušných proměnných MainActivity, ale současně je těmito hodnotami inici- 5. Půlnoc 1. ledna

Tabletová aplikace. Uživatelský manuál

Tabletová aplikace. Uživatelský manuál Uživatelský manuál Obsah Základní informace... 4 Instalace a přihlášení... 5 Verze CLOUD... 5 Verze SERVER... 8 Verze DEMO... 10 Nastavení displeje, tlačítek... 11 Obecná konfigurace... 11 GPS pozice...

Více

Mobilní aplikace. Uživatelský manuál

Mobilní aplikace. Uživatelský manuál Uživatelský manuál Obsah Základní informace a nastavení... 3 Nastavení přístupu... 4 Registrace docházky... 5 Editace vlastní docházky... 5 Ovládaní z mobilní aplikace... 6 Konfigurace mobilní aplikace...

Více

Mobilní aplikace. Uživatelský manuál

Mobilní aplikace. Uživatelský manuál Uživatelský manuál Obsah Základní informace a nastavení... 3 Nastavení přístupu... 4 Registrace docházky... 5 Editace vlastní docházky... 5 Ovládaní z mobilní aplikace... 6 Konfigurace mobilní aplikace...

Více

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod: Internetový prohlížeč CHROME Pro správné fungování veškerých funkcionalit, které nám nástroje společnosti Google nabízí, je dobré používat prohlížeč Chrome. Jeho instalaci je možné provést z webové adresy:

Více

Popis ovládání aplikace - Mapový klient KÚPK

Popis ovládání aplikace - Mapový klient KÚPK Popis ovládání aplikace - Mapový klient KÚPK Úvodní informace K využívání této aplikace musíte mít ve Vašem internetovém prohlížeči nainstalovaný plugin Adobe Flash Player verze 10 a vyšší. Mapová aplikace

Více

Aplikace NAM tracker pro ios. Příručka platí pro verzi NAM trackeru 1.1.0

Aplikace NAM tracker pro ios. Příručka platí pro verzi NAM trackeru 1.1.0 Příručka platí pro verzi NAM trackeru 1.1.0 Obsah: 1. K čemu je aplikace určena?....................................3 2. Přihlášení.............................................3 2.1. Seznam Objektů.........................................

Více

Svolávací systém Uživatelský manuál

Svolávací systém Uživatelský manuál Uživatelský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz Datum vydání: 14. srpna 2013 Číslo

Více

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. 2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových

Více

Konvertibilní Tablet STRUČNÁ PŘÍRUČKA 8085 LKB001X CJB1FH002ASA

Konvertibilní Tablet STRUČNÁ PŘÍRUČKA 8085 LKB001X CJB1FH002ASA V Konvertibilní Tablet STRUČNÁ PŘÍRUČKA 8085 LKB001X CJB1FH002ASA Obsah 1 Začínáme... 1 1.1 Vzhled... 1 1.2 Nabíjení tabletu a klávesnice... 3 1.3 Vložení karet microsd a SIM... 4 1.4 Připojení k přístupovému

Více

Aplikace NAM tracker

Aplikace NAM tracker Obsah: 1. K čemu je aplikace určena?....................................3 2. Přihlášení.............................................3 2.1. Seznam Objektů (výchozí obrazovka)..............................

Více

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části

Více

Instalace pluginů pro formuláře na eportálu ČSSZ

Instalace pluginů pro formuláře na eportálu ČSSZ Instalace pluginů pro formuláře na eportálu ČSSZ Uživatelská příručka Aktualizováno: 10. 8. 2017 Obsah Instalace pluginů pro formuláře na eportálu ČSSZ... 1 Obsah... 2 1 Přehled změn v tomto dokumentu...

Více

Manuál pro obsluhu Webových stránek

Manuál pro obsluhu Webových stránek ResMaster Systems s.r.o. Truhlářská 1119/20, 110 00 Praha 1 Manuál pro obsluhu Webových stránek (Prosinec 2018) Jana Vítová, +420 225 388 130 2018 Obsah Úvod Webové stránky... 3 Slovník pojmů... 3 URL

Více

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 2. seminář 5.10.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře konfigurační soubory projektu, aktivity, základní události, životní cyklus aplikace, intenty a práce

Více

BALISTICKÝ MĚŘICÍ SYSTÉM

BALISTICKÝ MĚŘICÍ SYSTÉM BALISTICKÝ MĚŘICÍ SYSTÉM UŽIVATELSKÁ PŘÍRUČKA Verze 2.3 2007 OBSAH 1. ÚVOD... 5 2. HLAVNÍ OKNO... 6 3. MENU... 7 3.1 Soubor... 7 3.2 Měření...11 3.3 Zařízení...16 3.4 Graf...17 3.5 Pohled...17 1. ÚVOD

Více

Mapová aplikace HZS Ústeckého kraje

Mapová aplikace HZS Ústeckého kraje Mapová aplikace HZS Ústeckého kraje Stručný návod Tato aplikace vznikla z důvodu potřeby prezentace geografických dat HZS Ústeckého kraje a dalších poskytovatelů dat v jednotné mapové aplikaci. Dalším

Více

KMI / TMA Tvorba mobilních aplikací

KMI / TMA Tvorba mobilních aplikací KMI / TMA Tvorba mobilních aplikací 2. seminář 5.10.2018 ZS 2017/2018 STŘEDA 13:15-15:45 OBSAH SEMINáře konfigurační soubory projektu, aktivity, základní události, životní cyklus aplikace, intenty a práce

Více

Nový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a. Strana 1 z 9

Nový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a.   Strana 1 z 9 Nový design ESO9 E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a 2 2 1 4 1 0 0, P r a h a Strana 1 z 9 Úvod... 3 Popis změn... 4 Horní lišta... 4 Strom činností... 5 Prostřední rám... 7 Horní lišta...

Více

Používání u a Internetu

Používání  u a Internetu Používání e-mailu a Internetu Je pro vás systém Windows 7 nový? I když má tento systém mnoho společného s verzí systému Windows, kterou jste používali dříve, můžete potřebovat pomoc, než se v něm zorientujete.

Více

GPS Loc. Uživatelský manuál. webové rozhraní. pro online přístup do systému GPS Loc přes webové uživatelské rozhraní app.gpsloc.eu

GPS Loc. Uživatelský manuál. webové rozhraní. pro online přístup do systému GPS Loc přes webové uživatelské rozhraní app.gpsloc.eu GPS Loc webové rozhraní Uživatelský manuál pro online přístup do systému GPS Loc přes webové uživatelské rozhraní app.gpsloc.eu Webové rozhraní GPS Loc je virtuální místo na internetu, kde můžete sledovat

Více

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice

Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice Strategie ochrany před negativními dopady povodní a erozními jevy přírodě blízkými opatřeními v České republice Návod k prezentačnímu mapovému portálu Obsah: 1. Úvod... 3 2. Obecná část mapového portálu...

Více

Uživatelská příručka T UC-One pro windows

Uživatelská příručka T UC-One pro windows Co je to T UC-One? T UC-One poskytuje koncovým uživatelům jednotnou komunikaci (UC) skrz všední mobily (tablety a mobilní telefony) a počítačové platformy (počítače a notebooky) včetně Windows, Mac, ios

Více

Moje Cisco Nejčastější dotazy

Moje Cisco Nejčastější dotazy 1. Co je Moje Cisco? Moje Cisco umožňuje mobilní, přizpůsobitelné zobrazení vašich oblíbených informací na webu Cisco.com. 2. Jak otevřít stránku Moje Cisco? Moje Cisco lze otevřít dvěma způsoby: Rozbalovací

Více

gdmss Lite Android DVR Mobile Client Návod k obsluze aplikace

gdmss Lite Android DVR Mobile Client Návod k obsluze aplikace gdmss Lite Android DVR Mobile Client Návod k obsluze aplikace Pouze pro telefony se systémem Android Obsah 1. VŠEOBECNÉ INFORMACE... 3 1.1 Úvod... 3 1.2 Funkce... 3 1.3 Technické požadavky na provoz aplikace...

Více

Tvorba kurzu v LMS Moodle

Tvorba kurzu v LMS Moodle Tvorba kurzu v LMS Moodle Před počátkem práce na tvorbě základního kurzu znovu připomínám, že pro vytvoření kurzu musí být profil uživatele nastaven administrátorem systému minimálně na hodnotu tvůrce

Více

D2 - GUI design. Radek Mečiar 28.3.2014

D2 - GUI design. Radek Mečiar 28.3.2014 D2 - GUI design Radek Mečiar 28.3.2014 1 Úvod Zvolená platforma: Android Verze: 4.x Nástroj pro kreslení: Pencil Platformu a verzi jsem zvolil, protože je v současnosti nejpoužívanější. Informace o standardu

Více

Zpravodaj. Uživatelská příručka. Verze

Zpravodaj. Uživatelská příručka. Verze Zpravodaj Uživatelská příručka Verze 02.01.02 1. Úvod... 3 2. Jak číst tuto příručku... 4 3. Funkčnost... 5 3.1. Seznam zpráv... 5 4. Ovládání programu... 6 4.1. Hlavní okno serveru... 6 4.2. Seznam zpráv...

Více

MATURITNÍ PRÁCE dokumentace

MATURITNÍ PRÁCE dokumentace MATURITNÍ PRÁCE dokumentace Jídelníček SŠIEŘ pro Android Martin Bartoň školní rok: 2012/2013 obor: třída: Počítačové systémy PS4.A ABSTRAKT Práce je zaměřená na problematiku tvorby Android aplikací,

Více

Mapa Česka: www.mapa-ceska.cz

Mapa Česka: www.mapa-ceska.cz Mapa Česka: www.mapa-ceska.cz Mapový portál Mapa Česka, který je dostupný na internetové adrese www.mapa-ceska.cz, byl vytvořen v roce 2014 v rámci bakalářské práce na Přírodovědecké fakultě Univerzity

Více

Programátorská příručka

Programátorská příručka KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro

Více

Jazz Server osobní nastavení uživatele

Jazz Server osobní nastavení uživatele Jazz Server osobní nastavení uživatele Změněno kým Datum RTC verze Verze dokumentu Popis Jan Boháč 10. 2. 2010 2.0.0 1.0 Vytvoření dokumentu Tento dokument popisuje činnosti, které musí každý uživatel

Více

Naším cílem je Vaše spokojenost...

Naším cílem je Vaše spokojenost... Vážení zákazníci, Naším cílem je Vaše spokojenost... blahopřejeme Vám, že jste se rozhodli pro nákup nové telefonní ústředny řady ATEUS - NETSTAR od českého výrobce 2N TELEKOMUNIKACE a.s. Současně Vás

Více

Bc. Martin Majer, AiP Beroun s.r.o.

Bc. Martin Majer, AiP Beroun s.r.o. REGISTR DIGITALIZACE HISTORICKÝCH FONDŮ (RDHF) A DIGITÁLNÍCH KONKORDANCÍ (DK) Návrh uživatelského rozhraní klientských aplikací verze 1.0 Bc. Martin Majer, AiP Beroun s.r.o. 28.11.2016-1 - Obsah 1 Seznam

Více

Předpoklady správného fungování formulářů

Předpoklady správného fungování formulářů Předpoklady správného fungování formulářů Uživatelská příručka Aktualizováno: 19. 2. 2018 Obsah 1 Úvod... 3 2 Systémové požadavky... 3 3 Práce s přílohami... 3 4 MS Internet Explorer... 3 4.1 Instalace

Více

Už ivatelska dokumentace

Už ivatelska dokumentace Už ivatelska dokumentace Aplikace Portál úspěšných projektů je určena k publikování informací o projektech realizovaných za přispění některého z Operačních programů v gesci Ministerstva vnitra České republiky.

Více

Nemocnice. Prvotní analýza a plán projektu

Nemocnice. Prvotní analýza a plán projektu Nemocnice Projekt do předmětu AIS Prvotní analýza a plán projektu Lukáš Pohl, xpohll00, xkosti03 Jan Novák, xnovak79 2009/2010 1 Neformální specifikace FN potřebuje informační systém, který bude obsahovat

Více

ELEKTRONICKÉ PODÁNÍ OBČANA

ELEKTRONICKÉ PODÁNÍ OBČANA Strana č. 1 ELEKTRONICKÉ PODÁNÍ OBČANA NÁVOD NA VYPLŇOVÁNÍ A ODESLÁNÍ FORMULÁŘŮ IČ: 63078236, DIČ: CZ63078236, OR: MS v Praze, oddíl B, vložka 3044 Strana 1 / 13 Strana č. 2 1 Obsah 1 Obsah... 2 2 Úvod...

Více

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop

Téma 1: Práce s Desktop. Téma 1: Práce s Desktop Téma 1: Práce s Desktop 1 Teoretické znalosti V této kapitole zjistíte, co skrývají pojmy jako Desktop, GNOME, KDE, Metacity Window Manager, Nautilus a Konqueror. Desktop neboli pracovní plocha patří mezi

Více

Obslužný software. PAP ISO 9001

Obslužný software.  PAP ISO 9001 Obslužný software PAP www.apoelmos.cz ISO 9001 červen 2008, TD-U-19-20 OBSAH 1 Úvod... 4 2 Pokyny pro instalaci... 4 2.1 Požadavky na hardware...4 2.2 Postup při instalaci...4 3 Popis software... 5 3.1

Více

Důležité informace o produktu

Důležité informace o produktu Začněte zde Copyright 2013 Hewlett-Packard Development Company, L.P. Windows je ochranná známka společnosti Microsoft Corporation registrovaná v USA. Informace uvedené v této příručce se mohou změnit bez

Více

45 Plánovací kalendář

45 Plánovací kalendář 45 Plánovací kalendář Modul Správa majetku slouží ke tvorbě obecných ročních plánů činností organizace. V rámci plánu je třeba definovat oblasti činností, tj. oblasti, ve kterých je možné plánovat. Každá

Více

Technologické postupy práce s aktovkou IS MPP

Technologické postupy práce s aktovkou IS MPP Technologické postupy práce s aktovkou IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Technologické postupy práce

Více

Reliance 3 design OBSAH

Reliance 3 design OBSAH Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních

Více

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5 Rejstřík Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5 Úvod Správcovská aplikace slouží k vytvoření vstupního a zašifrovaného souboru pro odečtovou

Více

ANETE, spol. s r.o. MobilKredit

ANETE, spol. s r.o.   MobilKredit ANETE, spol. s r.o. www.anete.com MobilKredit 2016 Obsah 1 Přístup do stravovacího systému pomocí chytrého telefonu... 3 2 Instalace aplikace... 3 3 Uživatel a heslo... 4 3.1 Identifikace uživatele...

Více

OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

OPERAČNÍ SYSTÉM. základní ovládání. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel OPERAČNÍ SYSTÉM základní ovládání Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel Pár otázek na začátek popište k čemu se používá počítač v jakých oborech lidské činnosti se využívá počítačů?

Více

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor ) Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor ) DATASYS s.r.o., Jeseniova 2829/20, 130 00 Praha 3 tel.: +420225308111, fax: +420225308110 www.datasys.cz Obsah

Více

Úvod do počítačových sítí

Úvod do počítačových sítí Úvod do počítačových sítí Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: středa, 3 4 Obor: INIB INF E-mail: jtichava@students.zcu.cz Datum odevzdání: 19.12.06 Základní charakteristika Jednoduchá

Více

InsideBusiness Payments CEE

InsideBusiness Payments CEE InsideBusiness Payments CEE Referenční příručka k novému vzhledu Přístupová cesta do střední a východní Evropy InsideBusiness Payments CEE Potřebujete pohodlný a bezproblémový přístup k úplné nabídce služeb

Více

WR Reality. Web Revolution. Uživatelský manuál administračního rozhraní

WR Reality. Web Revolution. Uživatelský manuál administračního rozhraní WR Reality Web Revolution Uživatelský manuál administračního rozhraní Web Revolution s. r. o. 2010 WR Reality Administrace uživatelský manuál Praktický průvodce administrací webové aplikace WR Reality

Více

TELEFONNí LiNKA PREMiUM PRŮVODCE APLIKACí T UC-ONE - PC

TELEFONNí LiNKA PREMiUM PRŮVODCE APLIKACí T UC-ONE - PC TELEFONNí LiNKA PREMiUM PRŮVODCE APLIKACí T UC-ONE - PC úvod Sjednocená komunikace představuje ideální řešení pro společnosti, které chtějí zvýšit svou efektivitu a využít komplexní řešení pro pokrytí

Více

Dokumentace k produktu IceWarp Notifikační nástroj

Dokumentace k produktu IceWarp Notifikační nástroj Dokumentace k produktu IceWarp Notifikační nástroj Notifikační nástroj umožňuje propojit pracovní stanicí s aplikací IceWarp Web klient. Kromě funkcí pro upozorňování na nové události je pomocí ní možné

Více

Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player.

Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player. Návod na ovládání veřejné mapové aplikace: Generel cyklodopravy Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player. Logo, název Panel nástrojů Odkazy Vrstvy

Více

SMTPServer - Příručka

SMTPServer - Příručka Obsah Požadavky na systém... 2 Použití... 2 Proč vlastní SMTPServer... 2 Koncepce tohoto SMTPServeru... 2 Instalace SMTPServeru... 2 Odinstalování SMTPServeru... 6 Jak tento SMTPServer pracuje... 7 Stavy

Více

Programové vybavení počítačů operační systémy

Programové vybavení počítačů operační systémy Programové vybavení počítačů operační systémy Operační systém Základní program, který oživuje hardware a poskytuje prostředí pro ostatní programy Řídí využití procesoru, síťovou komunikaci, tisk, ovládá

Více

LAN se používá k prvnímu nastavení Vašeho DVR a když potřebujete nastavit síť na Vašem DVR pro používání po internetu.

LAN se používá k prvnímu nastavení Vašeho DVR a když potřebujete nastavit síť na Vašem DVR pro používání po internetu. Návod Video Viewer 1.9.9 1 Dodávaný licencovaný software Následující stránky popisují nejpoužívanější funkce software Video Viewer. Podrobnosti o softwaru a jeho nastavení, najdete v rozšířené příručce,

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

Citrix klient a OneTimePass moje.cpas.cz. Uživatelský návod pro interní uživatele České pojišťovny a.s.

Citrix klient a OneTimePass moje.cpas.cz. Uživatelský návod pro interní uživatele České pojišťovny a.s. Citrix klient a OneTimePass moje.cpas.cz Uživatelský návod pro interní uživatele České pojišťovny a.s. 1 WINDOWS 3 1.1 INSTALACE 3 1.2 PŘIHLÁŠENÍ 10 2 MAC 14 2.1 INSTALACE 14 2.2 PŘIHLÁŠENÍ 17 3 IPAD,

Více

plussystem Příručka k instalaci systému

plussystem Příručka k instalaci systému plussystem Příručka k instalaci systému Tato příručka je určena zejména prodejcům systému a případně koncovým uživatelům. Poskytuje návod, jak provést potřebná nastavení komponent. ITFutuRe s.r.o. 26.2.2015

Více

Správa obsahu webové platformy

Správa obsahu webové platformy Správa obsahu webové platformy www.dobrovolnik.net Bc. Irina Kushnareva PRAHA 2019 Tento dokument byl vypracován v rámci projektu Dobrovolnictví ve veřejné správě, reg. č. CZ.03.3.X/0.0/0.0/15_018/0005458,

Více

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Nastavení provozního prostředí webového prohlížeče pro aplikaci Nastavení provozního prostředí webového prohlížeče pro aplikaci IS DP Informační systém o datový prvcích verze 2.00.00 pro uživatele vypracovala společnost ASD Software, s.r.o. dokument ze dne 23. 06.

Více

MANUÁL K MOBILNÍ APLIKACI

MANUÁL K MOBILNÍ APLIKACI MANUÁL K MOBILNÍ APLIKACI ÚVOD Aplikace Všímálek je určena pro zaznamenávání a nahlašování závad na území města Chrudim prostřednictvím mobilních zařízení (mobilní telefon, tablet). K dispozici je pro

Více

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2 Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2 Sada Fiery Extended Applications Package (FEA) v4.2 obsahuje aplikace Fiery pro provádění úloh souvisejících se serverem

Více

Odpadové hospodářství v ORP Ústí nad Labem

Odpadové hospodářství v ORP Ústí nad Labem mapová aplikace Odpadové hospodářství Návod na ovládání veřejné mapové aplikace: Odpadové hospodářství v ORP Ústí nad Labem Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul

Více

Uživatelská příručka

Uživatelská příručka B2B CENTRUM a.s. 3.2011 Obsah Začínáme... 3 Přihlášení a zapomenuté heslo... 3 Vytvoření uživatele... 3 Editace osobních údajů... 5 Vkládání souborů... 6 Elektronický podpis... 8 Stavební deník... 11 Identifikační

Více

Software602 FormApps Server

Software602 FormApps Server Software602 FormApps Server Instalace pluginů pro elektronické formuláře Aktualizováno: 13. 1. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID

Více

WNC::WebNucleatCreator

WNC::WebNucleatCreator Tomáš Dlouhý WNC::WebNucleatCreator Verze: 5.1 1 Obsah Obsah...2 Úvod...3 Novinky...3 Požadavky...4 Instalace...4 Přihlášení se do WNC...6 Moduly...7 Modul Blog...7 Modul Categories...8 Modul News...8

Více

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12 O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10 Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12 Poděkování 15 Earle Castledine 15 Myles Eftos 15 Max Wheeler

Více

1. Úvod. 2. CryptoPlus jak začít. 2.1 HW a SW předpoklady. 2.2 Licenční ujednání a omezení. 2.3 Jazyková podpora. Požadavky na HW.

1. Úvod. 2. CryptoPlus jak začít. 2.1 HW a SW předpoklady. 2.2 Licenční ujednání a omezení. 2.3 Jazyková podpora. Požadavky na HW. CryptoPlus KB verze 2.1.2 UŽIVATELSKÁ PŘÍRUČKA říjen 2013 Obsah Obsah 2 1. Úvod 3 2. CryptoPlus jak začít... 3 2.1 HW a SW předpoklady... 3 2.2 Licenční ujednání a omezení... 3 2.3 Jazyková podpora...

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Newsletter RIBTEC automatické aktualizace Praktická novinka v servisu a podpoře k softwaru RIBTEC od verzí 15.0

Newsletter RIBTEC automatické aktualizace Praktická novinka v servisu a podpoře k softwaru RIBTEC od verzí 15.0 1.1 Automatické aktualizace RIBTEC Pomocí nového Prostředí automatických aktualizací můžete udržovat Váš software stavební statiky RIBTEC od verzí 15.0 a vyšších na aktuálním stavu. Tento systémový nástroj

Více

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator APS Web Panel Rozšiřující webový modul pro APS Administrator Webové rozhraní pro vybrané funkce programového balíku APS Administrator Instalační a uživatelská příručka 2004 2016,TECH FASS s.r.o., Věštínská

Více

Vzdálené připojení do sítě ČEZ VPN Cisco AnyConnect

Vzdálené připojení do sítě ČEZ VPN Cisco AnyConnect Vzdálené připojení do sítě ČEZ VPN Cisco AnyConnect Návod pro instalaci potřebných komponent a jejich nastavení pro vzdálené připojení pomocí VPN Cisco Any Connect v prostředí OS Android ( chytré mobilní

Více

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3 Zpracoval: Zabořil Jaroslav U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 12.9.2017 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Zabořil Jaroslav www.eso9.cz Dne: 27.6.2018 Obsah 1. ESO9 MAJETEK...

Více

GoClever Map 2.5 manuál

GoClever Map 2.5 manuál GoClever Map 2.5 manuál Obsah 1. Na dotyku záleží... 4 2. Navádění k lokaci... 5 3. Navigační okno... 7 3.1. Změna nastavení systému navigačního okna... 7 4. Hlavní vlastnosti GoClever Map 2.5... 8 5.

Více

NÁVOD NA POUŽÍVÁNÍ SYSTÉMU ARIADNE 3 Strana 1 1 Úvod Systém Ariadne3 je systém pro správu obsahu (CMS - "Content Management System"). Umožňuje pomocí jednoduchého a intuitivního uživatelského rozhraní

Více

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6 APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...

Více

Demoprojekt Damocles 2404

Demoprojekt Damocles 2404 Vizualizační a řídicí systém kategorie SCADA/HMI Demoprojekt Damocles 2404 (časově omezený demoprojekt pro zařízení Damocles 2404 společnosti HW group s.r.o.) Verze systému: 3.7.1.9 Poslední revize dokumentu:

Více

Android 100% Java telefon. Petr Musil

Android 100% Java telefon. Petr Musil Android 100% Java telefon Petr Musil 1 Vytvoření aplikace Prostředí pro vývoj Android SDK http://developer.android.com/sdk/index.html ADT plugin pro Eclipse http://developer.android.com/sdk/eclipse-adt.html

Více

MONITORING OBCHODNÍCH PARTNERŮ

MONITORING OBCHODNÍCH PARTNERŮ MONITORING OBCHODNÍCH PARTNERŮ NÁVOD PRO APLIKACI 1 Obsah: 1. Prvotní spuštění aplikace Část monitoring insolvenčního rejstříku 2. Hlavní okno 3. Monitorované subjekty 3.1 Skupiny monitorovaných subjektů

Více

BRICSCAD V15. Licencování

BRICSCAD V15. Licencování BRICSCAD V15 Licencování Protea spol. s r.o. Makovského 1339/16 236 00 Praha 6 - Řepy tel.: 235 316 232, 235 316 237 fax: 235 316 038 e-mail: obchod@protea.cz web: www.protea.cz Copyright Protea spol.

Více

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž. Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž. Obsah 1 Úvod... 1 2 Návod pro připojení do webového rozhraní... 1 2.1 Připojení kamery k WiFi síti... 4 2.2 Postup nastavení

Více

Mobilní aplikace Novell Filr Stručný úvod

Mobilní aplikace Novell Filr Stručný úvod Mobilní aplikace Novell Filr Stručný úvod Únor 2016 Podporovaná mobilní zařízení Aplikace Novell Filr je podporována v následujících mobilních zařízeních: Telefony a tablety se systémem ios 8 novějším

Více

Návod k využívání interaktivních funkcí

Návod k využívání interaktivních funkcí Návod k využívání interaktivních funkcí Vážení zákazníci, těší nás, že jste se rozhodli využívat výhody Interaktivní TV. Svoji Interaktivní TV budete ovládat přes velmi jednoduchou a intuitivní aplikaci.

Více

Návod na instalaci programu evito Win Service. Instalace programu evito Win Service

Návod na instalaci programu evito Win Service. Instalace programu evito Win Service Návod na instalaci programu evito Win Service USB ANT+ je zařízení určené pro přenos naměřených hodnot prostřednictvím PC. Zajišťuje komunikaci ve chvíli, kdy je vloženo do USB slotu v počítači. Podmínkou

Více

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB Správce výrobce verze 1.0 1 z 24 Obsah 1. Seznam zkratek... 3 2. Přehled změn manuálu... 3 3. Úvod... 4 4. Popis Registru OZO... 5 4.1. Uživatelské

Více

Kontingenční tabulky v MS Excel 2010

Kontingenční tabulky v MS Excel 2010 Kontingenční tabulky v MS Excel 2010 Autor: RNDr. Milan Myšák e-mail: milan.mysak@konero.cz Obsah 1 Vytvoření KT... 3 1.1 Data pro KT... 3 1.2 Tvorba KT... 3 2 Tvorba KT z dalších zdrojů dat... 5 2.1 Data

Více

Část 1 - Začínáme. Instalace

Část 1 - Začínáme. Instalace Obsah Část 1 - Začínáme... 4 Instalace... 4 Nastavení domovské obrazovky... 7 Základní nastavení kanceláře... 9 První kroky s Kleosem... 11 Moje první kauza... 15 2 3 Část 1 - Začínáme Instalace Kleos

Více

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK Systém WorkWatch je určen pro malé a střední firmy, které se zabývají službami nebo zakázkovou výrobou. Zajistí dokonalý přehled o všech zakázkách a jejich rozpracovanosti.

Více

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina Program LibTex Uživatelská příručka 1 Obsah Program Textilní Design... 1 Uživatelská příručka... 1 1 Obsah... 2 2 Rejstřík obrázků... 2 3 Technické požadavky... 3 3.1 Hardware... 3 3.1.1 Procesor... 3

Více

Interaktivní funkce Selfnet TV

Interaktivní funkce Selfnet TV Interaktivní funkce Selfnet TV Uživatelská příručka Vážení zákazníci, těší nás, že jste se rozhodli využívat výhody interaktivní televize Selfnet TV. Svoji Selfnet TV budete ovládat přes velmi jednoduchou

Více

Redakční systém Joomla. Prokop Zelený

Redakční systém Joomla. Prokop Zelený Redakční systém Joomla Prokop Zelený 1 Co jsou to red. systémy? Redakční systémy (anglicky Content Management System - CMS) jsou webové aplikace používané pro snadnou správu obsahu stránek. Hlavním cílem

Více

Modul IRZ návod k použití

Modul IRZ návod k použití Modul IRZ návod k použití Verze: 2 Datum: 26. 2. 2016 Tento dokument představuje stručný návod na použití modulu IRZ v programu EVI 8. Modul IRZ je určen na evidenci odpadů pro IRZ provozovny a hlášení

Více

CMS. Centrální monitorovací systém. Manuál

CMS. Centrální monitorovací systém. Manuál Centrální Monitorovací Systém manuál CMS Centrální monitorovací systém Manuál VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 630 (pracovní doba 8.00 16:30)

Více

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB

ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB Odborně způsobilá osoba verze 1.0 1 z 19 Obsah 1. Seznam zkratek...3 2. Přehled změn manuálu...3 3. Úvod...4 4. Popis Registru OZO...5 4.1.

Více

MHD v mobilu. Instalace a spuštění. Co to umí

MHD v mobilu. Instalace a spuštění. Co to umí MHD v mobilu Aplikace MHD v mobilu umí zobrazovat offline (bez nutnosti připojení) jízdní řády MHD na obrazovce mobilního telefonu. Aplikaci pro konkrétní město je možné stáhnout z našich stránek zdarma.

Více

IMAporter Mobile Key Aplikace Mobile Key pro čtečky RSW.04 vybavené technologií NFC a BLE

IMAporter Mobile Key Aplikace Mobile Key pro čtečky RSW.04 vybavené technologií NFC a BLE IMAporter Mobile Key Aplikace Mobile Key pro čtečky RSW.04 vybavené technologií NFC a BLE Uživatelská příručka Verze: 1.5 Karel Kalivoda Datum: 16. 2. 2018 1/14 1 Identifikační aplikace Mobile Key IMAporter

Více