České vysoké učení technické v Praze Fakulta elektrotechnická
Bakalářská práce
Rodokmen a fotogalerie pro seniory v prostředí iDTV Ondřej Průcha
Vedoucí práce: Ing. Ivo Malý Studijní program: Softwarové technologie a management strukturovaný bakalářský
Obor: Softwarové inženýrství (BSI) květen 2010
ii
Poděkování Rád bych poděkoval vedoucímu mé bakalářské práce Ing. Ivu Malému za trpělivost při vedení této práce. Děkuji také za ochotu při odborných konzultacích.
iii
iv
Prohlášení Tímto prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonu (autorský zákon). V Praze dne 22. 5. 2010
......................................................
v
vi
Abstract This document describes design and implementation of application Family Tree, designed to be used in interactive television environment. The application is designed to be used mostly by seniors, so the most important requirement is usability and simple and well organized user interface. The application can load and display a family tree and show galleries for each member of family.
Abstrakt Tato práce popisuje postupy při návrhu a implementaci aplikace Family Tree, která je určena pro použití v prostředí interaktivní televize. Aplikace je určena především pro seniory a tudíž jedním z hlavních požadavků je jednoduchost uživatelského rozhraní, které hrálo hlavní roli při testování. Aplikace Family tree umožňuje uživatelům prohlížení rodinného stromu a fotogalerií přidružených k jednotlivým členům rodiny.
vii
viii
Obsah 1. Úvod........................................................................................................................................1 1.1 Projekt Vital Mind.............................................................................................................1 1.2 O aplikaci Family Tree......................................................................................................1 1.3 iDTV v projektu Vital Mind..............................................................................................3 2. Požadavky aplikace.................................................................................................................5 2.1 Funkční požadavky............................................................................................................5 2.1.1 Zobrazení členů rodiny ve formě rodokmenu............................................................5 2.1.2 Možnost výběru fotogalerie u každé osoby ...............................................................5 2.1.3 Zobrazení fotogalerie..................................................................................................5 2.1.4 Pohled osob.................................................................................................................5 2.1.5 Více partnerů..............................................................................................................5 2.1.6 Řazení osob a fotogalerií............................................................................................6 2.1.7 Animace přechodu při výběru osoby v rodinném stromě...........................................6 2.2 Nefunkční požadavky........................................................................................................6 2.2.1 Ovládání více způsoby................................................................................................6 2.2.2 Aplikace bude umět načítat rodokmen ve formátu GEDCOM..................................6 2.2.3 Flash Lite....................................................................................................................6 2.2.4 Interaktivní digitální televize......................................................................................6 2.2.5 Přizpůsobení aplikace seniorům.................................................................................6 3. Analýza....................................................................................................................................7 3.1 Případy užití.......................................................................................................................7 3.1.1 Zobraz rodinný strom.................................................................................................8 3.1.2 Zobraz pohled osob....................................................................................................8 3.1.3 Zobraz události...........................................................................................................8 3.1.4 Zobraz fotografie........................................................................................................8 3.1.5 Seřaď události.............................................................................................................8 3.1.6 Seřaď osoby................................................................................................................8 3.1.7 Načti soubor gedcom..................................................................................................9 3.2 Ovládání aplikace..............................................................................................................9 3.2.1 Pointer.......................................................................................................................10 3.2.2 Dálkový ovladač.......................................................................................................11 3.2.3 NVVI (Non-verbal vocal interaction).......................................................................12 3.3 Flash lite..........................................................................................................................12 3.3.1 Co je to flash lite.......................................................................................................12 3.3.2 Výběr verze...............................................................................................................13 3.4 Formát GEDCOM...........................................................................................................13 4. Návrh GUI.............................................................................................................................15 4.1 Hlavní menu ...................................................................................................................15 4.2 Rodinný strom.................................................................................................................15 4.3 Menu zvolené osoby........................................................................................................16 4.4 Pohled osob......................................................................................................................17 4.5 Seznam událostí...............................................................................................................19 4.6 Fotogalerie.......................................................................................................................19 4.7 Výběr partnerů.................................................................................................................20 ix
5. Implementace.........................................................................................................................21 5.1 Načítání a parsování GEDCOM souboru........................................................................21 5.2 Uložení načtených dat do datové struktury.....................................................................21 5.2.1 Zařazení osob do rodin.............................................................................................23 5.3 Grafické zobrazení dat.....................................................................................................23 5.3.1 Vykreslení rodinného stromu...................................................................................23 5.3.2 Změna partnera.........................................................................................................24 5.3.3 Vykreslení dětí..........................................................................................................24 5.4 Vstup z klávesnice a myši...............................................................................................24 5.4.1 Pointer.......................................................................................................................24 5.4.2 NVVI........................................................................................................................25 5.4.3 Dálkové ovládání......................................................................................................25 5.5 Fotogalerie AutoViewer..................................................................................................25 6. Testování...............................................................................................................................27 7. Závěr......................................................................................................................................29 7.1 Možnosti dalšího rozšíření...............................................................................................29 7.1.1 Možnost načítání více rodin.....................................................................................29 7.1.2 Přehrávání videí........................................................................................................29 7.1.3 Možnost zobrazení textových dokumentů................................................................30 7.1.4 Přidávání poznámek.................................................................................................30 7.2 Závěr................................................................................................................................31 Literatura..................................................................................................................................33 A. Seznam použitých zkratek...................................................................................................35 B. Uživatelský manuál..............................................................................................................37 C. Obsah přiloženého CD.........................................................................................................41
x
Seznam obrázků Obrázek 1.1: Komponenty aplikace Family Tree.............................................................................2 Obrázek 1.2: Ukázka z aplikace Gramps..........................................................................................2 Obrázek 1.3: Ukázka rodinného stromu...........................................................................................3 Obrázek 1.4: Zařízení Philips TV v Adobe Device Central.............................................................4 Obrázek 1.5: Simulovaný set-top box pomocí aplikace MythTV....................................................4 Obrázek 3.6: Use case diagram aplikace Family Tree.....................................................................7 Obrázek 3.7: Systém Vital Mind......................................................................................................9 Obrázek 3.8: Ukazování na obrazovku...........................................................................................10 Obrázek 3.9: Dálkový ovladač.......................................................................................................11 Obrázek 3.10: Komunikace mezi dálkovým ovládáním a Flash Lite aplikací...............................11 Obrázek 3.11: Ovládání hlasem......................................................................................................12 Obrázek 3.12: Srovnání systémových nároků Flash Lite...............................................................13 Ukázka 3.13: Ukázka jednoduchého souboru GEDCOM..............................................................14 Obrázek 4.14: Hlavní menu aplikace Family Tree.........................................................................15 Obrázek 4.15: Pohled na rodinný strom.........................................................................................16 Obrázek 4.16: Menu zvolené osoby...............................................................................................17 Obrázek 4.17: Pohled osob.............................................................................................................18 Obrázek 4.18: Seznam událostí......................................................................................................18 Obrázek 4.19: Fotogalerie..............................................................................................................19 Obrázek 4.20: Výběr partnerů........................................................................................................20 Obrázek 5.21: ER diagram znázorňující datové struktury použité aplikací Family Tree..............22 Obrázek 5.22: Datový model aplikace Family Tree.......................................................................23 Obrázek 5.23: Vykreslení dětí........................................................................................................24 Obrázek 5.24: Rozdíly mezi seznamy událostí a osob...................................................................26
xi
xii
1
1. 1.1
Úvod Projekt Vital Mind
Projekt Vital mind [3] se svojí činností snaží o podporu mentálních schopností seniorů. Toto zahrnuje zkoumání v oblasti psychologie a následnou tvorbu aplikací pro individuální kognitivní trénink nebo dalších doplňkových aplikací, mezi které patří například aplikace Family tree nebo aplikace provázející různými fyzickými cvičeními. Jelikož se u většiny seniorů dá předpokládat, že nemají příliš zkušeností s prací s počítačem, využívá se pro tvorbu aplikací platforma iDTV (interactive Digital Television, více informací v kapitole 1.3), která je seniorům v dnešní době mnohem bližší. Pro interakci s aplikacemi se využívá zařízení jako je dálkový ovladač, pointer nebo NVVI (Non-verbal Vocal Interaction). Hlavní cíle projektu Vital Mind bychom mohli shrnout do těchto tří oblastí:
1.2
•
Návrh a vývoj aplikací napomáhajícím zlepšování mentálních schopností seniorů.
•
Vývoj nových metod interakce založených například na detekci pohybu použitím gyroskopu nebo neverbálních zvukových příkazů.
•
Využití zařízení USB Flash jako doplněk televizního vysílání.
O aplikaci Family Tree
Aplikace Family Tree byla vytvořena v rámci projektu Vital Mind a slouží k prohlížení fotografií členů rodiny. V dnešní době je již většina fotografií uchovávána pouze v digitálním stavu, což je pro uživatele, především kvůli stále rostoucí kapacitě a klesající ceně nabízených pamětí, nejjednodušší řešení. Toto přináší spoustu výhod, kterými jsou například snadné vytváření kopií nebo velice nízká pořizovací cena. Nicmémě musíme řešit problém, jak si tyto fotografie prohléhnout. Sice existuje nespočetné množství počítačových programů umožňujících prohlížení fotografií, jenže tato metoda nemusí vyhovovat všem. Většina seniorů nemá moc zkušeností s prací s počítačem nebo dokonce počítač ani nevlastní. Toto byl jeden z hlavních důvodů vzniku aplikace Family Tree. Aplikace Family Tree je určena pro prostředí interaktivní televize (iDTV), které je dnešními seniory mnohem více používané, a je navržena především s ohledem na jednoduchost používání. Pro navigaci aplikace využívá osvědčeného zobrazení členů rodiny ve formě rodinného stromu, ve kterém jsou přehledně znázorněny rodinné vztahy. Na obrázku 1.3 můžeme vidět ukázku rodokmenu současného českého prezidenta Václava Klause ve formě rodinného stromu. Projekt je rozdělen do dvou hlavních komponent, kterými jsou aplikace Family Tree a aplikace produkující soubor GEDCOM. Na obrázku 1.1 jsou vidět jednotlivé komponenty a interakce mezi nimi. Cílem této práce bylo vytvořit pouze aplikaci Family Tree.
2
Obrázek 1.1: Komponenty aplikace Family Tree převzato z D3B Design Document for Content [5]
Aplikace produkující soubor GEDCOM je již existující aplikace, která umožňuje vytváření genealogických dat, událostí a fotografií a export těchto dat. Těmito aplikacemi jsou například GRAMPS [1] nebo Family Tree Builder [2]. Ukázku z aplikace Gramps můžeme vidět na obrázku 1.2. Data exportovaná z těchto aplikací budou obsahovat soubor GEDCOM verze 5.5 popisující strukturu rodinného stromu a všechny fotografie. Do aplikace Family Tree je pak přeneseme pomocí USB Flash disku.
Obrázek 1.2: Ukázka z aplikace Gramps převzato z http://www.gramps-project.org/wiki/index.php?title=Features
Jedním z důvodů vytvoření aplikace Family Tree je nevhodnost použití těchto, již existujících aplikací v prostředí iDTV. Je to především kvůli ovládání, které je navrženo pro použití na počítači. V prostředí iDTV máme omezené možnosti ovládání a proto musí být aplikace s ohledem na tyto možnosti navržena.
3
Obrázek 1.3: Ukázka rodinného stromu převzato z: http://technet.idnes.cz/
1.3
iDTV v projektu Vital Mind
iDTV (interactive Digital Television) je televize podporující zpětnou cestu (return path), která umožňuje tok dat oběma směry – od vysílače k divákovi i naopak. Díky tomu je možné, aby divák zasahoval do průběhu vysílání přímo z televize. V dnešní době se této interaktivity využívá například pro hlasování v různých televizních pořadech, objednávání zboží přímo z televize nebo k možnosti ovlivnění vývoje různých reality show. Pro využití této interaktivity se používá digitální vysílání. Digitální vysílání [10] je způsob přenosu signálu, který je méně citlivý na terénní nerovnosti a odrazy než signál analogový. Data při přenosu jsou komprimovaná pomocí normy MPEG. Rozlišujeme několik způsobů digitálního vysílání: • • • •
družicový DVB-S kabelový DVB-C pozemní DVB-T pro příjem kapesními počítači DVB-H
Na území České republiky se nedávno přešlo na pozemní digitální vysílání DVB-T. V současné době je v České republice možné sledovat televizní vysílání digitálně i analogově. Analogové vysílání bude v České republice vypnuto dne 11.11. 2011. Nejjednodušším způsobem, jak mohou diváci přejít z analogového vysílání na digitální bez nutnosti zakoupení nové televize, je pořízení digitálního přijímače – set-top boxu (STB). Set-top box je navržen jako doplněk stávajících televizí a jedná se o nejlevnější řešení, jak přijímat digitální signál.
4
Obrázek 1.4: Zařízení Philips TV v Adobe Device Central
Aplikace projektu Vital Mind jsou vytvořeny pomocí technologie Flash Lite, která je optimalizovanou verzí technologie Flash od firmy Adobe. Simulaci televizního prostředí při vývoji aplikací nám ulehčuje program Adobe Device Central (ADC), který vývojářům umožňuje testování Flash Lite aplikací na různých simulovaných zařízeních. Pomocí ADC můžeme vytvořit profil vlastního zařízení, nastavit velikost rozlišení, barevné hloubky, velikost paměti a další technické parametry. Na obrázku 1.4 je zobrazené nastavení zařízení, na kterém jsme aplikaci vyvíjeli. Abychom mohli flashové aplikace spouštět, musí být na systému nainstalován flashový přehrávač. Operační systém pak spouští přehrávač spolu s aplikací a stará se o přesměrování vstupu z klávesnice a myši. Aplikace je pak možné spouštět pomocí flashového přehrávače nebo například z webového prohlížeče. V projektu Vital Mind se pro spouštění aplikací využívá webového prohlížeče Opera. Nevýhodou ADC je absence funkcí simulujících set-top box (STB), na kterém bude nakonec aplikace Family Tree používána. V systému Vital Mind je simulace STB vyřešena použitím open source linuxové aplikace MythTV. Na obrázku 1.5 vidíme ukázku, jak aplikace MythTV vypadá.
Obrázek 1.5: Simulovaný set-top box pomocí aplikace MythTV převzato z D4A System Design [6]
5
2.
Požadavky aplikace
Požadavky na aplikaci jsem rozdělil do dvou skupin, na požadavky funkční a na požadavky nefunkční. Ve funkčních požadavcích jsem shrnul, co vše má aplikace Family Tree umět. Do nefunkčních požadavků jsem zahrnul požadavky na to, jak to má aplikace umět a jiná omezení.
2.1 2.1.1
Funkční požadavky Zobrazení členů rodiny ve formě rodokmenu
Aby se dalo v aplikaci lépe orientovat, jsou osoby zobrazeny v rodinném stromě. Uživatel bude mít možnost se po rodinném stromě volně pohybovat a vybírat jednotlivé osoby. Zde je také důležité v návrhu uživatelského rozhraní vzít na vědomí poměrně nízké rozlišení, které nám prostředí digitální televize nabízí. Aplikace Family Tree byla navržena pro rozlišení 852x480 v poměru stran 16:9, které je podporováno většinou nových LCD televizí. 2.1.2
Možnost výběru fotogalerie u každé osoby
U každé osoby může být uloženo více fotogalerií patřících k různým událostem. V aplikaci bude možné vybrat fotogalerii, kterou jsme se rozhodli si prohlédnout. 2.1.3
Zobrazení fotogalerie
Po zvolení fotogalerie se dostaneme k jejímu zobrazení. Zde budou zobrazeny jednotlivé fotografie patřící do zvolené fotogalerie, které si budeme moct prohlédnout v co největším možném rozlišení. 2.1.4
Pohled osob
Pokud nám nebude vyhovovat zobrazení členů rodiny v rodinném stromě, budeme mít na výběr pohled osob, ve kterém všechny osoby uvidíme ve stejné úrovni seřazené podle námi zvoleného kritéria. 2.1.5
Více partnerů
Aplikace bude umět zobrazit více partnerů patřících k nějakému členu rodiny. V rodinném stromě bude tento požadavek vyřešen možností výběru jiného partnera u těch osob, které jich mají více.
6 2.1.6
Řazení osob a fotogalerií
Osoby a fotogalerie bude možné řadit. Řazení bude možné u fotogalerií podle názvu nebo data a u osob podle jména a data narození. Budeme mít také na výběr, zda chceme řadit vzestupně nebo sestupně. 2.1.7
Animace přechodu při výběru osoby v rodinném stromě
Aby se uživatel v rodinném stromě neztratil, budou se změny osob odehrávat plynule a animovaně. Tím dosáhneme větší přehlednosti.
2.2 2.2.1
Nefunkční požadavky Ovládání více způsoby
Aplikaci bude možné ovládat zařízeními vhodnými pro prostředí digitální televize. Zatím bude možné aplikaci ovlávat dálkovým ovladačem, pointerem nebo zařízením NVVI (Non-verbal Vocal Interaction). 2.2.2
Aplikace bude umět načítat rodokmen ve formátu GEDCOM
Formát GEDCOM slouží pro výměnu genealogických dat mezi různými aplikacemi. V tomto projektu byl formát GEDCOM zvolen především kvůli jednoduchosti a velkému rozšíření. 2.2.3
Flash Lite
Aplikace bude vytvořena technologií Flash Lite. Flash Lite je dnes již poměrně rozšířená technologie používaná zejména v zařízeních s omezeným výpočetním výkonem nebo pamětí. 2.2.4
Interaktivní digitální televize
Aplikace bude používána v prostředí interaktivní digitální televize. Z toho důvodu musíme při návrhu uživatelského rozhraní respektovat omezení, která nám tato platforma přináší. 2.2.5
Přizpůsobení aplikace seniorům
Aplikace je určena především pro seniory a tak jedním z hlavních požadavků bude přizpůsobení aplikace jejich schopnostem. Důležité bude například zvolit dostatečnou velikost tlačítek a písma a použití dobře viditelných barevných kombinací.
7
3. 3.1
Analýza Případy užití
Případy užití popisují funkce vytvářené aplikace. Pomocí případů užití popisujeme funkčnost aplikace z pohledu uživatele. K tomu je potřeba uživatele rozdělit podle jejich rolí. V aplikaci Family tree rozlišujeme dvě uživatelské role: Tvůrce a Spotřebitel. Role Spotřebitel Uživatel v roli Spotřebitel používá obsah aplikace vytvořený uživatelem v roli Tvůrce. Spotřebitel bude mít mimo jiné možnost procházet rodinný strom, vybírat události a prohlížet fotogalerie. Role Tvůrce Uživatel v roli Tvůrce bude vytvářet obsah rodinného stromu pomocí aplikací pracujících s formátem GEDCOM (například aplikace Family Tree Builder). Tvůrce pak bude mít možnost vytvořený soubor naimportovat do aplikace Family Tree.
Obrázek 3.6: Use case diagram aplikace Family Tree
8
3.1.1
Zobraz rodinný strom
Aplikaci je možné přepínat mezi pohledem na rodinný strom a pohledem osob, ve kterém budou všechny osoby ve stejné úrovni. Pro zobrazení rodinného stromu je nutné vybrat tlačítko rodinného stromu z hlavního menu. Jelikož se ve většině případů celý strom na obrazovku nevejde, zobrazí se část rodinného stromu a navigace umožnující uživateli pohyb ve stromě. Rodinný strom je také zobrazen jako výchozí obrazovka aplikace Family Tree. 3.1.2
Zobraz pohled osob
V pohledu osob vidíme všechny osoby na stejné úrovni. V tomto pohledu bude uživateli umožněno osoby řadit podle různých kritérií. Zobrazení pohledu osob docílíme stisknutím tlačítka pohledu osob z hlavního menu. 3.1.3
Zobraz události
Use case zobraz události můžeme realizovat dvěma způsoby. Zobrazit události můžeme z pohledu na rodinný strom nebo z pohledu osob. V případě, že se nacházíme v pohledu na rodinný strom, události zobrazíme vybráním nějaké osoby z rodinného stromu a následným stisknutím tlačítka zobrazení fotogalerií z menu. Pokud se nacházíme v pohledu osob, zobrazí se události automaticky, jakmile vybereme nějakou osobu. 3.1.4
Zobraz fotografie
Tento use case navazuje na use case zobraz události. Abychom věděli, které fotografie chce uživatel zobrazit, musíme nejprve zvolit nějakou událost. Po zvolení události se aplikace přepne do fotogalerie, ve které si můžeme fotografie prohlédnout. 3.1.5
Seřaď události
V případě, že je k nějaké osobě přiřazeno více událostí, může se stát aplikace nepřehlednou a uživateli se může zdát obtížné najít událost, která ho zajímá. Z tohoto důvodu jsme do aplikace přidali možnost události řadit. Use case seřaď události navazuje na zobrazení událostí, kde po zobrazení událostí můžeme události řadit stisknutím tlačítka seřadit z hlavního menu a vybráním způsobu, kterým chceme události seřadit. Aplikace zatím podporuje řazení podle názvu nebo data a to vzestupně i sestupně. 3.1.6
Seřaď osoby
9 Tento use case je podobný use casu seřaď události. Jelikož řazení osob v pohledu na rodinný strom nemá smysl, je osoby možné řadit pouze v pohledu osob. Use case tedy navazuje na use case zobraz pohled osob. Po zobrazení osob je možné je řadit stisknutím tlačítka seřadit z hlavního menu a vybráním způsobu, kterým chceme osoby seřadit. Aplikace zatím podporuje řazení osob podle jména nebo data narození. Opět máme možnost řadit vzestupně i sestupně. 3.1.7
Načti soubor gedcom
Aby bylo možné aplikaci Family Tree používat, musíme do ní nejprve načíst nějaká data. Data se nejprve musí připravit pomocí aplikací pracujících s formátem GEDCOM a poté do aplikace naimportovat. Data jsou uložena na USB Flash disku, ze kterého si aplikace načte soubor GEDCOM a podle něho pak všechny potřebné fotografie.
3.2
Ovládání aplikace
Aby bylo aplikaci Family tree možné používat v prostředí digitální televize, musíme ovládání tomuto prostředí přizpůsobit. Jelikož předem nevíme, jakým zařízením bude uživatel aplikaci ovládat (může to být napřiklad dálkové ovládání, pointer nebo NVVI), musí být aplikace ovladatelná více způsoby.
Obrázek 3.7: Systém Vital Mind převzato z D4A System Design [6]
Na obrázku 3.7 je znázorněna struktura systému Vital Mind (VM). Jednotlivé aplikace a jejich data jsou uložena na USB Flash Disku (UFD). Dále jsou zde vidět jednotlivé druhy ovládání podporované systémem VM.
10 Technologie Flash Lite, která byla použita pro vývoj aplikace Family Tree, nepodporuje ovládání těmito zařízeními. Bylo tedy nutné události generované zařízeními nějak transformovat na události stisku kláves nebo události myši. O to se stará systém Vital Mind a tudíž je možné v aplikaci Family Tree pracovat s běžnými událostmi klávesnice a myši. Události generované systémem Vital Mind se liší v závislosti na zařízení, se kterým uživatel pracuje. 3.2.1
Pointer
Při použití pointeru jsou systémem VM generovány události pohybu a stisknutí levého tlačítka myši. V aplikaci Family Tree jsme tedy museli pro zajištění kompatibility každý ovládací prvek připravit tak, aby na něj bylo možné kliknout. Systém VM používá dva způsoby, jakými lze pomocí tohoto zařízení ovládat aplikace – ukazování a gesta. V aplikaci Family Tree používáme pouze první z těchto způsobů. Ukazování Z pohledu aplikace Family Tree je tento způsob velice podobný používání běžné počítačové myši. Zařízení, které se používá v projektu Vital Mind, je velice podobné ovladači z Nintenda Wii. Je vyrobeno společností Philips, jedním z partnerů projektu Vital Mind. Na obrázku 3.8 je znázorněn způsob práce tohoto zařízení se systémem VM. Zařízení komunikuje se set-top boxem (STB) pomocí bezdrátového připojení. Pokud zařízení namíříme na televizní obrazovku, objeví se kurzor na místě, na které právě míříme. Tímto způsobem můžeme snadno kurzorem pohybovat. Po stisknutí tlačítka se vygeruje událost kliknutí.
Obrázek 3.8: Ukazování na obrazovku převzato z D4A System Design [6]
11 3.2.2
Dálkový ovladač
Dálkové ovládání generuje a posílá zprávy pomocí infra červeného světla při každém stisku tlačítka. Pokud je přijímač v dosahu, zprávy jsou detekovány a zpracovány. Systém VM pak zprávy mapuje na události stisku tlačítka na běžné klávesnici, které jsou pak předány do aplikací. Abychom mohli aplikace systému VM ovládat, musí dálkový ovladač obsahovat nejméně tyto tlačítka: nahoru, dolů, doleva, doprava a OK. Ty jsou pak po stisku systémem VM převedeny na klávesy šipek a klávesu Enter.
Obrázek 3.9: Dálkový ovladač převzato z D4A System Design [6]
Na obrázku 3.10 je znázorněna komunikace mezi dálkovým ovládáním a flashovou aplikací.
Obrázek 3.10: Komunikace mezi dálkovým ovládáním a Flash Lite aplikací
3.2.3
NVVI (Non-verbal vocal interaction)
Dalším z možných způsobů ovládání aplikací projektu Vital Mind je neverbální zvuková interakce, kterou může být například bzučení nebo pískání. Zde je důležité správně mapovat zvuk vytvářený uživatelem na příkazy, které se pak dále předají do aplikací. Jelikož má každý uživatel jiný hlas, je tento způsob interakce před použitím vhodné kalibrovat. Při použití tohoto zařízení systém Vital Mind generuje, jako při použití dálkového ovladače, události stisku kláves. Zde to jsou pouze klávesy Tab nebo Enter. Aplikaci bylo tedy nutné navrhnout tak, aby její funkce byly dostupné i s použitím pouze těchto kláves.
12
Obrázek 3.11: Ovládání hlasem převzato z D4A System Design [6]
Na obrázku 3.11 vidíme schéma, jak toto ovládání aplikace funguje. Uživatel vytvoří nějaký zvuk, který mikrofon zachytí a pošle do zvukové karty, kde se tento signál pomocí AD převodníku převede do digitální formy. Dále se v modulu MPD (monophonic pitch detection) zkoumá frekvence signálu. Zde nás především zajímá, zda se jedná o klesající nebo rostoucí tón. Nakonec se signál v modulu VGR (voice gesture recognition) převede na události stisku klávesnice. Při převádění zvuku na nějaký příkaz zkoumáme tyto vlastnosti: • • •
3.3 3.3.1
Frekvence Délka Hlasitost
Flash lite Co je to flash lite
Flash Lite od firmy Adobe [4] je optimalizovaná verze Flashe používaná zejména v mobilních telefonech a jiných zařízeních, jejichž výpočetní výkon a dostupná paměť je nedostačující pro provoz plnohodnotného Flashe. Na obrázku 3.12 vidíme systémové nároky Flash Lite, které jsou několikanásobně nižší než u běžného Flashe.
13
Obrázek 3.12: Srovnání systémových nároků Flash Lite převzato z http://www.adobe.com/products/flashlite/version/
Jednou z hlavních nevýhod verze Flash Lite je podpora pouze starší verze scriptovacího jazyka ActionsSript 2.0. Další nevýhodou zejména starších verzí Flash Lite je pak omezení počtu načtených souborů. V projektu obsahujícím fotogalerii by toto omezení znamenalo možnost načtení jen omezeného počtu fotografií a tudíž to byl jeden z hlavních argumentů při výběru verze, ve které bude aplikace napsána. 3.3.2 Výběr verze V současné době se nejčastěji používá Flash Lite 2.1. Není to nejnovější verze, ale stále je podporována největším počtem zařízení. Aplikace Family tree měla být původně napsána také ve verzi 2.1, ale nakonec jsme tuto verzi nemohli použít kvůli omezení počtu načítaných obrázků. Zařízení, pro které je tato aplikace určena, podporuje Flash Lite i ve verzi 3.0, a proto jsme mohli použít tuto novější verzi, která už omezení počtu načítaných obrázků nemá. Flash Lite 3.0 také používá AstionScript 2.0, ActionScript 3.0 podporuje zatím pouze plný Flash.
3.4
Formát GEDCOM
Formát GEDCOM (GEnealogical Data COMmunication) [9] je určen pro výměnu genealogických dat mezi různými aplikacemi. Původně byl vyvinut pro potřeby Církve Ježíše Krista Svatých posledních dnů (LDS Church), nicméně dnes již téměř všechny aplikace, které se zabývají genealogií, s tímto formátem pracují. Soubory GEDCOM jsou textové a obsahují podrobné informace o jednotlivých osobách a data, která tyto osoby spojují do rodin. Ve formátu GEDCOM se rozlišují dva druhy členství v rodině. Každá osoba může být do rodiny přiřazena jako dítě (příkaz FAMC) nebo jako rodič (FAMS). Na ukázce kódu 3.13 vidíme strukturu souboru GEDCOM. Každý řádek začíná nejprve číslem úrovně, pak následuje příkaz a jeho parametry. Příkazy HEAD, TRLR, FAM a INDI jsou vždy na nejvyšší úrovni 0. Další úrovně jsou vždy značené celým kladným číslem, kde platí, že příkaz s vyšší úrovní patří pod nejbližší předcházející příkaz s nižší úrovní. Asi nejdůležitějšími příkazy jsou zde FAM a INDI, které vytvářejí novou rodinu a osobu.
14
0 1 2 2 1 1 1 1 2 1 0 1 1 1 1 2 0 1 1 1 1 2 0 1 1 1 1 2 0 1 1 1 1 0
HEAD SOUR Reunion VERS V8.0 CORP Leister Productions DEST Reunion DATE 11 FEB 2006 FILE test GEDC VERS 5.5 CHAR MACINTOSH @I1@ INDI NAME Bob /Cox/ SEX M FAMS @F1@ CHAN DATE 11 FEB 2006 @I2@ INDI NAME Joann /Para/ SEX F FAMS @F1@ CHAN DATE 11 FEB 2006 @I3@ INDI NAME Bobby Jo /Cox/ SEX M FAMC @F1@ CHAN DATE 11 FEB 2006 @F1@ FAM HUSB @I1@ WIFE @I2@ MARR CHIL @I3@ TRLR
Ukázka 3.13: Ukázka jednoduchého souboru GEDCOM převzato z http://en.wikipedia.org/wiki/GEDCOM
Aplikace Family Tree umožňuje načíst soubor GEDCOM ve verzi 5.5 [7], který můžeme vytvořit v libovolné genealogické aplikaci pracující s tímto formátem. Mezi dnes nejčastěji používané genealogické aplikace patří aplikace Gramps a Family Tree Builder.
15
4.
Návrh GUI
Při sběru požadavků na tuto aplikaci zde bylo hned několik omezení týkajících se návrhu grafického uživatelského rozhraní, a proto správný návrh GUI byl jedním z nejdůležitějších úkolů této práce. Při návrhu jsme museli brát ohled nejenom na omezení platformy iDTV a jejího poměrně malého rozlišení, ale také na cílovou skupinu uživatelů, kterými jsou převážně starší lidé v důchodovém věku. Zpočátku nebylo lehké vytvořit uživatelské rozhraní co nejvíce přehledné a intuitivní. Proto se GUI často měnilo v průběhu vývoje aplikace. Každá nová funkcionalita přidána do aplikace byla nejprve pečlivě otestována s budoucími uživateli a poté podle jejich připomínek se měnil vzhled uživatelského rozhraní. Tímto způsobem bylo možné vytvořit uživatelské rozhraní podle potřeb uživatelů a ne podle uvážení programátorů, jak tomu bohužel většinou bývá.
4.1
Hlavní menu
Hlavní menu slouží jako primární ovládací panel pro většinu obrazovek. Tlačítka v hlavním menu jsou ve všech obrazovkách aplikace Family Tree na stejných místech. Tím jsme se snažili minimalizovat čas, který uživatel potřebuje, aby se v jednotlivých částech aplikace zorientoval. Pokud některé tlačítko na nějaké obrazovce chybí, například v případě, kdy by na obrazovce svojí funkčností nedávalo smysl, zůstává po něm prázdné místo. Tím se sice snižuje plocha využitelná pro uživatelské rozhraní, nicméně to také napomáhá uživatelům lépe s aplikací pracovat a to v tomto případě bylo přednější.
Obrázek 4.14: Hlavní menu aplikace Family Tree
Na obrázku 4.14 vidíme hlavní menu z pohledu na rodinný strom. Tlačítko Exit ukončuje aplikaci a tlačítka List a Tree slouží jako přepínače mezi pohledem na rodinný strom a pohledem osob. Tento obrázek byl pořízen z pohledu na rodinný strom, a proto je tlačítko Tree zašedlé.
4.2
Rodinný strom
Pohled na rodinný strom je hlavní obrazovkou aplikace Family Tree. Zde jsme museli vyřešit problém, jak zobrazit rodokmen na malé ploše, kterou je televizní obrazovka. Z tohoto důvodu jsme se rozhodli zobrazovat pouze část rodinného stromu na obrazovce a umožnit uživateli pohyb po celém stromě. Uprostřed zobrazované části vykreslujeme právě zvolenou osobu a jejího aktuálního partnera, pod nimi jejich děti a nad nimi prarodiče zvolené osoby a
16 prarodiče partnera. Pohyb ve stromě o úroveň výš je možný zvolením některého z prarodičů, naopak pohyb o úroveň níže vybráním z dětí. Dalším z úkolů bylo zajistit, aby se uživatel v rodinném stromě neztratil. Při pohledu pouze na část rodokmenu může být občas složité se ve stromě správně zorientovat a z toho důvodu jsme se rozhodli veškeré změny v tomto pohledu dělat animovaně. Pokud tedy uživatel vybere například některého z prarodičů, zvolení prarodiče se plynule přesunou na místo rodičů a ve stromě se na jejich původním místě zobrazí jejich rodiče. Podobné je to i u dětí a tak uživatel snadno pozná, zda se přesunul o úroveň výše nebo o úroveň níže.
Obrázek 4.15: Pohled na rodinný strom
Na obrázku 4.15 kromě výše popsaného rodinného stromu vidíme také druhou část této obrazovky, ve které je zobrazena vybraná osoba a dostupné informace o ní.
4.3
Menu zvolené osoby
Jelikož při pohledu na rodinný strom můžeme u každé osoby provést více akcí, musí mít každá osoba své menu, ve kterém z těchto akcí můžeme volit. Těmito akcemi jsou volba jiného partnera a zobrazení událostí vybrané osoby. Na menu osoby se uživatel může dostat zvolením některého z rodičů. Pokud chceme tedy otevřít menu některého z prarodičů nebo dětí, musíme se nejprve jejich vybráním přesunout do správné úrovně.
17 Po otevření menu se zbylé části aplikace ztmaví a uživatel má na výběr ze tří možností. Stisknutím tlačítka view photographs aplikace zobrazí události vybrané osoby a tlačítkem Select alternative spouse se aplikace přepne do obrazovky, ve které můžeme zvolit některého z jejích partnerů. Tlačítkem Cancel se menu zruší a aplikace se přepne zpět do pohledu na rodinný strom. Na obrázku 4.16 je tlačítko Select alternative spouse zašedlé. To znamená, že vybraná osoba nemá více než jednoho partnera. Podobně je tomu i u tlačítka View photographs, které je zašedlé v případě, že vybraná osoba nemá přiřazeny žádné fotografie.
Obrázek 4.16: Menu zvolené osoby
4.4
Pohled osob
Pokud uživateli nebude vyhovovat pohled na rodinný strom, nebo bude chtít rychle najít nějakou osobu, je pohled osob nejjednodušší cesta. V tomto pohledu jsou všechny osoby zobrazené na stejné úrovni a máme zde možnost řazení. Mezi pohledem osob a pohledem na rodinný strom může uživatel přepínat pomocí tlačítek List a Tree v hlavním menu. Obrázek 4.17 ukazuje pohled osob, kde v hlavním menu přibylo tlačítko Sort, kterým můžeme osoby řadit podle různých kritérií. Po stisknutí tlačítka Sort se objeví menu s možností výběru kritéria řazení. Po této obrazovce se pak může uživatel pohybovat pomocí šipek po stranách. Jelikož zde by tlačítko pro výběr dalšího partnera nemělo smysl, aplikace po zvolení nějaké osoby rovnou zobrazí její události.
18
Obrázek 4.17: Pohled osob
Obrázek 4.18: Seznam událostí
19
4.5
Seznam událostí
V seznamu událostí, který je vidět na obrázku 4.18, jsou zobrazeny události přiřazené k vybrané osobě. Uživatel zde může zvolit událost, u které si chce prohlédnout fotografie. Události, stejně jako osoby v předchozí obrazovce, je možné řadit. Řazení je možné opět podle více kritérií. Do seznamu událostí se uživatel může dostat zvolením některé osoby z pohledu osob nebo stisknutím tlačítka Show photographs z menu osoby v pohledu na rodinný strom. Stisknutím tlačítka Back se uživatel přesune zpět do pohledu na osoby, ze kterého předtím vycházel. Aplikace Family Tree tedy rozlišuje, zda se uživatel na seznam událostí dostal z pohledu na rodinný strom nebo z pohledu osob. Každá událost může obsahovat více fotografií. To je vyznačeno symbolickým obrázkem složky, ve které je vidět vždy první fotografie z události. Po vybrání některé události se uživatel dostane do fotogalerie, ve které jsou zobrazeny fotografie patřící do zvolené události.
4.6
Fotogalerie
Po zvolení některé události se aplikace přepne do fotogalerie, která je vidět na obrázku 4.19. Ve fotogalerii jsou zobrazeny jednotlivé fotografie v co největším možném rozlišení. Mezi jednotlivými fotografiemi se uživatel může pohybovat podobě jako v seznamu událostí pomocí šipek po stranách. Stisknutím tlačítka Back se uživatel vrátí do předchozího seznamu událostí.
Obrázek 4.19: Fotogalerie
20
4.7
Výběr partnerů
V pohledu na rodinný strom jsme museli vyřešit problém, jak správně zobrazit případ, kdy měl některý člen rodiny více partnerů. Řešením tohoto problému bylo tlačítko Select alternative spouse, které jsme přidali do menu zvolené osoby. Po stisku tohoto tlačítka se aplikace přepne do obrazovky podobné seznamu osob, ale s tím rozdílem, že máme na výběr pouze z partnerů zvolené osoby. Po výběru nějakého partnera se aplikace vrátí zpět do pohledu na rodinný strom, ve kterém se na místě partnera zvolené osoby zobrazí partner vybraný a ostatní části rodinného stromu se aktualizují. Obrázek 4.20 ukazuje pohled na výběr partnerů. Mezi partnery se uživatel pohybuje opět pomocí šipek po stranách. Po vybrání některého partnera se v rodinném stromě u dětí zobrazí pouze ty, které má zvolená osoba s tímto partnerem. Stisknutím tlačítka Cancel uživatel výběr partnerů zruší a vrátí se do rodinného stromu.
Obrázek 4.20: Výběr partnerů
21
5.
Implementace
Jedním z požadavků zadání bylo, že aplikace Family Tree bude vytvořena pomocí technologie Flash Lite. My jsme zvolili Flash Lite ve verzi 3.0 a celá aplikace byla vyvinuta v prostředích Adobe Flash CS4 Professional a Adobe Device Central CS4. Při psaní flashových aplikací pomocí ActionScriptu 2.0 bývá dobrým zvykem psát kód starající se o logiku aplikace na první snímek časové osy. Pokud aplikace používá například nějaký ukazatel průběhu načítání, bývá na prvním snímku kód patřící tomuto ukazateli a kód samotné aplikace je pak posunut na druhý snímek, kde jsou již k dispozici načtené objekty. V případě aplikace Family Tree jsme ukazatel průběhu načítání použít nepotřebovali, protože aplikaci spouštíme z USB Flash disku a tudíž je její načtení okamžité. Aby byl kód přehlednější, pokusil jsem se ho rozdělit na několik částí.
5.1
Načítání a parsování GEDCOM souboru
Do této části jsem zařadil funkce, které se starají o správné načtení a parsování souboru GEDCOM. K samotnému načtení souboru slouží funkce loadGedcom(), která po úspěšném načtení zavolá funkci, která se stará o parsování souboru. Zde jsme museli řešit problém, že flash při načítání souborů automaticky zakóduje text pomocí URL kódování (známého též jako % kódování), což nám nevyhovovalo. Tento problém řešíme funkcí urlDecodeString(), která nahrazuje zakódované znaky. Po dekódování načteného textu pak pomocí funkcí parseGedcom a parseCommand parsujeme jednotlivé řádky souboru GEDCOM ze shora dolů a ukládáme si získané informace do jednoduché datové struktury.
5.2
Uložení načtených dat do datové struktury
V této části jsou funkce, které se v aplikaci starají o vytvoření datové struktury a následnou práci s daty. Pomocí funkcí patřících do této části můžeme například vyhledávat rodinné vztahy aktivní osoby, její události, fotografie nebo měnit zobrazovaného partnera. Na obrázku 5.21 vidíme ER diagram znázorňující datovou strukturu, se kterou aplikace Family Tree pracuje. Pomocí tohoto diagramu jsme pak vytvořili datový model, který můžeme vidět na obrázku 5.22. Aplikace Family Tree si data získaná ze souboru GEDCOM ukládá do dvou polí. V prvním jsou uložené objekty reprezentující osoby a ve druhém objekty reprezentující rodiny. U každé osoby je uloženo její jméno, pohlaví, datum narození, datum úmrtí, fotografie, seznam rodin, do kterých osoba patří, a seznam událostí. U rodin si aplikace ukládá odkaz na otce, matku a seznam dětí. Každá událost je uložena jako objekt, ve kterém jsou uloženy informace o popisu události, data vytvoření a seznam fotografií patřících do této události.
22
Obrázek 5.21: ER diagram znázorňující datové struktury použité aplikací Family Tree převzato z D3B Design Document for Content [5]
23
Obrázek 5.22: Datový model aplikace Family Tree
5.2.1
Zařazení osob do rodin
Aby bylo možné vykreslit rodinný strom, musíme nějakým způsobem zařadit načtené osoby do rodin. V aplikaci Family Tree rozlišujeme dva druhy členství v rodině: • •
osoba je v rodině v roli dítěte osoba je v rodině v roli rodiče
V ideálním případě má každá osoba dvě rodiny. V jedné je označena jako dítě a ve druhé jako rodič. Výjimkou jsou děti, které ještě nemají vlastní partnery a tudíž mají pouze jednu rodinu. Pokud má některá osoba více partnerů, je to řešeno přidáním této osoby do role rodiče ve více rodinách.
5.3
Grafické zobrazení dat
Tato část obsahuje funkce, které se starají o grafickou část aplikace. Najdeme zde například funkce vykreslující rodinný strom, animace při změně aktivní osoby nebo funkce zobrazující seznamy událostí a osob. 5.3.1
Vykreslení rodinného stromu
Jelikož se celý rodinný strom na obrazovku nevejde, zvolili jsme si nějaký bod, od kterého strom vykreslíme. Tímto bodem je aktuální zvolená osoba. Od ní pak vykreslíme jejího partnera, jejich rodiče i děti.
24
5.3.2
Změna partnera
Pokud je jedna osoba jako rodič ve více rodinách, znamená to, že má více partnerů. Při vykreslování rodinného stromu se bere v úvahu pouze první nalezený partner zvolené osoby. Implementace změny partnerů byla tedy snadná. Po výběru partnera, kterého chceme zobrazit v rodinném stromě jsme ho jednoduše zařadili na začátek pole, ve kterém jsou uloženy osoby. Tím jsme zajistili, že při novém vykreslení rodinného stromu nalezneme partnera, kterého chtěl uživatel zobrazit. 5.3.3
Vykreslení dětí
Při vykreslování dětí jsme narazili na problém s uživatelským rozhraním. Nebylo možné předem odhadnout, kolik dětí bude potřeba zobrazit a v případě většího počtu dětí zde byl navíc problém s místem. Toto bylo vyřešeno při každém překreslení stromu nejprve smazáním všech objektů, ve kterých jsou vykresleny děti a po zjištění jejich počtu vytvořením objektů nových, do kterých pak načteme fotografie. V případě, že je potřeba vykreslit více dětí, zobrazí se po stranách šipky podobné jako ve fotogalerii, kterými se můžeme mezi dětmi pohybovat.
Obrázek 5.23: Vykreslení dětí
5.4
Vstup z klávesnice a myši
Funkce patřící do této části mají na starost zpracovávat uživatelův vstup z klávesnice a myši. Aplikace podporuje tři druhy ovládání, které systém VM převádí na události myši nebo klávesnice. 5.4.1
Pointer
25 Tento způsob ovládání je systémem VM převeden na události, se kterými pak flashová aplikace pracuje jako s událostmi běžné myši. Každý objekt, na který je možné kliknout, má zaregistrovány následující události: • • • •
5.4.2
onRelease – tato událost se zavolá v případě, že uživatel na objekt klikne onRollOver – tato událost se zavolá pokud uživatel přemístí myš nad objekt onRollOut – opak předchozí událost, volá se v případě, že uživatel myš přemístí z objektu pryč onReleaseOutside – tato událost se zavolá ve chvíli, kdy uživatel stiskne tlačítko myši, ale uvolní ho mimo objekt
NVVI
Tento způsob ovládání je systémem VM převeden na události klávesnice, kterými jsou stisknutí tlačítka Tab nebo Enter. O implementaci tohoto způsobu ovládání se stará funkce createTabIndex(), která vytvoří seznam objektů, mezi kterými se pak můžeme pohybovat pomocí klávesy Tab. Seznam těchto objektů je závislý na obrazovce, na které se uživatel zrovna nachází a proto tuto funkci voláme při každé změně obrazovky. Stisknutím klávesy Enter pak uživatel vybere objekt, na kterém se zrovna nachází kurzor. 5.4.3
Dálkové ovládání
Po stisku tlačítka na dálkovém ovladači jsou, stejně jako v předchozím případě, systémem VM vygenerovány události klávesnice. V tomto případě jsou generovány události stisku tlačítek levé, pravé, horní a dolní šipky a klávesy Enter. O zpracovávání těchto událostí se stará objekt keyListener, který je zaregistrován pro naslouchání událostem o stisku kláves. Metoda zpracovávající tyto události je rozdělena do několika částí podle kláves, které byly stisknuty. Dále je každá z těchto částí rozdělena podle obrazovky, ve které se uživatel právě nachází.
5.5
Fotogalerie AutoViewer
Pro vykreslení fotogalerií nebo seznamů událostí, osob a partnerů v aplikace Family Tree jsem použil fotogalerii AutoViewer [8]. AutoViewer je jednoduchá flashová galerie vyvinutá firmou Airtight Interactive. V době vývoje aplikace Family Tree se jednalo o open source projekt, nicméně s příchodem verze 2.0 byl zdrojový kód ze stránek výrobce stažen a nyní je k dispozici pouze zkompilovaná verze. Kód fotogalerie AutoViewer je rozdělen do několika tříd, ze kterých nás zajímaly především třídy StageManager (soubor StageManager.as) a Image (soubor Image.as). Třída StageManager se stará o vykreslení celé fotogalerie a třída Image vykresluje jednotlivé obrázky. Kód fotogalerie AutoViewer můžeme najít v adresáři /com, který je ve stejném adresáři jako hlavní zdrojový soubor aplikace – familyTree.fla.
26
Aby bylo možné fotogalerii AutoViewer použít nejenom k zobrazení obrázků, ale také seznamů událostí, osob a partnerů, bylo ji potřeba rozšířit. Přidal jsem tedy další třídy podobné třídě Image a tím sem docílil odlišného vzhledu objektů v jednotlivých seznamech. Těmito třídami jsou třídy EventImage, FamImage a ParImage, které jsou použity při vykreslení seznamu událostí, osob a partnerů. Příkladem je obrázek 5.24, na kterém můžeme vidět rozdíl mezi seznamem událostí (nahoře) a seznamem osob (dole).
Obrázek 5.24: Rozdíly mezi seznamy událostí a osob
27
6.
Testování
Při tvorbě aplikace Family Tree, zvláště v době návrhu grafického uživatelského rozhraní, bylo testování velice důležitou součástí. Probíhalo současně během celé práce na aplikaci a na základě poznatků pořízených v průběhu testování byla aplikace Family Tree přizpůsobena uživatelům. Testování probíhalo v několika fázích. Alpha testování Alpha testování bylo prováděno mnou a vedoucím práce při přidání každé nové funkcionality do aplikace. Testování probíhalo na zařízení simulovaném pomocí programu Adobe Device Central. Bohužel zde nebylo možné testovat práci s různými druhy ovládání a proto jsme u aplikace testovali pouze vstup z klávesnice a myši. Úkolem tohoto testování bylo zjistit, zda aplikace pracuje správně a zda jsme si přidáním nové funkcionality nezavedli do aplikace nějaké chyby. Beta testování Když se vývoj blížil ke konci a aplikace Family Tree byla připravena na beta testování, proběhlo testování s uživateli. Toto testování již proběhlo na zařízení, pro které je aplikace určena. Hlavním cílem tohoto testování bylo zjistit, jestli se aplikace dá pohodlně ovládat různými zařízeními jako například dálkové ovládání nebo pointer. Při tomto testování mohl být problém s tím, že uživatelé v aplikaci neměli vlastní data a vyznat se v cizím rodokmenu mohlo být v některých případech náročné. U tohoto testování jsem nebyl přítomen, nicméně výsledky z testování byly pozitivní. Výsledky tohoto testování vedly k posledním úpravám uživatelského prostředí, po kterých dostala aplikace Family Tree současný vzhled. Zejména bylo potřeba zvětšit velikosti a upravit pozice ovládacích prvků. V současné době probíhá plnohodnotné testování aplikace v rámci projektu Vital Mind s uživateli a jejich vlastními rodinnými stromy. Aplikace byla také úspěšně testována s rodinným stromem britské královské rodiny, čítajícím kolem 5000 osob v 3500 rodinách.
28
29
7. 7.1
Závěr Možnosti dalšího rozšíření
V průběhu vývoje aplikace Family Tree jsme dostali pár dalších nápadů na její vylepšení, které jsme zatím nestihli naimplementovat. Je možné, že po ukončení testování, které právě probíhá, a po nasazení aplikace k používání se k některým nápadům vrátíme a aplikaci Family Tree obohatíme o novou funkcionalitu. V této kapitole zmíním některá zajímavá rozšíření, kterými bychom mohli aplikace Family Tree vylepšit. 7.1.1
Možnost načítání více rodin
V současné době můžeme do aplikace Family Tree načíst pouze jednu rodinu. V případě, že bychom si chtěli prohlédnout jinou rodinu, bylo by nutné aplikaci vypnout, změnit fotografie a soubor GEDCOM, který aplikace načítá a poté aplikaci znovu spustit. Přidáním této funkcionality by v aplikaci přibylo nějaké menu, ve kterém bychom si mohli zvolit, kterou rodinu chceme načíst. Bylo by tedy snadné se mezi rodinami přepínat. Aplikace Family Tree by tímto mohla sloužit také k výukovým účelům, kde by mohla zobrazovat nějaké rodiny významných osobností. Několik ukázkových rodin by také mohlo být distribuováno přímo s aplikací. Při přidání této funkcionality bychom museli vyřešit problém, jakým způsobem vytvořit menu, ve kterém by si pak uživatel mohl zvolit, kterou rodinu chce načíst. Z bezpečnostních důvodů nemají flashové aplikace možnost prohledávat uživatelův pevný disk a tudíž bychom nemohli zjistit, které rodiny má uživatel u aplikace uloženy. Tady bychom si museli pomoci například javascriptem nebo jiným jazykem a do flashe pak tento seznam souborů předat parametrem, například v nějaké XML struktuře. 7.1.2
Přehrávání videí
Dnes již téměř každý digitální fotoaparát umí také natáčet krátká videa. Zatím je bohužel v aplikaci Family Tree nemůžeme použít, protože aplikace umí zobrazovat ke každé osobě pouze fotografie. Přidáním této funkce bychom mohli galerii v aplikaci rozšířit a umožnit uživatelům přidávat k osobám také videa. Zde bychom možná narazili na problém s formátem videí, který je možné do aplikace načíst. Flash pracuje s videi ve formátu .FLV (Flash Video), takže by bylo nutné před použitím videa nejprve provést konverzi do tohoto formátu.
30 7.1.3
Možnost zobrazení textových dokumentů
Jednou z dalších možností, jak bychom mohli aplikaci Family Tree rozšířit o nějaké zajímavé funkce, je možnost zobrazení textových dokumentů. U každé osoby by tedy bylo možné kromě obrázků nebo videí zobrazit také nějaký dokument, kde vzhled a rozsah tohoto dokumentu by závisel pouze na uživateli. V současné fotogalerii by mohl být pouze náhled na tento dokument a po jeho vybrání by se nějakou animací náhled rozšířil přes celou obrazovku. Dále by se objevili ovládací prvky umožňující posun v textu. Po ukončení prohlížení dokumentu (k tomu by mohla sloužit například klávesa Enter) by se uživatel opět krátkou animací vrátil zpět do fotogalerie. Flash podporuje některé základní HTML značky v textových polích. Toho bychom mohli využít a dokumenty pěkně formátovat. Uživatel by tedy mohl mít na výběr, zda přidá pouze textový dokument bez formátování, nebo dokument ve formátu HTML. Jednou z hlavních výhod použití HTML by byla možnost přidávat do dokumentu také obrázky pomocí značky
. Další zajímavou možností by bylo využití CSS (kaskádových stylů), pro které je ve flashi také zabudována základní podpora.
7.1.4
Přidávání poznámek
Dalším zajímavým rozšířením by bylo umožnit uživatelům přidávat si vlastní poznámky k jednotlivým osobám nebo událostem. U osob by nejspíše přibyla v menu osoby další položka, kterou by se uživatel dostal na obrazovku, kde by mohl poznámku editovat a uložit. U událostí bychom tlačítko pro editování poznámek museli umístit buď do horního menu, nebo by bylo nutné vytvořit nové menu, které se zobrazí po zvolení některé události. Vytvořením nového menu bychom získali do budoucna prostor pro případné přidání dalších funkcí k událostem. Abychom mohli uživateli umožnit přidávat si vlastní poznámky, museli bychom nejprve nějak vyřešit, jakým způsobem bude uživatel v aplikaci Family Tree psát. Pokud by uživatel aplikaci ovládal pomocí dálkového ovladače, bylo by asi nejvhodnější použít nějakou virtuální klávesnici, po které by se uživatel pohyboval pomocí šipek a potvrzoval klávesou Enter. Nebo by bylo také možné psát podobně jako na mobilním telefonu, ale museli bychom klávesnici zobrazit na obrazovce, protože většina dálkových ovladačů není potisknuta písmeny u čísel. Pro ovládání pomocí NVVI by virtuální klávesnice byla asi jediným řešením. Zde bychom se museli rozhodnout mezi klasickou klávesnicí a klávesnicí podobnou mobilnímu telefonu. Myslím si, že s klávesnicí z mobilního telefonu by se tímto zařízením pracovalo lépe, protože je menší a tudíž by bylo jednodušší vybrat nějaké písmeno. Při práci s pointerem bychom nejspíše narazili na problém, že by bylo obtížné trefit se na písmeno, které chceme stisknout. Zde bych se opět přikláněl ke klávesnici z mobilního telefonu, protože by bylo možné tlačítka udělat větší a tím uživateli psaní trochu usnadnit.
31
7.2
Závěr
Úkolem této práce bylo, kromě samotného návrhu a implementace aplikace Family Tree, také seznámení se s projektem Vital Mind a se způsoby ovládání, které jsou v projektu VM použity. To bylo důležité už na začátku projektu, předtím, než bylo možné udělat návrh uživatelského rozhraní. Zvládnutí této části mi pak velice pomohlo právě při návrhu aplikace. I přes časté změny v návrhu v průběhu vývoje se nám podařilo aplikaci dokončit včas a k dnešnímu dni probíhá její plnohodnotné testování s uživateli v rámci projektu Vital Mind. Díky změnám, které jsme v důsledku testování provedli, se nám podařilo vytvořit velice intuitivní uživatelské rozhraní, které není závislé na ovládání pouze jedním způsobem, jak tomu u většiny flashových aplikací bývá. Velice zajímavé bylo využití těchto nestandardních způsobů ovládání, které jsou užitečné zvláště v prostředích, kde nemáme klasickou klávesnici nebo myš, jako je například prostředí digitální televize, pro které byla tato aplikace vytvořena. Techonologie Flash Lite 3.0, která byla pro vývoj této aplikace použita, se stává v poslední době velice populární a věřím že v budoucnu bude její použití mnohem častější. Její nevýhodou je zatím podpora pouze starší verze jazyka ActionScript 2.0, nicméně věřím, že nová, již ohlášená verze Flash Lite 4.0, bude už novou verzi jazyka ActionScript 3.0 podporovat.
32
33
Literatura [1] Gramps, Webové stránky projektu Gramps dostupné z: http://gramps-project.org/ [2] My Heritage, Webové stránky genealogické aplikace Family Tree Builder dostupné z: http://www.myheritage.cz/family-tree-builder [3] Vital Mind Consortium, Webové stránky projektu Vital Mind dostupné z: http://www.vitalmind-project.eu/ [4] Adobe, Webové stránky firmy Adobe dostupné z: http://www.adobe.com [5] Vital Mind Consortium, D3B Design Document for Content, http://www.vitalmindproject.eu/ [6] Vital Mind Consortium, D4A System Design, http://www.vitalmind-project.eu/ [7] McBride, Paul B., The GEDCOM Standard Release 5.5, dostupné z: http://homepages.rootsweb.ancestry.com/~pmcbride/gedcom/55gcint.htm [8] Airtight Interactive, Webové stránky produktu AutoViewer dostupné z: http://simpleviewer.net/autoviewer/ [9] Howells, Cyndi, Cyndi's List dostupný z: http://www.cyndislist.com/gedcom.htm [10] Hanzl, Filip, Návrh uživatelského rozhraní pro set-top box, diplomová práce, 2008
34
35
A. Seznam použitých zkratek IDTV – interactive Digital Television NVVI – Non-verbal vocal interaction USB – Universal serial bus GEDCOM - GEnealogical Data COMmunication ADC – Adobe Device Central VM – Vital Mind UFD – USB Flash Disk STB – Set-top box MPD - Monophonic Pitch Detection VGR - Voice Gesture Recognition GUI – Graphical User Interface CSS – Cascading style sheets HTML – HyperText Markup Language
36
37
B. Uživatelský manuál Import rodokmenu do aplikace Family Tree Pro import rodokmenu postupujte takto: 1. Nejprve nahrajte balíček vytvořený pomocí nějaké genealogické aplikace do adresáře, ve kterém se nachází hlavní soubor aplikace – familyTree.swf 2. Soubor s příponou .ged je ve stejné složce jako soubor familyTree.swf 3. Složka obsahující fotografie je ve stejné složce jako soubor familyTree.swf 4. Přejmenujte soubor gedcom na vmsuite03.ged 5. Nyní je vše připraveno a po spuštění aplikace si aplikace Family Tree načte soubor vmsuite03.ged a zobrazí rodinný strom.
Zobrazení fotogalerie osoby Pro zobrazení fotogalerie nějaké osoby postupujte: 1. V rodinném stromě vyberte nějakou osobu – ta se po vybrání přesune doprostřed rodinného stromu na místo otce nebo matky. Kolem vybrané osoby se zobrazí žlutý rámeček (obrázek 1) 2. Vyberte osobu na místě otce nebo matky. Tím se objeví menu osoby (obrázek 2) 3. V menu vyberte tlačítko View Photographs. 4. Po přesunutí do seznamu událostí vyberte nějakou událost, ve které jsou fotografie, které si chceme prohlédnout. (obrázek 3) 5. Ve fotogalerii se můžeme pohybovat pomocí šipek po stranách. Ukončit fotogalerii je možné stisknutím tlačítka Back.
Obrázek 1: vybraná osoba
38
Obrázek 2: menu vybrané osoba
Obrázek 3: výběr událostí
Přepínání mezi pohledem osob a pohledem na rodinný strom Přepínání mezi pohledy na osoby je možné pomocí tlačítek List a Tree v hlavním menu. V každém pohledu je možné stisknout pouze jedno z těchto tlačítek. Pokud se nacházíme v rodinném stromě, můžeme stisknout pouze tlačítko List a pokud se nacházíme v pohledu osob, lze stisknout tlačítko Tree.
Řazení osob a událostí Řazení osob a událostí se provádí stejným způsobem a je to možné následujícím postupem. 1. V seznamu osob nebo událostí klikněte na tlačítko Sort, které se nachází v hlavním menu vpravo nahoře (obrázek 4) 2. Po stisknutí tlačítka se nám otevře menu, ve kterém je možné vybrat, jakým způsobem chceme osoby nebo události řadit (obrázek 5) 3. Menu zrušíme stisknutím tlačítka Cancel, nebo seřadíme vybráním některého ze způsobů řazení.
39
Obrázek 4: výběr událostí
Obrázek 5: menu řazení
Změna partnera Změna partnera v pohledu na rodinný strom je možná následujícím způsobem: 1. Vybereme osobu, u které chceme změnit jejího zobrazovaného partnera a otevřeme její menu. 2. Pokud má osoba více partnerů, bude možné stisknout tlačítko Select alternative spouse 3. Stisknutím tohoto tlačítka se dostaneme do seznamu partnerů, které je možné vybrat 4. Vybráním některého z nich se aplikace vrátí do rodinného stromu a u vybrané osoby bude zobrazen partner, kterého jsme zvolili.
40
41
C. Obsah přiloženého CD CD obsahuje následující adresářovou strukturu: /bin /photos /text /images /src /src /com
– -
spustitelné soubory a GEDCOM soubor ukázkové rodiny obrázky ukázkové rodiny text bakalářské práce obrázky k textu zdrojový soubor textu bakalářské práce zdrojové soubory aplikace Family Tree zdrojové soubory galerie AutoViewer