• Nebyly nalezeny žádné výsledky

Výhody a nevýhody publikace a dostupnosti nativních aplikací (zdroj: autor) 36

Zařízení s operačním systém Android mohou stahovat aplikace z Google Play Store.

Ekvivalentem pro zařízení s operačním systémem iOS, iPadOS a macOS je App Store.

Aplikace se po stažení uloží do interní paměti zařízení a dají se spouštět bez internetového připojení.

PWA se načítají z webového prohlížeče a pomocí service workeru je možné aplikaci nainstalovat. Aplikace se uloží do cache a je taktéž spustitelná bez internetového připojení.

V následujících tabulkách jsou popsané výhody a nevýhody jednotlivých platforem týkajících se jejich publikace a dostupnosti.

Tabulka 3: Výhody a nevýhody publikace a dostupnosti nativních aplikací (zdroj: autor) Nativní mobilní aplikace

Výhody

Distribuční služba s aplikacemi má jistá pravidla a požadavky, které se musí splnit při publikaci aplikací. Ne všechny aplikace se tak dostanou do katalogu, a tím se celkově zvýší bezpečnost a kvalita aplikací.

Obchod poskytuje procházení nabídky softwaru, vyhledání, prohlížení kategorií, žebříčků a recenzí, což značně zjednoduší výběr správné aplikace.

Nevýhody

Pro používání aplikace je nutná instalace

Komplexní proces publikace aplikace

Tabulka 4: Výhody a nevýhody publikace a dostupnosti PWA (zdroj: autor) PWA

Výhody

PWA je dostupná z prohlížeče a není tedy nutná instalace.

PWA lze nechat vyhledávači indexovat. Na webových vyhledávačích je tak jednodušeji dohledatelná.

Nevýhody

Absence katalogu nebo obchodu s dostupnými PWA, které by bylo spravováno vyšší autoritou6.

1.5.2 Výkon

Nativní mobilní aplikace, jak už z názvu vypovídá, běží na zařízeních nativně. Má možnost přistupovat k hardwaru a softwaru zařízení a tyto systémové prostředky dokáže lépe optimalizovat.

Díky ukládání zdrojů aplikace do cache se progresivní webové aplikace načítají rychleji.

Hlavním důvodem, proč PWA nebudou nikdy výkonnější než nativní aplikace, je že se PWA spouští z prohlížeče. Při špatné konektivitě může docházet k latenci. Také mají vyšší spotřebu baterie (Relevant, 2021).

1.5.3 Přístup k hardwaru a funkcionalitám mobilního zařízení

Nativní aplikace běžně přistupují k hardwaru a funckionalitám specifickým pro mobilní zařízení. Tyto funkcionality se běžně ve webových aplikacích nevyužívají. Tato podkapitola je věnována podpoře těchto funkcionalit v PWA. Jelikož je PWA spouštěna v prohlížeči, nemusí některé funkcionality vůbec podporovat. Hlavním zdrojem pro kontrolu podpory funkcionalit a přístupu k hardwaru je webový portál What Web Can Do (Bar, 2021), který obsahuje databázi dostupných API a jejich podporu v prohlížečích a zařízeních.

6 Tato nevýhoda se vztahuje pouze na obchod s aplikacemi společnosti Apple (Koombea, 2021).

Společnost nedovoluje publikaci PWA. Publikace PWA do Google Play Store je povolena (Medium, 2019).

Geolokace

Poloha zařízení se získává pomocí Geolocation API, které umožňuje autorizovaným webovým aplikacím přistupovat k údajům o poloze poskytnuté zařízením. Poloha se získává pomocí GPS nebo ze sítě (Bar, 2021).

Fotoaparát a mikrofon

Focení, natáčení videa či nahrávání zvuku jsou dostupné v PWA pomocí Media Capture API.

Media Capture API umožňuje používat data dostupná z fotoaparátu a mikrofonu zařízení, případně i záznamy pořizovat. Pořizování fotografií pomocí tohoto API je velmi omezené (Bar, 2021). K použití pokročilejších nastavení fotoaparátu, jako je např. přibližování, vyváženost barev, ISO nebo zaostřovací body, je Image Capture API (Bar, 2021).

Úložiště

Aplikace může k souborům zařízení přistupovat pomocí File API. Aplikace bude mít pouze read-only oprávnění. Native File Systém API, které je momentálně ve fázi návrhu, by mělo v budoucnu umožnit soubory i editovat (Bar, 2021).

Co se offline uložiště týče existují tři standardizované a plně dostupné technologie: Web Storage, IndexedDB API a Cache API. Každý slouží k něčemu jinému. Web storage dovoluje ukládat pouze textová data ve formátu JSON a byl navržen pro menší objem dat. IndexedDB slouží jako uložiště pro větší objem strukturovaných dat. Cache API slouží k ukládání statického obsahu webové aplikace (Bar, 2021).

Notifikace

Posílání notifikací z klientské i serverové části je popsáno v předchozí kapitole (viz. 1.4 Struktura PWA).

Orientace a pozice zařízení

Screen Orientation API umožňuje webovým aplikacím získat informace o aktuální orientaci stránky (na výšku nebo na šířku) a také uzamknout orientaci obrazovky v požadovaném stavu (Bar, 2021).

Device Orientation API umožňuje webovým aplikacím přistupovat k datům gyroskopu a kompasu, aby bylo možné určit statickou orientaci zařízení ve všech třech dimenzích (Bar, 2021).

Funkcionality zařízení

Stav připojení a chování PWA při nedostupném připojení je popsáno výše (viz. 1.4 Struktura PWA).

Informace jako typ připojení a maximální rychlost stahování lze zjistit pomocí Network Information API. Toto API je podporováno pouze v prohlížečích Google Chrome na zařízeních Android (Bar, 2021).

Stav baterie lze zjistit pomocí Battery Status API. Kromě stavu baterie lze zjistit informace o zdroji napájení, úroveň nabití, předpokládané době plného nabití či vybití (Bar, 2021).

Vibration API umožňuje aplikaci spouštět v případě potřeby vibrace. API není v Safari podporováno (Bar, 2021).

Bezdrátová komunikace

Web Bluetooth API umožňuje párování s blízkými periferními zařízeními podporující technologii Bluetooth Low Energy a přístup k jejich službám (Bar, 2021).

Schopnost číst a zapisovat do zařízení NFC (Near-Field Communication) umožňuje Web NFC API. Toto API je v experimentální fázi a je částečně podporovaná pouze v prohlížeči Chrome pro Android (Bar, 2021).

Volání, SMS a MMS

Volání, přístup ke kontaktům zařízení, zasílání a přijímání SMS či MMS není povoleno v žádném prohlížeči.

1.5.4 Implementace

Nativní mobilní aplikace je nutné vyvíjet pro každou platformu zvlášť. Aplikace pro zařízení s operačním systémem Android se vyvíjí v jazyce Java, Kotlin nebo C#. Aplikace pro iOS, iPadOS, macOS jsou vyvíjeny v jazyce Switch či Objective-C. Což většinou znamená, že je nutné mít specializované týmy pro každý programovací jazyk. Taková implementace je z hlediska finančního, technologického i časového hlediska velmi náročná.

PWA je možné napsat v jednom jazyce – Javascript nebo C#. Výsledná aplikace bude spustitelná nejen na mobilních zařízeních a prohlížečích, ale i na desktopových zařízeních.

2 Analýza požadavků

Tato kapitola se zabývá zjištěním požadavků, které jsou nutné pro návrh a vývoj ukázkové aplikace.

2.1 Rezervační systém

Tématem pro vývoj PWA je v této práci rezervační systém. Jedním z cílů práce je tvorba ukázkové aplikace, proto je tato problematika brána jako téma sloužící k demonstraci funkcí a možností, které PWA nabízí.

Zákazníci využívající různé služby mají v dnešní době mnoho možností rezervace. Od telefonátů, sms, email, osobní návštěvy až po webové stránky či sociální média. Kvůli takto rozděleným možnostem může být pro poskytovatele služeb komplikované mít celkový přehled o stavu jednotlivých rezervací.

Tento problém mohou řešit aplikace sloužící pro správu rezervací. Poskytovatelé mohou aplikaci využít pro tvorbu, sledování a správu jednotlivých rezervací. Aplikaci mohou využít kdykoliv na všech možných zařízeních, od mobilní telefony a tablety až po desktopové zařízení, bez ohledu na to, zda je zařízení připojeno k internetu.

2.2 Testování a hodnocení dostupných aplikací

Důležitou součástí analýzy problému a návrhu řešení bylo testování existujících řešení, které jsou k dispozici na trhu. Záměrem této práce není tvorba kompletního řešení, které by bylo schopné konkurovat již existujícím řešením. Cílem této podkapitoly je identifikace kompletních požadavků týkajících se problematiky rezervačního systému.

Většina projektů podobného charakteru na trhu je vytvořena na komerční bázi, jejich instalace a používání jsou podmíněny zakoupením licence. Na základě výsledků vyhledávání na webovém vyhledávači Google a online distribučních službách (App Store a Google Play) je vybráno šest aplikací. Jsou vybrány pouze ty aplikace, které jsou nabízeny zdarma nebo měli zkušební verzi. Webové aplikace jsou vyzkoušeny v prohlížečích na desktopovém i na mobilním zařízení. Aplikace, které nabízí i nativní mobilní verzi, jsou staženy na mobilní zařízení z příslušných služeb.

Testování aplikace probíhalo tak, že se aplikace používali každý den po dobu několika dní.

Zkoumají se hlavně základní funkce, jako je tvorba nebo správa rezervací.

2.2.1 MyFox

MyFox je aplikace sloužící pro správu rezervací. Je dostupná jako webová aplikace i jako mobilní aplikace pro zařízení s operačním systémem Android a iOS (MyFox, 2021).

Aplikace umožňuje tvorbu, editaci a mazání rezervací. Aplikace rozděluje z pohledu užívání aplikace dvě role. Role zákazníka a správce. Role zákazníka nemá možnost přihlášení a má přístup pouze ke stránce sloužící k vytvoření rezervace. Role správce má po přihlášení přístup k pokročilejším funkcím. Při vytváření rezervací, je možné jednotlivým rezervacím přiřadit službu, zákazníka a preferovaného zaměstnance. Služby, zákazníky a zaměstnance je možné po přihlášení vytvářet, editovat a mazat.

Aplikace je segmentována do tří základních sekcí:

- Přehled rezervací – Základní sekce, která obsahuje celkový přehled všech rezervací ve zvolený den či týden.

- Databáze zákazníků – Jedná se o kartotéku zákazníků, ve které je umožněno vyhledávání, vytváření, editování a mazání zákazníků.

- Nastavení – nastavení aplikace, které umožňuje spravovat jednotlivé služby a zaměstnance

Webová aplikace bez internetového připojení nefunguje. Mobilní aplikace bez připojení umožňuje vytvářet, editovat a mazat rezervace.

2.2.2 Sdiary

Sdiary je webová aplikace pro správu rezervací. Je dostupná pouze jako webová aplikace (Sdiary, 2021).

Aplikace umožňuje tvorbu, editaci a mazání rezervací. Aplikace rozděluje z pohledu užívání aplikace dvě role. Role zákazníka a správce. Role zákazníka nemá možnost přihlášení a má přístup pouze ke stránce sloužící k vytvoření rezervace. Role správce má po přihlášení přístup k pokročilejším funkcím. Při vytváření rezervací, je možné jednotlivým rezervacím přiřadit službu, zákazníka a preferovaného zaměstnance. Služby, zákazníky a zaměstnance je možné po přihlášení vytvářet, editovat a mazat.

Obrázek 11: Ukázka aplikace Sdiary (Sdiary, 2021) Aplikace je segmentována do čtyř základních sekcí:

- Přehled termínů – Základní sekce, která obsahuje seznam všech rezervací zvoleného dne.

- On-line rezervace – Sekce sloužící k vytvoření rezervace

- Klienti – Databáze zákazníků, ve které je umožněno vyhledávání, vytváření, editování a mazání zákazníků.

- Nastavení – Nastavení aplikace, které umožňuje jednotlivé služby a zaměstnance editovat, mazat či vytvářet nové.

Webová aplikace bez internetového připojení nefunguje.

2.2.3 Rezervovač

Rezervovač je online rezervační systém. Rezervovač je dostupný pouze jako webová aplikace (Rezervovač, 2021).

Aplikace umožňuje správu rezervací, tedy jejich tvorbu, editování a mazání. Aplikace rozděluje z pohledu užívání dvě role – zákazník a správce. Zákazník se nikam nepřihlašuje a může přistupovat pouze na stránku s tvorbou rezervace. Správci je po přihlášení umožněno rezervace vytvářet a přiřazovat k nim službu a zákazníka, které je možné dále editovat, mazat či vytvořit nový. Aplikace neumožňuje rezervacím přiřadit preferovanou obsluhu (zaměstnance).

Aplikace je segmentována do tří sekcí:

- Nástěnka – Přehled všech rezervací.

- Klienti – Databáze zákazníků, ve které je možné zákazníky editovat, mazat či vytvářet nové záznamy.

- Služby – Databáze služeb, ve které je možné služby editovat, mazat či vytvářet nové záznamy.

Webová aplikace bez internetového připojení nefunguje.

2.2.4 SuperSaaS

SuperSaaS je rezervační systém, který se nabízí pouze jako webová aplikace (SuperSaaS, 2021).

Aplikace umožňuje vytvářet, editovat, mazat rezervace a zobrazit seznam rezervací.

Aplikace má z pohledu používání pouze jednu roli, a to roli administrátora. Neumožňuje zákazníkům vytvářet rezervace a musí je tedy vytvářet sám administrátor. K jednotlivým rezervacím je možné přiřadit pouze datum, čas, jméno a telefonní číslo zákazníka. Aplikace obsahuje pouze jednu sekci, ve které je zobrazen seznam všech rezervací daného dne.

Aplikace bez připojení nefunguje. mazat či vytvořit nový. Aplikace neumožňuje rezervacím přiřadit zaměstnance.

Aplikace je segmentována do tří sekcí:

- Přehledy – Přehled všech rezervací daného dne.

- Zákazníci – Sekce s databází a správou zákazníků.

- Nastavení – Nastavení aplikace (správa zaměstnanců a služeb).

Reservanto bez internetového připojení nefunguje.

2.2.6 Reenio

Reenio je online rezervační systém dostupný jako webová aplikace (Reenio, 2021).

Reenio nabízí možnost správy rezervací. Jednotlivé rezervace umožňuje vytvářet, editovat a mazat. Z pohledu užívání má aplikace dvě role. Role zákazníka a administrátora. Zákazníci se nepřihlašují a je jim umožněno rezervace pouze vytvářet. Administrátoři mají po přihlášení přístup k pokročilejším funkcím. Při vytváření rezervací, je možné jednotlivým

rezervacím přiřadit službu, zákazníka a preferovaného zaměstnance. Služby, zákazníky a zaměstnance je možné po přihlášení vytvářet, editovat a mazat.

Obrázek 12: Reservační systém Reenio Aplikace je segmentována do čtyř sekcí:

- Termíny - Zákazníci -

- Zdroje – Sekce s nastavením služeb či zaměstnanců.

- Reenio – V této sekci jsou nabízeny jednotlivé balíčky, které se dají v rámci rezervačního systému zakoupit. Jedná se primárně o rozšiřující funkce jako je neomezený počet zákazníků, služeb, rezervací apod.

Aplikace nefunguje bez internetového připojení.

2.2.7 Shrnutí

Z testování existujících služeb lze usoudit, že všechny aplikace fungují velmi podobně.

Aplikace rozdělují role na zákazníka a správce. Zákazník nemá možnost přihlášení a je mu zpřístupněna pouze stránka s tvorbou rezervace. Správcům je zpřístupněna administrátorská konzole, která obsahuje funkcionality týkající se správy rezervací, zaměstnanců, služeb a klientů. Jednotlivým rezervacím lze přiřadit zaměstnance, služby a klienta. Bez internetového připojení funguje pouze mobilní nativní aplikace MyFox, která umožňuje zobrazení seznamu rezervací a vytváření, editování a mazání jednotlivých rezervací. Webové aplikace bez internetového připojení nefungují.

Důležitá funkcionalita týkající se základních požadavků byla úspěšně identifikována.

Všechny požadavky požadované při vývoji aplikace jsou popsány v následující podkapitole.

2.3 Požadavky

Při vytváření seznamu funkcionalit, které by měl rezervační systém obsahovat, autor vychází z výsledků výše testovaných aplikací.

Požadavky jsou rozděleny do tří kategorií:

1) Funkční požadavky funkcionalitám. Funkční požadavky jsou tedy rozděleny do kategorií dle uvedených rolí.

Funkční požadavky – role administrátora:

- Správa účtů - Správa rezervací - Správa služeb - Správa zaměstnanců Správa účtů

Registrace nového uživatele je umožněno pouze administrátorům. Vytvoření dalšího uživatele je zpřístupněno z administrátorské konzoly.

Shrnutí požadavků:

- Možnost registrace nového uživatele.

- Možnost přihlášení uživatele.

- Možnost odhlášení uživatele.

Správa rezervací

Administrátorům je umožněno rezervaci zamítnout. Stav rezervace se po zamítnutí, změní na „denied“. Administrátorům je umožněno vytváření rezervací pro případ, kdy se zákazník zarezervuje osobně, pomocí sms či telefonátu.

Shrnutí požadavků:

- Možnost tvorby rezervace - Možnost zamítnutí rezervace

- Možnost zobrazení seznamu všech existujících rezervací - Seznam rezervací lze zobrazit bez připojení k internetu - Možnost filtrovat rezervace dle časového intervalu - Možnost tvorby rezervace bez připojení

Správa služeb

Tvorba nových služeb je umožněna pouze administrátorům. K tvorbě nové služby je nutno zadat její název, cenu, délku a stav. Služba může nabývat pouze aktivního či neaktivního stavu. Administrátor má možnost tyto údaje změnit či službu smazat.

Shrnutí požadavků:

- Možnost tvorby nové služby - Možnost změny údajů služby - Možnost smazání služby

- Možnost zobrazení seznamu všech existujících služeb Správa zaměstnanců

Vytvoření nového zaměstnance je umožněno pouze administrátorům. K vytvoření nového zaměstnance je třeba zadat pouze jméno a stav. Podobně jako u služby může zaměstnanec nabývat aktivního či neaktivního stavu.

Shrnutí požadavků:

- Možnost tvorby nového zaměstnance - Možnost změny údajů zaměstnance - Možnost smazání zaměstnance Funkční požadavky – role zákazníka:

Zákazník má přístup pouze ke stránce s vytvořením rezervace. Nově vytvořená rezervace má stav „nová“.

- Možnost tvorby rezervace

2.3.2 Nefunkční požadavky

Aby nedošlo k opomenutí jakýchkoliv důležitých aspektů navrhovaného řešení, je pro členění systémových požadavků využita metoda FURPS, která byla vytvořena společností Hewlett-Packard. Dívá se a ověřuje kvalitu softwaru či informačního systému z pěti základních hledisek, a to z hlediska (Wikipedia, 2021):

- Funkcionality (functionality) – hlavní funkčnosti a schopnosti aplikace - Použitelnosti (usability) – hodnocení aplikace z pohledu koncového uživatele - Spolehlivosti (reliability) – přesnost a dostupnost aplikace

- Výkonnosti (performance) – celková rychlosti odezvy systému - Podpory (supportability) – údržba a podpora aplikace

Hledisko funkcionality je v této podkapitole vynecháno, jelikož jsou funkční požadavky definovány v předešlé kapitole.

Použitelnost

- Zařízení – aplikace je spustitelná na desktopových, tabletových i mobilních

o Chrome verze 96.0.4664.45 o Firefox verze 94.0.1

o Edge verze 95.0.1020.40 o Safari verze 15.0

o Opera verze 81.0.4196.37

- Prohlížeč (mobilní zařízení) – aplikace je podporována a optimalizována pro provoz v hlavních prohlížečích v nejaktuálnější verzi. Jedná se tedy o (Statcounter, 2021):

o Chrome verze 96.0.4664.53 na zařízeních s operačním systémem Android o Safari verze 15.0 na zařízeních s operačním systémem iOS

- Přehlednost – aplikace je čitelná na všech zařízeních, neobsahuje zbytečné designové okrasy a žádná skrytá tlačítka a funkce, které by nebyly intuitivní.

- Jednoduchost – aplikace je pro uživatele co nejjednodušší a je použitelná i bez hlubších technických znalostí.

Spolehlivost

- Stabilita – aplikace je stabilní, neobsahuje chyby, které by zapříčinili náhodné pády aplikace.

- Bezpečnost – jediným citlivým údajem, kterým bude databáze disponovat je heslo uživatele. Mnoho lidí využívá jedno heslo na několik služeb nehledě na bezpečnostní riziko. Z tohoto důvodu nebude v databázi uloženo heslo jako prostý text, ale jen jakýsi otisk dostačující k ověření přihlášení, který ale neumožňuje zpětné získání hesla.

Výkonnost

- Doba odezvy – co nejnižší doba odezvy

- Nenáročnost – nízké nároky aplikace na paměťovou kapacitu Podpora

- Testování – implementace bude zhodnocena a aplikace bude před výsledným odevzdáním důkladně otestována.

2.3.3 PWA požadavky

PWA požadavky vychází z kontrolních seznamů uvedených v první kapitole (1.3). Požadavky jsou částečně vyfiltrovány a jsou zvoleny jen ty, které jsou relevantní pro tento projekt.

Jednotlivé identifikátory jsou totožné s identifikátory, které jsou uvedeny v kontrolních seznamech PWA.

Mezi požadavky dle základních kritérií PWA patří:

- CPWA1 Aplikace používá ke komunikaci protokol HTTPS - CPWA2 Aplikace je responzivní na všech velikostech obrazovky

- CPWA3 Aplikaci lze nainstalovat (využívá a má správně nakonfigurovaný service worker a web app manifest)

- CPWA5 Aplikace je funkční ve všech hlavních prohlížečích (Mozilla Firefox, Google Chrome, Microsoft Edge, Safari a Opera)

- CPWA6 Aplikace funguje omezeně v off-line režimu - CPWA7 Každá webová stránka má své URL

Mezi požadavky dle optimálních kritérií PWA patří:

- OPWA1 Pouze hlavní stránka aplikace je indexovatelná vyhledavačem společnosti Google, jelikož se většina obsahu zpřístupní pouze přihlášeným uživatelům.

Indexovat všechny stránky by v tomto případě nedávalo smysl.

- OPWA4 Kanonické URL adresy jsou v případě potřeby k dispozici - OPWA5 Stránky využívají History API

- OPWA6 Při načítání stránky je pozice obsahu nehybná

- OPWA7 Vrácením se ze stránky se zachová scrollovací pozice předešlé stránky - OPWA8 Textová pole, při jejich plnění, nejsou překryta klávesnicí

- OPWA11 Aplikace uživateli nabídne aplikaci přidat na domovskou stránku

- OPWA12 Výzvy k přidání aplikace na domovskou stránku nejsou zobrazovány nadměrně

- OPWA13 Doba k interaktivitě přes 3G připojení je do 5 vteřin - OPWA14 Aplikace používá cache-first přístup

- OPWA15 Pokud není zařízení připojeno k internetu, aplikace uživatele vhodně informuje

- OPWA16 Aplikace poskytuje uživateli informace o tom, jak budou notifikace použity - OPWA17 Oznámení povzbuzující uživatele k zapnutí push notifikací nesmí být příliš

agresivní

- OPWA18 Při zobrazení žádosti o povolení se jas obrazovky ztlumí - OPWA19 Push notifikace jsou včasná, přesná a relevantní

- OPWA20 Aplikace poskytuje možnost push notifikace vypnout a zapnout

3 Použité technologie

Tato kapitola popisuje technologie, které jsou využity při vývoji aplikace. Výběr technologií vychází ze zadání práce, z analýzy požadavků a z požadavků PWA.

Tato kapitola popisuje technologie, které jsou využity při vývoji aplikace. Výběr technologií vychází ze zadání práce, z analýzy požadavků a z požadavků PWA.