ZADÁNÍ BAKALÁŘSKÉ PRÁCE

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

Download "ZADÁNÍ BAKALÁŘSKÉ PRÁCE"

Transkript

1 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ZADÁNÍ BAKALÁŘSKÉ PRÁCE Název: Mobilní nástroj pro správu skupin lidí Student: Petr Panský Vedoucí: Ing. Jan Baier Studijní program: Informatika Studijní obor: Webové a softwarové inženýrství Katedra: Katedra softwarového inženýrství Platnost zadání: Do konce letního semestru 2017/18 Pokyny pro vypracování Proveďte analýzu požadavků a posléze navrhněte a implementujte mobilní aplikaci řešící problém rozdělování lidí do skupin. Nutnou podmínkou je funkčnost aplikace na OS Android. Celé řešení řádně otestujte a sepište uživatelskou příručku. Aplikace musí umožňovat následující: uložit/editovat pojmenované skupiny lidí, rozdělit skupinu lidí do týmů, zobrazit pro každého člověka seznam lidí, se kterými již byl v týmu a kolikrát, vizualizovat rozdělení pro potřeby tisku, navrhnout takové rozdělení do týmů, které zohledňuje zadaná integritní omezení, při nemožnosti splnění všech omezení navrhnout možnost, která porušuje nejmenší počet omezení. Možná omezení: minimální/maximální počet lidí v týmu, minimální/maximální počet lidí, kteří již byli ve stejném týmu, vynucení/zákaz konkrétních dvojic. Seznam odborné literatury Dodá vedoucí práce. Ing. Michal Valenta, Ph.D. vedoucí katedry prof. Ing. Pavel Tvrdík, CSc. děkan V Praze dne 11. ledna 2017

2

3 Bakalářská práce Mobilní nástroj pro správu skupin lidí Petr Panský Katedra softwarového inženýrství Vedoucí práce: Ing. Jan Baier 13. května 2018

4

5 Poděkování Rád bych poděkoval mému vedoucímu bakalářské práce Ing. Janu Baierovi za vedení mé bakalářské práce a cenné rady. Dále bych rád poděkoval mé rodině a přátelům, kteří mě během studia podporovali.

6

7 Prohlášení Prohlašuji, že jsem předloženou práci vypracoval(a) samostatně a že jsem uvedl(a) veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů. V souladu s ust. 46 odst. 6 tohoto zákona tímto uděluji nevýhradní oprávnění (licenci) k užití této mojí práce, a to včetně všech počítačových programů, jež jsou její součástí či přílohou, a veškeré jejich dokumentace (dále souhrnně jen Dílo ), a to všem osobám, které si přejí Dílo užít. Tyto osoby jsou oprávněny Dílo užít jakýmkoli způsobem, který nesnižuje hodnotu Díla, a za jakýmkoli účelem (včetně užití k výdělečným účelům). Toto oprávnění je časově, teritoriálně i množstevně neomezené. Každá osoba, která využije výše uvedenou licenci, se však zavazuje udělit ke každému dílu, které vznikne (byť jen zčásti) na základě Díla, úpravou Díla, spojením Díla s jiným dílem, zařazením Díla do díla souborného či zpracováním Díla (včetně překladu), licenci alespoň ve výše uvedeném rozsahu a zároveň zpřístupnit zdrojový kód takového díla alespoň srovnatelným způsobem a ve srovnatelném rozsahu, jako je zpřístupněn zdrojový kód Díla. V Praze dne 13. května

8 České vysoké učení technické v Praze Fakulta informačních technologií c 2018 Petr Panský. Všechna práva vyhrazena. Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí a nad rámec oprávnění uvedených v Prohlášení na předchozí straně, je nezbytný souhlas autora. Odkaz na tuto práci Panský, Petr. Mobilní nástroj pro správu skupin lidí. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2018.

9 Abstrakt Tato práce se zabývá tvorbou mobilní aplikace pro platformu Android. Aplikace slouží ke správě skupin a jejich osob. Práce obsahuje analýzu požadavků, návrh, implementaci a testování aplikace. Součástí práce je i návrh a implementace algoritmu, který rozděluje skupinu osob na základě omezení a historie do týmů. Cílenou skupinou uživatelů jsou především pracovníci seznamovacích a teambuildingových agentur. Výsledná aplikace umožňuje přinést do procesu rozdělování přehlednost, jednoduchost a jistý řád. Klíčová slova algoritmus výběru z množin, mobilní aplikace, Android, teambuilding, týmy vii

10

11 Abstract The thesis is dealing with the creation of a mobile application for the Android framework. The application shall be used to manage groups and their members. The thesis contains requirements analysis, design, implementation and testing of the application. The thesis also contains a design and the implementation of the algorithm which divides a group of people into teams by defined restrictions and member s history. The target group of users are employees of teambuilding agencies. The final application makes the process of division well-arranged and simple. set selection algorithm, mobile application, Android, teambuil- Keywords ding, teams ix

12

13 Obsah Úvod 1 1 Analýza Požadavky Současná řešení Návrh Technologie Databázový model Obrazovky aplikace Problematika rozdělování Implementace Android framework Architektura aplikace RecyclerView DialogFragment Vytváření rozdělení Testování Unit testy Instrumentační testy Testy uživatelského rozhraní Testování doby běhu algoritmu Závěr 47 Literatura 49 A Seznam použitých zkratek 51 xi

14 B Obsah přiloženého CD 53 xii

15 Seznam obrázků 2.1 Databázový model Wireframe Seznam skupin Wireframe Přidání a editace skupiny Wireframe Detail skupiny Wireframe Přidání a editace osoby Wireframe Detail osoby Wireframe Vytvoření rozdělení Wireframe Detail rozdělení Životní cyklus aktivity Životní cyklus fragmentu MVP model RecyclerView model Doba běhu hledání rozdělení bez minimalizace opakování týmů Doba běhu hledání rozdělení s minimalizací opakování týmů xiii

16

17 Seznam tabulek 2.1 Jednotlivé verze Androidu xv

18

19 Úvod V internetových obchodech s aplikacemi pro mobilní chytrá zařízení je ke stažení velké množství aplikací různých kategorií. Od zábavných her, multimediálních přehrávačů, po aplikace, které se snaží lidem usnadnit jejich každodenní život. V této mase mobilních aplikací jsem ale nenašel aplikaci, která by pomáhala s organizací teambuildingovým agenturám. Teambuildingové agentury jsou v dnešní době velice populární. Pomáhají firmám utužit kolektiv a zlepšit vztahy uvnitř firmy. Nemusí se ale vždy jednat jenom o firmu. Při poznávání kolektivu mohou agentury často řešit problém, jak danou skupinu lidí rozdělit pro potřeby her do jednotlivých týmů. Při rozdělování v režii účastníků se často stává, že lidé, kteří se už znají, chtějí být spolu v týmu. Je ale lepší, když se rozdělí nahodile. Tímto způsobem nebudou vznikat izolované skupinky a lidé se mezi sebou lépe poznají. [1] Cíl práce Cílem práce je vyvinout mobilní aplikaci pro systém Android, která umožní rozdělovat lidi do týmů na základě zadaných parametrů. Aplikace je určena hlavně pro komunitu lidí, kteří často pořádají seznamovací, teambuildingové a jiné podobné akce. Mohou ji ale například využít i lidé, kteří pořádají různé hry a chtějí se rozdělit do týmů podle daných kritérií. Všem těmto lidem by měla aplikace přinést do rozdělování přehlednost, ale hlavně jednoduchost. Práce se nejdříve věnuje analýze funkčních a nefunkčnich požadavků. Po a- nalýze požadavků se zaměří na již existující aplikace, které jsou té mé podobné. Poté se práce přesouvá k návrhu aplikace, kde jsou popsány technologie, které budou použity, a je představen celkový návrh aplikace včetně problematiky rozdělování lidí do týmů. Poté se práce věnuje implementaci aplikace a jejímu otestování. 1

20

21 Kapitola 1 Analýza V této kapitole se věnuji analýze dat pro potřebu návrhu a implementace aplikace. Jako první krok před každým vývojem softwarového projektu, a vlastně před začátkem jakéhokoliv projektu, ať už se jedná o softwarový nebo třeba ekonomický projekt, je potřeba sesbírat data, která pomohou v dalších krocích realizace. Na základě těchto dat je možné posoudit, jak projekt uchopit a vyvíjet ho. Právě tato část je ve většině projektů klíčová a špatně zpracovaná analýza může celý projekt předurčit k neúspěchu. V oblasti vývoje softwaru jsou již několik let zavedeny doporučené postupy, jak při jeho vývoji postupovat. Prvním krokem je právě analýza dat. Do analýzy dat patří sběr funkčních a nefunkčních požadavků, modelování diagramu případů užití (anglicky use case diagram) a diagram aktivit. V práci jsem se zaměřil na funkční a nefunkční požadavky. Případy užití a diagram aktivit jsem pro tento projekt nevyužil. Použil bych ho u složitějších programů, kde by bylo potřeba namodelovat business procesy a byl by potřeba výsledný model toku řízení aktivit. 1.1 Požadavky Z konzultací s klientem se seberou data a na základě jejich analýzy je možné analyzovat požadavky na software. Poté se požadavky zanášějí do dokumentace. Zapisovat se mohou textově nebo v grafické podobě. Analýza požadavků pomáhá vymezit hranice, co všechno bude systém muset umět a jaké požadavky má klient na daný software. Také je důležité identifikovat všechny zúčastněné strany (stakeholdery), které se zapojují do procesů. Z požadavků lze částečně odhadnout náročnost projektu. Požadavky se dělí na 2 typy funkční a nefunkční. 3

22 1. Analýza Funkční požadavky Funkční požadavky definují všechny hlavní nároky na funkcionalitu, které jsou kladeny na software, neboli specifikují, co má software umět. Jedná se o základní stavební kamen funkcionality softwaru. Tyto požadavky jsou měřitelné konkrétními prostředky, např. zda software uložil do databáze určitá data a následně je zobrazuje uživateli. Analýzou požadavků jsem dospěl k těmto funkčním požadavkům Přidání, editace a pojmenování skupin lidí Aplikaci bude obsahovat seznam skupin. Do tohoto seznamu bude možné přidávat nové skupiny. Skupina je uskupení, které obsahuje osoby. Zároveň by měla jít skupina editovat a případně smazat ze seznamu, aby se uživateli již nezobrazovala. Při přidávání a editaci skupiny se mění vždy pouze název a popisek skupiny, který není povinný a slouží uživateli k uložení poznámky o skupině Přidání, editace a odebrání osoby ve skupině Každá skupina bude obsahovat seznam osob, které budou v této skupině. Do tohoto seznamu půjde přidávat nové osoby, se kterými se poté bude dále pracovat. Počet osob ve skupině není nijak omezen. Když už je osoba v seznamu, musí být možná editace jejích osobních údajů (jméno, příjmení, přezdívka). Stačí vyplnit alespoň jeden z těchto údajů. Osobu lze ze skupiny odstranit, pokud ještě nezačal proces rozdělování nebo nebyla součástí vytvořených rozdělení Rozdělení do týmů na základě vybraných omezení Nad každou skupinou bude možné provádět rozdělení osob podle zadaných omezení. Bude možné některé osoby do rozdělení nezahrnout. Po rozdělení vznikne vždy několik týmů, ve kterých budou vybrané osoby ze skupiny. Každá osoba může být maximálně v jednom týmu na jedno rozdělení. Omezení, která půjdou při rozdělení vybrat, jsou tato následující: 4 Počet osob v týmu / počet týmů Minimální počet osob v týmu Maximální počet osob v týmu Počet týmů Vynucení / Zákaz konkrétních dvojic zda spolu dané dvojice můžou nebo nemůžout být v jednom týmu Minimální počet osob, které již byly ve stejném týmu

23 1.2. Současná řešení Histori rozdělení Každá skupina má seznam rozdělení, která byla vytvořena. Pro každé rozdělení z tohoto seznamu půjde zobrazit informace o něm. V detailu si uživatel bude moci zobrazit týmy, které jsou v tomto rozdělení, a osoby, které jsou v těchto jednotlivých týmech Možnost zobrazit si o dané osobě s kým byla v týmu a kolikrát Pro každou osobu ve skupině si bude možné na základě historie rozdělení zobrazit, s kým byla v týmu a kolikrát Vyobrazení rozdělení vhodné k tisku Pro každé rozdělení bude možné vytvořit tisknutelný PDF soubor. Zároveň bude možné vytvořit PDF soubor i pro všechna rozdělení, která v dané skupině proběhla. S těmito soubory bude možné dále nakládat dle uživatele. Například poslat přes nebo nasdílet aplikaci pro tisk Nefunkční požadavky Nefunkční požadavky se od funkčních liší tím, že místo specifických funkcionalit softwaru definují jeho vlastnosti a omezení. Požadavky na vlastnosti musí být zadané tak, aby bylo možné jejich ověření. Na základě analýzy požadavků jsem specifikoval tyto nefunkční požadavky Platforma Android Aplikace musí být možné nainstalovat a spustit na mobilním zařízení s operačním systémem Android. 1.2 Současná řešení V rámci analýzy aplikace jsem se rozhodl prozkoumat pole již existujících mobilních aplikací, které jsou na trhu. Hledal jsem v obchodě s aplikacemi Google Play. Z vybraných 10 aplikací, které měly podobnou funkcionalitu, jsem vybral 3 příklady, které se nejvíce podobaly mému zadání, byly uživatelsky přivětivé a měly alespoň 1000 instalací na zařízení. V následující části bych rád tyto aplikace otestoval a porovnal po stránce jejich funkčnosti Team Maker[2] Hodnocení: 5,0 a 5 recenzí Počet instalací: více než

24 1. Analýza Vyžaduje Android: 5.0 a vyšší Tato aplikace mi přišla velice podobná. Uživatel může přidávat do seznamu osoby (jméno, pohlaví a skóre v jednotlivých činnostech, které se nadefinuje formou vztahu klíč hodnota). Pro generování týmů je několik možností, jak tým vygenerovat. Buď se použije seznamu osob a z něj si uživatel vybere ty, které chce do rozdělení zahrnout. Zadá počet týmů a vybere si, jestli generovat týmy náhodně, s vyrovnaným skórem, nebo s vyrovnaným počtem stejného pohlaví v každém týmu. Nebo vybere jenom počet osob a počet týmů. Vygenerované rozdělení se poté přidá do historie. Rozdělení je možné sdílet ve formě formátovaného textu. Postrádal jsem zde skupiny, abych mohl mít více skupin uživatelů od sebe oddělených. Aplikace působila intuitivně, při prvním otevření bylo jasné, kde co hledat. Jediné, co mi trochu vadilo, byla reklama, která se zobrazovala po dokončení před jeho zobrazením Random Team Generator[3] Hodnocení: 4,0 a 9 recenzí Počet instalací: více než Vyžaduje Android: 4.2 a vyšší Uživatel si v aplikaci může přidat osoby (jména) do jednotlivých listů (skupin) a listy pojmenovat a upravovat. Při generování rozdělení si vybere skupinu, počet členů na tým a rozdělení se vygeneruje. Je možné také generovat rozdělení na základě celkového počtu osob (bez listu) a počtu členů týmu. Všechna rozdělení jsou prováděna náhodně. Oproti předešlé aplikaci je zde sice možnost vytváření skupin, ale chybí ukládání historie a sdílení vytvořených rozdělení Random Team Generator[4] Hodnocení: 4,3 a 64 recenzí Počet instalací: více než Vyžaduje Android: 4.0 a vyšší Poslední vybraná aplikace má stejné jméno jako předešlá. Uživatel zde může přidávat uživatele v textové podobě do presetů (skupin). Před generováním rozdělení si jen vybere preset s uživateli, zadá počet týmů a následně je vygenerováno rozdělení, které je založeno na náhodném rozdělení uživatelů do týmů. Výsledek rozdělení se ale nikam neukládá a nelze ho tak zpětně dohledat. Výsledné rozdělení není možné sdílet, lze ho pouze prohlížet. Aplikace obsahuje reklamu v dolní části obrazovky ve formě proužku. Díky reklamě je tak obrazovka zmenšená. 6

25 1.2. Současná řešení Závěr současných řešení Z vybraných aplikací se mi nejvíce zamlouval Team Maker, který mi připadal funkčností až na pár bodů nejvíce podobný mé aplikaci. Aplikace působila na uživatele přívětivě, navíc uměla rozdělení ukládat a sdílet. Naopak zbývající dvě aplikace mi přišly vhodné spíše na rychlé rozdělování osob na místě akce kvůli absenci uložení historie rozdělení. Vedoucí osoba by si před každou hrou vygenerovala nové rozdělení a osoby hned na místě rozdělila do příslušných týmů. 7

26

27 Kapitola 2 Návrh Kapitola se věnuje návrhu implementace aplikace. Nejdříve jsou popsány technologie a knihovny, které byly zvoleny jako vhodné pro použití při implementaci. Dále je zde popsán databázový model a jednotlivé návrhy obrazovek aplikace. 2.1 Technologie V této části jsou popsány jednotlivé technologie a knihovny. Technologie jsem volil na základě osobních zkušeností a recenzí od ostatních vývojářů Android framework Aplikace musí být spustitelná na zařízeních se systémem Android. Nabízí se proto dvě možná řešení. Jako první možnost se nabízelo použití frameworku pro mobilní vývoj, který umožňuje vytvořit mobilní aplikaci, která je spustitelná na více operačních systémech. Jedním z takovýchto frameworků je open-source projekt s názvem Xamarin. Tento nástroj umožňuje vývojářům vyvíjet aplikace pro 3 mobilní platformy najednou a tím zkrátit čas, který by potřebovali při vývoji aplikací pro každou z nich. Mezi podporované platformy patří Android, ios a Windows.[5] Při použití tohoto řešení by aplikace mohla být multiplatformní a oslovila by tak více uživatelů. Druhou možností je vývoj přímo pro platformu Android. Aplikace je vyvíjena v programovacím jazyce Java za použití Android Application Frameworku, který poskytuje speciální funkcionalitu, která je nutná pro běh v systému Android.[6] Tímto způsobem je napsána většina současných aplikací pro Android. Při rozhodování se, které řešení je lepší, jsem první možnost zamítl. Pro tuto práci jsem si vybral druhou možnost nativní aplikaci pro Android. Z nastudování dokumentace projektu Xamarin vyplynulo několik negativ. Prvním pro- 9

28 2. Návrh Tabulka 2.1: Jednotlivé verze Androidu[7] Verze Označení API Rozdělní Gingerbread 10 0,3% Ice Cream Sandwich 15 0,4% 4.1.x Jelly Bean 16 1,7% 4.2.x Jelly Bean 17 2,6% 4.3 Jelly Bean 18 0,7% 4.4 KitKat 19 12,0% 5.0 Lollipop 21 5,4% 5.1 Lollipop 22 19,2% 6.0 Marshmallow 23 28,1% 7.0 Nougat 24 22,3% 7.1 Nougat 25 6,2% 8.0 Oreo 26 0,8% 8.1 Oreo 27 0,3% blémem bylo omezení systémů, na kterých lze aplikaci vyvíjet a následně kompilovat. Pokud vývojář nepoužívá Mac OS, nelze vyvíjet pro mobilní zařízení ios, a pokud nepoužívá program Microsoft Visual Studio, nelze vyvíjet ani pro Windows zařízení. Další komplikací byl požadavek pro používání Xamarin Studia, jelikož toto vývojové prostředí funguje oficiálně pouze na systémech Windows a Mac OS.[5] Minimální verze Android systém od svého vzniku prošel mnoha změnami. Všechny větší změny byly vždy publikovány vydáním nové nebo upgradem starší verze Androidu. Každá takováto verze Androidu měla i své označení levelem API. Čím vyšší verzi API má dané zařízení, tím víc má funkcionalit oproti předchozí verzi. Před začátkem jakéhokoliv projektu je nutné se rozhodnout, jakou minimální verzi API bude aplikace podporovat, neboli určit, od které verze Android systému bude možné aplikaci na zařízení nainstalovat. Při rozhodování jsem vycházel z analýzy četnosti 2.1 jednotlivých verzí Android OS od vývojářského týmu Androidu. Na základě této analýzy jsem se rozhodl nastavit minimální API level na hodnotu 19. Aplikaci tak podle průzkumu bude moci využít 94,3% potencionálních uživatelů a budu moci použít více funkcionalit, které by mi například API level 16 neumožňoval Android Studio Pro implementaci aplikace jsem vybral vývojové prostředí (IDE) Android Studio[8] vyvinuté firmou JetBrains ve spolupráci s Google. IDE vychází z vývojového prostředí IntelliJ IDEA, od kterého dědí všechny jeho funkcionality. 10

29 2.1. Technologie Oproti prostředí IDEA je ale připraveno k vývoji aplikací pro mobilní zařízení. Je v něm integrován emulátor zařízení, designér pro navrhování XML layoutů, zabudovaný Gradle pro kompilaci kódu a správu závislostí nebo prohlížeč jednotlivých logů (Logcat) aplikací a spousta dalších funkcionalit usnaďnující debugování běhu aplikace greendao V aplikaci je potřeba ukládat data lokálně v zařízení. Rozhodl jsem se data ukládat do lokální SQLite databáze na zařízení. K usnadnění práce s databází jsem vybral knihovnu greendao. GreenDAO je open source databázová knihovna.[9] K přístupu k databázi používá objektově relační mapování (ORM). ORM zajišťuje synchronizaci mezi objekty a jejich prezentaci v databázi, v případě greendao mezi objektem třídy v Javě a entitou v SQLite databázi. Knihovna umožňuje provádění základních CRUD operací nad každou tabulkou, modelování vztahů mezi jednotlivými objekty a zachovaní persistence dat ButterKnife ButterKnife[10] je knihovna, která v Androidu slouží k nalezení widgetů ve view a přiřazení jejich referencí do proměnných. Pomáhá tak kód zjednodušit a ušetřit řádky kódu. class ExampleActivity extends Activity { TextView name; Button button; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview({r.layout.example_activity}); this.name = (TextView) findviewbyid(r.id.name); this.button = (Button) findviewbyid(r.id.button); } Listing 1: Aktivita bez použití ButterKnife Jak je vidět v ukázce 1 bez použití knihovny, v metodě aktivity oncreate se musí všechny widgety před jejich použitím namapovat na proměnné objektu třídy ExampleActivity. Toho docílíme tak, že je v této metodě najdeme přes metodu findviewbyid, nalezené objekty typu View přetypujeme na požadované a přiřadíme je příslušným proměnným. Proměnné tedy mají reference na nalezené widgety. 11

30 2. Návrh class ExampleActivity extends Activity TextView Button button; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.example_activity); ButterKnife.bind(this); } Listing 2: Aktivita s použití ButterKnife Naproti tomu v ukázce 2 s použitím knihovny se v metodě oncreate zavolá pouze ButterKnife.bind(this). Toto volání zařídí, že se jednotlivé widgety najdou a jejich reference se přiřadí do proměnných. Aby tohoto kroku bylo možné docílit, je potřeba u každé proměnné, do které se má přiřadit reference widgetu, udělat dvě věci: Definovat správný typ proměnné TextView, Button, ImageView,... Přidat kde ID je identifikační číslo widgetu ve view itext Pro potřebu vyobrazení rozdělení vhodné k tisku jsem se rozhodl použít knihovnu itext[11]. Konkrétně její Android verzi, která využívá starší knihovnu verze 5.0. Knihovna umožňuje vytvořit dokument a přidávat do něj jednotlivé elementy jako jsou nadpisy, texty, tabulky, obrázky, aj. a upravovat jejich parametry (velikost, font, padding, margin,... ). Knihovna je dostupná pro Android, Java projekty (pomocí Maven dependencies nebo.jar archiv) a.net. 2.2 Databázový model Na obrázku 2.1 je vidět návrh databázového modelu. Android zařízení používají databáze SQLite a při návrhu databáze bylo potřeba s touto informací počítat. SQLite databáze totiž umožňuje použít pouze 5 datových typů[12]: 12 NULL nulová hodnota INTEGER celé číslo REAL desetinné číslo

31 2.2. Databázový model id name description groups integer text text id name surname nickname group_id users integer text text text integer divisions id integer group_id integer created_at integer type_division integer user_pairs user_divisions id integer id integer user1_id integer userid integer user2_id integer divisionid integer division_id integer same_team integer id division_id name teams integer integer text id user_id team_id user_teams integer integer integer Obrázek 2.1: Databázový model TEXT textový řetězec BLOB obecná data v binárním tvaru Navržený databázový model obsahuje celkem 7 entit: Groups Jedna z hlavních entit. Reprezentuje jednotlivé skupiny a obsahuje vždy název skupiny a případně nějakou poznámku (popis) o skupině. Na tuto entitu jsou napojené další entity pomocí cizích klíčů. Users Entita Users reprezentuje jednotlivé osoby ve skupině. Obsahuje alespoň jeden z údajů jméno, příjmení a přezdívka. Dále musí vždy obsahovat ID skupiny, do které osoba patří, aby bylo možné skupinu identifikovat. Divisions Tato entita reprezentuje rozdělení skupiny. Obsahuje ID skupiny, ke které rozdělení patří, čas vytvoření rozdělení a typ rozdělení (počet týmů, minimální nebo maximální počet osob v týmu). Teams Entita reprezentuje týmy jednotlivých rozdělení. Obsahuje ID rozdělení a název týmu. 13

32 2. Návrh UserTeams Entita umožňující vztah M:N mezi Teams a Users. Na základě této pomocné entity je rozdělen vztah na 1:N a 1:M. Obsahuje ID uživatele a ID týmu. UserDivisions Tato entita slouží k reprezentaci konfigurace rozdělení, přesněji k záznamu vybraných uživatelů do rozdělení. Pro každého uživatele v rozdělení se zde vytvoří záznam s ID uživatele a ID rozdělení. UserPairs Tato entita umožňuje zapamatovat si pro každé rozdělení nakonfigurované páry. Každý pár je reprezentován ID číslem obou osob, ID rozdělením a informací, zda mají být osoby z páru ve stejném nebo rozdílném týmu. Každá z těchto tabulek má samozřejmě vlastní identifikátor typu integer s autoinkrementem. Tzn. že při vkládání záznamu bez ID se záznamu přiřadí hodnota z autoinkrementu. Po vložení takovéhoto záznamu se hodnota autoinkrementu zvětší o 1 a pro další vkládání do stejné tabulky bude identifikátor nového záznamu o 1 větší. 2.3 Obrazovky aplikace V rámci návrhu jsem se zaměřil i na jednotlivé obrazovky aplikace. Na základě analýzy jsem identifikoval obrazovky, které bude potřeba v aplikaci vytvořit. Pro každou identifikovanou obrazovku jsem vymezil její funkcionalitu a detailně ji popsal níže Seznam skupin Seznam skupin 2.2 bude defaultní obrazovka, která se zobrazí po spuštění aplikace. Uživatel v ní uvidí seznam existujících skupin řazený abecedně. Pro každou skupinu (položku seznamu) bude možné přejít do obrazovky s detaily skupiny. Z této obrazovky půjde také přejít na přidávání nové skupiny Přidání a editace skupiny V této obrazovce 2.3 bude možné přidávat novou skupinu nebo editovat již existující. Upravovat půjde název skupiny a případně její popis, ten ale na rozdíl od názvu skupiny nebude nutné vyplnit. Po vyplnění potřebných údajů bude možné skupinu vytvořit (uložit změny existující). Po tomto kroku bude uživatel přesměrován do seznamu skupin (detailu existující skupiny). Vytváření skupiny (editaci existující skupiny) bude možné kdykoliv přerušit a vrátit se na předešlou obrazovku. 14

33 2.3. Obrazovky aplikace 12:00 Rozdělovač skupin Skupina 1 Skupina 2 Skupina 3 Skupina 4 Skupina 5 Skupina 6 Skupina 6 Obrázek 2.2: Wireframe Seznam skupin 12:00 12:00 Přidat skupinu ULOŽIT Upravit skupinu ULOŽIT Název skupiny Název skupiny Skupina 1 Popis skupiny Popis skupiny q w e r t y u i o p a s d f g h j k l z x c v b n m?123,. q w e r t y u i o p a s d f g h j k l z x c v b n m?123,. Obrázek 2.3: Wireframe Přidání a editace skupiny 15

34 2. Návrh Detail skupiny Obrazovka detail skupiny 2.4 bude jedna z nejvíce používaných obrazovek, půjde z ní totiž spravovat nejvíce údajů. Z menu bude možné přejít na úpravu skupiny, sdílet generovaný soubor se všemi rozděleními nebo odstranit celou skupinu a vrátit se na seznam skupin. Bude obsahovat celkem tři záložky (taby), mezi kterými bude bude možné přepínat. Záložky jsou následující: Popis V tomto tabu bude možné zobrazit název a popis skupiny. Rozdělení V záložce rozdělení půjde zobrazit seznam již vygenerovaných rozdělení a přejít do detailu jednotlivých rozdělení. Půjde zde ale i přejít na generování nového rozdělení. Osoby V této části bude možné zobrazit seznam osob ze skupiny, v jejímž detailu právě uživatel je. Půjde přejít do detailu konkrétní osoby nebo na vytvoření nové osoby Přidání a editace osoby V této obrazovce 2.5 bude možné přidávat novou osobu do skupiny nebo editovat již existující. Upravovat půjde jméno, příjmení a přezdívka. Vždy musí být vyplněný minimálně jeden z těchto údajů. Po vyplnění údajů půjde osobu vytvořit (upravené změny uložit existující osobě). Po tomto kroku bude uživatel přesměrován do detailu skupiny, konkrétně zpět do záložky osob. Přidávání nové osoby (editaci existující osoby) půjde kdykoliv přerušit a vrátit se na detail skupiny Detail osoby Pro zobrazení detailu osoby ze skupiny slouží právě tato obrazovka 2.6. Zde se zobrazí název prohlížené osoby a seznam ostatních osob ze skupiny s číslem informujícím uživatele o tom, kolikrát byla osoba s danou osobou ze skupiny v týmu. Z této obrazovky půjde přejít do editace osoby. Bude možné ji i odstranit za určitých podmínek. Pokud tak nepůjde učinit, bude uživatel informován. Po dokončení prohlížení se uživatel vrátí zpět na detail skupiny, do záložky osoby Vytvoření rozdělení Pro konfiguraci a vytvoření rozdělení bude sloužit tato obrazovka 2.7. Výběr konfigurace rozdělení jsem se v této obrazovce rozhodl rozdělit do tří kroků, aby ovládání bylo více přehledné. 16

35 2.3. Obrazovky aplikace 12:00 12:00 Skupina 1 Skupina 1 POPIS ROZDĚLENÍ OSOBY Název skupiny Skupina 1 Popis skupiny Toto je skupina s číslem 1 lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum POPIS ROZDĚLENÍ OSOBY před 1 hodinou včera 13: února : února : února : února : února : února : února : února : února : února : února : února :45 12:00 12:00 Skupina 1 Skupina 1 Upravit POPIS ROZDĚLENÍ OSOBY Petr Lukáš J. Honza Lumček Bořivoj Javorský Sandra Stehlíková Smazat POPIS ROZDĚLENÍ OSOBY Název skupiny Skupina 1 Vytisknout / Sdílet rozdělení Popis skupiny Toto je skupina s číslem 1 lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum Justýna Hasalová Teodor Lukyč Metoděj Václavek Daniela Tylová Milan Šrubař Zoe Smolová Zikmund Kročil 10. února :45 Obrázek 2.4: Wireframe Detail skupiny 17

36 2. Návrh 12:00 12:00 Přidat osobu ULOŽIT Upravit osobu ULOŽIT Jméno Jméno Teodor Příjmení Příjmení Přezdívka Přezdívka q w e r t y u i o p a s d f g h j k l z x c v b n m?123,. q w e r t y u i o p a s d f g h j k l z x c v b n m?123,. Obrázek 2.5: Wireframe Přidání a editace osoby 12:00 12:00 Teodor Teodor Upravit Petr 4x Petr Smazat 4x Lukáš J. 3x Lukáš J. 3x Honza Lumček 5x Honza Lumček 5x Bořivoj Javorský 5x Bořivoj Javorský 5x Sandra Stehlíková 2x Sandra Stehlíková 2x Justýna Hasalová 1x Justýna Hasalová 1x Lukyč 0x Lukyč 0x Metoděj Václavek 6x Metoděj Václavek 6x Daniela Tylová 2x Daniela Tylová 2x Milan Šrubař 3x Milan Šrubař 3x Zoe Smolová 4x Zoe Smolová 4x Zikmund Kročil 4x Zikmund Kročil 4x 10. února : února :45 Obrázek 2.6: Wireframe Detail osoby 18

37 2.3. Obrazovky aplikace 1. Výběr osob V této části půjde vybrat osoby ze skupiny, které chceme do rozdělení zahrnout. Musí být vybrané alespoň nějaké osoby. Poté přejde uživatel na další krok. Pokud výběr nesplňuje podmínky, bude uživatel při přechodu na další krok upozorněn a zůstane na aktuálním kroku. Při návratu zpět se vrátíme do detailu skupiny, konkrétně do záložky rozdělení. 2. Přidání párů Zde můžeme vidět seznam párů z osob, které spolu mají či nemají být. Můžeme zde také pár přidat. Otevřeme si dialogové okno, zvolíme osoby do páru, vybereme, zda mají být ve stejném nebo rozdílném týmu, a přidáme je. Pokud pár může být přidán, přidá se do seznamu a seznam se aktualizuje. V opačném případě se uživateli zobrazí upozornění s instrukcemi. Páry ze seznamu je také možné odstranit. Můžeme přejít na další krok. Při kroku zpět se dostaneme na předchozí krok. 3. Vlastnosti V posledním kroku vybereme omezení rozdělení. Na výběr máme mezi počtem týmů, minimálním a maximálním počtem osob v týmu. Po výběru vyplníme hodnotu, která přísluší vybranému typu omezení. Také můžeme vybrat, zda chceme minimalizovat opakování podobných týmů na základě historie. Můžeme přejít k samotnému generování rozdělení. Pokud jsme vyplnili všechny vlastnosti správně, aby mohlo být rozdělení uskutečněno, rozdělení se vygeneruje, aplikace informuje uživatele a přejde zpět do detailu skupiny, do záložky rozdělení. Při nemožnosti vytvořit tým kvůli špatné konfiguraci uživatele informuje, proč nemohlo k rozdělení dojít. Při návratu zpět z tohoto kroku se dostaneme do kroku přidání párů Detail rozdělení Pro zobrazení detailu rozdělení skupiny využijeme tuto obrazovku 2.8. Zobrazí se seznam týmů se zanořenými členy jednotlivých týmů. Můžeme zde rozdělení odstranit nebo sdílet vygenerovaný soubor s rozdělením ostatním aplikacím. Po skončení prohlížení se vrátíme zpět do detailu skupiny, do záložky rozdělení. 19

38 2. Návrh 12:00 12:00 Vyberte osoby DALŠÍ Přidejte páry DALŠÍ Petr Lukáš J. Honza Lumček Bořivoj Javorský Sandra Stehlíková Teodor Lukáš J. Honza Lumček Rozdílný tým Stejný tým x x Sandra Stehlíková Justýna Hasalová Teodor Lukyč Metoděj Václavek Daniela Tylová Milan Šrubař Zoe Smolová Zikmund Kročil 12:00 12:00 Přidejte páry DALŠÍ Vyberte vlastnosti GENEROVAT Sandra Stehlíková Teodor Lukáš J. Honza Lumček Rozdílný tým Stejný tým Přidat pár Metoděj Václavek x x Vyberte omezení Počet týmů Minimální počet v týmu Maximální počet v týmu Zoe Smolová Počet týmů 5 Tým Stejný PŘIDAT Rozdílný Minimalizovat opakování podobných týmů na základě historie Obrázek 2.7: Wireframe Vytvoření rozdělení 20

39 2.4. Problematika rozdělování 12:00 12:00 Detail rozdělení Smazat Detail rozdělení Tým 1 Petr Lukáš J. Honza Lumček Tým 2 Bořivoj Javorský Sandra Stehlíková Justýna Hasalová Teodor Tým 3 Lukyč Metoděj Václavek Tým 1 Petr Lukáš J. Honza Lumček Tým 2 Bořivoj Javorský Sandra Stehlíková Justýna Hasalová Teodor Tým 3 Lukyč Metoděj Václavek Vytisknout / Sdílet rozdělení Daniela Tylová Milan Šrubař 10. února :45 Daniela Tylová Milan Šrubař 10. února :45 Obrázek 2.8: Wireframe Detail rozdělení 2.4 Problematika rozdělování Jednou z hlavních částí této práce je i návrh a implementace algoritmu pro rozdělování osob do týmů. Tento algoritmus dle zadaných omezení najde vhodné rozdělení osob, které porušuje co nejméně zadaných omezení Omezení Počet a velikost týmů Pro rozdělení půjde vybrat vždy jedno z těchto omezení. Při procesu vytváření týmů pak toto omezení nebude možné porušit. Všechna tato omezení se týkají počtu týmů a počtu osob v týmu. Na jejich základě se určuje počet týmů a přibližný počet osob v týmech tak, aby týmy byly početně vyrovnané. Omezení jsou následující: Počet týmů Tímto omezením se definuje počet týmů v rozdělení. Na základě počtu týmů se vypočítávají velikosti jednotlivých týmů. Minimální počet osob v týmu Pokud má být v každém týmu definovaný minimální počet osob, použije se právě toto omezení. Na základě minimálního počtu osob v týmu se dopočítávají velikosti týmu a jejich počet. Maximální počet osob v týmu Toto omezení slouží k definování maximálního počtu osob v každém týmu. Z tohoto maxima se dopočítají počty týmů a jejich velikosti. 21

40 2. Návrh Osoby v páru Toto omezení slouží k vynucení nebo zakázání konkrétních dvojic v rozdělení. Pokud uživatel chce, aby Osoba1 a Osoba2 byly ve stejném týmu, při hledání ideálního rozdělení se algoritmus bude snažit, aby tyto osoby byly spolu v jednom týmu. Naopak, pokud nechce, aby tyto osoby spolu nebyly, algoritmus se bude snažit, aby každá osoba z páru byla v jiném týmu Minimalizace opakování týmů Tímto omezením lze vynutit, aby se algoritmus pokusil přidávat osoby do týmu s těmi, se kterými ještě ve stejném týmu nebyly nebo se kterými byly dosud nejméněkrát Algoritmus hledání rozdělení Při návrhu vhodného algoritmu vyšlo najevo, že problematika rozdělení osob do skupin podle určitých omezení je mnohem složitější, než se na první pohled zdálo. Pokusil jsem se problém rozdělení na základě historie namapovat na nějaký známý grafový problém, který se zabývá podobnou problematikou. Před dalším postupem je nejprve potřeba zadefinovat některé pojmy z oblasti grafů. Neorientovaný graf s ohodnocenými hranami je uspořádaná dvojice (V, E), kde V je neprázdná konečná množina vrcholů, E je množina hran a w R je váhová funkce, která přiřazuje hranám čísla jejich váhy. [13] Problém rozdělení lze převést do grafu, kde jednotlivé osoby jsou vrcholy. Mezi každými dvěma osobami je hrana s touto vahou: Osoby v páru stejný tým, hrana má hodnotu 20. Osoby v páru rozdílný tým, hrana má hodnotu 20. Pokud osoby nejsou definované jako pár: Minimalizace opakování ano hrana má hodnotu takovou, kolikrát osoba byla s druhou ve stejném týmu, ale zápornou Minimalizace opakování ne hrana má hodnotu 0. Vznikne tedy graf G, kde každý vrchol má hranu do všech ostatních. Nyní chceme graf rozdělit tak, aby platilo následující: V = N 1 N 2 N 3 N i, a kde N a = V b V c V e. Zároveň pro každé N a a N b platí N a N b =. Graf je třeba nyní rozdělit tak, aby všechny části N splňovaly podmínku, že budou mít stejný nebo podobný počet vrcholů a zároveň součet hran mezi vrcholy ve skupině bude vyrovnaný ostaním součtům skupin. 22

41 2.4. Problematika rozdělování Při těchto podmínkách lze problém namapovat na Graph Partition Problem. Jedná se o téměř totožný problém rozdělení vrcholů s hranami do skupin, které budou mít součet hran vyvážený vůči ostatním skupinám. Bohužel tento problém patří do skupiny NP-úplných problémů[14]. Tyto problémy nemájí řešení v polynomiálním čase Navržený algoritmus Kvůli absenci řešení v polynomiálním čase a s co nejoptimálnějším rozdělením jsem se rozhodl navrhnout vlastní algoritmus. Nesplní vždy podmínku, že dané rozdělení porušuje nejméně omezení, vždy se ale tomuto řešení alespoň částečně přiblíží. Běh algoritmu lze rozdělit celkem do čtyř částí: 1. Vytvoří týmy podle omezení počtu týmů/osob. 2. Vytvoří skupiny z osob, které chtějí být spolu ve stejném týmu na základě definovaných párů. Všechny tyto skupiny seřadí od největší po nejmenší a přidá je do fronty. Dokud není fronta prázdná, vždy odebere první skupinu z fronty a pokusí se pro ni na základě volných míst, počtu porušených omezení (příp. historie, pokud je nastavena minimalizace) najít nejvíce vyhovující tým/y. Pokud najde vyhovující tým/y, vybere jeden z nich a do něho přidá skupinu osob. V situaci, kdy nelze přidat celou skupinu do žádného týmu kvůli velikosti, rozdělí skupinu na dvě části a obě části přidá na konec fronty. 3. Přidá všechny osoby, které ještě nejsou v týmech do fronty. Dokud není fronta prázdná, vždy odebere první osobu z fronty a na základě volných míst, počtu porušených omezení (příp. historie, pokud je nastavena minimalizace) najde nejvíce vyhovující tým/y. Z vyhovujících týmů vybere jeden a do něho přidá osobu. 4. Když jsou všechny osoby rozděleny v týmech, provede maximálně 10 následující operaci: Pro každou osobu z každého týmu otestuje, zda je možné ji vyměnit s jinými osobami z ostaních týmů. Pokud bude součet porušených omezení v obou týmech nižší, vymění osoby mezi týmy. V situaci, kdy je nastavená minimalizace, kontroluje v případě shodného součtu porušených omezení, zda výměnou uživatelů nedosáhne lepší minimalizace opakování týmu a popřípadě uživatele vymění. Pokud se během tohoto opakování nevymění žádný uživatel, o další opakování se již nepokouší. 23

42

43 Kapitola 3 Implementace 3.1 Android framework Framework umožňuje vývoj mobilních aplikací pro systém Android. Poskytuje přístup k funkcionalitám systému a umožňuje jejich použití v kódu. Spolu s jazykem Java lze tak vyvíjet aplikace. Každá aplikace se skládá z některých základních komponent, které tvoří její základ[15]. Existují celkem čtyři takovéto komponenty: Activities Každá aktivita reprezentuje jednu obrazovku, kterou lze zobrazit na zařízení a umožňuje interakci s uživatelem. Např. vyplnění formuláře nebo prohlížení seznamu. Services Služba, která nemá UI a běží na pozadí aplikace. Je určena pro operace, které běží delší dobu. Např. stahování souborů. Broadcast Receivers Komponenta, která umožňuje poslouchat zprávy z aplikace, z ostatních aplikací a zprávy přímo od systému. Např. systémová zpráva o stavu nízké baterie. Content Providers Manager, který umožňuje uchovávat data v paměti telefonu, v databázi, na webu nebo na jiném uložišti, ke kterému má zařízení přístup. Všechny komponenty zmíněné výše se musejí deklarovat v souboru AndroidManifest.xml. Dále se rozepíši pouze o komponentě Activities, ostatní komponenty v aplikaci nebylo potřeba použít Aktivity Jak již bylo zmíněno, aktivita je jeden z hlavních stavebních kamenů aplikace. Aktivita je v Androidu jedna obrazovka, kterou zařízení uživateli zobrazí. Aplikace musí mít minimálně jednu aktivitu, většinou jich má ale několik. 25

44 3. Implementace Obrázek 3.1: Životní cyklus aktivity[16] Aplikace pomocí těchto aktivit reaguje s uživatelem a zobrazuje mu data pomocí jejího uživatelského rozhraní. Každá aktivita má svůj životní cyklus, kterým si projde od doby vzniku po její konec. Životní cyklus aktivity můžeme vidět na obrázku Fragmenty Kromě aktivit je tu další komponenta, kterou je možné použít pro komunikaci s uživatelem přes uživatelské rozhraní. Jedná se o fragment. Fragment má za úkol starat se o celky menší než aktivita. Většinou se jedná o určitý funkční celek, který chce vývojář odstínit od konkrétní aktivity a případně ho použít ve více aktivitách. Díky fragmentům se tak kód nebude duplikovat. Vývojář 26

45 3.1. Android framework Obrázek 3.2: Životní cyklus fragmentu[17] implementovaný fragment poté přidá do aktivity, do které bude chtít. Aktivita může obsahovat i více fragmentů najednou. Využití fragmentů je vidět na příkladu s ovou aplikací. Uživatel má jedno zařízení s malým displejem (např. telefon) a jedno zařízení s velkým displejem (např. tablet). Na telefonu se mu zobrazí aktivita MainActivity a v ní bude fragment MailListFragment se seznamem ů. Po kliknutí na položku seznamu se spustí druhá aktivita MailDetailActivity a v té bude fragment MailDetailFragment s detaily u. Oproti tomu na tabletu se mu zobrazí aktivita MainActivity. V kódu aktivity se detekuje široký displej a v aktivitě se zobrazí dva fragmenty. Vlevo na třetině displeje bude seznam ů ve fragmentu MailListFragment a na zbylé pravé části displeje bude detail vybraného u ve fragmentu MailDetailFragment. Také fragmenty mají životní cykly jako aktivita, viz obrázek 3.2. Fragment je ale s aktivitou, ve které se momentálně nachází, svázán, a tak jeho životní cyklus závísí i na aktuálním stavu aktivity. Toto jde pozorovat třeba na metodě onactivitycreated z cyklu fragmentu Widgety Aby aktivity a fragmenty mohly uživateli zobrazovat data, potřebují k tomu základní komponenty k zobrazení neboli widgety. (Ty jsou často chybně zaměňovány za App Widgety, což jsou widgety, které je možné umístit na domovskou plochu zařízení a umožnit tak uživateli rychlou interakci s aplikací přímo z plochy.) Tyto widgety jsou komponenty, které rozšiřují defaultního wi- 27

46 3. Implementace dget View. Jedná se o základní stavební komponenty, které jsou umisťovány do aktivit a fragmentů. Patří sem například: TextView jednoduchý text k zobrazení EditText zadávání textu, podobnost s input z html ImageView zobrazení obrázku Button tlačítko LinearLayout widget, do kterého je možné umísťovat další widgety K tomu, aby byly widgety do aktivit a fragmentů umístěny, slouží XML soubory s layouty. Každý takovýto XML soubor musí mít hlavní widget, např. LinearLayout, RelativeLayout, FrameLayout,... Do hlavních widgetů lze vkládat jednotlivé widgety s jejich parametry (velikost, umíštění, margin, padding, barvy,... ). Tento XML soubor se poté nastaví aktivitě nebo fragmentu jako její vzhled. Struktura XML souboru je vidět na ukázce 3. V ukázce je nejprve LinearLayout. Do tohoto widgetu lze přidávat potomky, které se v něm zobrazí. V LinearLayoutu jsou dále dva TextView widgety. Tyto widgety slouží k zobrazení textu. Na obrazovce se tak zobrazí texty obou TextView pod sebou, a to díky atributu android:orientation="vertical" v LinearLayoutu. <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="hello" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="world!" /> </LinearLayout> Listing 3: Ukázka XML layoutu 3.2 Architektura aplikace Před začátkem implementace se objevila otázka, jakou architekturu pro implementaci zvolit. Bylo na výběr z několika možností. 28

47 3.2. Architektura aplikace Jako nejjednodušší architektura na implementaci se nabízela defaultní achitektura Android aplikace. V jejím případě použití uživatel reaguje s aktivitou či fragmentem. Veškerá logika aplikace je tak implementována právě ve třídách aktivit a fragmentů. Třídy těchto komponent mají hodně řádků, všechnu aplikační logiku v třídě aktivity nebo fragmentu a pro nového programátora v projektu jsou složité k orientaci a pochopení. Zároveň je třeba ošetřit kritické situace. Mezi takovéto situace patří asynchronní načítání dat z internetu a následné zobrazení v aktivitě. Pokud se během načítání otočí obrazovka, aktivita se pozastaví a následně spustí. Nebo se může celá aktivita restartovat. A přesně takovéto situace je potřeba vždy ošetřit. Tímto směrem jsem se vydat nechtěl. Rozdhodl jsem proto využít architekturu MVP MVP Model-View-Presenter je architektonický vzor, který vychází ze vzoru Model- View-Controller. Tento vzor pomáhá s implementací uživatelského rozhraní. A přestože vychází z MVC, v některých funkcionalitách se od MVC liší. V MVP vzoru jsou tři komponenty: Model Model reprezentuje data a práci s nimi (databáze, API,... ). View Komponenta, která umožňuje interakci s uživatelem. Zobrazuje data, která mu předá Presenter. Zároveň reaguje na všechny uživatelské akce a předává je do Presenteru. Presenter Presenter je zprostředkovatel mezi Model a View. Zpracovává data z Modelu a posílá je do View k zobrazení. Zároveň zpracovává delegované uživatelské akce z View. Akci přijme, data z ní zpracuje a v případě požadavku opět pošle data do View pro úpravu pohledu. Celý model MVP je k vidění na obrázku 3.3, kde jsou znázorněné jednotlivé vazby mezi komponentami Řešení MVP pro Android Po zvolení MVP architektury je nutné ji implementovat přímo pro Android zařízení. Myšlenka zůstává stejná jako u obecného vzoru. Jako View komponenta vystupuje Aktivita nebo Fragment. Tyto komponenty implementují interface pro vlastní View. Toto rozhraní má definované metody, které pomáhájí se zobrazováním dat a posíláním eventů do Presenteru. View obsahuje referenci na svůj Presenter, do které posílá eventy. Tento Presenter má v sobě referenci na View, ale pouze ve formě rozhraní, aby nemohl přistupovat k dalším metodám, které aktivita nebo fragment nabízejí. Může tak používat pouze veřejně vystavené metody přes toto rozhraní. Pomocí těchto metod zobrazuje data 29

48 3. Implementace Presenter Model changed User actions Update model Update UI Model View Obrázek 3.3: MVP model uživateli a reaguje na dané eventy. Při zániku aktivity či fragmentu zaniká i Presenter, který se o dané View stará. Do této chvíle se většina implementací MVP pro Android příliš neliší. Problém nastává při změně konfigurace aktivity (otočení displeje, změna jazyka na telefonu,... ). Aktivita se při změně konfigurace restartuje a to by znamenalo, že starý Presenter zanikne a vytvoří se nový s defaultními daty. Nebyla by tedy zachována persistence uložených dat v Presenteru. První možností by bylo použít při každém restartu aktivity metodu on- SaveInstanceState a v té data z Presenteru uložit. Poté je po restartu z uložené instance získat a poslat novému Presenteru. Bohužel ukládání dat v této metodě funguje pouze pro základní objekty Javy jako jsou Integer, Long, String, pole String hodnot, apod. Pro objekty vlastních tříd by bylo třeba, aby třídy implementovaly rozhraní Parcelable. Zároveň by bylo složité řešit ukládání referencí na běžící asynchronní procesy na pozadí. Toto řešení bylo proto zavrhnuto. Dalším možným řešením bylo ukládat referenci na Presenter někde v aplikaci a při změně konfigurace aktivity ji uložit a poté ji opět načíst. Řešením by bylo udělat referenci na Presenter jako statickou proměnnou. Problém ale nastává, pokud aplikace poběží na pozadí a zařízení bude mít málo paměti RAM. Aktivita bude odsunuta na pozadí a při této akci se nastaví statické proměnné do jejich defaultních hodnot. V tomto případě to znamená, že bude reference na Presenter ztracena a nebude možné ji získat zpět. Rozhodl jsem se proto pro podobné řešení, ale s jiným typem ukládání referencí. Toto řešení využívá k ukládání referencí na Presenter Loaders. Loaders jsou nástroje, které poskytuje Android framework, a dokážou přežít změnu konfigurace. Jejich životní cyklus je řízen systémem a jsou automaticky odstraněny, když je jejich aktivita nebo fragment na trvalo zničen [18][Překlad 30

49 3.2. Architektura aplikace vlastní]. Loaders jsou defaultně určeny k načítání dat asynchronně ve vlastním vlákně pro aktivitu nebo fragment. Například k načítání seznamu položek z databáze. V tomto případě jsou Loaders využity pro ukládání reference na Presenter z aktivity nebo fragmentu. Toto řešení je převzaté od autora tohoto článku[18] a je nepatrně upraveno Implementace MVP pro Android Jednou ze základních tříd pro užití MVP je třída Presenter. Jedná se o abstraktní třídu. Třída obsahuje referenci na View mview a metody onviewattached a onviewdetached. Reference na View je generického typu. Díky tomu lze nadefinovat defaultní Presenter třídu a konkrétní Presentery budou od tohoto Presenteru pouze dědit. Zbylé dvě metody slouží pro uložení a zrušení reference na View. Protože Presenter žije i při změně konfigurace, je třeba mu odebrat referenci na View. V době konfigurace aktivity nebo fragmentu není View dostupné a nelze na něm provádět změny v UI. Došlo by totiž k pádu aplikace. Metoda onviewattached slouží k uložení reference na View a metoda onviewdetached slouží k zničení reference. Implementaci Presenteru lze vidět na ukázce 4. public abstract class Presenter<V> { protected V~mView; public void onviewattached(@nonnull V~view){ mview = view; }; public void onviewdetached(){ mview = null; } } Listing 4: Abstraktní třída Presenteru Další důležitou třídou je PresenterLoader. Díky této tříde je možné Presenter aktivity nebo fragmentu uložit při změně konfigurace a následně ho obnovit. V konstruktoru se uloží PresenterFactory, která umí vytvořit konkrétní Presenter. V metodě onstartloading se ověří, zda Presenter existuje. Pokud ano, pošle se Presenter aktivitě nebo fragmentu. V opačném případě se vynutí metodou forceload jeho vytvoření. Toto zavolání odchytí systém a zavolá metodu onforceload, která vytvoří Presenter a pošle ho dál. Více v ukázce 5. Posledními třídami pro správné fungování MVP jsou třídy BasePresenter- Activity pro aktivity a BasePresenterFragment pro fragmenty. V těchto třídách je implementováno vytvoření Presenteru pomocí třídy PresenterLoader. 31

Lokality a uživatelé

Lokality a uživatelé Administrátorský 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í: 15.října 2013

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

Začínáme s vývojem pro Android

Začínáme s vývojem pro Android Pavel Petřek CTO Praha, 14. dubna 2010 Kdo je kdo Pavel Petřek Vývojář, přednášející, entusiasta světa chytrých telefonů (a velký jedlík) Spoluzakladatel Inmite Inmite Vývoj pro chytré telefony (Android:

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

DIPL 2. Stručný manuál pro vysokoškolské kvalifikační práce.

DIPL 2. Stručný manuál pro vysokoškolské kvalifikační práce. DIPL 2 Stručný manuál pro vysokoškolské kvalifikační práce. Obsah STUDENTI VYTVOŘENÍ VOLNÉHO TÉMATU VŠKP VÝBĚR TÉMATU VŠKP Z VOLNÝCH TÉMAT KONTROLA ZADÁNÍ TÉMATU FORMÁLNÍ ÚPRAVA VYPLNĚNÍ ÚDAJŮ ELEKTRONICKÉ

Více

Konzervace, restaurování 2

Konzervace, restaurování 2 Příručka uživatele systému Museion Konzervace, restaurování 2 úvod, evidence požadavků na zásahy Autorská práva Copyright 2012-2014 MUSOFT.CZ, s.r.o.. Všechna práva vyhrazena. Tato příručka je chráněna

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

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

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy)

(c) Miroslav Balík, Ondřej Kroupa, Martin Pelant 11/29/ přednáška. Android projekt. Manifest. Activity. Uživatelské rozhraní (základy) 2. přednáška Android projekt Manifest Activity Uživatelské rozhraní (základy) 2 Android Projekt - src Zdrojový kód v Javě Unikátní jméno balíčku Konvence: [země].[autor].[jméno aplikace] např.: cz.cvut.helloworld

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

Postupy práce se šablonami IS MPP

Postupy práce se šablonami IS MPP Postupy práce se šablonami 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 Postupy práce se šablonami IS MPP Modul

Více

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23 Úvod 11 KAPITOLA 1 Nástroje pro vývoj 13 Co budete potřebovat 13 Instalace programovacího jazyka Java 13 Java 8 14 Vývojové prostředí Eclipse 15 Instalace a konfigurace Android SDK a doplňků ADT 15 Vytvoření

Více

Personální evidence zaměstnanců

Personální evidence zaměstnanců Mendelova univerzita v Brně Provozně ekonomická fakulta Personální evidence zaměstnanců Uživatelská dokumentace Bc. Petr Koucký Bc. Lukáš Maňas Bc. Anna Marková Brno 2015 1 Popis funkcionality Námi řešená

Více

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28. Zdokonalování gramotnosti v oblasti ICT Kurz MS Excel kurz 6 1 Obsah Kontingenční tabulky... 3 Zdroj dat... 3 Příprava dat... 3 Vytvoření kontingenční tabulky... 3 Možnosti v poli Hodnoty... 7 Aktualizace

Více

Mobilní zpravodajská aplikace idnes. A7B39PDA - Principy tvorby mobilních aplikací

Mobilní zpravodajská aplikace idnes. A7B39PDA - Principy tvorby mobilních aplikací Mobilní zpravodajská aplikace idnes A7B39PDA - Principy tvorby mobilních aplikací Autor: Marek Krátký kratkma2@fel.cvut.cz Popis D1 Zpravodajská aplikace idnes je určena pro chytré telefony nebo pro tablety.

Více

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow

Více

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

KMI / TMA Tvorba mobilních aplikací. 9. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 9. seminář 22.11.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře Fragmenty a to, co se nevlezlo jinam Větší Displeje je třeba něco dělat? většina aplikací, které

Více

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM Manuál pro administrátory Verze 1.0 2012 AutoCont CZ a.s. Veškerá práva vyhrazena. Tento

Více

Návod k ovládání aplikace

Návod k ovládání aplikace Návod k ovládání aplikace Tento návod se zabývá ovládáním aplikace PDF Annotation 1, která je založena na aplikaci AVP PDF Viewer a umožňuje nejen PDF dokumenty prohlížet, ale také do těchto dokumentů

Více

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V.3 2009-11-08

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V.3 2009-11-08 UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V.3 2009-11-08 1 Obsah dokumentu 1 Obsah dokumentu... 2 2 Personalizovaná objednávka... 3 3 Jednoduchá... 3 4 Standardní... 4 5 Komplexní... 5 5.1 Párování

Více

Android Elizabeth. Verze: 1.1

Android Elizabeth. Verze: 1.1 Android Elizabeth Program pro měření mezičasů na zařízeních s OS Android Verze: 1.1 Naposledy upraveno: 15. února 2013 Aleš Razým Historie verzí Verze Datum Popis 1.0 7.1.2013 Původní verze pro OS Android

Více

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V1.2.1 2010-08-25

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V1.2.1 2010-08-25 UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V1.2.1 2010-08-25 1 Obsah dokumentu 1 Obsah dokumentu... 2 2 Personalizovaná objednávka... 3 3 Jednoduchá... 3 4 Standardní... 4 5 Komplexní... 5 5.1 Párování

Více

DIPL 2. Příloha č. 1 ke Směrnici rektora č. 120/08 o vysokoškolských kvalifikačních pracích. Stručný manuál pro vysokoškolské kvalifikační práce.

DIPL 2. Příloha č. 1 ke Směrnici rektora č. 120/08 o vysokoškolských kvalifikačních pracích. Stručný manuál pro vysokoškolské kvalifikační práce. Příloha č. 1 ke Směrnici rektora č. 120/08 o vysokoškolských kvalifikačních pracích DIPL 2 Stručný manuál pro vysokoškolské kvalifikační práce. Mgr. Martin Svitanek Obsah STUDENTI I. FÁZE ZADÁVÁNÍ VŠKP

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

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

NÁVOD K POUŽITÍ. IP kamerový systém.

NÁVOD K POUŽITÍ. IP kamerový systém. NÁVOD K POUŽITÍ IP kamerový systém www.slkamery.cz 1 1. Práce se systémem CMS 1. Instalace aplikace Aplikaci CMS nainstalujeme z přiloženého CD. Pokud není CD součástí balení, stáhneme instalační soubory

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

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

IFTER-EQU Instalační manuál

IFTER-EQU Instalační manuál IFTER-EQU Instalační manuál Revize: Únor 2016 1 / 30 Obsah: 1 IFTER EQU Instalace softwaru 1.1 Rychlá instalace 1.1.1 Instalace na jeden počítač 1.1.2 Instalace na více počítačů 1.2 Pokročilá instalace

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

XD39NUR Semestrální práce Zimní semestr 2013/2014

XD39NUR Semestrální práce Zimní semestr 2013/2014 XD39NUR Semestrální práce Zimní semestr 2013/2014 Kamil Darebný darebkam@fel.cvut.cz Obsah Zadání... 1 Deliverable D4... 2 Vytvoření prototypu... 2 Použité technologie... 2 Popis prototypu... 2 Screenshoty

Více

Výtisk č.: Počet listů 19. Přílohy: 0 ÚZIS ČR. Role žadatel - postup

Výtisk č.: Počet listů 19. Přílohy: 0 ÚZIS ČR. Role žadatel - postup ÚZIS ČR Palackého nám. 4 128 01 Praha 2 - Nové Město Výtisk č.: Počet listů 19 Přílohy: 0 ÚZIS ČR Role žadatel - postup Projekt - ereg - Úprava rezortních registrů a konsolidace rezortních dat v návaznosti

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

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

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 / Outdoor Expert Uživatelský manuál Verze aplikace: 1.0 28. 12. 2014 OutdoorExpert_Manual.docx 1 / 35 2015-01-01 Obsah 1 ÚVOD... 3 2 POPIS FUNKČNOSTÍ APLIKACE... 3 2.1 SPUŠTĚNÍ APLIKACE... 3 2.2 ZALOŽENÍ

Více

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele Provozní dokumentace Seznam orgánů veřejné moci Příručka pro běžného uživatele Vytvořeno dne: 7. 7. 2011 Aktualizováno: 11. 2. 2015 Verze: 2.2 2015 MVČR Obsah Příručka pro běžného uživatele 1 Úvod...3

Více

Fides Software Storage Administrator

Fides Software Storage Administrator Trade FIDES, a.s. Fides Software Storage Administrator 1.0.2.0 (aktualizace - 7/2014) Popis programu Manuál správce systému 2 Fides Software Storage Administrator manuál správce Obsah 1 Úvod... 3 1.1 Popis

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Modul Konfigurace. 2006... MTJ Service, s.r.o.

Modul Konfigurace. 2006... MTJ Service, s.r.o. Modul Konfigurace Modul Konfigurace Představení Menu konfigurace sdružuje všechny konfigurační příkazy k celému systému Soft-4-Sale. Dále konfigurace kopíruje jednotlivé moduly systému tzn. že existuje

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

CUZAK. Uživatelská příručka. Verze 2.0 2014

CUZAK. Uživatelská příručka. Verze 2.0 2014 CUZAK Uživatelská příručka Verze 2.0 2014 Copyright 2014 Altair Software s.r.o. Všechna práva vyhrazena. Všechna práva vyhrazena. Všechna informace, jež jsou publikována na v tomto dokumentu, jsou chráněna

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

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

Bohuslav Mach, Správce úkolů. pro informační systém firmy s-cape.cz 1/6

Bohuslav Mach, Správce úkolů. pro informační systém firmy s-cape.cz 1/6 Správce úkolů pro informační systém firmy s-cape.cz 1/6 Popis aplikace - D1 Aplikace umožňující uživateli s vytvořeným účtem v informačním systému firmy s-cape.cz prohlížet a editovat s nim spojené úkoly.

Více

Kompletní manuál programu HiddenSMS Lite

Kompletní manuál programu HiddenSMS Lite v1.1001 Kompletní manuál programu HiddenSMS Lite Poslední aktualizace: 27. 8. 2009 HiddenSMS Lite software pro mobilní telefony s operačním systémem Windows Mobile, určený pro skrytí Vašich soukromých

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

Generování žádosti o certifikát Uživatelská příručka

Generování žádosti o certifikát Uživatelská příručka Generování žádosti o certifikát Uživatelská příručka První certifikační autorita, a.s. Verze 1.0 Obsah 1. Úvod... 3 2. Požadavky na software... 3 3. Kontrola softwarového vybavení... 4 4. Vyplnění údajů

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

MS SQL Server 2008 Management Studio Tutoriál

MS SQL Server 2008 Management Studio Tutoriál MS SQL Server 2008 Management Studio Tutoriál Vytvoření databáze Při otevření management studia a připojením se ke konkrétnímu sql serveru mám v levé části panel s názvem Object Explorer. V tomto panelu

Více

Inthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6

Inthouse Systems s.r.o. Specifikace. Inthouse App a Inthouse Studio pro Siemens Climatix 6XX. Verze software 1.X. Revize dokumentu 6 Inthouse Systems s.r.o. Specifikace Inthouse App a Inthouse Studio pro Siemens Climatix 6XX Verze software 1.X Revize dokumentu 6 Datum 4. 11. 2016 Obsah Obsah 1 Úvod 2 Základní přehled systému 2 Inthouse

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

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

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

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro běžného uživatele Provozní dokumentace Seznam orgánů veřejné moci Příručka pro běžného uživatele Vytvořeno dne: 7. 7. 2011 Aktualizováno: 7. 6. 2017 Verze: 2.4 2017 MVČR Obsah Příručka pro běžného uživatele 1 Úvod...3 1.1

Více

Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7

Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7 Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7 postupy a doporučení pro práci redaktorů Ivo Vrána, červen 2011 Podpora: e-mail: podpora@qcm.cz tel.: +420 538 702 705 Obsah Modul Ankety...3

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

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 o ISVS - Informační systém o informačních systémech veřejné správy verze 2.03.00 pro uživatele vypracovala společnost ASD Software, s.r.o.

Více

BENCHMARKING VENKOVA. Uživatelská příručka nástroje ehomer.cz. Verze dokumentu: 1.1

BENCHMARKING VENKOVA. Uživatelská příručka nástroje ehomer.cz. Verze dokumentu: 1.1 BENCHMARKING VENKOVA Uživatelská příručka nástroje ehomer.cz V této uživatelské příručce jsou popsány funkcionality webového nástroje ehomer.cz Verze dokumentu: 1.1 OBSAH 1. Popis struktury stránek 2.

Více

43 HTML šablony. Záložka Šablony v systému

43 HTML šablony. Záložka Šablony v systému 43 HTML šablony Modul HTML šablony slouží ke správě šablon pro výstupy z informačního systému modularis ve formátu HTML. Modul umožňuje k šablonám doplňovat patičku, dokumentaci a vázat šablony na konkrétní

Více

KSRZIS. Příručka - Role žadatel. Projekt - ereg - Úprava rezortních registrů a konsolidace rezortních. dat v návaznosti na základní registry VS

KSRZIS. Příručka - Role žadatel. Projekt - ereg - Úprava rezortních registrů a konsolidace rezortních. dat v návaznosti na základní registry VS Koordinační středisko pro resortní zdravotnické informační systémy Budějovická 15/743 140 00 Praha 4 Počet stran: 18 KSRZIS Příručka - Role žadatel Projekt - ereg - Úprava rezortních registrů a konsolidace

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

Možnosti tisku v MarushkaDesignu

Možnosti tisku v MarushkaDesignu 0 Možnosti tisku v MarushkaDesignu OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 - 1 Cíl příkladu V tomto příkladu si ukážeme

Více

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Efektivní vývoj mobilních aplikací na více platforem současně Mgr. David Gešvindr MCT MSP MCPD MCITP gesvindr@mail.muni.cz Osnova 1. Kam míří platforma Windows Phone 2. Seznámení s univerzálními Windows

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

PROFI TDi s.r.o. 696 37, Želetice 40 www.profi-tdi.cz info@profi-tdi.cz. Návod k používání systému OTDI.CZ

PROFI TDi s.r.o. 696 37, Želetice 40 www.profi-tdi.cz info@profi-tdi.cz. Návod k používání systému OTDI.CZ Návod k používání systému OTDI.CZ Vážený kliente. Děkujeme za projevený zájem o náš on-line systém evidence kontrol, určený speciálně pro účely dozorů staveb. Systém OTDI.CZ nabízí svým uživatelům zejména:

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

Více

Formulář NÚV v programu PPP4

Formulář NÚV v programu PPP4 Formulář NÚV v programu PPP4 Verze programu: 4.2.1.0 Datum: 16. 5. 2017 1. Nastavení programu PPP4 V programu je nutné nastavit: 1. cestu k programu Form Filler 602 (tento program musí mít každý uživatel

Více

Modul pro PrestaShop 1.7

Modul pro PrestaShop 1.7 Obsah Modul pro PrestaShop 1.7 1 Instalace...2 1.1 Nahrání modulu do PrestaShopu...2 1.2 Komunikační adresy...3 1.3 Nastavení...4 1.4 Stavy objednávek...6 1.5 Jazykové verze...8 1.6 Kontrola funkčnosti...9

Více

[IM-WMC] Městská cyklonavigace Deliverable D4

[IM-WMC] Městská cyklonavigace Deliverable D4 [IM-WMC] Městská cyklonavigace Deliverable D4 Úvod Cílem deliverable D4 bylo dokončit implementaci části prototypu z deliverablu D3. Návrh by měl dodržovat zásady designu platformy Android. Popis aplikace

Více

Informační systém pro e-learning manuál

Informační systém pro e-learning manuál Informační systém pro e-learning manuál Verze 1.00 Úvod Tento dokument popisuje způsob práce s informačním systémem pro elektronické vzdělávání. Systém je určený pro vytvoření elektronického kurzu a jeho

Více

Nástrojová lišta v editačním poli

Nástrojová lišta v editačním poli Nástrojová lišta v editačním poli Název projektu PŘEJÍT NA konkrétní sekci webu ZOBRAZIT zobrazí a) pracovní verzi webu (tj. nepublikovanou) b) publikovanou verzi webu a) Odstranit odstraní zobrazenou

Více

Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014

Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014 Versiondog 3.1.0 Lukáš Rejfek, Pantek (CS) s.r.o. 7/2014 Strana 2 Versiondog 3.1.0 Nová verze systému Versiondog 3.1.0 přináší oproti předchozí verzi 3.0.3 celou řadu nových funkčností. Zásadní změnou

Více

CUZAK. Uživatelská příručka. Verze 2.0 2015

CUZAK. Uživatelská příručka. Verze 2.0 2015 CUZAK Uživatelská příručka Verze 2.0 2015 Copyright 2015 Altair CUZAK s.r.o. Všechna práva vyhrazena. Všechna práva vyhrazena. Všechna informace, jež jsou publikována na v tomto dokumentu, jsou chráněna

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

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

KMI / TMA Tvorba mobilních aplikací. 3. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 3. seminář 12.10.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře vztah aktivit a layoutů, views a layouty podrobně, přizpůsobení se HW HIERARCHIE VIEWS Co všechno

Více

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1

VAR-NET INTEGRAL Manuál správce VNI 5.1 VAR-NET INTEGRAL. verze 0.2. Manuál správce VNI 5.1 Manuál správce VNI 5.1 verze 0.2 Manuál správce VNI 5.1 VARIANT plus, spol. s.r.o., U Obůrky 5, 674 01 TŘEBÍČ, tel.: 565 659 600 technická linka 565 659 655 (pracovní doba 7:30 15:00) www.variant.cz isb@variant.cz

Více

Dealer Extranet 3. Správa objednávek

Dealer Extranet 3. Správa objednávek Dealer Extranet 3 Správa objednávek Obsah Zpracování objednávky 3 Vyhledávací pole 4 Konfigurátor 5 Rychlá objednávka 6 Rychlá objednávka náhradních dílů a nestandardních produktů 7 Oblíbené 8 Objednávání

Více

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií Softwarový nástroj pro tvorbu a správu genealogických dat Manuál pro uživatele Bc. František Hlaváček Součást

Více

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

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ 1 OBSAH 1.Popis... 3 2.Ovládání aplikace...3 3.Základní pojmy... 3 3.1.Karta...3 3.2.Čtečka...3 3.3.Skupina...3 3.4.Kalendář...3 3.5.Volný

Více

Uživatelská příručka pro ředitele škol

Uživatelská příručka pro ředitele škol Národní šetření výsledků žáků v počátečním vzdělávání Uživatelská příručka pro ředitele škol Název souboru: Modul IDM - Uživatelská příručka pro ředitele škol V2.doc Strana 1 Obsah 1 Úvod... 3 2 Přihlášení

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Artikul system s.r.o. www.dsarchiv.cz UŽIVATELSKÁ PŘÍRUČKA tel. +420 727 827 422 dsarchiv@artikulsystem.cz

Artikul system s.r.o. www.dsarchiv.cz UŽIVATELSKÁ PŘÍRUČKA tel. +420 727 827 422 dsarchiv@artikulsystem.cz Obsah DS Archiv... 2 Nastavení připojení k internetu... 2 Nastavení aplikace... 3 Nastavení databáze... 4 Nastavení datové schránky... 4 Příjem zpráv z datové schránky... 6 Odeslání zprávy... 7 Ověření

Více

Kontextové dokumenty

Kontextové dokumenty Příručka uživatele systému Museion Kontextové dokumenty Autorská práva Copyright 2012-2015 MUSOFT.CZ, s.r.o.. Všechna práva vyhrazena. Tato příručka je chráněna autorskými právy a distribuována na základě

Více

PTV MAP&GUIDE INTERNET V2 USNADNĚNÝ PŘECHOD

PTV MAP&GUIDE INTERNET V2 USNADNĚNÝ PŘECHOD PTV MAP&GUIDE INTERNET V2 USNADNĚNÝ PŘECHOD Obsah Obsah 1 PTV Map&Guide internet V2 Co je nového?... 3 1.1 Změna licenčních modelů... 3 1.1.1 Kmenoví zákazníci 3 1.1.2 Noví zákazníci 4 1.2 Nástroj pro

Více

ZSF web a intranet manuál

ZSF web a intranet manuál ZSF web a intranet manuál Verze pro školení 11.7.2013. Návody - Jak udělat...? WYSIWYG editor TinyMCE Takto vypadá prostředí WYSIWYG editoru TinyMCE Jak formátovat strukturu stránky? Nadpis, podnadpis,

Více

AC FORM FILLER. aplikace pro podání žádosti o poskytnutí finančního příspěvku. Verze 1.0

AC FORM FILLER. aplikace pro podání žádosti o poskytnutí finančního příspěvku. Verze 1.0 aplikace pro podání žádosti o poskytnutí finančního příspěvku Verze 1.0 2013 AutoCont CZ a.s. Veškerá práva vyhrazena. Tento dokument obsahuje informace důvěrného charakteru a informace v něm obsažené

Více

Převod na nový školní rok

Převod na nový školní rok Převod na nový školní rok Funkce pro převod na nový školní je součástí systému SAS od jeho počátku. Umožňuje převést třídy a žáky ze školního roku, který končí, do dalšího školního roku. Před tím, než

Více

Uživatelský návod Historiana

Uživatelský návod Historiana Uživatelský návod Historiana Historiana je elearningový program, který byl vyvinut pedagogy historie, působící v Evropě i mimo, aby pomohli svým kolegům upoutat studenty inovativní a zodpovědnou výukou

Více

Manuál k aplikaci SDO PILOT v.0.2

Manuál k aplikaci SDO PILOT v.0.2 Manuál k aplikaci SDO PILOT v.0.2 Základní informace o aplikaci Aplikace slouží pro zjednodušené vytváření dokumentů Souhrnů doporučených opatření pro Evropsky významné lokality. Vznikala přírustkovým

Více

Pravidla a plánování

Pravidla a plánování Administrátorský 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í: 7. května 2013

Více

Představenstvo, kontrolní komise, vedení. SBD Vítkovice. Elektronická hlášení závad. Scénář postupu práce. Cornelius Scipio s.r.o.

Představenstvo, kontrolní komise, vedení. SBD Vítkovice. Elektronická hlášení závad. Scénář postupu práce. Cornelius Scipio s.r.o. SBD Vítkovice Elektronická hlášení závad Scénář postupu práce Představenstvo, kontrolní komise, vedení Autor: Cornelius Scipio s.r.o. Obsah: 1. Úvod... 3 2. Postup práce s touto webovou aplikací... 4 2.1.

Více

JRm verze 2.0.0. Aplikace. Instalace. Ovládání

JRm verze 2.0.0. Aplikace. Instalace. Ovládání 1 JRm verze 2.0.0 Aplikace JRm (Jízdní řády pro mobilní telefony) je aplikace pro vyhledávání spojení a zobrazování jízdních řádů MHD. Je určena pro telefony podporující Javu 2.0. MIDP 2.0 a zpracování

Více

Část 3 Manuál pro správce

Část 3 Manuál pro správce Obsah Část 3 Manuál pro správce... 3 Nastavení účtů v Kleosu... 4 Nastavení dalších polí... 4 Nastavení emailu... 6 Nastavení šablon... 7 Nastavení činností a fakturačních položek... 8 2 3 Část 3 Manuál

Více

Evidence přítomnosti dětí a pečovatelek. Uživatelský manuál

Evidence přítomnosti dětí a pečovatelek. Uživatelský manuál Evidence přítomnosti dětí a pečovatelek Uživatelský manuál Obsah První spuštění, přihlašování... 3 První spuštění... 3 Přihlášení... 5 Agenda Osoby... 6 Vytvoření nové osoby... 6 Tabletová aplikace...

Více

prohrtesty ze skupiny produktů prohr

prohrtesty ze skupiny produktů prohr prohrtesty ze skupiny produktů prohr Aplikace prohrtesty Vám umožní jednoduchým, ale přesto sofistikovaným způsobem zjišťovat znalosti Vašeho týmu, kolektivu, třídy studentů apod. Stejně jako znalosti,

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

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

Uživatelská příručka pro respondenty Uživatelská příručka pro respondenty Statistický informační systém Českého statistického úřadu Subsystém DANTE WEB Funkční blok Objednavatel: Český statistický úřad Na padesátém 81, 100 82 Praha 10 Dodavatel:

Více