MASARYKOVA U N I V E R Z I T A FAKULTA INFORMATIKY Vývoj mHealth mobilní aplikace Diplomová práca B C . T O M Á Š B U D Á Č Vedúci práce: RNDr. Josef Spurný, Ph.D. Katedra počítačových systémov a komunikácií Brno, jar 2024 Vyhlásenie Vyhlasujem, že táto diplomová práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich čerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj. Bc. Tomáš Budáč Vedúci práce: RNDr. Josef Spurný, Ph.D. iii Poďakovanie Rád by som poďakoval pánovi RNDr. Josefovi Spurnému, Ph.D za odborné vedenie, užitočné rady a čas, ktorý mi počas práce venoval. iv Zhrnutie Táto práca sa zaoberá návrhom a implementáciou aplikácie pre operačný systém iOS. Aplikácia je implementovaná v programovacom jazyku Swift a jeho grafickom rozhraní SwiftUI. V teoretickej časti sa práca zameriava na popis dopytu aplikácií týkajúcich sa duševného zdravia, popis použitých technológií a aktuálny stav už existujúcich riešení. Praktická časť obsahuje návrh, implementáciu a testovanie aplikácie, ktorá bola vytvorená na základe poznatkov z teoretickej časti. Výsledkom je jednoduchá a užívateľsky prívetivá natívna iOS aplikácia na sledovanie nálad, zaznamenávanie denníka, vyplňovanie dotazníkov a plánovanie sedení s terapeutom. Kľúčové slová mobilná aplikácia, mHealth, Swift, iOS, SwiftUI v Obsah Úvod 1 1 Duševné zdravie 2 1.1 Dopyt po aplikáciách 2 1.1.1 Marketingová analýza 4 1.2 Druhy psychologickej terapie 5 1.2.1 Psychodynamická terapia 5 1.2.2 Behaviorálna terapia 6 1.2.3 Kognitívno-behaviorálna terapia 6 1.2.4 Humanistická terapia 6 2 Súčasný stav technológií 8 2.1 Vývoj aplikácií na iOS 8 2.2 Programovacie jazyky 9 2.2.1 Swift 9 2.2.2 Objective-C 9 2.2.3 C# 10 2.3 Používateľské rozhranie 10 2.3.1 UIKit 10 2.3.2 SwiftUI 11 2.4 Návrh používateľského rozhrania na iOS 12 3 Analýza existujúcich riešení 14 3.1 VOS 14 3.2 Daylio Journal - Daily Diary 16 3.3 Moodnotes - Mood Tracker 17 3.4 Zhrnutie nedostatkov a návrhy pre vylepšenie 19 4 Funkčné požiadavky 20 4.1 Serverová komunikácia 21 4.2 Prihlásenie 21 4.3 Denník 21 5 Návrh 22 5.1 Popis funkcionality aplikácie 22 5.1.1 Denník 22 vi 5.1.2 Kvalita spánku 22 5.1.3 Používateľský účet 22 5.1.4 Dotazník 23 5.1.5 Prehľad 24 5.2 Cieľová skupina 24 5.3 Dátový model 24 5.3.1 Klient 24 5.3.2 Otázka 25 5.3.3 Dotazník 25 5.3.4 Záznam 26 5.3.5 Záznam denníku 26 5.3.6 Sedenie 26 5.4 Aplikačná logika 26 5.5 Používateľské rozhranie 26 6 Implementácia 29 6.1 Všeobecné informácie 29 6.1.1 Alamofire 29 6.2 Mobilná aplikácia 30 6.3 Prehľad 30 6.4 Denník 33 6.5 Kalendár 34 6.6 Účet 35 6.7 Obmedzenia 36 7 Testovanie 37 7.1 Testovacie scenáre 37 7.2 Dotazník 38 7.2.1 Otázky s lineárnym rozsahom 38 7.2.2 Textové otázky 38 7.3 Vyhodnotenie 38 7.3.1 Ako ste spokojný so vzhľadom a pocitom z aplikácie? 39 7.3.2 Ako jednoduché je používanie aplikácie? . . . . 39 7.3.3 Zvážili by ste používanie aplikácie na dennej báze? 40 7.3.4 Ako pravdepodobné je, že by ste aplikáciu odporučili ďalej? 40 vii 7.3.5 Vyhodnotenie 40 8 Záver 42 Bibliografia 43 viii Zoznam tabuliek 4.1 Funkčné požiadavky Zoznam obrázkov 1.1 Odhadovaný rast trhu aplikácií o duševnom zdraví, prevzaté z [6] 5 2.1 Ukážka vývojového prostredia Xcode 8 2.2 Diagram návrhového vzoru Model-View-Controller . . . 11 2.3 Diagram návrhového vzoru Model-View-ViewModel . . . 11 3.1 Mobilná aplikácia VOS: Mental Health Tracker - zľava: Vyhodnotenie, program, štatistika 15 3.2 Mobilná aplikácia Daylio Journal - Daily Diary - zľava: Záznamy, štatistika, nastavenia 17 3.3 Mobilná aplikácia Moodnotes - Mood Tracker - zľava: Konfigurácia, denník, štatistika 18 5.1 Diagram prípadov použitia 23 5.2 Dátový model v aplikácii 25 5.3 Hlavná obrazovka 27 6.1 Obrazovka prehľad 31 6.2 Obrazovky denníku 32 6.3 Obrazovky kalendára 34 6.4 Obrazovky účtu 35 7.1 Výsledky pre otázku - Ako ste spokojný so vzhľadom a pocitom z aplikácie? 39 7.2 Výsledky pre otázku - Ako jednoduché je používanie aplikácie? 39 7.3 Výsledky pre otázku - Zvážili by ste používanie aplikácie na dennej báze? 40 7.4 Výsledky pre otázku - Ako pravdepodobné je, že by ste aplikáciu odporučili ďalej? 41 x Úvod V súčasnej uponáhľanej spoločnosti, kde je starostlivosť o duševné zdravie často zanedbávaná, vzniká čoraz väčšia potreba aplikácií na sledovanie a zlepšovanie duševného zdravia jednotlivca. V dnešnej dobe rastie počet ľudí trpiacich stresom, úzkosťou a inými psychickými problémami. Mobilné aplikácie ponúkajú flexibilitu a prístupnosť, ktorá umožňuje jednotlivcom sledovať svoje duševné zdravie kdekoľvek a kedykoľvek. Cieľom tejto práce je navrhnúť a implementovat iOS aplikáciu pre zaznamenávanie duševného zdravia a poskytnúť platformu pre klienta, umožňujúcu vypĺňať dotazníky a zobrazovať schôdzky s terapeutom. Aplikácia je užívateľsky prívetivá a jednoducho rozšířitelná o ďalšie moduly. Na začiatku práca popisuje potrebu starostlivosti o duševné zdravie, popisuje dopyt aplikácií v tejto kategórii a približuje druhy psychologickej terapie. Následne popisuje súčasný stav technológií a analýzu existujúcich riešení. N a základe analýzy sú špecifikované funkčné požiadavky, z ktorých je vytvorený návrh aplikácie. Návrh popisuje dátový model, funkcionalitu aplikácie a používateľské rozhranie. Ďalej práca popisuje implementáciu, v ktorej sú opísané postupy a vývoj. Ako posledné približuje priebeh testovania a jeho vyhodnotenie. V závere je zhrnutý výsledok práce. 1 1 Duševné zdravie Súčasné zvyšovanie duševných problémov u ľudí v akomkoľvek veku je komplexným fenoménom, ktorý sa prehliada. Môže byť ovplyvnený rôznymi faktormi vrátane stresu, ekonomických podmienok, sociálnych tlakov a mnohých ďalších. V dnešnej rýchlej dobe sa mnoho ľudí stretáva s rôznym duševným nepohodlím ako je úzkosť, depresia alebo stres. V dnešnej dobe sú chytré telefóny nevyhnutnou dennou súčasťou pre život. V nich si uchovávame rôznorodé aplikácie určené väčšinou pre jednu činnosť. Vzhľadom na aktuálnu situáciu sa povedomie o duševnom zdraví stáva akýmsi trendom. Tým sa zvyšuje dopyt po mobilných aplikáciách zaoberajúcich sa duševným zdravím. Tieto aplikácie sú dôkazom snahy poskytnúť ľuďom prístupné a personalizované nástroje na zlepšenie ich psychického stavu. Dôležité je odstrániť stigmu spojenú s hľadaním pomoci pre svoje duševné zdravie a umožniť aktívne sa podieľať na starostlivosti o svoj duševný kľud. Mobilné aplikácie zaoberajúce sa duševným zdravím poskytujú veľkú škálu funkcií, ktoré zahŕňajú relaxačné cvičenia na zmiernenie stresu, meditáciu, sledovanie nálady a prípadné návrhy na jej zlepšenie, nástroje na zlepšovanie kvality spánku, online terapeutické sedenia a mnohé ďalšie. Cieľom takýchto aplikácií je prispôsobiť sa potrebám používateľov a umožniť im začleniť starostlivosť o duševné zdravie do svojho každodenného života. Nárast popularity aplikácií tohto druhu odráža zmenu v spoločenskom pohľade na duševné zdravie. Aplikácie taktiež prezentujú dostupnosť k prostriedkom na riadenie svojho psychického blahobytu. Takto mobilné aplikácie vytvárajú priestor na aktívnu starostlivosť kedykoľvek človek potrebuje podporu. 1.1 Dopyt po aplikáciách Celosvetový dopyt po aplikáciách o duševnom zdraví zodvihla pandémia COVID-19 na začiatku roku 2021. Počas obdobia pandemie boli zavedené reštrikcie, ktoré viedli k sociálnemu dištancovaniu a izolácii. Toto ovplyvnilo duševné zdravie mnohých ľudí. Počas tohto obdobia sa prejavili zvýšené symptómy úzkosti z 6,33% na 50,9%, depresie 2 i . DUŠEVNÉ ZDRAVIE z 14,6% na 48,3% a stres z 8,1% na 81,9% v populácii v Číne, Španielsku, Taliansku, Iráne, USA, Nepále a Dánsku [1]. Zvýšením symptómov vedúcich k problémom s duševným zdravím a sociálnemu dištancovaniu sa na trhu vytvorila obrovská potreba po metódach k riešeniu problémov digitálne. Taktiež vzrástlo celkové povedomie o problémoch s duševným zdravím, ktoré zviditeľnilo tento trh a spravilo ho viac lukratívnym. To prinieslo aj technologické vylepšenia, ktorými sa k problémom je schopná spoločnosť postaviť. Do budúcnosti sa môže očakávať zvýšenie depresie a úzkosti. V posledných rokoch bolo vykonaných množstvo štúdii, ktoré skúmali realizáciu a prijateľnosť aplikácii v oblasti duševného zdravia. Vykazovali efektivitu pre širokú škálu chorôb, napríklad depresie, posttraumatických stresových porúch, schizofrénie, bipolárnych porúch alebo závislosti [2]. Metaanalýzy spomínané v článku [2] boli zamerané na hodnotenie výhod aplikácii pri prebiehajúcich liečbach. Výsledok hovoril o pridanej hodnote k existujúcim ošetreniam. Taktiež skúmali vplyv aplikácii, ako nástroja pre samoliečbu jednotlivcov v ich prirodzenom prostredí. Účinnosť sa pohybovala v stredných hodnotách, avšak bez kvalitne podložených dôkazov [2]. Mobilné aplikácie zamerané na mentálne zdravie môžu viesť k zmierneniu symptómov pri liečbe depresie. Ukazuje to štúdia [3], v ktorej sledujú kognitívnu behaviorálnu liečbu 1.2.3 s dôrazom na výcvik vnímavosti, monitorovanie nálady a výcvik kognitívnych zručností na liečbu depresívnych príznakov. Analýza zistila, že používanie 22 aplikácií signifikantně zmiernilo depresívne symptómy. Poukázali na to, že terapia na báze smartfónov prináša najväčší osoh pre ľudí s miernou až stredne ťažkou depresiou [3]. Kvalitné dôkazy preukazovali v článku [2] zachovanie účinkov liečby depresívnych symptómov po 7 až 11 týždňoch. Klinické testy napovedajú, že relaxačný tréning, vnímavosť a kognitívna behaviorálna liečba môžu zmierniť príznaky úzkosti. Prístup k týmto atribútom z aplikácii bol však ťažko získateľný z dôvodu obmedzených nákladov a dostupnosti. Mobilné aplikácie zamerané na úzkosť vykazovali najvyššie zmiernenie príznakov pri spojení s osobnou alebo internetovou liečbou. Prejdenie z ambulantných terapií na mobilnú aplikáciu nemalo vplyv na účinnosť liečby [3]. Autori vedeckej 3 i . DUŠEVNÉ ZDRAVIE štúdie [2] uviedli, že výsledky používania aplikácii vykazujú prínos pre liečbu príznakov úzkosti po 6 až 11 týždňoch. Vzhľadom na nevedomosť o frekvencii používania mobilných aplikácii sú výsledky tejto štúdie skreslené. Nedávny výskum z januára 2024 dospel k záveru, že aplikácie majú celkovo malý ale významný vplyv na symptómy depresie a úzkosti. Rovnako ako aj vyššie spomenuté články, aj spomínaný ukázal vyššie účinky aplikácie v liečení depresie. Mohli by byť vhodným prvým krokom liečby pre ľudí, ktorí nemajú prístup k tradičnej terapii. Ukázalo sa, že vlastnosti aplikácií ako je monitorovanie nálady a chatbot technológia vykazovali vyššiu účinnosť. Používaním aplikácii nebola preukázaná účinnosť voči príznakom úzkosti, najmä v dôsledku malých veľkostí vzoriek a rizikom předpojatosti [4]. Ďalšia vedecká štúdia sa zaoberala symptómami depresie a úzkosti u študentov vysokých škôl. Využívaná mobilná aplikácia Feel Stress Free bola založená na kognitívno-behaviorálnej terapii. V 6. týždni používania aplikácie bolo zistené, že klientom sa znížili symptómy depresie, avšak potvrdenie zmiernenia príznakov úzkosti nebolo dokázané. Práve v tomto čase 83 % účastníkov uviedlo, že používajú aplikáciu týždenne a častejšie. Zhodnotenie testovanej aplikácie usvedčuje o jej nádejnom použití pre študentov [5]. Schizofrenické halucinácie je možné zmierniť antipsychotickými liekmi, avšak neriešia behaviorálne príznaky. Využitie mobilných aplikácii bolo skúmané v piatich štúdiách, v ktorých sa preukázalo 92 % opakované použitie. Používatelia hovorili o pozitívnych skúsenostiach s aplikáciami a o rozsiahlych klinických prínosoch [3]. 1.1.1 Marketingová analýza Hodnota trhu aplikácií o duševnom zdraví je odhadnutá na 7.09 miliardy USD v roku 2024 a je predpokladané, že do roku 2029 dosiahne hodnotu 15,42 miliárd USD, čo predstavuje ročný rast 16,82% od 2024 do 2029 [6]. Najväčší trh predstavuje severná amerika. Zhrnuté zobrazenie je na obrázku 1.1. Trh s aplikáciami zaoberajúcimi sa mentálnym zdravím je rozdelený na viacero globálnych a domácich hráčov. Hlavné firmy na trhu sú CVS Health Corporation, Sanvello Health, Inc., Mindscapes, Headspace, Inc., a Youper, Inc [6]. 4 i . DUŠEVNÉ ZDRAVIE Mental Health Apps Market Market foe in USD Billion C AG R 14.E2SS Market Size (2024) Study Period 2021 - 2029 USD 7.09 Billion USD 15.4i B Markst Siíe (2029) USD 15.42 Billion ^míndscapas yojper 2024 2029 Obr. 1.1: Odhadovaný rast trhu aplikácií o duševnom zdraví, prevzaté 1.2 Druhy psychologickej terapie V terapii sa pracuje so vzdelanými odborníkmi na duševné zdravie. Druh sedenia závisí od preferovaného typu terapie, od terapeuta a problémov, ktoré sa riešia. Počas terapie sa určitý čas bude diskutovať o ťažkých situáciách, emóciách a správaní, ktoré ovplyvňujú človeka. Budú sa preberať niektoré negatívne udalosti alebo zlé myšlienky. V tom momente to môže byť náročné z emočných dôvodov, ale výsledkom môže byť šťastnejší život. Ďalej sekcia popisuje prehľad najpoužívanejších typov terapie podľa [7]. 1.2.1 Psychodynamická terapia V psychoanalýze sa rozpráva o všetkom, čo človeka napadne, aby sa odhalili vzory myšlienok alebo správania prispievajúceho k nepohodliu. Bežne sa rozpráva o detstve, minulosti, opakovaných snoch a fantáziách. V psycho-dynamickej terapii klient pracuje s terapeutom na preskúmavaní vzťahu podvedomia a činov. To zahŕňa skúmanie vzťahov, emócií a myšlienkových vzorcov [7]. z [6] 5 i . DUŠEVNÉ ZDRAVIE 1.2.2 Behaviorálna terapia Behaviorálna terapia je akčne orientovaný zameraný prístup k liečbe duševného zdravia. Podľa behaviorálnej teórie sa určité správanie vyvinulo už z naučenej minulej skúsenosti. Toto správanie môže negatívne ovplyvňovať život a spôsobovať nepohodlie. Vo výsledku behaviorálna terapia môže pomôcť zmeniť behaviorálne reakcie. V behaviorálnej terapii sa netrávi veľa času rozprávaním o nevedomých príčinách správania alebo riešením emocionálnych ťažkostí. Naopak, sa sústredí na spôsoby zmeny behavioráľnych reakcií a vzorcov spôsobujúcich nepohodlie [8]. 1.2.3 Kognitívno-behaviorálna terapia Jedná sa o krátkodobý prístup liečby duševného zdravia. Je podobná behaviorálnej terapii, ale zaoberá sa aj problematickými myšlienkami a nenápomocnými myšlienkovými vzormi. Idea K B T 1 je, že určité presvedčenia, pocity o sebe alebo situácie v živote môžu viesť k nepohodliu. Nepohodlie môže prispievať k poruchám duševného zdravia, súčasne sa s nimi vyskytovať alebo sa vyvinúť ako súhrn iných duševných problémov. Na sedeniach KBT sa pracuje na identifikácii vzorov a dozvedá sa viac o tom, ako by mohli ďalej negatívne ovplyvňovať. S pomocou terapeuta sa skúmajú spôsoby ako nahradiť negatívne myšlienkové vzory alebo správanie užitočnejšími alebo presnejšími. KBT nevenuje veľa času minulým udalostiam, podobne ako behaviorálna terapia. Namiesto toho sa zameriava na adresovanie existujúcich symptómov a na vykonávanie zmien. Častokrát zahŕňa cvičenia a domáce úlohy mimo sedení. Pre príklad sa môže viesť denník negatívnych myšlienok alebo ťažkých situáciách, ktoré sa udejú medzi sedeniami. Tým sú precvičované naučené znalosti z terapií a aplikujú sa získané zručnosti do každodenných situácií [9]. 1.2.4 Humanistická terapia Zaoberá sa tým, ako pohľad na svet ovplyvňuje rozhodnutia spôsobujúce najmä nepohodlie. Je založená na presvedčení, že človek je sám pre seba najvhodnejšou volbou pre pochopenie vlastných skúseností 1. Kognitívno-behaviorálna terapia 6 i . DUŠEVNÉ ZDRAVIE a potrieb. Terapeut sa snaží pomôcť lepšie pochopiť, čo konkrétne človek prežíva, a ponúka vedenie a podporu bez interpretácie problémov človeka. Dôležitým princípom je bezpodmienečné pozitívne prijatie. Terapeut sa snaží prijať človeka ako takého bez predsudkov, aj keď s ním v niektorých veciach nesúhlasí. Humanistická terapia je užitočná najmä pre zvládanie negatívneho odsúdenia od ostatných, či reálneho alebo vnímaného [10]. 7 2 Súčasný stav technológií 2.1 Vývoj aplikácií na iOS Vývoj aplikácii pre zariadenia s operačným systémom iOS vyžaduje špecifické prostriedky Vývoj na zariadenia od spoločnosti Apple Inc. je možný len prostredníctvom zariadení od rovnakej spoločnosti s operačným systémom macOS. Následne je nevyhnutné vlastniť Apple vývojársky účet, ktorý umožňuje prístup k A p p Store1 a celkovému vývoju. Pre zverejňovanie aplikácií do A p p Store je potrebné si kúpiť vývojársky balík za $99, kde je následne možné spravovať všetky vlastné aplikácie. Na vývoj slúži integrované prostredie Xcode s grafickým rozhraním, simulátorom zariadení a editorom zdrojového kódu (obrázok 2.1). Obr. 2.1: Ukážka vývojového prostredia Xcode 1. trh s aplikáciami pre iOS 8 2. SÚČASNÝ STAV TECHNOLÓGIÍ 2.2 Programovacie jazyky Sekcia popisuje najpoužívanejšie jazyky pre vývoj pre platformu iOS. 2.2.1 Swift Najpoužívanejším programovacím jazykom pre vývoj aplikácii na platformu iOS je Swift [11]. Je to natívny programovací jazyk pre všetky Apple platformy ako sú iOS, iPadOS, macOS, tvOS a dálšie. Platformy predstavujú ekosystém, ktorý medzi sebou veľmi dobre spolupracuje. Prvýkrát bol predstavený v roku 2014 [12]. Základné charakteristiky jazyka Swift: • bezpečnosť • jednoduchá syntax • rýchlosť a výkon • funkcionálně prvky • interoperabilita s Objective-C • podpora Na základe týchto charakteristík sa stal Swift preferovaným jazykom pre vývoj v danej platforme. Často sa používa na tvorbu mobilných aplikácií, desktopových aplikácií, aplikácií pre hodinky a mnoho ďalších. Ďalším veľkým bonusom jazyka je aktívna podpora od strany Apple a od komunity vývojárov, ktorí zdieľajú svoje knižnice, návody a ďalšie podporné materiály. Aj samotná spoločnosť ponúka výukové materiály bezplatne. 2.2.2 Objective-C Druhým najpoužívanejším natívnym jazykom je Objective-C [11]. Bol vyvinutý v 80. rokoch 20. storočia a dlhodobo bol hlavným jazykom pre vývoj na Apple platformy. Syntax jazyka je založená na jazyku C, ale rozšírená o orientované funkcie. Využíva dynamické typovanie. 9 2. SÚČASNÝ STAV TECHNOLÓGIÍ Slabinu predstavuje manuálne spravovanie pamäte, ktoré je náchylnejšie na chyby a striktnejšie na dodržiavanie pravidiel jazyka. S jazykom C je plne interoperabilný. Ďalším mínusom je slabšia bezpečnosť typov kvôli dynamickému typovaniu, kde kód môže byť náchylnější na chyby. Celkovo sa jedná o zastaralý programovací jazyk, ktorý už nie je optimálny pre modernejšie platformové požiadavky a štandardy. 2.2.3 C# Posledným tretím najpoužívanejším jazykom je C# [11]. Ide o moderný, robustný a vysoko výkonný programovací jazyk. Používa sa na širokú škálu aplikácií od desktopových, webových alebo mobilných aplikácií až po herný vývoj. Popisuje sa ako objektovo orientovaný a staticky typovaný jazyk s čistou štruktúrovanou syntaxou. Ďalej podporuje automatické spravovanie pamäte. Výhodou je platformová nezávislosť. Nevýhodu je, že sa nejedná o natívny jazyk pre Apple platformy, kde je jeho funkcionalita limitovaná a spomaľuje vývoj. Pre vývoj na Apple zariadenia sa používa opensource platforma Xamarin, ktorej skončila podpora prvého mája 2024 [13]. 2.3 Používateľské rozhranie Vo svete mobilných aplikácií a softvérového vývoja je tvorba používateľského rozhrania kľúčová pre úspech. Existujú rôzne frameworky a nástroje, ktoré poskytujú možnosti na vytváranie moderných a prívetivých používateľských rozhraní. Najvýznamnejšími pre platformy iOS sú UIKit a SwiftUI, obe od spoločnosti Apple. 2.3.1 UIKit Dlhoročný framework, ktorý bol hlavným nástrojom pre vývoj aplikácií pred príchodom SwiftUI. UIKit je založený na objektovo orientovanom prístupe, kde sa objekty vytvárajú a používajú objekty reprezentujúce časti používateľského rozhrania. Využíva sa návrhový vzor Model-View-Controller zobrazený na obrázku 2.2. Základom rozhrania je hierarchia pohľadov, ktoré zobrazujú obsah aplikácie. Sú usporiadané do stromovej štruktúry, kde každý pohľad môže obsahovať ďalšie pohľady v sebe. Na riadenie interakcií a obsahu 10 2. SÚČASNÝ STAV TECHNOLÓGIÍ Obr. 2.2: Diagram návrhového vzoru Model-View-Controller medzi užívateľom a aplikáciou slúži ViewController. ViewController riadi jeden alebo viac pohľadov, ktorým poskytuje logiku a navigáciu pre danú obrazovku alebo funkcionalitu. Na konfiguráciu a vizuálny návrh sa používajú vizuálne nástroje Storyboards a XIB súbory, ktoré poskytujú vizuálny editor s možnosťou správy navigácie, akcií a ďalších funkcií. Samotný UIKit disponuje mnohými preddefinovanými prvkami rozhrania, ktoré sú ľahko prispôsobiteľné a konfigurovatelné. 2.3.2 SwiftUI V roku 2019 bol predstavený framework SwiftUI [14]. Ide o moderné a deklaratívne rozhranie pre tvorbu používateľských rozhraní pre všetky platformy od spoločnosti Apple. Je navrhnuté na interaktivitu, kedy zmeny v dátach automaticky aktualizujú používateľské rozhranie a naopak. Synchronizácia dát je vďaka tomu jednoduchšia a efektívnejšia. Pre toto sa používa návrhový vzor Model-ViewModelModel zobrazený na obrázku 2.3. Obr. 2.3: Diagram návrhového vzoru Model-View-ViewModel 11 2. SÚČASNÝ STAV TECHNOLÓGIÍ Jednoduchá syntax je ľahko čitateľná, čo spôsobuje zníženie množstva kódu potrebného pre vývoj danej funkcionality. Obsahuje v sebe veľkú knižnicu preddefinovaných komponentov, ku ktorým pridáva rozličné základné štýly pre rôzny vzhľad. Disponuje funkciou Live Preview, ktorá je zobrazená na obrázku 2.1 vpravo, čo umožňuje zobraziť zmenu užívateľského rozhrania v reálnom čase pri zmene kódu. S UIKit má plnú interoperabilitu, vďaka tomu sa oba frameworky dajú používať v rovnakom projekte. SwiftUI je nástupca UIKit. 2.4 Návrh používateľského rozhrania na iOS Používateľské rozhranie Apple ekosystému podlieha určitým zásadám, aby sa aplikácie neodlišovali od základnej práce s iOS. Pre úspešnú aplikáciu je dôležité dodržiavať hlavé princípy. Základné zásady z dokumentácie Apple [15]: • Potreby používateľa - Dôležité je zohľadniť potreby aplikácie pre užívateľa. Používanie aplikácií je rozmanité, a preto je potrebné navrhnúť aplikáciu, ktorá bude uspôsobená jeho potre­ bám. • Rozmery displej a - Zariadenia iPhone majú stredne veľký displej s vysokým rozlíšením. Je potrebné vziať do úvahy tieto vlastnosti aby sa obsah optimálne prezentoval. • Ergonómia - Počas interakcie používateľa so zariadením interagujú jednou alebo oboma rukami striedajúc vertikálne a horizontálne držanie. Zorná vzdialenosť od zariadenia nebýva dlhšia ako 30 až 60 centrimetrov. • Vstupy - N a ovládanie sa používajú klávesnica na obrazovke, hlasové ovládanie a multi-touch gestá. Je vhodné zakomponovať viacero druhov ovládania do aplikácií. • Interakcia - Preferencia používania aplikácie je rôzna. Aplikácia by mala byť schopná prispôsobiť sa podmienkam a konfigurácii zariadenia. 12 2. SÚČASNÝ STAV TECHNOLÓGIÍ • Systémové funkcionality - Medzi vyhľadávané funkcie patria widgety, rýchle akcie na domovskej obrazovke, skratky a ďalšie. Ich vhodné použitie vylepšuje zážitok s interakciou aplikácie. 13 3 Analýza existujúcich riešení Kapitola popisuje aplikácie, ktoré slúžia ako denník so zaznamenávaním nálad, článkov na odbúranie stresu, meditačné návody, a ďalších funkcionalit. Mnou vybrané tri aplikácie na základe internetového prieskumu, užívateľských recenzií a hodnotení v App Store. Najvyššie v rebríčku je aplikácia VOS [16] konkrétne v kategórii zdravie a fitness, do ktorej sa radí skúmaný typ aplikácií. Druhou je Daylio Journal Daily Diary[17] a poslednou je Moodnotes - Mood Tracker [18]. 3.1 VOS Ide o aplikáciu vytvorenú v roku 2021 v Prahe inšpirovanú spoluzakladateľom trpiacim záchvatmi paniky. Plánom je vytvoriť vlastný vyvážený život. Ponúka aktivity a cvičenia poskytujúce duševný kľud, úľavu od stresu a úzkosti. Taktiež obsahuje chytrý denník a holistickú platformu navrhnutú psychológmi, ktorá má za úlohu vytvoriť pozitívny obraz o sebe a duševnom zdraví [16,19]. Po prvotnom spustení aplikácie sa ukáže ponuka, čo aplikácia ponúka. Ďalej užívateľ krokovo vyplní personalizovánu konfiguráciu, kde vypĺňa oslovenie a problémy, s ktorými sa snaží vysporiadať. Po zvolení jednej z možností sa spustí formulár, kde používateľ odpovedá na otázky týkajúce sa zvolenej možnosti. Tá je rozpísaná celou vetou a pripomína škálu od jedna po štyri, kde jedna je najlepšie a štyri najhoršie. Bez výberu možnosti sa používateľ ďalej nedostane. Po skončení formuláru sa zobrazí výsledok v podobe kruhového diagramu. Ten obsahuje polygón s ohodnotenými odpoveďami v intenzite farieb, ktoré sú zobrazené na obrázku 3.1 vľavo. Po vyhodnotení ďalším krokov je dokončenie konfigurácie a nastavenie času upozornení. Dokonca ponúka možnosť spárovat aplikáciu s Apple Health [20], kde užívateľ nájde svoje zaznamenané aktivity ako aj počet krokov a podobne. Dokončenie sprevádza animácia s návodom na kľudné dýchanie s cieľom upokojiť používateľa a následne nasleduje reklama na predplatné. Typ otázok a grafické rozhranie je kvalitne spracované. Pôsobí jednoduchým čistým dojmom. Priveľa nastavení a otázok na začiatku môžu odradiť používateľa od aplikácie. 14 3- ANALÝZA EXISTUJÚCICH RIEŠENÍ Obr. 3.1: Mobilná aplikácia VOS: Mental Health Tracker - zľava: Vyhodnotenie, program, štatistika Ukončením konfigurácie sa povolí prístup k jadru aplikácie ponúkajúcu program, prehľadávanie, časovú os a celkový prehľad. Program pozostáva zo štyroch krokov s hodnotením pokroku, ktoré sú zobrazené na obrázku 3.1 v strede. Používateľ si môže vyplniť denník aj s pridaním obrázkov, prečítať blog, skúsiť si dychové cvičenie alebo meditáciu. V prehľadávaní sa pre používateľa zobrazuje súhrnná hlavná funkcionalita na jednom mieste zobrazená na obrázku 3.1 vpravo. Reklama na predplatné ostáva stále zobrazená nad spodnou navigačnou lištou, čo prekrýva obsah a pôsobí rušivým nečistým dojmom. V časovej osi sa zobrazuje história používaných funkcionalit s daným filtrom podľa typu funkcionality. V celkovom prehľade používateľ nájde graf nálad za posledné dni a detail na pokrok vo funkcionalitách. Pôvod aplikácie je Českej republike, kde ponúka výber českého jazyka, ale sú lokalizované len ovládacie prvky a obsah aplikácie ostáva 15 3- ANALÝZA EXISTUJÚCICH RIEŠENÍ v anglickom jazyku. Vzhľad splňuje zásady návrhu používateľského rozhrania na iOS popísaného v sekcii 2.4. 3.2 Daylio Journal - Daily Diary Daylio je univerzálna aplikácia, v ktorej si používateľ môže zaznamenávať svoje ciele. V App Store má viac než 46800 recenzií s priemerným hodnotením 4.8 z piatich hviezdičiek a je na 140. priečke v hodnotení vo svojej kategórii [17]. Obsahuje záznamník nálad a napomáha v starostlivosti o seba. Cieľom je zlepšiť náladu a znížiť úzkosť. Pri zapnutí aplikácie sa zobrazí jednoduchý sprievodca zobrazujúci funkcionalitu aplikácie, na konci ktorého propaguje predplatné. Po dokončení sprievodcu sa zobrazí dvojkrokové zobrazenie pridávania záznamu o nálade a vykonanej aktivite s popisom alebo prípadne s obrázkom. Dizajn a jednotlivé grafické komponenty sú veľmi jednoduché a vystihujú svoju funkcionalitu. Následne je používateľ presmerovaný do prehľadu záznamov. Hlavná časť aplikácie sa skladá z piatich častí, ktoré sú záznamy, štatistiky, rýchla akcia pridania nového záznamu, kalendár a nastavenia. Rušivým elementom je reklama na predplatné v spodnej časti obrazovky pod navigačným barom (obrázok 3.2 dole), ktorá narušuje interakciu s aplikáciou a predstavuje neštandardné rozhranie vybočujúce od platformy iOS popisované v sekcii 2.4. Záznamy obsahujú všetky užívateľské vstupy zoradené podľa dátumu a na motiváciu sa zobrazujú citáty, ktoré je možné zdieľať alebo skryť (viditeľné na obrázku 3.2 vľavo). Prispôsobenie vzhľadu je prívetivé pre užívateľa, kde si sám môže nastaviť rozhranie podľa svojich preferencií. Štatistika ponúka súhrn nálad v grafe, úspechy, ciele, aktivity a iné. Úspechy (obrázok 3.2 v strede) predstavujú formu gamifikácie, kde motivujú používateľa pridávať záznamy častejšie alebo pravidelne. Pridávanie záznamu má rôzne typy ako nový cieľ, významný deň alebo len záznam dňa. Kalendár zobrazuje jednoduchú históriu záznamov. Obsiahle nastavenia dovoľujú používateľovi spravovať notifikácie, ciele, súhrny, vzhľad aplikácie a ďalšie, ktoré sú viditeľné na obrázku 3.2 vpravo. Prispôsobivosť aplikácie pozitívne ovplyvňuje používateľovu skúsenosť. 16 3- ANALÝZA EXISTUJÚCICH RIEŠENÍ Obr. 3.2: Mobilná aplikácia Daylio Journal - Daily Diary - zľava: Záznamy, štatistika, nastavenia S pôsobivým počtom recenzií a vysokým hodnotením v App Store patrí medzi najobľúbenejšie aplikácie vo svojej kategórii. Funkcie užívateľom poskytujú podrobný prehľad a motiváciu aplikáciu používať. Napriek nevhodne umiestnenej propagácii predplatného Daylio je kvalitná aplikácia. 3.3 Moodnotes - Mood Tracker Aplikácia pochádza od spoločnosti ThrivePort, L L C sídliacej v Kalifornii. Celkovo aplikácia má vyše 10800 užívateľských recenzií a priemerné hodnotenie 4,7 hviezdičky z piatich navrhnutá odborníkmi na dizajn a klinickými psychológmi [18]. Jedná sa o veľmi jednoduchý záznamník nálad a denník, ktorý sa snaží pomôcť zlepšiť myšlienkové 17 3- ANALÝZA EXISTUJÚCICH RIEŠENÍ vzorce. Poznámky nálad dlhodobo monitorujú nálady a zobrazujú štatistiku najskôr po desiatich dňoch. Next ; = Tlmollm |,| Q | , | StfKí Obr. 3.3: Mobilná aplikácia Moodnotes - Mood Tracker - zľava: Konfigurácia, denník, štatistika Pri prvom zapnutí aplikácie sa zobrazí personalizovaná konfigurácia, ktorú vidieť na obrázku 3.3 vľavo. Ponúka na výber ciele, ktoré by užívateľ chcel dosiahnuť používaním aplikácie. V druhom kroku sa opýta na znalosť KBT, vysvetlená v sekcii 1.2.3. V poslednom kroku ponúka na výber preferovaný čas pripomienok pre zaznamenávanie nálady. Potom ponúka možnosť predplatiť si aplikáciu ešte aj pokiaľ užívateľ nedokončil počiatočnú konfiguráciu. Ďalej pokračuje nastavením avatara a opäť ponúka možnosť kúpy predplatného. Hlavnú časť aplikácie tvoria denník, štatistika, prieskumník a nastavenia. Denník zobrazený v strede na obrázku 3.3 povoľuje pridávať len jeden záznam za deň spoločne s náladou alebo s obrázkom ako spomienku bez predplatného. Vzhľadom ide o jednoduché používateľské roz- 18 3- ANALÝZA EXISTUJÚCICH RIEŠENÍ hranie s jednoduchou paletou farieb. Pri vytváraní nového záznamu denníka si užívateľ vyberá náladu rolovaním v obrazovke, ktorá sa dá zavrieť rolovaním nadol, čo narúša interakciu s aplikáciou. Ďalšou sekciou (obrázok 3.3 vpravo) je štatistika s prehľadom počtu záznamov užívateľ vytvoril, aká bola jeho nálada a ďalšie. Táto funkcionalita je dostupná s predplatným. Sekcia prieskumník zobrazuje tipy a články o duševnom zdraví spolu so zaujímavosťami. Vzhľad ostáva jednoduchý, ale problém nastáva pri zobrazovaní viacerých náhľadov článkov, ktoré obsahujú len nadpis a autora. Neposkytujú dostatočné informácie pre užívateľa a všetky články sú zamknuté bez predplatného. Chýba akýkoľvek článok zdarma ako ukážka, ktorou by mohli získať nových predplatiteľov. Následne ostávajú nastavenia, kde je možné nastaviť čas pripomienok, zámok na aplikáciu, exportovanie dát a základné informácie o aplikácii. Mesačné predplatné stojí $9,99 a ročné $89,99 [18]. Mobilná aplikácia obsahuje priveľa reklamy na predplatné a veľké obmedzenia pre jej plnohodnotné každodenné používanie. Bežný užívateľ vie tolerovať nedostatky. Cena predplatného je privysoká na funkcionalitu, ktorou disponuje. Výsledkom je priemerná aplikácia s veľmi drahým predplatným. 3.4 Zhrnutie nedostatkov a návrhy pre vylepšenie Spoločným problémom aplikácií sú chýbajúce preklady alebo chýbajúci obsah v zvolenom jazyku. Keď užívateľ dostane možnosť výberu jazyka, tak očakáva aj obsah v rovnakom jazyku. Všetky spomínané aplikácie disponujú rozšírením aplikácie formou predplatného, ktoré je u Moodnotes 3.3 privysoké za pridanú hodnotu. Posledná aplikácia pôsobí dožívajúcim cyklom aplikácie, kedy sa autor snaží získať čo najviac peňazí bez práce. Vylepšením by mohla byť minimalizácia množstva propagácie predplatného, prípadne to vhodnejšie zakomponovať do aplikácie a neprekrývať dostupný obsah vo verzii zadarmo. A k užívateľ už disponuje záznamom v denníku pre daný deň, tak v ten istý deň by mal v ňom pokračovať a nevytvárať ďalšie záznamy mimo daný deň. 19 4 Funkčné požiadavky Táto diplomová práca je súčasťou projektu, ktorý má terapeutom a klientom poskytnúť systém umožňujúci zdieľať dotazníky, zobrazovať schôdzky, spravovať účty klientov, zaznamenávať stav klienta a ďalšie. Na začiatku projektu práca na projekte bola rozdelená do troch častí: server, web správu pre terapeuta a mobilná aplikácia na iOS pre klienta. Kvôli tomuto boli potrebné viaceré schôdzky na definovanie celkovej funkcionality pokiaľ požiadavky neboli splnené. Tabuľka 4.1: Funkčné požiadavky ID Názov Popis 01 Správa denníku Užívateľbude môcť vytvárať a spravovať záznam denníku. Záznam denníku má časovú značku. 02 Správa účtu Užívateľbude môcť vytvárať a spravovať svoj účet. 03 Sledovanie nálad Aplikácia umožní sledovať náladu užívateľa na dennej báze a bude aktívne užívateľa upozorňovať formou push notifikácií. 04 Vyplňovanie dotazníkov Užívateľ bude môcť vyplňovať a odosielať dotazníky, ktoré m u boli priradené. Na dotazník môže byť upozornený push notifikáciou. 05 Prehľad sedení Užívateľbude môcť prezerať plán a detail nasledujúceho sedenia. 06 Nastavenia upozornení Aplikácia umožní spravovať čas push notifikácií, prípadne ich za­ kázať. 07 Prehľad dňa Aplikácia zobrazí prehľad konkrétneho dňa. 08 Správa spánku Aplikácia sa pri otvorení raz denne bude pýtať na kvalitu spánku. 20 4- FUNKČNÉ POŽIADAVKY Súhrn funkčných požiadaviek sa nachádza v tabuľke 4.1. Následne kapitola popisuje ďalšie požiadavky potrebné na funkčnosť aplikácie a obmedzenia. 4.1 Serverová komunikácia Všetky záznamy sedení a formulárov sú uložené externe na serveri, s ktorým je potrebné komunikovať. Pre prístup k serveru je potrebné naviazať bezpečnú komunikáciu a predísť tak akejkoľvek možnosti úniku dát. Užívateľ by mal komunikovať so serverom šifrované a dodržiavať bezpečné zásady komunikácie medzi klientom a serverom. Aplikácia by mala komunikovať so serverom a mala by limitovať zbytočné dotazovanie, aby predišla preťaženiu servera. 4.2 Prihlásenie Prihlásenie užívateľa je výlučne prostredníctvom účtu uloženom na serveri. Registrácia a prihlasovanie by malo byť rýchle a jednoduché. Po prihlásení by si používateľ mal možnosť pridať osobné údaje a tie aj kedykoľvek editovať. Údaje sa ukladajú na serveri. 4.3 Denník Všetky záznamy denníka by mali byť ukladané v rámci zariadenia a nemali by sa nahrávať na server. Tieto záznamy môžu obsahovať citlivé dáta a užívateľ by nechcel takéto veci zdieľať, aj keď niekedy by to bolo vhodné. Záznamy by sa mali dať triediť podľa dátumu. 21 5 Návrh Kapitola popisuje funkcionalitu aplikácie, definuje cieľovú skupinu, popisuje dátový model, aplikačnú logiku a používateľské rozhranie. 5.1 Popis funkcionality aplikácie Aplikácia má byť užívateľsky prívetivá a jednoduchá na použitie. Potrebné je dodržiavať základné používateľského rozhrania popísaného v sekcii 2.4. Na prvý dojem by mala používateľa osloviť a svojou jednoduchosťou mu umožniť využívanie všetkých funkcionalit. Ďalej by mala byť jednoducho rozšířitelná o ďalšie moduly. 5.1.1 Denník Základom je zaznamenávanie nálad spolu s denníkom, do ktorého si môže zapisovať čokoľvek. Dôležité je dodržať formu denníku, čo znamená držať sa jedného záznamu denne, do ktorého je možné dopisovať alebo akokoľvek ho editovať. V denníku si môže zaznamenať jednu z piatich přednastavených nálad od najlepšej po najhoršiu. Jednotlivé záznamy si môže radiť alebo filtrovať podľa dátumu. Všetky záznamy denníka sú ukladané lokálne v pamäti aplikácie, aby sa nezdieľali súkromné informácie. 5.1.2 Kvalita spánku Ďalej si môže zaznamenávať kvalitu spánku, ktorá sa zobrazuje raz denne pri prvom otvorení aplikácie. Túto funkcionalitu si môže v nastaveniach vypnúť. 5.1.3 Používateľský účet Užívateľ sa môže registrovať, kde si vytvorí účet a môže si doplniť osobné údaje. Ďalej užívateľ ostáva prihlásený až kým sa neodhlásí alebo server nepotvrdí bezpečnostný token a tým dôjde k odhláseniu. Prihlásený užívateľ môže byť na serverovej časti priradený k terape- 22 5- NÁVRH utovi, ktorý mu môže priradiť dotazníky na vypĺňanie alebo si s ním naplánovať sedenie. 5.1.4 Dotazník Dotazník obsahuje otázky s dvoma typmi odpovedí. Prvá je číselná škála, na ktorej terapeut definuje stupnicu. Druhá je textová odpoveď, ktorej dĺžka nie je určená. Medzi jednotlivými otázkami sa môže používateľ vracať alebo pokračovať ďalej. Po vyplnení dotazníku sú odpovede poslané na server a v aplikácii sa dotazník označí za vyplnený. V prípade potreby je možné ho znovu vyplniť. Dotazníky a sedenia si používateľ môže nájsť v kalendári alebo v prehľade aplikácie. Dotazník sa zobrazuje v preddefinovanej perióde terapeutom zo serveru. Aplikácia Obr. 5.1: Diagram prípadov použitia 23 5- NÁVRH 5.1.5 Prehľad Prehľad zobrazuje počet dotazníkov a sedení pre daný deň so škálou pokroku vyplnenia. Ak je povolené zobrazovanie záznamu spánku, tak sa ukáže aj jeho záznam. Ďalej sa zobrazia náhľady dotazníkov, sedení a denníka pre zvolený deň. Po otvorení náhľadu aplikácia zobrazí detail zvolenej komponenty. Následne si užívateľ môže zapnúť denné pripomienky na zápis do denníka a zaznamenanie nálady. Diagram prípadov použitia sa nachádza na obrázku 5.1. 5.2 Cieľová skupina Cieľovou skupinu pre túto aplikáciu sú ľudia, ktorí majú záujem o sledovanie svojej nálady, starostlivosti o svoje duševné zdravie a vedenie denníka. Títo jednotlivci prejavujú záujem o jednoduché a užívateľsky prívetivé rozhranie. Taktiež zahŕňa ľudí v rôznych vekových kategóriách a životných situáciách, ktorí prejavujú záujem o sledovanie svojho emocionálneho stavu a prípadne spoluprácu s terapeutom na zlepšení svojho duševného zdravia. Aplikácia sa snaží byť jednoduchá a prístupná, aby oslovila širokú škálu používateľov. 5.3 Dátový model Na zobrazenie konceptuálneho modelu je využitý dátový model. Obrázok 5.2 zobrazuje modelované dáta a ich vzťahy. Popisuje logiku fungovania dát naprieč aplikáciou. Podrobnejší popis dát, vzťahov a uložených dát v zariadení je popísaný nižšie. 5.3.1 Klient Pokiaľ je klient prihlásený, aplikácia uchováva jeho email ako identifikátor, že je prihlásený. Po odhlásení sa identifikátor vymaže. Neprihlásený klient má možnosť vytvoriť si účet a spravovať ho. Server uchová dáta o účte. Vytvára a edituje záznamy v denníku, vypĺňa otázky z dotazníka a prehliada sedenia. 24 5- NÁVRH Dotazník « P K » ID Dátum vytvorenia Názov Je voliteľný Text Je verejná Zobrazovať od Zobrazovať do Interval pripomienky Hodnota od Hodnota do Klient « P K » Email Hash Meno Priezvisko Dátum narodenia Pohlavie « P K » Email Hash Meno Priezvisko Dátum narodenia Pohlavie Záznam denníku « P K » ID Dátum Nálada Nadpis Text Otázka « P K » ID Dátum vytvorenia Dátum aktualizácie Nadpis Text Je verejná Sedenie « P K » ID Názov Dátum sedenia Poznámky Meno terapeuta Záznam « P K » ID Text Hodnota ID dotazníku ID otázky Typ záznamu Obr. 5.2: Dátový model v aplikácii 5.3.2 Otázka Otázka je priradená k danému dotazníku. Klient vypĺňa otázky textovou formou alebo číselnou hodnotou z intervalu od najmenšej po najväčšiu hodnotu. Vyplnená odpoveď sa odosiela záznamom na server. Odpovede môžu byť povinné. 5.3.3 Dotazník Dotazník tvorí súbor otázok určených pre klienta. Obsahuje frekvenciu pripomienky dotazníka od dvakrát denne až po raz za týždeň definované serverom. Zobrazuje sa len v intervale zobrazovať od do. 25 5- NÁVRH 5.3.4 Záznam Záznam predstavuje univerzálnu entitu pre odosielanie odpovedí a záznamov na server. Klientove odpovede na otázky sa posielajú na konci dotazníka ako pole záznamov. Ak je záznam vytváraný z otázky, tak sú k nemu priradené identifikátory dotazníka a otázky s konkrétnou hodnotou. Záznam má viacero typov, kde číslo jedna predstavuje odpoveď na otázku, dva pre budúce rozšírenie o modul, tri pre náladu a štyri pre budúce rozšírenie o zdravotné dáta alebo aktivity. 5.3.5 Záznam denníku Denník je lokálnou funkcionalitou na zariadení, pričom jednotlivé záznamy sú ukladané do pamäte aplikácie. Záznam denníku obsahuje nadpis a text záznamov z daného dňa. Pre jeden deň je vždy jeden záznam, ak ho klient vytvoril. Lokálne sa ukladá aj záznam o nálade, ale ten sa pri vyplnení odosiela aj na server. 5.3.6 Sedenie Sedenie je medzi klientom a terapeutom, ktorý je priradený v serverovej časti. Obsahuje názov, poznámky, dátum a meno terapeuta. Klient si môže zobraziť detail sedenia a nemôže ho editovať. 5.4 Aplikačná logika Na základe stavu súčasných technológií popísaných v kapitole 2 je použitý programovací jazyk Swift 2.2.1 v kombinácii SwiftUI 2.3.2, ktoré využíva architektúru M W M 2.3. K tomu sa pridá sieťová, notifikačná a spravovacia vrstva. Logika aplikácie je bližšie popísaná v nasledujúcej kapitole 6. 5.5 Používateľské rozhranie Používateľské rozhranie bolo navrhnuté tak, aby dodržiavalo zásady návrhu pre platformu iOS Apple opísanú v sekcii 2.4. Tieto zásady sú základom pre nových dizajnérov a vývojárov pre platformu. 26 5- NÁVRH Prototyp návrhu bol vytvorený pomocou dizajnovej aplikácie pre návrh rozhrania Figma [21]. Umožňuje vytvoriť prototypy aplikácií a zdieľať ich medzi viacerých spolupracovníkov. Vytvorený bol prototyp úvodnej obrazovky. 10:27 Domov máj 2024 ne po ut st št pí so 18 Odpovědníky Infrornatikov den # Vnútorné obavy *í> Budeme sa rozprávať o obavách a ich dôsledku na človeka Výborne Dnešný deň - Ranný beh 10km pod 10:12 50 minút Obr. 5.3: Hlavná obrazovka Najdôležitejšou obrazovkou aplikácie je obrazovka zobrazujúca denný prehľad zobrazená na obrázku 5.3. Komponenty rozhrania musia vystihovať danú funkcionalitu. Ikony tlačidiel sú použité z natívnej knižnice ikôn SF Symbols [22] pre iOS. Rovnaký zdroj ikôn využíva operačný systém iOS. Tým je docielená konzistencia aplikácie so systémom. Kalendár je navrhnutý tak, aby v sebe obsahoval zvýraznenie dňa, keď pre daný deň existuje naplánované sedenie alebo dotazník. 27 5- NÁVRH Kroková komponenta zobrazuje počet vyplnených dotazníkov alebo účasti na sedeniach. Zobrazením pokroku motivuje používateľa splniť chýbajúce požiadavky, ako napríklad dotazník. Ďalej je zobrazený súhrnný prehľad dotazníkov, záznamov a sedení pre daný deň, ktoré presmerujú užívateľa na žiadanú obrazovku. Každý text je logicky zvýraznený a jeho veľkosť je prispôsobená dôležitosti informácie. Spodné navigačné menu obsahuje hlavné skratky pre navigáciu v aplikácii, za účelom minimalizovania zložitého hľadania funkcionality. Navigácia v aplikácií je sprevádzaná navigačnými animáciami, je zhodná so systémovými prechodmi a zobrazeniami zachovávajúc konzistentnosť. Obsah môže byť dynamický a jednotlivé zmeny je vhodné zviditeľniť animáciou. 28 6 Implementácia Implementácia vznikala po návrhu aplikácie v kapitole 5. Kapitola popisuje výslednú implementáciu, riešenie problémov a obmedzenia. 6.1 Všeobecné informácie Pre implementáciu iOS aplikácie bolo použité grafické vývojové prostredie Xcode vo verzii 15.2 a programovací jazyk Swift vo verzii 5.10. Na samotný vývoj slúžili zariadenia iPhone 13 a zabudované iPhone simulátory s verziou 17.2.0. Cieľovou verziou sú zariadenia s iOS 17.0.0 a novšie, čo predstavuje viac ako 80 % všetkých podporovaných iOS zariadení [23]. Pre lokálne ukladanie dát v zariadení sa používa natívny zabudovaný framework SwiftData. Komunikáciu so serverom zabezpečuje framework Alamofire 6.1.1. Pre pomocnú prácu s formátom JSON je pridaný framework SwiftyJSON. N a jednoduchšiu prácu s časom a dátumami je pridaný framework DateHelper. Ďalšie potrebné komponenty sú novo vytvorené špecificky pre aplikáciu, aby ich bolo možné jednoducho meniť a prispôsobovať. Samotná implementácia sa riadi návrhovým vzorom M V V M 2.3, kde jednotlivé vrstvy sú logicky rozdelené do vlastných zložiek. Model a View navzájom nevedia o svojej existencii, ale prepája ich ViewModel, ktorý preväzuje ich dáta. Keď užívateľ vytvorí akciu nad dátami vo View, ViewModel data aktualizuje a prevedie zmeny aj pre Model. Rozdelené vrstvy je možné dobre testovať, kvôli ich samostatnosti a je ich jednoduché rozširovať o ďalšie moduly. Pre notifikácie sa využíva natívny framework UserNotifications. Pýta si povolenia pre používanie notifikácií, spravuje notifikácie a zobrazuje push notifikácie. Používanie notifikácií vyžaduje súhlas užíva­ teľa. 6.1.1 Alamofire Alamofire je HTTP sieťová knižnica napísaná v programovacom jazyku Swift. Kompaktná syntax a široké možnosti poskytujú všestrannú konfiguráciu na pár riadkov kódu. Celkovo zjednodušujú sieťové 29 6. IMPLEMENTÁCIA úlohy ako reťazenie požiadaviek a odpovedí, kódovanie a dekódovanie formátu JSON a ďalšie [24]. Využité metódy Alamofire v práci: • AF. request - Vytváranie HTTP požiadaviek 6.2 Mobilná aplikácia V úvodnej konfigurácii projektu je potrebné nastaviť základné informácie o aplikácii ako sú orientácia obrazovky, podpora zariadení, minimálna verzia iOS, identita a ďalšie. V projekte sa nachádza aj konfiguračný súbor Inf o. l i s t . Obsahuje dôležité metadáta a nastavenia, ktoré ovplyvňujú spôsob, ako je aplikácia spustená a nastavená. Napríklad názov a verzie, identifikátor aplikácie, povolenia a ďalšie. Orientácia aplikácie je nastavená na typ portrét. Obrazovky sú označované ako View predstavujúca základnú stavebnú jednotku používateľského rozhrania. Popisuje, ako sa majú jednotlivé komponenty rozhrania vykresliť a interagovať. Základné prvky sú HStack a VStack určujúce umiestnenie prvkov. O logiku aplikácie sa stará ViewModel s typom ObservableObject, ktorý zabezpečuje previazanie dát a rozhrania. Centrálnym bodom pre riadenie životného cyklu aplikácie je trieda AppDelegate, ktorej je potrebné pridať atribút OUIApplicationMain určujúci vstupný bod aplikácie. Používa sa na inicializáciu, konfiguráciu a riadenie aplikácie. Vždy existuje len jedna inštancia triedy pre aplikáciu. V tejto triede sa nastavia potrebné počiatočné nastavenia a úvodná obrazovka. Pre správne fungovanie notifikácií tu musí byť nastavený delegát pre UNUserNotif icationCenter. Bez neho by nefungovalo napríklad doručenie notifikácií alebo prekliknutie na notifikáciu. Ako vstupná obrazovka je nastavená RootView. 6.3 Prehľad Najdôležitejšou obrazovkou aplikácie je prehľad, ktorý je zobrazený na obrázku 6.1. Základná navigácia medzi hlavnými obrazovkami je riešená pomocou TabView v spodnom navigačnom menu viditeľnom na obrázku 6.1. Každá hlavná obrazovka obsahuje NavigationStack, 30 6. IMPLEMENTÁCIA ktorý poskytuje navigáciu medzi rôznymi obrazovkami. Pomocou neho je možné zobrazovať vrchný navigačný bar obsahujúci názov obrazovky a prípadne tlačidlá. máj 2024 ne po ut st št pi so ' [=1 " Infromatikov den TomᎠThefapjsl • Vnútorné obavy Budeme sa rozprávať o obavách 07:00 a ich dôsledku na človeka 07:00 h Filip Prokcvlcký -d Šrn<;tnv Slnečný deň v práci Pred prácou 6km beh rovina. 04:23 Alex zas meškal. 13.5.2024 -Obed: smažák S m B Obr. 6.1: Obrazovka prehľad Ako prvé zhora je na obrazovke kalendár zobrazujúci aktuálny týždeň so zvýrazneným zvoleným dňom a upozornením na dotazník alebo sedenie. Medzi jednotlivými dňami je možné prepínať a posunutím prepínať medzi týždňami. Vlastná implementácia kalendára MyCalendarView berie na vstup generický parameter Content zobrazujúci jednotlivú bunku CalendarCellView s možnosťou prispôsobenia obsahu. Disponuje dvoma možnosťami zobrazenia náhľadu týždňa alebo mesiaca. Pod kalendárom sa nachádzajú informačné bunky ProgressBar so zobrazením pokroku o dotazníkoch, spánku a sedeniach. Prvé zo- 31 6. IMPLEMENTÁCIA brazuje počet vyplnených dotazníkov za daný deň. Druhé kvalitu spánku zaznamenanú užívateľom. Posledné počet absolvovaných sedení. Všetky reflektujú hodnoty pre zvolený deň. Dotazníky a sedenia vidí len prihlásený používateľ. Pokrok motivuje používateľa interagovať s aplikáciou. Ako prvé sa zobrazuje zoznam dotazníkov pre daný deň. Po kliknutí na jednotlivý riadok sa otvorí daný dotazník za pomoci komponenty NavigationLink, ktorá definuje cieľovú obrazovku na zobrazenie. Po dokončení dotazníku sa splnenie reflektuje do informačnej bunky dotazníkov. Pod dotazníkmi sa zobrazujú sedenia, ktorým je možné otvoriť náhľad obsahujúci detaily Ako posledné sa zobrazujú záznamy denníka. A k je užívateľ prihlásený, tak sa dáta zo servera vždy znovu načítajú kvôli ich aktuálnosti. Zo servera sa sťahujú dáta o dotazníkoch a sedeniach pomocou sieťovej vrstvy, ktorú definuje protokol ServiceAPIProtocol. Samotný protokol obsahuje základnú definíciu metód pre implementáciu v ServiceAPI. o Šťastný Slnečný deťi v práci Pred práca J 6km beh 04:23 rovina. Ale* zas meškal. 13.5,2024 -Obed:smažák Výborne Počas dŕia som sa stretol s 12:41 AnktHi na káve, Má uz í 8.5.203*1 deti.... 1 3 , S Uložiť máj 2024 pondelok Slnečný deň v práci Pred prácou 6fcm beh rovina Ale* zas meäkal. -Ohedľ smažák Editovanie H Uložit Ako t a dr ee cítite? Výborne Slastný Ok Zla Mizerne Obr. 6.2: Obrazovky denníku 32 6. IMPLEMENTÁCIA 6.4 Denník Ďalšou dôležitou obrazovkou je denník zobrazený na obrázku 6.2. Denník obsahuje denné záznamy, v ktorých si môže používateľ zapisovať svoje myšlienky a zaznamenávať náladu. Záznamy sú ukladané pomocou OQuery nad knižnicou CoreData, ktorá pracuje s lokálnym úložiskom. Celkovo OQuery slúži na vyhľadávanie a triedenie záznamov v denníku. Obrázok 6.2 vľavo zobrazuje náhľady všetkých záznamov používateľa, ktoré pridal. Každý náhľad obsahuje náladu, poznámky z dňa, dátum a čas. Po kliknutí na náhľad záznamu je používateľpresmerovaný na jeho detail, ktorý je možné editovať (viditeľné na 6.2 v strede). Každému záznamu je možné meniť dátum, náladu, poznámky alebo ho celý zmazať. Záznamy je možné filtrovať od najnovších, od najstarších alebo podľa dátumu cez DatePicker. Výber nálady prekrýva aktuálnu obrazovku pomocou metódy popover ako modálne okno zobrazené na obrázku 6.2 vpravo. Používateľ si môže vyberať jednu z piatich nálad a prípadne si ju meniť. Vytváranie nových záznamov je možné pomocou tlačítka plus viditeľného na obrázku 6.2 vľavo dole. Stlačením sa zobrazí nový záznam. A k už existuje záznam pre aktuálny deň, tak sa otvorí existujúci záznam a pokračuje sa v ňom. Ukážka implementácie navigácie z denníku na detail záznamu: L i s t { F o r E a c h ( j o u m a l s ) { j o u r n a l i n JournalListRowView(j ournal: j ournal) } .listRowBackground( RoundedRectangle(cornerRadius: 25.0) . f i l l ( . w h i t e ) ) .listRowSeparator(.hidden) } .navigatioriDestination(for: Journal.self) { journal i n JournalDetailView( j ournal: j ournal, showJournalEditSheet: $viewModel.showJournalEditSheet, selectedJournal: viewModel.selectedJournal) } 33 6. IMPLEMENTÁCIA 6.5 Kalendár V obrazovke kalendár je znovu použitá rovnaká komponenta na kalendár ako v sekcii 6.3. Kalendár zobrazuje celý mesiac a je možné prepínať do týždňového zobrazenia z vrchného navigačného panelu zobrazeného na obrázku 6.3 vľavo. Zmena dátumu reflektuje aktuálne informácie pre daný deň. Dotazníky a sedenia prichádzajú zo servera. Načítanie dát nastáva vždy pri otvorení obrazovky, aby sa zabezpečila ich aktuálnosť. máj 2024 po ut st sl Ijej [jTj ^nj [joj ["30][~äi~] •SBBBBQ Budeme r o i p r ^ í o obavách a ich dôsledku na človeka Infromaiikov d Ako sa dnes más? Popište svojo dnešné pocity a nálady v priebehu dňa. Môžete to podrobne rozpísať. < Predchádzajúca < Kalendár 2a 07:00 Filip Prokovický -2 máj 2024 nedela Vnútorné obavy Budeme sa rozprávať • obavách a ic h důsledku na človeka (3 0 Obr. 6.3: Obrazovky kalendára Štruktúra dát dotazníku Survey obsahuje identifikátor, názov, popis, časový úsek počas ktorého sa má zobrazovať a súbor otázok. Otázka Question má dva typy odpovedí. Prvou je textová odpoveď, v ktorej používateľ odpovedá na otázku (zobrazená na obrázku 6.3 v strede). Druhá je číselná škála nastaviteľná pomocou komponenty Slider, ktorej minimálna a maximálna hodnota prichádza zo serveru v otázke. Medzi otázkami môže užívateľ prechádzať dopredu a dozadu. Pri poslednej otázke sa mu ukáže možnosť odoslať. Odosielajú 34 6. IMPLEMENTÁCIA sa všetky odpovede naraz v zoradenom zozname [Record]. Odpoveď obsahuje informácie o identifikátore dotazníku a otázky, typ záznamu a odpoveď podľa typu. Ďalej je možné otvoriť detail sedenia, zobrazené sa to nachádza na obrázku 6.3 vpravo. Obsahuje dátum a čas, sedenie, meno a priezvisko terapeuta, názov a popis. 6.6 Účet Na obrázku 6.4 vľavo je zobrazená obrazovka účtu pre prihláseného používateľa s výberom nastavení, osobných údajov a odhlásenia. Neprihlásený používateľ má možnosti prihlásenia, registrácie alebo otvorenia si nastavenia. Obrazovka je navrhnutá pre jednoduché rozšírenia v budúcnosti. < úťet Osobné údaje priezvisko: Veselý r.iiiirn n. i i . SPANOK Senná pripomienka Obr. 6.4: Obrazovky účtu Osobné údaje môže používateľ vyplniť (zobrazené na obrázku 6.4 v strede). Jednotné animované textové polia LabelTextField sa 35 6. IMPLEMENTÁCIA používajú naprieč celou aplikáciou, aby dodržovali konzistentný dizajn. Pre výber dátumov sa využíva natívna komponenta DatePicker. Údaje používateľa sú automaticky sťahované zo serveru a neskôr aj aktualizované pri ich uložení. V nastaveniach je možné povoliť a nastavovať push upozornenia pre pridávanie záznamov denníka a spánku. Periodicita upozornení je raz denne v zvolený čas. Čas notifikácií sa udržiava v úložisku UserDef aults, ku ktorým zjednodušuje prístup SwiftUI komponenta OAppStorage. Komponenta sama aktualizuje UserDef aults a udržuje dáta aktuálne v pamäti aj v rozhraní. Pre notifikácie je potrebné povolenie používateľa o ktoré sa starajú metódy v správcovi notifikácii Notif icationManager. Správca obsahuje metódu na plánovanie a zrušenie notifikácií. Pomocou String Catalog je aplikácia nachystaná pre rozšírenie o ďalšie jazyky. V súčasnej implementácii je pridaná podpora slovenského jazyka. Jednotlivé texty sú v lokalizačnom súbore Localizable. Ten obsahuje kľúč a preklad pre daný jazyk. Pre pridanie ďalšieho prekladu nie je potrebný zásah do kódu, len v lokalizačnom súbore pridať preklad. 6.7 Obmedzenia Aplikácia je v súčasnom stave viac zameraná na prihláseného používateľa. Neprihlásený používateľ má prístup k denníku, náladám, spánku a notifikáciám. Chýba katalóg terapeutov, z ktorých by si používateľ mohol vyberať alebo chatbot. Túto podporu neposkytuje server, preto nemohla byť implementovaná. 36 7 Testovanie Behom celého vývojového procesu bolo častou činnosťou testovanie. Priebežné testy prebiehali za použitia mobilného simulátoru pre rôzne veľkosti zariadení, aby boli otestované všetky podporované rozlíšenia rozhrania, a fyzického zariadenia iPhone 13. Automatizované testovanie nebolo vytvárané z dôvodu menšej veľkosti aplikácie, kde by písanie testov nebolo časovo efektívne. 7.1 Testovacie scenáre Testovacie scenáre boli napísané tak, aby používateľ otestoval celú funkcionalitu aplikácie. Respondenti boli poučení čo robiť, ale nie ako. Pre testovanie respondenti dostali zreprodukovať jedenásť krokov: 1. Zaregistrujte nového používateľa. 2. Prihláste sa použitím emailu a hesla z prvého kroku. 3. Nastavte svoje osobné údaje. 4. Po úspešnom nastavení účtu prejdite na prehľad a preskúmajte jej funkcionalitu. 5. Pridajte nový záznam denníka s náladou a popisom. 6. Zoraďte záznamy denníka od najstarších. 7. Vyplňte dotazník pre aktuálny deň. 8. Otvorte detail sedenia pre nasledujúci mesiac. 9. Zapnite notifikácie pre pridávanie záznamov do denníka a nastavte im čas. 10. Pridajte záznam kvality spánku. 11. Prejdite na prehľad dňa a zistite svoj pokrok pre dnešný deň. 37 7- TESTOVANIE 7.2 Dotazník Táto sekcia popisuje vybrané otázky pre používateľov po dokončení testovacích scenárov. Dotazník obsahuje osem otázok, v ktorom prvé štyri otázky sú s lineárnym rozsahom od jedna do päť a ďalšie štyri sú nepovinné s textovou odpoveďou. 7.2.1 Otázky s lineárnym rozsahom 1. Ako ste spokojný so vzhľadom a pocitom z aplikácie? (od veľmi zložito použiteľné po veľmi jednoducho použiteľné) 2. Ako jednoduché je používanie aplikácie? (od veľmi nespokojný po veľmi spokojný) 3. Zvážili by ste používanie aplikácie na dennej báze? (od veľmi nepravdepodobné po veľmi pravdepodobné) 4. Ako pravdepodobné je, že by ste aplikáciu odporučili ďalej? (od veľmi nepravdepodobné po veľmi pravdepodobné) 7.2.2 Textové otázky 1. Mali ste problém s niektorým z testovacích scenárov? 2. Čo sa Vám najviac páčilo na aplikácii? 3. Čo sa Vám najmenej páčilo na aplikácii? 4. Aké ďalšie funkcie by ste uvítali v aplikácii? 7.3 Vyhodnotenie V tejto sekcii je vyhodnotenie dotazníkov, ktoré boli vyplnené desiatimi respondentmi. Ako prvé sú prezentované odpovede s lineárnym rozsahom od jedna do päť v grafoch. Ďalej je zhrnutie textových od­ povedí. 38 7- TESTOVANIE 7.3.1 Ako ste spokojný so vzhľadom a pocitom z aplikácie? Otázka bola cielená na získanie spätnej väzby s používaním aplikácie a jej užívateľská prívetivosť. Výsledné priemerné skóre je 4,1 a ukážka 7.1 zobrazuje počet výskytov. 3 4 5 Hodnotenie Obr. 7.1: Výsledky pre otázku - Ako ste spokojný so vzhľadom a pocitom z aplikácie? 7.3.2 Ako jednoduché je používanie aplikácie? ••1 Hodnotenie Obr. 7.2: Výsledky pre otázku - Ako jednoduché je používanie aplikácie Í 39 7- TESTOVANIE Táto otázka mala odhaliť ako sa užívateľovi páčilo používanie aplikácie. Výsledné priemerné skóre je 4,5. Ukážka 7.2 zobrazuje počet výskytov. 7.3.3 Zvážili by ste používanie aplikácie na dennej báze? Úlohou otázky bolo zistiť, či cieľoví používatelia by zvážili používanie aplikácie. Výsledné priemerné skóre je 4,1. Ukážka 7.3 zobrazuje počet výskytov. 1 2 3 4 5 Hodnotenie Obr. 7.3: Výsledky pre otázku - Zvážili by ste používanie aplikácie na dennej báze? 7.3.4 Ako pravdepodobné je, že by ste aplikáciu odporučili ďalej? Otázka sa snaží zistiť, či boli respondenti s aplikáciou dostatočne spokojní, aby ju zdieľali ďalej. Výsledné priemerné skóre je 4,1. Ukážka 7.4 zobrazuje počet výskytov. 7.3.5 Vyhodnotenie V textových odpovediach respondenti uviedli, že testovacie scenáre boli jasné a ľahko realizovateľné. Jeden respondent uviedol, že by ocenil pridanie záznamu denníka aj do kalendáru. Myšlienka aplikácie sa im páčila a ocenili najmä to, že aplikácia je zdarma a ponúka možnosť dotazníka od terapeuta. Z negatívnej spätnej väzby traja respondenti uviedli, že by sa im páčilo zjednotiť kalendár s prehľadom. Ako ďal- 40 7- TESTOVANIE c LL Hodnotenie Obr. 7.4: Výsledky pre otázku - Ako pravdepodobné je, že by ste aplikáciu odporučili ďalej? ším rozšírením by sa im páčilo rozšírenie denníka o záznam s fotkami a podporné texty pre problematiku duševného zdravia. 41 8 Záver Cieľom tejto práce bolo navrhnúť a vytvoriť iOS aplikáciu pre zaznamenávanie duševného zdravia a poskytnúť platformu pre klienta umožňujúcu vypĺňať dotazníky a zobrazovať schôdzky s terapeutom. Aplikácia načíta dáta zo serveru implementovaného iným študentom. Na začiatku práce popisujem potrebu starostlivosti o duševné zdravie, dopyt aplikácií v tejto kategórií a druhy psychologickej terapie. Následne som popísal možnosti technológií a spravil analýzu existujúcich riešení. Pred začiatkom implementácie bolo dôležité špecifikovať funkčné požiadavky a z nich vytvoriť návrh aplikácie. Funkčné požiadavky boli vytvorené pre väčší systém klienta a terapeuta, z nich som špecifikoval požiadavky potrebné pre aplikáciu. Návrh popisuje dátový model, funkcionalitu aplikácie a používateľské rozhranie. Počas implementácie som dodržiaval základné princípy pre platformu iOS a jazyk Swift. Kód je ľahko rozšířitelný o ďalšie moduly a znovu použiteľný pre budúce funkcionality, ako napríklad chatbot. Aplikáciu som testoval priebežne na viacerých typoch zariadení a simulátorech. Testovanie prebehlo na reálnych dátach poskytnutých zo servera a z uložených dát v zariadení. Výsledkom je spoľahlivá mobilná iOS aplikácia poskytujúca možnosť viesť si denník so záznamom nálad, zaznamenať si kvalitu spánku alebo poskytnúť rozhranie klientom pre vyplňovanie formulárov a zoznam sedení s terapeutom. Svojou jednoduchosťou je vhodná pre širokú skupinu užívateľov. 42 Bibliografia 1. JIAQIXIONG A ORLY LIPSITZ Flora Nasri a Leanna M.W. Lui, Hartej Gill a Lee Phan a David Chen-Li a Michelle Iacobucci a Roger Ho a Amna Majeed a Roger S. Mclntyre. Impact of COVID-19 pandemic on mental health in the general population: A systematic review. Journal of Affective Disorders [online]. 2020, roc. 277, s. 55-64 [cit. 2024-03-01]. ISSN 0165-0327. Dostupne z DOI: https: //doi.org/10.1016/j.jad.2020.08.001. 2. LECOMTE, Tania; POTVIN, Stephane; CORBIERE, Marc; GUAY, Stephane; SAMSON, Crystal; CLOUTIER, Briana; FRANCOEUR, Audrey; P E N N O U , Antoine; K H A Z A A L , Yasser et al. Mobile apps for mental health issues: meta-review of meta-analyses. JMIR mHealth and uHealth [online]. 2020, roc. 8, c. 5, el7458 [cit. 2024-02-10]. Dostupne z : https://mhealth.jmir.Org/2020/5/ el7458/. 3. CHANDRASHEKAR, Pooja. Do mental health mobile apps work: evidence and recommendations for designing high-efficacy mental health mobile apps. Mhealth [online]. 2018, roc. 4 [cit. 2024- 02-10]. Dostupne z : https : / /www . ncbi . nlm . nih . gov/pmc/ articles/PMC5897664/. 4. L I N A R D O N , Jake; TOROUS, John; FIRTH, Joseph; CUIJPERS, Pirn; MESSER, Mariel; FULLER-TYSZKIEWICZ, Matthew. Current evidence on the efficacy of mental health smartphone apps for symptoms of depression and anxiety. A meta-analysis of 176 randomized controlled trials. World Psychiatry [online]. 2024, roc. 23, c. 1, s. 139-149 [cit. 2024-02-10]. Dostupne z : https : //onlinelibrary.wiley.com/doi/full/10.1002/wps.21183/. 5. MCCLOUD, Tayla; JONES, Rebecca; LEWIS, Gemma; BELL, Vaughan; TSAKANIKOS, Elias et al. Effectiveness of a mobile app intervention for anxiety and depression symptoms in university students: randomized controlled trial. JMIR mHealth and uHealth [online]. 2020, roc. 8, c. 7, el5418 [cit. 2024-02-10]. Dostupne z : https://mhealth.jmir.org/2020/7/el5418/. 43 BIBLIOGRAFIA 6. Mental Health Apps Market Size & Share Analysis - Growth Trends & Forecasts (2024-2029) [online]. Mordor Intelligence, 2024-01 [cit. 2024-03-23]. Dostupne z : https : //www . mordorintelligence . com/industry-reports/mental-health-apps. 7. RAYPOLE, Crystal. A Guide to Different Types of Therapy [online]. Healthline Media LLC, 2024-01-30 [cit. 2024-03-02]. Dostupne z : https://www.healthline.com/health/types-of-therapy. 8. M O L L Y BURFORD, Ana Gotter a. Behavioral Therapy [online]. Healthline Media LLC, 2023-05-05 [cit. 2024-03-03]. Dostupne z : https://www.healthline.com/health/behavioral-therapy. 9. K A T H L E E N DAVIS, FNP. How does cognitive behavioral therapy work? [online]. Medical News Today, 2023-10-17 [cit. 2024-03-03]. Dostupne z : https://www.medicalnewstoday.com/articles/ 296579. 10. RAYPOLE, Crystal. Is Humanistic Therapy Rightfor You? [online]. Healthline Media LLC, 2019-02-19 [cit. 2024-03-03]. Dostupne z : https://www.healthline.com/health/humanistic-therapy. 11. SMITH, A . iOS Programming Languages: Advanced Techniques for iOS App Development [online]. Frontend Weekly, 2024-02-23 [cit. 2024-03-25]. Dostupne z : https : //medium . com/front - end- weekly/ios-programming-languages-advanced-techniques- for-ios-app-development-87080272d294. 12. Swift Has Reached 1.0 [online]. Apple Inc., 2014-09-09 [cit. 2024- 03-25]. Dostupne z : https : //developer . apple . com/swift/ blog/?id=14. 13. Xamarin [online]. Microsoft Corporation, 2024 [cit. 2024-03-25]. Dostupne z : https : //dotnet .microsoft. com/en-us/apps/ xamarin. 14. SwiftUI [online]. Apple Inc., 2019-06-03 [cit. 2024-03-25]. Dostupne z:https://developer.apple.com/news/?id=06032019b. 15. Designingfor iOS [online]. Apple Inc. [cit. 2024-03-25]. Dostupne z : https://developer.apple.com/design/human-interface- guidelines/designing-for-ios. 44 BIBLIOGRAFIA 16. S.R.O., VOS.health. VOS: Mental Health Tracker [online]. 2024. Ver. 3.27.0 [cit. 2024-03-26]. Dostupne z : https : //apps . apple. com/cz/app/vos-mental-health-tracker/idl535250944. 17. Daylio Journal - Daily Diary [online]. 2024. Ver. 1.59.0 [cit. 2024- 03-28]. Dostupne z : https : //apps. apple. com/us/app/daylio- journal-daily-diary/idll94023242. 18. THRIVEPORT, L L C . Moodnotes - Mood Tracker [online]. 2021. Ver. 3.14.0 [cit. 2024-03-27]. Dostupne z : https : //apps . apple. com/us/app/moodnotes-mood-tracker/idl019230398?platform= iphone. 19. The Origin Story of VOS [online]. VOS.health s.r.o. [cit. 2024-03- 26]. Dostupne z : https : //vos. health/en/company. 20. See more of yourself in Health, [online]. Apple Inc. [cit. 2024-03-26]. Dostupne z : https : //www. apple. com/ios/health/. 21. FIGMA, Inc. Figma [online]. 2024. Ver. 116.17.13 [cit. 2024-04-05]. Dostupne z : https : //www. f igma. com/. 22. INC., Apple. SF Symbols [online]. 2023. 5.0 (91) [cit. 2024-04-05]. Dostupne z : https://developer.apple.com/sf-symbols/. 23. iOS versions market share in March 2024 [online]. TelemetryDeck GmbH, 2024-03-01 [cit. 2024-04-15]. Dostupne z : https : // telemetrydeck.com/blog/ios-market-share-03-24/. 24. AlamoA^e Elegant Networking in Swift, [online]. Alamofire Software Foundation, 2024-03 [cit. 2024-04-15]. Dostupne z : https: //github.com/Alamof ire/Alamof ire. 45