ZÁVĚREČNÁ STUDIJNÍ PRÁCE dokumentace

Podobné dokumenty
DATA ARTICLE. AiP Beroun s.r.o.

KIV/PIA Semestrální práce

KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17

Veřejné. Aplikace EP2W. Uživatelská příručka pro externího uživatele

Nutné kroky a nastavení prohlížeče pro přístup do systému REGIS. Autor: Ing. Marek Pučelík

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Helios RED a Internetový obchod

Návod k administraci e-learningové platformy

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

SMART GATE webové a aplikační ovládací rozhraní zařízení ESIM120

Manuál pro administrátory. Manuál. Verze pro administrátory

BankKlient. FAQs. verze 9.50

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

Manuál administrátora FMS...2

MATURITNÍ PRÁCE dokumentace

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

MapleCloud a jeho použ ití. Vladimír Žák

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Redakční systém. SimpleAdmin Beta. Jan Shimi Šimonek

Malý průvodce Internetem

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ

Uživatelská příručka pro program

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Uživatelský manuál. A3600 DL ( Data Download)

ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4

[APLIKACE PRO PŘEHRÁVÁNÍ VIDEA - PROJEKT MIAMI]

TouchGuard Online pochůzkový systém

Individuální projekt z předmětu webových stránek Anketa Jan Livora

Vývoj, výroba, prodej a montáž docházkových a identifikačních systémů. Docházka 3000 Personalistika

LuxRiot uživatelský manuál verze Uživatelský manuál Verze , Stasa s.r.o.,pokorného 14, , PRAHA

Mobilní aplikace Novell Filr Stručný úvod

Statistica, kdo je kdo?

Část 1 Moderní JavaScript

Obsah. Úvod Co je KORG KONTROL Editor?... 2 Požadavky na systém... 2 Instalace... 3

17. července :51 z moravec@yahoo.com

Nástroj WebMaker TXV první vydání Únor 2009 změny vyhrazeny

Studentská tvůrčí a odborná činnost STOČ 2015

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

Generování žádostí o kvalifikovaný certifikát a instalace certifikátu Uživatelská příručka pro prohlížeč Internet Explorer

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

- 1 - Smlouva o dílo. uzavřená podle 536 a násl. obchodního zákoníku v účinném znění

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

VYUŽITÍ REGIONÁLNÍCH FUNKCÍ A WWW ROZHRANÍ V INTEGROVANÉM KNIHOVNÍM SYSTÉMU KPWINSQL

Manuál aplikace Inkaso pohledávek

www prezentace restaurace

Sentech AL 7000 C. Instalace a ovládání programu BREATH

10. Editor databází dotazy a relace

Návrh a tvorba WWW stránek 1/14. PHP a databáze

PŘESTUP/HOSTOVÁNÍ HRÁČE MANUÁL

Jak začít s ed MARKETEM

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Obsah. Seznam možných testů. Termíny úkolů

Uživatelský manuál pokladního systému Cash OnLine

Propojení ekonomického systému POHODA s e-shopem FastCentrik 3.0

SPZ Uživatelská příručka

Obsah. Rozdíly mezi systémy Joomla 1.0 a Systém Joomla coby jednička online komunity...16 Shrnutí...16

UŽIVATELSKÁ PŘÍRUČKA Import dat do Pohody Firmadat, s.r.o. 2015

WiFiS Uživatelská příručka Obsah

Uživatelský manuál Radekce-Online.cz

popis funkcí a nastavení (verze 2. 8) MILAN PASTOR DIS., ING. MICHAL KOPECKÝ

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika

MLE2 a MLE8. Datalogery událostí

Snadná úprava stránek, nemusím umět HTML, tvořím obsah téměř jako ve Wordu. Jak změnit obsah nástěnky: vpravo nahoře Nastavení zobrazených informací

LV5WDR Wireless Display Receiver Rychlá příručka

Filr 2.0 Uživatelská příručka k aplikaci Filr Web. Únor 2016

NÁVOD jak na webinář přes WizIQ

Mid Android M001, M002, M003

Windows 10 (5. třída)

NÁVRH A REALIZACE WWW PREZENTACE ČKR

Instalační manuál. 1. Instalace hardwaru

ADDAT HEAT Control - Návod k použití - verze 2.07 (firmware 1.44)

NÁVOD K ZAŘÍZENÍM PRO BEZDRÁTOVÝ PŘENOS ZVUKU A OBRAZU (Miracast)

Univerzita Palackého v Olomouci. Služby spojené s Active Directory

NÁVOD K POUŽITÍ SET-TOP-BOXU ARRIS VIP 1113

Point of View TAB-P731N- Android 4.0 Tablet PC. Čeština. Obsah

Uživatelská příručka

Přehled verzí aplikace WinTechnol

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

Fotogalerie pro redakční systém Marwel Obscura v. 2.0

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

1 Co je nového v aplikaci Filr 2.0 Desktop

Uživatelská příručka ISKP14+ pro Integrované nástroje: Žádost o podporu strategie ITI/IPRÚ

Na základě Business Targets autora Simona Greenalla, vydaných nakladatelstvím Macmillan Heinemann English Language Teaching (Oxford).

Zajištění kvality služby (QoS) v operačním systému Windows

První přihlášení do datové schránky krok za krokem

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Obsah. 1.1 Úvod do práce s autorským nástrojem ProAuthor 4

BIBLIOGRAFICKÉ CITACE SNADNO A RYCHLE PROSTŘEDNICTVÍM INTERNETU

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Obsah. Část I Začínáme s jazykem AppleScript

UŽIVATELSKÁ DOKUMENTACE. TS-ELDAx SMART TRUST electronic ARCHIVE Cloudové rozhraní

Databázový systém Matylda

1 Návod k instalaci školící databáze

Možnosti a využití linuxových přijímačů twin HD PVR se systémem Enigma2

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

CTUGuide (XXX-KOS) D1

SPORTONGO UŽIVATELSKÁ PŘÍRUČKA

1 of :27

Transkript:

ZÁVĚREČNÁ STUDIJNÍ PRÁCE dokumentace Dokumentační systém pro Android Marek Kovalčík Obor: Třída: Školní rok: 18-20-M/01 INFORMAČNÍ TECHNOLOGIE se zaměřením na počítačové sítě a programování IT4 2015/2016

PODĚKOVÁNÍ Rád bych poděkoval Mgr. Marku Lučnému za cenné rady, věcné připomínky a vstřícnost při konzultacích a vypracování závěrečné studijní práce. Prohlašuji, že jsem závěrečnou práci vypracoval samostatně a uvedl veškeré použité informační zdroje. Souhlasím, aby tato studijní práce byla použita k výukovým účelům na Střední průmyslové a umělecké škole v Opavě, Praskova 399/8. V Opavě 30. 12. 2015 podpis autora práce 2

ABSTRAKT Cílem tohoto projektu bylo vytvořit mobilní aplikaci pro platformu Android, která bude napsána v jazyce Java a bude komunikovat s databází MySQL umístěnou na vzdáleném serveru. Zvolená problematika byla řešena pomocí vývojového prostředí Android Studio. V řešení bylo použito několika PHP skriptů umístěných na webovém hostingu, které se napojují na danou databázi a obsah tabulek databáze vypisují do souboru JSON. Data z tohoto souboru jsou zpracovávána pomocí tříd a metod v Javě. Po zpracování souboru JSON se data zobrazují, dají se mazat, editovat a nechybí přidání nového záznamu s možností přidat obrázek skrze mobilní fotoaparát. Tyto možnosti se zobrazí až po úspěšném přihlášení registrovaného uživatele. Obrázky jsou převáděny do formátu BASE-64 a ukládány do databáze jako řetězec, díky čemuž se lépe pracuje s textovým souborem JSON. 3

OBSAH OBSAH... 4 ÚVOD... 6 1 TEORETICKÁ A METODICKÁ VÝCHODISKA... 7 1.1 SYSTÉM PRO SPRÁVU DOKUMENTŮ... 7 2 VYUŽITÉ TECHNOLOGIE... 8 2.1 ANDROID STUDIO & JAVA... 8 2.1.1 ANDROID STUDIO... 8 2.1.2 PROGRAMOVACÍ JAZYK JAVA... 8 2.2 DATABÁZE MYSQL & PHPMYADMIN... 8 2.3 PHP... 9 2.4 JSON... 9 2.5 EMULÁTORY... 10 3 ZPŮSOBY ŘEŠENÍ A POUŽITÉ POSTUPY... 11 3.1 DATABÁZE MYSQL... 11 3.1.1 STRUKTURA TABULEK... 11 3.2 PHP SKRIPTY... 11 3.2.1 PŘIPOJENÍ K DATABÁZI... 11 3.2.2 PŘIHLÁŠENÍ UŽIVATELE... 13 3.2.3 PŘIDÁNÍ ZÁZNAMU DO DATABÁZE... 13 3.2.4 EDITACE ZÁZNAMU V DATABÁZI... 13 3.2.5 SMAZÁNÍ ZÁZNAMU... 13 3.2.6 REGISTRACE UŽIVATELE... 13 3.3 ANDROID APLIKACE... 14 3.3.1 ANDROID SDK... 14 3.3.2 NAVIGAČNÍ MENU A FRAGMENTY... 15 3.3.3 ASYNCHRONNÍ PROGRAMOVÁNÍ... 17 3.3.4 PROPOJENÍ S DATABÁZÍ... 19 3.3.5 VÝPIS ZÁZNAMŮ... 20 3.3.6 PŘIDÁNÍ NOVÉHO ZÁZNAMU... 21 3.3.7 EDITACE ZÁZNAMU... 22 3.3.8 SMAZÁNÍ ZÁZNAMU... 22 3.3.9 FORMÁT BASE-64... 23 3.3.10 NAHRÁVÁNÍ OBRÁZKU Z GALERIE... 23 3.3.11 POŘÍZENÍ OBRÁZKU FOTOAPARÁTEM... 25 3.3.12 GRAFICKÁ ČÁST PROGRAMU XML zobrazení... 26 4

3.4 SPUŠTĚNÍ APLIKACE... 26 3.4.1 SPUŠTĚNÍ APLIKACE V EMULÁTORU... 26 3.4.2 VYGENEROVÁNÍ INSTALAČNÍHO SOUBORU PRO ANDROID... 26 4 VÝSLEDKY ŘEŠENÍ... 28 ZÁVĚR... 29 SEZNAM POUŽITÝCH INFORMAČNÍCH ZDROJŮ... 30 4.1 LITERATURA... 30 4.2 ELEKTRONICKÁ MÉDIA... 30 5

ÚVOD Zadání pro svůj projekt jsem získal od svého učitele Mgr. Marka Lučného a Ing. Petra Grussmanna. Cílem projektu bylo vytvořit mobilní systém pro platformu Android napsanou v jazyce Java, který bude komunikovat s databází MySQL umístěnou na vzdáleném serveru a bude schopný po úspěšném přihlášení uživatele pracovat s daty v této databázi. Systém pro správu dokumentů (Document management system) by měl umět archivovat a spravovat dokumenty. V mém případě jde o dokumenty v grafické podobě (vyfotografované obrázky a papírové dokumenty). Nedílnou součástí tohoto systému je možnost přidání nového záznamu, možnost editace a smazání záznamu. Výsledkem této práce je spustitelná aplikace pro platformu operačního systému Android 3.0 a vyšší. Až na drobné nedostatky splňuje většinu funkcí, které jsem si stanovil na začátku práce na tomto projektu. Plně funkční jsou funkce autentifikace uživatel, přidávání, editace a mazání příspěvků. Nechybí možnost využití fotoaparátu nebo načítání grafických souborů z galerie na reálném zařízení. V první kapitole této práce bych rád poukázal na dosavadní poznatky k dané problematice, výběr metod a důvody jejich použití. Následně bych představil technologie, které jsem využíval při vytváření tohoto projektu. V další části popíši způsoby a použité postupy při práci a ve finální části této dokumentace bych rád popsal ještě výsledky řešení této aplikace. 6

1 TEORETICKÁ A METODICKÁ VÝCHODISKA 1.1 Systém pro správu dokumentů Správa dokumentů nebo také Systém pro správu dokumentů (Document management system (DMS) nebo Electronic Document management (EDM)), je počítačový systém určený ke správě elektronických dokumentů nebo digitalizovaných papírových dokumentů, tj. např. dokumentů převedených do digitální podoby skenováním. Jde o systém, který by měl ovládat vkládání dokumentů, jejich editaci, metapopisy, ale měl by také být schopen rozdělovat určitá přístupová práva dle jednotlivých uživatelů. Mezi další funkce systémů pro správu dokumentů by měla patřit jejich dohledatelnost (schopnost je správně a rychle vyhledat), dostupnost (data jsou uložená z nějakého centrálního zdroje, měla by být vhodně řešena redundance dat), dobrou ochranu a správnou validaci a následná archivace dat, která se zabývá například správným zálohováním. Každý systém pro správu dokumentů může vypadat jinak. Může se jednat o plně odladěný serverový systém, o aplikace webové prohlížeče, desktopovou aplikaci pro stolní počítače a notebooky nebo jednoduché mobilní verze těchto systému, jako v mém případě. Ale naprostá většina má společné cíle jako vytváření, ukládání a archivaci nějakých dokumentů. Mezi nejrozšířenější a nejpoužívanější DMS systémy patří Alfresco One. Jde vedoucí open-source dokumentační systém. Mezi další bych mohl uvést efilecabinet, docstar nebo ASITE. 7

2 VYUŽITÉ TECHNOLOGIE 2.1 ANDROID STUDIO & JAVA 2.1.1 ANDROID STUDIO Pro vytváření svého projektu jsem si zvolil vývojově prostředí (IDE) Android studio od tvůrců IntellJ IDEA. Přesněji řečeno jsem používal verzi 1.4.1. Jde o oficiální vývojářské studio určené pro vývoj aplikací přímo pro aplikace na mobilní platformu Android. Toto IDE používá programovací jazyk JAVA. Nabízí přehlednou strukturu projektu, kvalitní nápovědy při programování a podporu mnoha užitečných nástrojů (SDK manažer, integrovaný emulátor, apod.). Pro vytváření XML layoutů se hodí přehledný drag and drop (chyť a pusť) panel, který slouží k umisťování widgetů do náhledových stránek. 2.1.2 PROGRAMOVACÍ JAZYK JAVA Java je objektově orientovaný programovací jazyk. Také díky tomu, že je multiplatformní, se jedná o druhý nejpoužívanější programovací jazyk vůbec. Využívá se k programování desktopových aplikací, vývoji aplikací pro mobilní a různá zabudovaná zařízení i pro tvorbu programů pro čipové karty. Java je šířena jako opensource. 2.2 DATABÁZE MySQL & PHPMYADMIN Rozhodl jsem se využívat relační databáze MySQL, které v dnešní době podle mého názoru patří k nejrozšířenějším typům databází díky své jednoduchosti, spolehlivosti a dobré práci v kombinaci například s PHP skripty. K databázi MySQL se přistupuje pomocí jazyka SQL (Structured Query Language -> Strukturovaný dotazovací jazyk ). 8

K nástrojům databází MySQL patří velmi dobře známý phpmyadmin. Jde o webové prostředí pro správu databáze. MySQL databáze můžeme používat na lokálním přístroji skrze balíček XAMPP pro MS Windows nebo LAMP pro Linux. Umožní nám vytvářet databáze a spouštět lokální server pro testování aplikací. Pro svou androidovou aplikaci jsem používal MySQL databázi a phpmyadmin na vzdáleném serveru. Prostředí je téměř stejné jako na lokálním stroji. 2.3 PHP PHP je skriptovací jazyk určený především pro programování dynamických internetových stránek (tj. že stránky jsou interaktivní v ohledu na uživatele a nezobrazují pouze obsah jako statické stránky) a webových aplikací. Při použití PHP jsou tyto skripty prováděny na straně serveru. Návštěvníkovi těchto webových stránek je pak odesílána statická stránka v podobě HTML a CSS, která se zobrazí v jeho prohlížeči. PHP je velmi oblíbené mezi vývojáři pro svou jednoduchost a podobnost syntaxi s programovacími C, Pascal nebo Java. 2.4 JSON JavaScript Object Notation (JavaScriptový objektový zápis, JSON) je způsob zápisu dat nezávislý na počítačové platformě (multiplatformní), určený pro přenos dat, která mohou být organizována v objektech. Strukturu textového souboru JSON si můžeme vytvořit vlastní. Podporuje číslicové hodnoty (INT), hodnoty s plovoucí desetinnou čárkou (FLOAT), řetězce (STRING), ale také například metodu ano, ne (BOOLEAN, true, false). 9

Výše zmíněné PHP skripty umístěné na webovém hostingu jsem používal pro získání a správu dat v databázi, ale také pro vypsání těchto hodnot do soubor JSON, ze kterého jsem poté získával data do androidové aplikace v Javě. 2.5 EMULÁTORY Emulátor je program, který umožňuje běh programů na jiné platformě (architektuře, operačním systému), než pro kterou byly původně vytvořeny. Tuto problematiku můžu popsat na tomto praktickém příkladu. Vytvářel jsem mobilní aplikaci pro platformu Android, ale abych nemusel neustále generovat instalační soubor a přenášet ho na reálné zařízení a tam ho teprve spustit a testovat, tak jsem využil emulátoru. Aplikace se mi po spuštění v Android studiu okamžitě přenesla do spuštěného emulátoru, který simuloval prostředí operačního systému Android a mohl sem ji takto testovat a ladit přímo v počítači. Ze začátku jsem využíval populární emulátor Genymotion. Vyzkoušel jsem mnoho dalších emulátorů jako třeba Xamarin, Windroy nebo Driod4X. Po mnoha pokusech jsem došel až k emulátoru BlueStacks. Nakonec jsem zůstal u testování aplikací v tomto emulátoru, protože bezproblémově podporoval připojení k internetu a databázím, využití kamery a nahrávání z galerie. 10

3 ZPŮSOBY ŘEŠENÍ A POUŽITÉ POSTUPY 3.1 DATABÁZE MYSQL 3.1.1 STRUKTURA TABULEK Pro tuto aplikaci jsem zvolil jednoduchou strukturu databáze o dvou tabulkách. První tabulka pod názvem pic_data obsahuje pět polí (id, název dokumentu, datum přidání, samotný obrázek ve formátu BASE64 a propojení s tabulkou uživatelů). Druhá tabulka pod názvem pic_user obsahuje 3 pole (id uživatel, uživatelské jméno a heslo). Obrázek 1. Struktura databázové tabulky pic_data Obrázek 2. Struktura databázové tabulky pic_user 3.2 PHP SKRIPTY 3.2.1 PŘIPOJENÍ K DATABÁZI Skrze PHP skripty uvedené níže se bude aplikace pro Android napsaná v Javě schopna připojit k vzdálené databázi provádět s ní jednotlivé úkony. Jak se bude 11

připojovat tato aplikace na PHP skripty budou uvedeny v kapitole 3.3 Android aplikace. Připojení k databázi řeším PHP třídou v souboru config.inc.php umístěném na webhostingu, ve které jsou uložené údaje pro přístup k databázi a navazuje se v ní spojení s touto databází. V deklarované proměnné $options se provede nastavení kódování na UTF-8. Obrázek 3. Připojení ke vzdálené databázi 12

3.2.2 PŘIHLÁŠENÍ UŽIVATELE Přihlášení uživatele skrze PHP jsem vyřešil v souboru login.php, který je umístěn ve stejném adresáři jako config.inc.php. Na začátku souboru se načte konfigurační soubor pro přístup k databázi. Dále se načtou data z tabulky pic_user a shodují-li se, načte se na stránku výpis dat za databáze jako výpis formátu JSON. Využit je zde základní příkaz jazyka SQL SELECT. 3.2.3 PŘIDÁNÍ ZÁZNAMU DO DATABÁZE Tento PHP skript add.php funguje obdobně jako přihlášení uživatele. Po úspěšném připojení k databázi je možné přidat záznam do databáze. Využit je zde jeden ze základních příkazů jazyka SQL INSERT INTO. 3.2.4 EDITACE ZÁZNAMU V DATABÁZI Tento PHP skript update.php opět funguje obdobně jako skript na přidání záznamu. Po úspěšném připojení k databázi je možné editovat záznam v databázi. Využit je zde jeden ze základních příkazů jazyka SQL UPDATE. 3.2.5 SMAZÁNÍ ZÁZNAMU Další je PHP skript delete.php opět umístěný ve sejné složce s ostatními PHP skripty. Po úspěšném připojení k databázi je možno smazat záznam z databáze. Je zde využít jeden ze základních příkazů jazyka SQL DELETE. 3.2.6 REGISTRACE UŽIVATELE Tuto problematiku jsem řešil vytvořením PHP skriptů registration.php a pridavani.php. Oba tyto soubory jsou uložené na webhostingu. Uživatel se k nim dostane skrze tlačítko Registrovat na úvodní (logovací) obrazovce mobilní aplikace. Příklad odkazu na webové stránky skrze tlačítko přikládám níže. 13

Obrázek 4. Tlačítko pro registraci uživatele Obrázek 5. Funkce pro odkaz na webové stránky po kliknutí Po úspěšné registraci je do databáze skrze výše zmíněné PHP skripty přidán uživatel (jméno a heslo) a jeden ukázkový záznam. 3.3 ANDROID APLIKACE 3.3.1 ANDROID SDK Android SDK je kompletní vývojářský balíček obsahující potřebné soubory pro jednotlivé verze platformy Android. Předtím, než budete moci nějakou aplikaci vůbec naprogramovat, musíte mít staženy tyto balíčky. Android SDK obsahuje ještě další pomocné knihovny a pluginy, jako například pro připojení reálného zařízení a testování aplikací na něm. 14

Obrázek 6. SDK manažer 3.3.2 NAVIGAČNÍ MENU A FRAGMENTY V tomto projektu jsem využíval oblíbené navigační menu. Jde o vysunovací menu z levé strany obrazovky. Toto menu můžeme implementovat do aplikace už při jejím založení, kdy při výběru aktivity zatrhneme Navigation Drawer Activity. Po vytvoření projektu s touto aktivitou se nám do projektu přidá nová třída NavigationDrawerFragment a nová XML layout fragment_navigation_drawer.xml. Dále je toto menu třeba naprogramovat, aby docházelo k přepínání pohledů (XML layout). Fragmenty jsou komponenty, které běží v kontextu Activity. Označují nový přístup ke tvorbě uživatelského rozhraní, kdy mezi Activity a View vstupuje ještě 15

jedna vrstva, a to Fragment. Každá Activity může obsahovat libovolné množství Fragmentů. Activity může volat jejich metody a nastavovat jim posluchače událostí. Musíme tedy naprogramovat metodu, která bude obsahovat komponentu switch a bude v různých případech odkazovat na další třídu, ve které bude uložena informace o změně XML zobrazení. Obrázek 7. Switch navigačního menu 16

Obrázek 8. Změna XML layout ve třídě Help Stejným způsobem se dá přidat další XML layout soubory do navigační menu. Výsledek by měl být takový, že při každém vybrání sekce v navigačním menu bude uživateli zobrazena nová stránka. 3.3.3 ASYNCHRONNÍ PROGRAMOVÁNÍ Asynchronní programování jsem využíval při komunikaci s databází. Pokud je úlohou aplikační logiky načítat údaje z webové služby (v mém případě přístup k PHP skriptům a databázi), může tento proces zabrat nějaký čas. Někdy to při pomalém připojení nebo načítání velkého množství dat může trvat déle, například několik sekund. Pokud by toto načítání pracovalo v hlavním vlákně aplikace, ta by po 17

dobu čekání neodpovídala na podněty uživatele. Pokud by tento proces trval déle, operační systém Android by tuto aplikaci po pěti sekundách násilně ukončil s chybovým hlášením Application Not Responding. Při delším čekání by ji ani nemusel ukončovat operační systém, protože by to nejspíše udělal mrzutý uživatel. Proto operace, u kterých předpokládáme, že budou trvat delší dobu, realizujeme jako asynchronní, takže nebudou blokovat aplikaci, která je spustila, ale poběží paralelně s ní. Třída AsyncTask je určena pro jednodušší asynchronní úlohy. Úloha běží v samostatném vlákně. Zároveň tato třída poskytuje metody na modifikaci prvků uživatelského rozhraní v hlavním vlákně. Třídu AsyncTask jsem využíval při práci s daty v souboru JSONParser.java. Obrázek 9. Asynchronní programování 18

3.3.4 PROPOJENÍ S DATABÁZÍ Propojení vzdálené databáze a android aplikace je vyřešeno za pomoci asynchronního programování (viz výše) ve třídě JSONparser.java. V této třídě se využívá pomocných http entit, které se připojují na PHP skripty a o kterých jsem psal v kapitole 3.2. Například, když se uživatel dostane k metodě add (přidání nového záznamu), vyvolá se se PHP skript add.php a parametry se nastaví tak, aby odpovídaly struktuře databáze a tyto parametry se přenesou také do tříd v projektu v Android studiu. Obrázek 10. Propojení s databází 19

Obrázek 11. Propojení s databází 3.3.5 VÝPIS ZÁZNAMŮ Po úspěšném přihlášení uživatel do aplikace, proběhne připojení k databázi skrze skript login.php, který následně vybere data navázaná na uživatele z databáze, přepíše je do souboru JSON a poté se přenesou do Android aplikace. V souboru fragment_list_of_files.xml je vložená komponenta listview, do které se načtou stáhnutá data a zobrazí se jako seznam. Po kliknutí na položku se zobrazení její titulek, datum vytvoření a dekódovaný obrázek. Toto je řešeno ve třídě list_of_files.php. V případě, že není přihlášen žádný uživatel, je vypsáno chybové hlášení s tím, že je vyžadována nutnost přihlášení. 20

Obrázek 12. Reakce na vybrání položky ze seznamu Přiložený obrázek je pouze ukázkový, protože naplnění a ošetření událostí v souvislosti se seznamem jednotlivých záznamů je komplikovanější. 3.3.6 PŘIDÁNÍ NOVÉHO ZÁZNAMU Při vyvolání funkce add se aplikace napojí na skript add.php, naváže se na jednotlivé parametry a skrze tento PHP skript přidá správně vyplněný záznam do databáze na vzdáleném serveru. 21

Obrázek 13. Vyvolání skriptu pro přidání záznamu 3.3.7 EDITACE ZÁZNAMU Editace záznamu je obdoba přidávání. V podstatě se mění pouze odkaz na PHP skript. V tomto případě update.php se napojí na databázi jako přidávací funkce a aktualizuje hodnoty v jednotlivých parametrech. Obrázek 14. Vyvolání skriptu pro editaci záznamu 3.3.8 SMAZÁNÍ ZÁZNAMU Tato funkce se oproti předchozím dvěma funkcím pro přidávání a editaci záznamu změní jen nepatrně. Předáme Id jako parametr pro skript delete.php. Aplikace se napojí na databázi a smaže záznam napojený na konkrétního uživatele. 22

Obrázek 15. Vyvolání skriptu pro smazání záznamu 3.3.9 FORMÁT BASE-64 Base64 je kódování, které převádí binární data na posloupnosti tisknutelných znaků. Umožňuje přenos binárních dat kanály, které dovolují pouze přenos textů. Vybral jsem si tuto možnost, protože jsem komunikoval s databází skrze textový formát JSON. Bylo tedy mnohem jednodušší uložit do něj obrázek zakódovaný do textového řetězce. Obrázek při kódování a zpětném dekódování neztrácí kvalitu, ale jeho velikost o něco vzroste, ovšem ne tak, aby to působilo značné problémy. Jednoduše lze na http://www.motobit.com/util/base64-decoder-encoder.asp nahrát obrázek a vyzkoušet si, jak by vypadal ve formátu BASE64. 3.3.10 NAHRÁVÁNÍ OBRÁZKU Z GALERIE Pro využívání možnosti práce aplikace s fotogalerií na konkrétním zařízení je nutné mít nastavená určitá oprávnění. Ta se mimo jiné nastavují v souboru AndroidManifest.xml. Jsou zde sepsána základní data pro aplikaci jako název, určení hlavní aktivity a oprávnění. 23

Obrázek 16. Oprávnění přístupu k úložišti a galerii Funkce choose_image_button_click se vyvolá po kliknutí na tlačítko pro nahrání obrázku z galerie. Prvně se překontroluje, jestli je vyplněn titulek k obrázku a pokud ano, otevře se galerie, kde po následném klinutí na vybraný obrázek se tento obrázek nahraje do aplikace. Obrázek 17. Nahrání obrázku skrze galerii 24

3.3.11 POŘÍZENÍ OBRÁZKU FOTOAPARÁTEM Stejně jako v případě nahrávání obrázku přes galerii musíme i pro nahrávání s využitím fotoaparátu nastavit oprávnění. Stejně jako u oprávnění pro použití galerie se nastavení provede v souboru AndroidManifest.xml. Obrázek 18. Oprávnění pro použití fotoaparátu Funkce create_image_button_click se vyvolá po stisknutí tlačítko pro nahrání obrázku přes fotoaparát. Prvně se překontroluje, jestli je přihlášený uživatel a jestli je vyplněný titulek pro obrázek. Poté se spustí aktivita pro spuštění fotoaparátu a ten následně uloží pořízený snímek do aplikace. Obrázek 19. Nahrávání obrázku skrze fotoaparát 25

3.3.12 GRAFICKÁ ČÁST PROGRAMU XML zobrazení Grafické komponenty jsem přidával v návrhovém zobrazení editoru Android studio. Používají se k tomu XML soubory, které obsahují jednotlivé komponenty s atributy a prezentují např. tlačítko, scrollbar nebo rozložení (layouts). Pro manipulaci je důležité vhodně přidávat id jednotlivých komponent. Je možné přidávat např. události OnClick, které následně odkazují na metody v jednotlivých třídách. 3.4 SPUŠTĚNÍ APLIKACE 3.4.1 SPUŠTĚNÍ APLIKACE V EMULÁTORU Vyvíjená aplikace pro android není spustitelná přímo ve windows, a proto můžeme použít pro její spuštění v počítači emulátor. Co je to emulátor, jsem již popsal v kapitolce 2.5 Emulátory. Aplikace lze testovat také v reálném zařízení po připojení přes USB kabel a nastavení režimu ladění na daném zařízení. Já preferuji práci v emulátoru. Některé emulátory jako třeba Genymotion vyžadují mít v Android studiu doinstalovaný plugin genymotion. Jeho instalaci zvládne každý. Přidává se v nastavení projektu -> pluginy. Bluestack nevyžaduje žádný externí plugin pro testování a spuštění aplikace. Stačí jednoduše spustit aplikaci a vybrat běžící emulátor. Všechny spuštěné a běžící emulátory můžete sledovat také pod nástrojem Device monitor, který je součástí Android studia. 3.4.2 VYGENEROVÁNÍ INSTALAČNÍHO SOUBORU PRO ANDROID Před vygenerováním konečného instalačního souboru s příponou.apk, který je samostatně spustitelný na zařízení s Androidem, je třeba mít na paměti, aby byla 26

aplikace kompatibilní s danými verzemi androidu. Tohle se řeší při zakládání projektu, při výběru podporovaných OS. Dále jde toto nastavení samozřejmě změnit v nastavení Gradle. Svou aplikaci jsem udělal přístupnou pro verze SDK 15-23. Například SDK 1 je pro verzi OS Android 1.0 a SDK (API level) 23 je pro OS Android 6.0. Kompletní přehled API verzí pro Android najdete na http://developer.android.com/guide/topics/manifest/uses-sdk-element.html. Samotné vytvoření onoho instalačního souboru není už nijak složité. V horním menu zvolíme možnost Build -> Generate Signed APK a dále zvolíme jméno autora nebo společnosti, nějaké další údaje. Vytvoříme klíč, podle kterého budeme aplikaci generovat, a zvolíme přístupové heslo. Vygenerovaná aplikace je již plně spustitelná na podporovaných zařízeních. 27

4 VÝSLEDKY ŘEŠENÍ Základní funkce jako autentifikace a registrace uživatele, přidávání, editace a smazání záznamu fungují. Bezproblémově funguje také řešení přidávání a editace s možnosti nahrání obrázku z galerie na daném zařízení a skrze použití fotoaparátu. Do budoucna by bylo vhodné lépe vyřešit strukturu databáze a určitě by bylo na místě zdokonalit zabezpečení aplikace, a to jak ze strany PHP skriptů, tak i kódu v JAVĚ. Pokud budu mít čas a motivaci na tomto projektu dále pracovat, zaměřím se na to, aby aplikace uměla nějaké jednouché editace obrázků, jako například oříznutí pořízené fotky, přidání textu nebo nějakých barevných symbolů přímo do obrázku, a až poté ho ukládat do databáze. Mohla by se vytvořit také aktivita, kde může jeden uživatel sdílet nějaký dokument s jiným uživatele a přidávat například komentáře. 28

ZÁVĚR Výsledek této práce je spustitelný instalační soubor s příponou.apk, který je možno stáhnout a nainstalovat do mobilního zařízení nebo tabletu s operačním systémem Android 3.0 a vyšší. Sice tato aplikace nedisponuje velkou škálou možností práce s obrázkovými dokumenty, ale je to pro mě základní krok dostat se blíže k problematice programování pro mobilní platformu Android. Aplikace zvládá autentifikaci uživatele, práci se záznamy a možnost práce s obrázky pomocí fotoaparátu a galerie reálného zařízení. Dalším krokem po vytvoření mobilní aplikace mělo být vytvoření webových stránek pro možnost přístupu k souborům také přes počítač. Vytvořil jsem jednoduché webové stránky pomocí systému WordPress, na kterých je možná registrace do databáze uživatelů a odkud je možno aplikaci do svého mobilního zařízení stáhnout. Tyto stránky můžete navštívit na http://dms.hol.es/. 29

SEZNAM POUŽITÝCH INFORMAČNÍCH ZDROJŮ 4.1 LITERATURA [1] ĽUBOSLAV, Lacko. Vývoj aplikací pro Android. Vydalo nakladatelství Computer Press v Brně roku 2015 ve společnosti Albatros Media a.s. ISBN 978-80-251-4347-6 4.2 ELEKTRONICKÁ MÉDIA [2] YOUTUBE kanál uživatele PRABESH R K. Pomáhal jsem si s touto problematikou s některými video tutoriály toho uživatele. https://www.youtube.com/user/ticoontechnologies/featured [3] Oficiální webové stránky pro vývoj aplikací pro Android. Obsahuje dokumentace, návody a rady. http://developer.android.com/index.html Kromě výše zmíněných použitých informačních zdrojů jsem hledal rady a inspirace na YOUTUBE kanálech různých uživatelů. U většiny problémů jsem také využíval webové stránky http://stackoverflow.com/, kde jsem nejčastěji hledal řešení různých problémů. 30