Utveckling utav en AR-applikation för Ska- tås parkruns volontärer Kandidatarbete vid institutionen för Data- och Informationsteknik ALAA EDDIN ALASIRI MOHAMMAD AL MASARWA ISABELLE ERMERYD TANKRED MAX LIMAN HANNES SVAHN OLLE WESTERLUND Institutionen för Data- och Informationsteknik CHALMERS TEKNISKA HÖGSKOLA GÖTEBORGS UNIVERSITET Göteborg, Sverige 2022 Kandidatarbete 2022 ALAA EDDIN ALASIRI MOHAMMAD AL MASARWA ISABELLE ERMERYD TANKRED MAX LIMAN HANNES SVAHN OLLE WESTERLUND Institutionen för Data- och Informationsteknik Chalmers Tekniska Högskola Göteborgs universitet Göteborg, Sverige 2022 Utveckling utav en AR-applikation för Skatås parkruns volontärer ALAA EDDIN ALASIRI MOHAMMAD AL MASARWA ISABELLE ERMERYD TANKRED MAX LIMAN HANNES SVAHN OLLE WESTERLUND © ALAA EDDIN ALASIRI, MOHAMMAD AL MASARWA, ISABELLE ER- MERYD TANKRED, MAX LIMAN, HANNES SVAHN, OLLE WESTERLUND 2022. Handledare: Pauline Belford, Institutionen för Data- och Informationsteknik. Examinator: Morten Fjeld, Institutionen för Data- och Informationsteknik Kandidatarbete 2022 Institutionen för Data- och Informationsteknik Chalmers Tekniska Högskola och Göteborgs Universitet SE-412 96 Göteborg Telefon +46 31 772 1000 Göteborg, Sverige 2022 ii Utveckling utav en AR-applikation för Skatås parkruns volontärer © ALAA EDDIN ALASIRI, MOHAMMAD AL MASARWA, ISABELLE ERME- RYD TANKRED, MAX LIMAN, HANNES SVAHN, OLLE WESTERLUND 2022. Institutionen för Data- och Informationsteknik Chalmers Tekniska Högskola och Göteborgs Universitet The report is written in Swedish Abstract Skatås Parkrun is an event where everyone is welcome to run or walk a 5 km race. The race takes place each Saturday in Skatås in Gothenburg. Before the race, the volunteers place guiding signs along the track. It’s often a struggle to place those signs and the organization Parkrun does not have any established system on how it should be done. The goal of this project was to develop a mobile application that, with the help of AR and GPS technology helps the volunteers to place the signs before the race. The application took inspiration from similar AR applications. The end result was two application which were developed with Unity and Android Studio. One has a map of the area and information about the different parts of the race. The other holds the AR functionality which shows the nearest path to the signs and instructions on where to place the sign. The volunteers who evaluated the application gave an overall positive response, even though there are some development opportunities. Keywords: AR, Augmented Reality, Parkrun, Application, Android, Map, GPS, Volunteer, Unity iii Sammandrag Skatås Parkrun är ett evenemang där vem som helst som vill får vara med och springa eller gå ett 5 km lopp. Loppet äger rum varje lördag i Skatås i Göteborg. Inför loppet ställer frivilliga funktionärer upp och sätter ut vägvisande skyltar. Det är ofta knepigt att hitta skyltarnas placering och organisationen parkrun har i dags- läget inget etablerat system för hur det ska göras. Målet med det här projektet var att utveckla en mobilapplikation som med hjälp av AR- och GPSteknik hjälper funktionärerna att placera ut skyltarna inför loppen. Applikationen tog inspiration från liknande AR-applikationer. Resultatet blev två applikationer som utvecklades med hjälp av Unity och Androis Studio. Den ena har karta över området och information om de olika delarna av loppet. Den andra håller AR-funktionen som visar närmsta vägen till skyltarna och instruktioner om var skyl- tarna ska placeras. Funktionärerna som utvärderade applikation gav övergripande positiv respons, även om en del utvecklingsmöjligheter finns. Nyckelord: AR, Augmented Reality, Parkrun, Applikation, Android, Karta, GPS, Funktionär, Unity iv Förord Projektgruppen ParkrunARApp vill tacka Pauline Belford, som hjälpt gruppen med att inte bara lusläsa rapporten utan även se till att applikationen faktiskt testades av volontärer och att vi fick respons. Gruppen vill även tacka alla de funktionärer som hjälpte oss att gå igenom hur alla skyltar sätts upp samt testade applikationen och gav respons på projektet. Vi vill även tacka alla de som deltar i loppen, utan er hade det inte funnits ett lopp att utveckla en applikation till. v Ordlista • 2D/3D: 2 dimensional/3 dimensional, antal dimensioner. • Accelerometer: Ett verktyg för att mäta acceleration. • Access token: Mjukvara innehållande nödvändig data för legitimering till bland annat internettjänster. • AI: Artificial Intelligence, är en maskins förmåga att efterlikna mänskligt be- teende som till exempel inlärning och resonemang. • Algoritm: En mängd med instruktioner som följs för att lösa ett problem. • API: Står för Application Programming Interface vilket tillåter olika appli- kationsprogram att kommunicera med varandra. • AR: Augmented Reality, förändrar den verkliga världen med hjälp av dator- genererade grafiska element. • Backend: Den del av ett program som sköter beräkningar och sparande av data. • Blender: Ett verktyg för att skapa grafiska 3D-modeller. • Card View: Ett sätt att visuallisera element genom att visa dem som kort oftast sorterade i rader och kolumner • Emulator: Mjukvara för att efterlikna funktionaliteten av annan mjuk eller hårdvara. • Figma: Ett verktyg för att skapa lågnivå-designer av hemsidor eller applika- tioner. • GeoJSON: Ett format för kodning av en mängd olika geografiska datastruk- turer. • Github: Ett webbaserad Git repository för lagring och versionshantering av kodkälla. • Google Earth: En virtuell jordglob gjord av Google med olika geografiska funktioner. • GPS: Globla Positioning System, ett satellitbaserat system för navigering. • Gradle: Ett verktyg som automatiskt bygger körbara filer i språk som Java. • Haversine’s forumla: En formel som räknar ut det kortaste distansen mellan två punkter på ett klot. • JSON: Ett filformat för att visuallisera data på ett sätt läsligt för människor. • KML-fil: Ett filformat för visuallisering av geografisk data. • Magnetometer: Ett verktyg som mäter styrka och ibland även riktning av magnetiska fält. • Mapbox: Ett molnbaserat verktyg för kartläggning och lokalisering. • Molnbaserad: Ett verktyg för att mäta styrka och ibland även riktning av mangetiska fält. • NoSQL-databas: är icke-tabellbaserade databaser och lagrar data annorlun- da än relationstabeller. • Null: Ett tomt värde inom programmering. • Paketnamn: Identifierar olika applikationer på en Android telefon. • Pokémon: Ett japanskt media-franchise, ägt av Nintendo. vi • Pop-up: En notis som plötsligt dyker upp på skärmen oftast för att förmedla information. • Scrum: Ett ramverk som hjälper grupper att lösa komplicerade problem. • Scrum board: Ett visuellt tillvägasätt att organisera projekt. • User stories: Representativt för den minsta indelningen av arbete i en agil arbeidsmetodikk. • Virtuell: Något som inte har materiell form, utan visualliseras med hjälp av till exempel en datorskärm. • XML-fil: Extensible Markup Language, ett filformat för att lagra, överföra och redigera data på ett sätt läsligt för människor. vii Innehåll Figurer x 1 Inledning 1 1.1 Syfte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Utmaningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Avgränsningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Teknisk bakgrund 4 2.1 Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Android Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Human centered design . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 Augmented Reality . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Firebase Databas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.6 Blender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.7 Figma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.8 Trello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.9 Liknande projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Metod 9 3.1 Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 Testning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 Genomförande 11 4.1 Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.1 GPS + AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.2 Skapa AR objekt . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.1.3 Ruttnavigation . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.1.4 Testning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Egen funktionalitet i Unity . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2.1 Närmsta steg vid start . . . . . . . . . . . . . . . . . . . . . . 16 4.2.2 Knappgränssnitt . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2.3 Huvudmeny . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.3.1 Applikationsdesign . . . . . . . . . . . . . . . . . . . . . . . . 18 4.3.2 Implementation i Android Studio . . . . . . . . . . . . . . . . 19 4.3.3 Databas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3.4 Testning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 viii Innehåll 4.4 Översiktskarta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.5 Kombinering av Android och Unity . . . . . . . . . . . . . . . . . . . 22 5 Resultat 23 5.1 Resultat av applikationerna . . . . . . . . . . . . . . . . . . . . . . . 23 5.2 Testning och utvärdering . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.3 Respons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.4 Slutprodukt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6 Diskussion 27 6.1 Samhälliga och etiska aspekter . . . . . . . . . . . . . . . . . . . . . . 27 6.1.1 Krav på Androidmobil . . . . . . . . . . . . . . . . . . . . . . 27 6.1.2 Svår teknik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.1.3 GPS lokalisering . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.2 Ändringar i applikationen . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2.1 Kartvy i AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2.2 Integration mellan Android och Unity . . . . . . . . . . . . . . 29 6.3 Framtida arbete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.3.1 Förbättringar . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7 Slutsats 32 Källförteckning 33 A Utvärderingsfrågor I ix Figurer 2.1 En skärmdump från applikationen ARcity. . . . . . . . . . . . . . . . 8 2.2 AR- och kartvy från applikationen ViewRanger. . . . . . . . . . . . . 8 4.1 Första försök till navigation i AR. . . . . . . . . . . . . . . . . . . . . 12 4.2 Skyltpositioner för bandel 1 i Web Map Editor. . . . . . . . . . . . . 13 4.3 De tre första stegen av 22 som ska följas under bandel 1. . . . . . . . 15 4.4 Knappgränssnit för AR applikationen. . . . . . . . . . . . . . . . . . 17 4.5 Planerad hemskärm för applikationen. . . . . . . . . . . . . . . . . . 19 4.6 Andra sida på planerad för applikationen. . . . . . . . . . . . . . . . 19 4.7 Välj bandel-sida på planerad applikation. . . . . . . . . . . . . . . . . 19 4.8 Bandel-sida på planerad applikation. . . . . . . . . . . . . . . . . . . 19 4.9 Översikt över bandel 1. . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.10 Översikt över Firebase flöde. . . . . . . . . . . . . . . . . . . . . . . . 21 4.11 Översiktskarta med alla skyltar över Skatås. . . . . . . . . . . . . . . 22 4.12 Vald markering vilket visar informationen om den skylten. . . . . . . 22 5.1 Respons på utskicket från funktionärerna på Skatås parkrun. . . . . 24 5.2 Översikt över applikationens flöde. . . . . . . . . . . . . . . . . . . . 26 6.1 En bild över AR Applikationen när GPSen är avstängd. . . . . . . . . 29 x 1 Inledning Skatås parkrun [1] är ett veckoligt evenemang som sker i Skatås varje lördag och evenemanget arrangeras av frivilliga funktionärer. Deltagarna kan antingen springa eller promenera en 5 kilometer lång sträcka i Delsjöområdet i Göteborg och evene- manget är riktat till alla som är intresserade av att träna i naturen, oavsett om de är erfarna löpare eller ej. Skatås parkruns organisation har i nuläget problem med att hitta nya funktionä- rer som är villiga och intresserade av att hjälpa till med att anordna evenemanget. Problemet med att få in nya funktionärer beror främst på att det är komplicerat för nya funktionärerna att utföra deras uppgift och att det är svårt att instruera och lära upp de nya funktionärerna. De ansvarsområden som finns för de frivilliga funktionärerna är att stå ute på banan och dirigera deltagarna vid specifika platser, på väg till dessa platser ska funktionärerna även placera ut vägvisande skyltar längs med banan för att ytterligare hjälpa deltagarna att hitta runt banan. Problemet som uppstår för de nya funktionärerna är att de kan tycka att det är svårt att hitta vart och hur de ska gå, samt var alla skyltar ska placeras. Funktionärerna har för nuvarande endast ett bibliotek med bilder som ligger på Google Drive och som visar var skyltarna ska sitta samt en klargörande text som beskriver vardera bilds position. Att hitta till rätt plats och att placera rätt skylt längs banan är kne- pigt. Terrängen längs med banan är liknande överallt och det är svårt att identifiera en specifik plats från endast en bild. Funktionärera har provat att ta hjälp av ap- plikationer som Google Maps för att underlätta att placera ut skyltarna. Problemet med att använda till exempel Google Maps är att Skatås parkrun genomförs i ett skogområde med mycket träd och berg som kan blockerar satellitsignalerna. Om det är dålig täckning har GPS-mottagaren svårt att lokalisera exakt var funktionären befinner sig och det tar längre tid att synkronisera och uppdatera positionen. På grund av dessa problem har denna lösning visat sig inte vara helt optimalt. Det här projektet är tänkt underlätta den arbetsfriktion funktionärerna upplever genom att skapa en mobilapplikation som med hjälp av Augmented Reality och GPS gör det enklare för funktionären att hitta rätt positioner längs med banan. I framtiden är förhoppningen att projektet ska kunna locka fler människor att ställa upp som volontärer. Augmented Reality, även känd som AR, är en teknologi som lägger till virtuella objekt till vår verklighet genom någon sorts datorskärm, allt från en mobiltelefon med hjälp av kameran till ett par glasögon som har den rätta funktionaliteten [2]. 1 1. Inledning Ett exempel på en AR-applikation är mobilspelet Pokémon GO där virtuella poké- mons kan integreras med genom en mobilskärm i vår verklighet. I det här projektet används AR för att visa funktionärerna vilka skyltar som ska användas, var de ska placeras samt hur funktionärerna snabbast tar sig till nästa skylt. GPS står för Global Positioning System som genom att använda sig av satelliter, mottagare och algoritmer kan bland annat lokalisera användarens position och has- tighet [3]. För att GPS ska kunna triangulera och bestämma en användares postition behövs tre satelliter användas men genom att använda minst fyra satelliter kan sy- stemet bättre säkerställa mottagerens positionen och även räkna ut mottagarens altitud. Genom att använda informationen från GPS går det att med AR bestämma exakt var de virtuella objekten ska sättas ut. 1.1 Syfte Syftet med detta projekt är att utveckla en applikation som kan underlätta arbetet för de funktionärer som anordnar parkrun-evenemanget i Skatås varje helg. Applika- tionen ska underlätta för funktionärerna genom att bland annat visa var stationerna finns, var skyltarna ska placeras samt ge förslag på potentiella genvägar. Genvägar- na gör att funktionärerna slipper gå onödigt långa sträckor för att komma fram till skyltarnas önskade position. Ytterligare ett syfte är att underlätta inlärningen för nya funktionärer som inte varit med tidigare. Just nu har funktionärerna inte något bra sätt att visa var skyltarna ska placeras utan de har endast biblioteket med bilder till hjälp. De behöver komma ihåg vilka och hur många skyltar de ska ta med sig samt även var och hur de ska placeras. För att nya funktionärer ska lära sig behöver alltså en rutinerad funktionär berätta vilka skyltar som ska tas med samt följa med dem för att visa var och hur de ska sättas ut. Den befintliga lösningen är inte optimal eftersom det inte brukar vara så många funktionärer som kan hjälpa till under loppen, så genom att tillhandahål- la en applikation som kan göra alla instruktioner i stället för att de mer erfarna funktionärerna behöver hjälpa de nya, hade sparat mycket tid och arbete. 1.2 Utmaningar En av de stora utmaningarna med projektet är att kombinera AR-tekniken och GPS-tekniken. Det är av högsta vikt att få de två teknikerna att fungera ihop. Det finns några tidigare projekt som gjorts med liknande tekniker. Ett exempel är “An ARCore-Based Augmented Reality Campus Navigation System” [4]. Ett projekt där AR teknik används för att underlätta för studenter att hitta på campusområdet. En annan utmaning är också att anpassa tekniken efter terrängen i skatås. Skatås ligger i ett skogsområde nära Härlanda tjärn och Delsjön. Under vår och höst blir det ofta lerigt, dessutom finns det mycket stenar och berg som är enkla att snubbla 2 1. Inledning på. Därav behöver tekniken anpassas så att funktionärerna fortfarande är medvetna om terrängen när de använder applikationen. Ryokai & Agogino skriver om hur olika AR-tekniker kan användas i svår terräng. [5] Ytterligare en utmaning är att göra tekniken enkel och lätthanterlig för funktionä- rerna. Nuvarande funktionärer är i blandad ålder men en stor del av dem är äldre personer. Då blir det extra viktigt att applikationen som utvecklas är intuitiv och lätthanterlig. Är tekniken för svår att använda finns risken att projektets syfte mot- arbetas och att det blir ännu svårare att ställa upp som funktionär. 1.3 Avgränsningar De två vanligaste operativsystemen för mobiltelefoner är iOS och Android. Det skulle ta väldigt mycket tid att anpassa applikationen till flera operativsystem och eftersom projektet är tidsbegränsat har gruppen valt att fokusera på ett av operativsyste- men i första hand. Gruppen har i diskussion med handledare valt att fokusera på att skapa en applikation till Android, då det var det vanligaste operativsystemet bland de nuvarande funktionärerna i Skatås parkrun och att parkrun har ett par androidtelefoner att låna ut. Det möjliggör även utveckling i Android studio, en ut- vecklingsmiljö för att utveckla applikationer till Android, vilket underlättar arbetet mycket på grund av programmets alla hjälpmedel. I dag finns det endast en bana för parkrun vid Skatås motionscentrum, därav kom- mer applikationen enbart att tillhandahålla AR över denna bana. Att behöva hantera information om användare och spara meddelanden mellan an- vändare kräver ett omfattande arbete för att både hantera informationen på ett säkert sätt och enligt gällande lagstiftning. Svårigheterna med att hantera informa- tion om användare tillsammans med att volontärerna redan använder meddelande- och samtalsapplikationen WhatsApp för att kommunicera, gör att projektet inte be- höver tillhandahålla en tjänst för kommunikation. Då applikation inte kommer att hantera personuppgifter eller annan känslig data kommer projektet inte att behöva fokusera på säker och etisk hantering av sådan information. Det globala parkrunsystemet håller reda på vilka volontärer som har ställt upp varje vecka och vilken roll de haft under evenemanget. Denna information påverkar inte applikationens syfte och därav är det inte nödvändigt för applikationen att varken ta del av eller hantera den typen av information. 3 2 Teknisk bakgrund Denna sektion kommer att gå igenom de olika tekniska aspekterna som är nödvän- diga för att skapa den efterfrågade applikationen. Applikationen skapas med hjälp av två olika system, Unity och Android Studio, de två olika delarna kommer senare att kombineras till en applikation. 2.1 Unity Unity är en spelmotor och Integrated Development Environment (IDE) för att ut- veckla spel och film i 2D/3D för över tjugo plattformar som till exempel iOS, Andro- id, Windows, Playstation och Xbox. Över 50 procent av alla spel som utvecklades under 2021 använde Unitys spelmotor under utvecklingen [6]. För att utveckla be- teendet hos de objekt som skapas i Unity används programmeringsspråket C# och Unity tillhandahåller även verktyg för att skapa Virtual Reality och Augmented Reality. På Unitys hemsida finns också tillgång till en asset store där personer kan köpa och sälja tillägg utvecklade i Unity, dessa tillägg kan sedan laddas ned och an- vändas för den egna utvecklingen. Tillägg kan vara till exempel ljud, 2D/3D objekt, beteende för AI, GPS-hantering och olika typer av mallar. 2.2 Android Studio För att utveckla applikationer till mobiltelefoner som använder sig av Googles ope- rativsystem Android, används ofta Android Studio som är den officiella IDEn för utveckling av androidapplikationer [7]. Android Studio använder sig av bland annat programmeringsspråket Java för utvecklingen av applikationer [7] då det är baserat på JetBrains IDE IntelliJ IDEA. JetBrains är ett företag som utvecklar och erbju- der utvecklingsverkyg och utbildningar inom flera olika programmeringsspråk [8]. Genom användingen av IntelliJ IDEA i Android Studio tillhandahålls bland annat förslag på lösningar till fel i koden och auto-implementation av saknade klasser och metoder med mera [9]. För att implementationen själva designen används XML-filer som genereras då man lägger till knappar med mera med hjälp av Android Studios olika verktyg. I utvecklingsmiljön finns det många användbara verktyg för att ut- veckla applikationer till androidtelefoner som till exempel mallar för olika typer av applikationer och tjänster (Google maps, Google pay, inställningar för applikationen med mera). Det finns även verktyg för att skapa virtuella emulatorer för en rad oli- ka androidmobiltelefoner och välja vilken version av androidoperativsystemet som emulatorn ska använda sig utav. Dessa emulatorer kan användas för att utvecklaren 4 2. Teknisk bakgrund kan se hur applikationen ser ut på den valda virtuella mobiltelefonen och hur appli- kationen fungerar genom att använda applikationen i emulatorn. Det går även att exportera applikationen till en fysisk androidmobiltelefon för att kunna testa och se hur applikationen fungerar på en fysisk mobiltelefon. 2.3 Human centered design Den tänkta applikationen har endast ett specifikt användningsområde och det med- för att alternativen för layouten och utseendet för applikationen inte är lika många. Den mall som valts för att designa applikationen heter Mobile Direct Access och är skapad för applikationer som antingen tillhandahåller något eller där användaren använder applikationen för en specifik uppgift [10]. Mobile Direct Access används för att skapa värde för användaren med en gång när applikationen startas och be- gränsar användarens förmåga att söka eller ändra mängder av inställningar. Genom att använda denna layout får användaren direkt fokus på applikationens använd- ningsområde utan att behöva leta, klicka sig fram eller ge applikationen en mängd indata innan användaren får ut värde av att använda applikationen. Applikationens design har också tagit stor inspiration från en annan applikation som redan används av Parkruns funktionärer i Skatås. Att använda liknande design och funktionalitet som en applikation som redan används av funktionärerna har tydliga fördelar för att funktionärerna snabbt ska lära sig applikationen. När till exempel ett nytt dokumenthanteringsprogram används för första gången underlättar det om de vanligaste snabbkommandonen är samma som på andra dokumenthanterings- program. Genom att samma snabbkommandon används på samma sätt för olika applikationer ökar användarens initiala effektivitet och de behöver inte aktivt tänka på användandet av snabbkommandonen eftersom de redan är en vana att använda snabbkommandonen [10]. Det finns dock en risk om användaren har en vana från användandet av ett an- nat program eller applikation och de förväntar sig att vanan även fungerar i det nya. Om vanan inte går att använda i det nya programmet kan frustration ska- pas hos användaren eller i värsta fall kan det gamla beteendet skada eller förstöra arbetet användaren håller på med. Ta till exempel snabbkommandot Ctrl-S som ofta används för att spara det arbete som användaren gjort, om samma kommando används i ett nytt program men i stället för att spara så återställer man allt arbe- te som skapats tillbaka till senaste tidpunkten användaren sparade dokumentet. En sådan förändring kan ge användaren stora problem innan den gamla vanan är borta. Den inspiration som används från den befintliga parkrun applikationen är färgsche- mat samt layouten och storleken på knapparna. Att använda samma layout och färgschema minskar inlärningskurvan hos de som redan använder sig av den andra applikation genom att de inte behöva lära sig på nytt hur de navigerar genom den nya applikationen. Att ha lite större knappar och text än vanligt innebär också att det blir lättare för äldre funktionärer, vilket också i dag är majoriteten av de som ställer upp som funktionärer i Skatås, att läsa text, trycka på knappar och navigera 5 2. Teknisk bakgrund sig genom applikationen. 2.4 Augmented Reality Augmented Reality (AR) kan beskrivas på svenska som förstärkt eller förbättrad verklighet och är när det läggs till virtuella objekt i verkligenheten. AR ska inte förväxlas med Virtual Reality (VR) som är en teknologi där en virtuell verklighet, som reagerar på vad användaren gör och ger för indata, helt ersätter den riktiga verkligenheten [11]. Syftet med AR är i första hand att förenkla saker för använda- ren genom att ge användaren virtuell information i realtid om saker i dess närhet i verkligheten [12]. AR är utmärkt för att användas av mobiltelefoner då dessa är ut- rustade med bland annat kamera, GPS, accelerometer och magnetometer. Verktygen tillsammans med att dagens mobiltelefoner har väldigt bra prestanda leder till att mobiltelefonen snabbt kan ta fram eller räkna ut data för de virtuella objekten som ska visas upp och sedan visa upp dem i realtid för användaren. Augmented Reality kan till exempel användas för att placera ut möbler i ett rum för att användaren kan se hur det skulle se om hen placerade en specifik möbel på den valda platsen [13]. Genom att kombinera dagens mobiltelefoners prestanda och inbyggda verktyg med funktionaliteterna hos AR går det att skapa en applikation som både kan vägleda användaren runt banan och i realtid visa upp viktig information som användaren behöver för att lösa sin uppgift. 2.5 Firebase Databas Google Firebase är en plattform som utvecklas av Google som gör det möjligt för utvecklare att utveckla mobil- och webbapplikationer. Firebase ger utvecklare en mängd olika verktyg och tjänster för att hjälpa dem vid utvecklingen av applikatio- ner [14]. Två viktiga verktyg som används i detta projekt är Firebase Storage och Firebase Realtime Database. Firebase Storage är en tjänst i Firebase-plattformen som gör det möjligt att lagra bilder, videos och filer i molnet. Tjänsten kan även användas för att lagra och hantera data som genereras av applikationsanvändarna. Uppladdning och nedladding av data med Firebase Storage fungerar även vid dålig kontakt med nätet vilket är en fördel då applikationen kommer används ute skogs- områden där täckningen stundtals kan vara dålig [15]. Firebase Realtime Database är en molnbaserad NoSQL-databas som användas för att lagra och synkronisera da- ta för användarna i realtid. Om användaren inte har tillgång till molnet, på grund av till exempel dålig mottagning, sparas datan lokalt för att sedan uppdateras när hen får tillgång till molnet igen [16]. 2.6 Blender Blender är en mjukvara med öppen källkod som används för att skapa animationer samt 2D och 3D objekt. Blender används ofta för 3D design samt för att skapa 6 2. Teknisk bakgrund scener eller objekt som sedan kan användas i andra spelmotorer som till exempel Unity. Blender och Unity har en enkel och etablerad integration [17]. 2.7 Figma Figma är en webbaserad grafikredigerings- och ett prototypverktyg men finns även som en applikation[18]. Designers och utvecklare använder Figma för att bygga digi- tala produkter och låta dem redigera kommentarer, granska design och kod tillsam- mans. Androidgruppen använde programmet Figma på grund av tidigare design- färdigheter och smidigheten i att rita anpassade former och utnyttja ett detaljerat rutsystem. Detta gjorde Figma till det bästa valet som passar Androidplattformen som gruppen använder. 2.8 Trello Trello är en samarbets- och webbaserad applikation för att organisera uppgifter i ett projekt och hålla reda på andra samarbetspartners framsteg [19]. Via Trello skapas ett scrum board med user stories som sedan användes i projektet. Gruppen valde Trello då det är en enkel applikation som de flesta gruppmedlemmar redan var bekanta med. 2.9 Liknande projekt Trots att AR är en relativt ny teknik har flera liknande projekt gjorts. Ett exempel är ARcity [20] från Blippar [21]. Det är en applikation som används i större städer och som främst riktar sig till turister. Med hjälp av AR visar applikationen vägen till olika sevärdheter och ger även information vad som finns i byggnaderna runt omkring. Vägvisningen och hur de använder kartorna är till stor hjälp och inspira- tion inför projektet. ARcity har väldigt mycket information som visas samtidigt på skärmen. I Skatås bör applikationen innehålla lite mindre information, så att den blir enklare att förstå för nya användare och för att terrängen i Skatås forfarande ska vara synlig på skärmen. 7 2. Teknisk bakgrund Figur 2.1: En skärmdump från applikationen ARcity. Ett annat exempel är applikationen ViewRanger. ViewRanger har ett stort utbud av utomhusaktiviteter, så som cykling och vandring [22]. Kartor över vandrings- och cyklelleder finns bland annat samlade i appen och det går även att använda AR-teknik för att hitta närmsta vägen till en bergstopp eller för identifiera omgiv- ningen. I applikationen finns möjligthet att växla mellan kartvy och AR-vy. Mycket inspiration finns att hämta från ViewRanger inför projketet i Skatås. Figur 2.2: AR- och kartvy från applikationen ViewRanger. 8 3 Metod Gruppen beslutade att fördela arbetet mellan medlemmarna så att projektets olika mjukvaruarkitekturer utvecklas parallellt. Tilldelning av arbetet skedde på följande sätt: Android Studio är tänkt att användas av tre gruppmedlemmar för att utveck- la applikationens gränssnitt och hantering av översiktskartorna. De resterande tre gruppmedlemmarna kommer använda Unity och Blender för att utveckla applika- tionens back-end och AR. Data tillhandahölls av handledaren och bestod av en uppsättning bilder som visar alla vägvisningsskyltar och deras positioner runt banan. Datan avses användas un- der utvecklingsprocessen för att visas upp som hjälp för volontärerna och även för att testa att slutprodukten visar rätt positioner för skyltarna. 3.1 Scrum Gruppen ska under projektet arbeta agilt genom att använda sig av ramverket Sc- rum som vill underlätta utvecklingsprocessen för alla som är delaktiga i projektet. Med Scrum får gruppen tillgång till en etablerad utvecklingsprocess med många bra verktyg för att utveckla applikationen inom tidsramen av projektet. Scrum är dess- utom väldigt bra för att planera utvecklingen med tydliga mål för varje vecka och kriterier för att tydligt se när varje mål är uppnått. Med hjälp av Scrums processer och att arbetet sker agilt blir det väldigt mycket lättare att hantera förändringar som sker eller göra ändringar under projektets gång[23]. 3.2 Testning Applikationens utformning och design bör genomgå någon form av testning. Test- ning görs för att utvecklare ska kunna utvärdera hur väl applikationen passar mål- gruppen och syftet. Vid testning kan utvecklarna få respons på hur användarvänlig applikationen är men också ta del användarupplevlsen av applikationen. Användar- vänlighet ger en indikation på hur lätt applikationen är att lära sig och använda medans användarupplevelse syftar till hur användarens upplevelse av applikationen är, om det till exempel upplevs som roligt, tillfredsställande och motiverande att interagera med applikationen [24]. 9 3. Metod Testning kan ske på flera olika viss beroende på vilken typ av resultat utvecklarna vill ha. Gruppen har valt att utföra testerna i en naturlig testmiljö med potentiella framtida användare. Gruppen kommer låta funktionärerna för skatås parkrun an- vända applikationen under ett parkrun och observera hur funktionärerna interagerar med applikationen. Efteråt kommer funktionärerna få fylla i ett formulär med frågor där det även finns chans att lämna egen respons. Genom att observera funktionärer- na när de använder applikationen kan gruppen utvärdera användarvänligheten och via frågor och öppen respons kan funktionärerna dela med sig av sina upplevelser av applikationen. Gruppen använder Google forms [25] för att samla in svar, det ger en tydlig sammanställd bild av resultatet och funktionärerna kan vara anonyma när de svarar på frågorna. Frågorna som användes under testningen går att hitta i appendix A. Utöver testning i naturlig miljö med användare kommer gruppen även testa en- skilda funktioner i applikationen, då i en kontrollerad miljö utan användare. Det säkerhetsställer att funktionerna fungerar enligt förväntan. 10 4 Genomförande Detta arbete har genomförts på två fronter, en i Unity för att utveckla AR och en i Android Studio för att utveckla app gränssnittet. När dessa två delar har bedöms uppnå den funktion som efterfrågas kombineras dem så att de kan delvis interagera med varandra. 4.1 Unity 4.1.1 GPS + AR För att projekt ska kunna genomföras inom den tidsram som är satt behövdes det inköpas ett specifikt tillägg från Unitys Asset Store. Tillägget som projektet köpte heter ”AR + GPS Location” och är utvecklat av Daniel Fortes [26]. Paketet av filer som köptes både möjliggör och underlättar arbete av AR i Unity, där detta tillägg bidrar med en plattform för att lättare skapa egna objekt för AR samt logik för navigation i AR. När projektet fick tillgång till tillägget studerades dess dokumentationen genomför- ligt för hur den skulle användas för att uppnå projektets önskade slutprodukt, mer specifikt följdes quickstart guiden för att skapa en AR miljö för androidtelefoner [27]. Under denna tidsdel av projektet var det många aspekter som testades för att se hur det inköpta tillägget och Unity fungerade ihop, detta gjordes genom att skapa simpla AR objekt samt att försöka navigera till dem. 11 4. Genomförande Figur 4.1: Första försök till navigation i AR. När gruppmedlemmarna gjort flera tester och kände sig tillräckligt bekväma med programvaran började slutprodukten utvecklas. I Unity skapades det fyra olika sce- ner: Track 1, 2, 3 och Goal. Dessa fyra scener representerar de fyra olika bandelarna som banan i Skatås är uppdelad i. Sedan följdes stegen i quickstart guiden för att skapa en grundläggande struktur för att kunna använda det inköpta tillgången i vardera scen. När det var klart delades Unity-gruppen in i två arbetesgrupper, en grupp utvecklande AR objekten medan den andra gruppen hanterade ruttnaviga- tionen mellan objekten. 4.1.2 Skapa AR objekt För att kunna visa var i verkligheten rätt skylt ska placeras ut på banan skapas det skyltar i AR miljön. Skyltarna som togs fram ska, utseendemässigt, likna de verkliga skyltarna så mycket som möjligt för att underlätta för användaren att placera ut rätt skylt på korrekt plats. Arbetet att utveckla och designa alla skyltar gjordes med hjälp av Blender. Under parkrun-banans gång behövs det flera olika skyltar för att leda deltagarna korrekt, därmed gjordes skyltar för: • 1, 2, 3, 4 och 5km • sväng norrut, österut, söderut och västerut • fortsätt framåt • u-sväng 12 4. Genomförande Eftersom banan går i en större cirkel med flera andra spår som anknyter till ba- nan behövdes det olika instanser av skyltarna för att visa åt vilket håll skyltarna ska peka åt. På grund av att vissa skyltar behöver kunna peka åt alla väderstreck skapades det identiska versioner av de olika skyltarna, fast där deras framsida pe- kade åt ett av de fyra olika väderstrecken. De skyltar som inte behöver ha identiska versioner för de olika riktningarna är de som vägleder deltagarna att svänga åt ett kardinalstreck, detta eftersom det ansågs som onödigt eftersom det endast behövdes en version av dem. Dessa skyltar placeras sedan med hjälp av onlineverktygetWeb Map Editor, vilket är ett medföljande verktyg som finns i dokumentationen till det inköpta tillägget [28]. Med detta verktyg går det att sätta ut virtuella markeringar med de koordinater i longitud och latitud där det önskas att AR objekten ska sitta i verkligheten. Till varje utsatt objekt behövs det ett ”Mesh ID”-värde som används för att länka ihop rätt virtuell markering med rätt AR skylt. När alla markeringar är utsatta går det att exportera en XML-fil från websidan, denna XML-fil används senare i Unity för att synka rätt utsättning av AR objekt med rätt bandel. Figur 4.2: Skyltpositioner för bandel 1 i Web Map Editor. För att kombinera vilka skyltar som tillhör rätt Mesh ID behövs det en Prefab Da- tabase i Unity. Här paras Mesh ID och skyltarna ihop så att Unity vet vilken skylt som ska se ut på vilket sätt. Till sist i varje scen läggs det till ett Unity objekt, i denna läggs XML-filen med positionerna för alla skyltar till den specifika bandelen in samt databasen som parar ihop skyltarna och dess utseende. 13 4. Genomförande 4.1.3 Ruttnavigation För att användarna ska kunna placera ut skyltarna på rätt plats ute på banan är det viktigt att funktionärerna blir vägledda till rätt position, därför behövs det en ruttnavigation som kan hjälpa användarna med vägledning för de fyra olika ban- delarna. Det inköpta tillägget använder sig utav Mapbox tjänster för att utföra sin navigation. För att kunna använda sig av Mapbox behövs en access token som är genererad från dess websida, vilket införskaffades. För att skapa vägledning finns möjligheten att generera ett anpassat spår. Vilket uppnås genom att sätta ut punkter med i form av latitud och longitud i den ord- ningen som punkterna ska följas. För att underlätta denna process är det möjligt att skapa spår i Google Earth genom att rita ut en funktion som visar hur spåret ska gå, sedan går det att exportera en KML-fil från Google Earth vilket kan importeras i Unity för att automatiskt fylla i de efterfrågade punkterna. Varje steg har även ett instruktionsfält, texten som fylls i där är den text som visas på den virtuella vägvisaren i AR sedan när applikationen används. Varje steg fick en instruktion som är relevant till det funktionären förväntas att göra vid det steget, vilket kan vara till exempel ”Fortsätt gå framåt” eller ”Sätt ut skylt ’1km’ under kraftledningen”. I bör- jan av varje instruktion visades även vilket delsteg det var, då på steg ett på bandel ett står det i början av instruktionen (0/21). Siffran noll står för startpunkten där alla bandelar börjar, vilket sedan ökar med ett för varje steg upp till maxantalet för bandelen, i detta fall 21. 14 4. Genomförande Figur 4.3: De tre första stegen av 22 som ska följas under bandel 1. 4.1.4 Testning Under projektets gång utfördes det ett flertal tester utav AR applikationen och dess funktionalitet. I början av projektet var det test av specifika funktioner för att säkerställa att de fungerade som var tänkt, dessa tester behövde inte testas ute i Skatås utan utfördes på specialgjorda spår runt campus. En sådan bug som upp- täcktes genom denna testningen var bland annat det tidigare nämda problemet att om användaren befann sig mitt i en bana så ville applikationen att hen skulle börja om från början. Det första större testet som utfördes ute i Skatås skedde den 6e april, detta test hade som syfte att få respons på hur den virtuella vägvisaren fungerar. Detta test visade att vägvisaren fungerade som förväntat, med vissa behov av att uppdatera 15 4. Genomförande några utav vägvisarnas position och instruktioner. Nästa test i Skatås utfördes den 26e april, vilket hade syftet att se om de virtu- ella skyltarna fungerar som planerat. På grund av en bugg som satte altituden av skyltarna till null, alltså när ett objekt inte blivit instansierad och inte har ett vär- de, så visades de inte upp som de skulle och därmed kunde inte testningen utföras som planerat, utan behövdes göras om när buggarna var identifierade och åtgärdade. Det tredje testet utfördes den 3e maj och skulle testa samma sak som det föregående testet men nu med buggen fixad. Detta test visade att skyltarna fungerade som de skulle, med ett behov av att ändra vissa skyltars rikting som de pekade åt. Det sista testet utfördes den 7e maj, vilket var i samband med Skatås Parkrun anordnade sitt evenemang. Detta test hade som fokus att undersöka vad funktionä- rerna hade för åsikter om applikationen samt att samla in relevant respons från ett skarpt test av applikationen. 4.2 Egen funktionalitet i Unity Genom projektets gång upptäcktes det att vissa funktioner som var nödvändiga för att skapa den efterfrågade applikationen inte fanns med i det inköpta tillägget, vilket ledde till att funktionaliteten behövdes skapas av oss. 4.2.1 Närmsta steg vid start Ibland när applikationen användes för att visa användaren vägen blev GPSen av- synkroniserad och visade fel väg. I detta fall behövdes applikationen startas om för att GPSen skulle återställas. Eftersom spåret alltid började på det första steget på bandelen blev användaren alltid hänvisad dit först, även om hen redan var halv- vägs bort på banan. För att lösa detta problem skapades en metod vilket satte det nuvarande steget till det som var närmast användaren när applikationen startades. Denna metod använder sig utav Unitys inbyggda lokaliserings verktyg för att ta fram användarens koordinater i världen samt vardera steg i spåret för den aktuella ban- delen som ska följas. Därefter används Haversine’s formel för att räkna ut distansen mellan användarens position och vardera steg i bandelen, för att sedan ta fram det steg som hade kortast distans till användaren [29]. Detta steg sätts till startsteget som användaren ska ta sig till. 4.2.2 Knappgränssnitt Under testperioden av applikationen uppstod behovet av att kunna byta vilket steg som använderen skulle till manuellt. För att lösa behovet introducerades ett nytt knappgrännsnitt med tre olika knappar: • Tidigare steg • Nästa steg 16 4. Genomförande • Ladda om Tidigare och nästa steg byter vilket steg användaren ska till härnäst, det föregående respektive det nästkommande. Ladda om knappen introducerades för att undvika att behöva starta om applikationen varje gång GPSen avsynkroniserade, vilket gjor- des genom att kalla på den inbyggda omstartsfunktionen som finns i det inköpta tillägget. 4.2.3 Huvudmeny För att kunna navigera mellan olika bandelar i AR appen introducerades en huvud- meny. Här finns möjligheten att välja vilken bandel som användaren är intresserad av att följa. I det tidigarenämde knappgrännsnittet lades det till en tillbaka knapp för att kunna gå mellan bandelarna och huvudmenyn utan att stänga ner appen. Figur 4.4: Knappgränssnit för AR applikationen. 17 4. Genomförande 4.3 Android 4.3.1 Applikationsdesign Det första steget gruppen som jobbade med utvecklingen av Androidapplikationen tog var att börja med att designa utseendet av applikationen. Gruppen utgick från utseendet på den applikation som funktionärerna redan använde för att registrera tiden på alla deltagare under loppet samt att registrera dem inför loppet. Arbetet med att ta fram designen började med att bestämma vilka funktioner applikationen behöver ha för att projektet ska uppnå sitt mål. De funktioner som ansågs vara vitala för projektet var en karta över hela banan, en meny där användaren kan välja mellan de olika bandelarna och en karta över varje unik bandel och att kunna aktive- ra AR-delen för att kunna se skyltarna virtuellt samt navigeringen mellan skyltarna. För att ta fram olika designalternativ för de olika vyerna i applikationen skapades skisser i programmet Figma[18]. En av de första designskisserna som togs fram kan ses i figur 4.5, 4.6 och 4.7. Det beslutades av gruppen att inte använda designen enligt figur 4.5eftersom grup- pen tyckte att det skulle vara mer intuitivt och lättare för användarna om knappen för att aktivera AR fanns vid varje individuell bandel. Det blir även mycket lättare att koppla de olika bandelarna till motsvarande AR-del om det finns en specifik knapp under varje bandel för att aktivera AR som i figur 4.8 När beslutet för vilken design som skulle användas för startmenyn var taget skapa- des en design för en meny som hanterar alla bandelar och knapparna för att kunna gå in och se de specifika bandelarna på Google maps. Under tiden designades även ett verktygsfält med en knapp för att kunna gå tillbaka till föregående vy och en knapp för att kunna nå inställningar för applikationen. 18 4. Genomförande Figur 4.5: Planerad hemskärm för Figur 4.6: Andra sida på planerad för applikationen. applikationen. Figur 4.7: Välj bandel-sida på planerad Figur 4.8: Bandel-sida på planerad applikation. applikation. 4.3.2 Implementation i Android Studio När en designprotoyp för applikationen tagits fram påbörjades arbetet med att im- plementera de olika vyerna av applikationen i Android Studio. Efter att vyerna för de olika sidorna i applikationen skapades och hade funktionella knappar kopp- lades de olika sidorna ihop med hjälp av knapparna. När alla sidor var koppla- 19 4. Genomförande de korrekt började implementationen av Google Maps så att användaren får upp en karta då man trycker på antingen kartknappen på hemskärmen eller på nå- gon av de olika bandelarna i menyn för dem. Då Google Maps implementerades uppstod ett problem då kartan inte ändrade skärpa då man zoomade in. Proble- men löstes genom att lägga till en del implementationer till build gradle under Modul nivå. Eftersom applikationen använder sig av GPS navigation krävdes en funktion som begär tillstånd att få plats behörighet till användaren, samt använ- des android.permission.ACCESS_FINE_LOCATION som returnerar så exakt plats som möjligt från tillgängliga platsleverantörer. Efter att kartorna och alla knappar fungerade började specificeringen av bandelarnas kartor. Det som ville uppnås var att när användaren trycker på en specifik bandel får de upp en karta över just den bandelen tillsammans med markeringar som visar var skyltarna på den bandelen ska placeras se figure 4.9. Skyltarnas koordinater implementerade i Google Maps MyMaps [30] som en KML fil och tanken var att implementera de som GeoJSON fil till Google Maps i Android Studio, men på grund av en brist i dokumentering för GeoJSON importering i Google Maps samt brist i tiden bestämde gruppen att implementera skyltarnas korrdinater som en funktion. Det var även tänkt att då användaren tryckte på en av dessa markeringar skulle de få en ”pop up” som visade en bild på skyltar samt korta instruktioner om placering för att användaren vet var och hur de ska sätta upp skyltarna. Figur 4.9: Översikt över bandel 1. 20 4. Genomförande 4.3.3 Databas Bilderna tar mycket utrymme om man lagrar dem i själva applikationen och det ökar risken att användare slutar använda en applikation då lagringsutrytmmet på deras mobiltelefon är begränsat. Målet var att hålla applikations storlek relativt liten för att minska att användaren inte har tillräckligt med utrymme i sin mobiltelefon. För att applikationens storlek skulle vara så liten som möjligt bestämdes det att bilderna skulle hanteras av en databas som heter Firebase. Bilderna laddades upp i Firebase Storage för att bli kopplade efteråt till Firebase realtime databas. Varje bild har egen nyckel och URL länk i Firebase realtime data- bas. I android studio kopplas varje markering i Google Maps till en specifik nyckel som är relaterat till markerings bild från samma plats där skylten ska placeras. När man trycker på en markering, får man en Card View som har en bild samt en kort instruktion på hur skylten ska placeras. se figure 4.10 nedan. Figur 4.10: Översikt över Firebase flöde. 4.3.4 Testning Under projektets gång skedde det två testtillfällen utav Androidapplikationen i Ska- tås Parkrun för att säkerställa hur applikationen kommer att reagera i verkligheten. Det första testet i Skatås skedde den 3:de maj, vilket hade syftet att kolla GPS- lokalisering, hur markeringarna placerade, rätta upp skyltarnas positioner och länka bilderna med deras markeringar. Det sista testet i Skatås skedde den 7:de maj, vilket var i samband med Skatås Parkrun. Detta test hade fokus på vad funktionärerna hade för åsikter om appli- kationen, instruktion om hur applikationen fungerar samt att plocka upp relevant respons. 4.4 Översiktskarta När knappen ’Se karta’ klickas på tas användaren till en vy där den kan se alla olika skyltar som röda markeringar vilka är nödvändiga för Skatås parkruns evenemang. Om användaren klickar på en markeirng kommer en ruta upp med vilken skylt som ska ut samt kort instruktion om skylten som kan vara nödvändig vid stakning. I detta läge får användaren även möjligheten att öppna en separat instans av Google Maps där hen kan antingen välja att endast visa markeringen eller att sätta på 21 4. Genomförande vägvisning dit. Denna funktionalitet uppnås genom att använda Google Maps API och dess funktioner. All information om skyltarna sparas i en separat fil som sedan läses igenom för att sätta ut markeringarna. Denna fil innehåller information om: latitud, longitud, skylttyp och en kort beskrivning. Figur 4.11: Översiktskarta med alla Figur 4.12: Vald markering vilket visar skyltar över Skatås. informationen om den skylten. 4.5 Kombinering av Android och Unity När både Android- och Unity- projekten ansågs vara klara var det dags att kombi- nera dem tillsammans. Eftersom AR applikationen anses vara ett tillägg till Andro- idapplikationen går det att öppna AR från Android. Detta görs genom att klicka på ”Aktivera AR” knappen i Android, vilket startar AR applikationen genom att kalla på paketnamnet för AR applikationen. Om AR applikationen inte är instal- lerad dyker en mindre text upp som varnar att den efterfrågade applikationen inte är installerad. Då det är två olika APK-filer som har installerats går det att starta AR-applikationen utan att behöva använda Androidapplikationen. 22 5 Resultat I detta avsnitt, redovisas resultat av testningen av Android- och Unityapplikatio- nerna i Skatås Parkrun. 5.1 Resultat av applikationerna Alla metoder som utvecklades och användes i Androidapplikationen fungerade, över- siktskartan över hela banan och kartorna över respektive bandel fungerar som för- väntat tillsammans med Google Maps. Beskrivningen för vilka skyltar som funktio- nären ska ta med sig för varje specifik bandel visas upp korrekt när bandelen väljs. Alla markörer i Google Maps visar upp rätt "Card View" som innehåller en bild på var den specifika skylten sitter tillsammans med en beskrivning för var skylten sitter. Knappen för att aktivare AR finns tillgänglig för varje bandel. Vid start av ARapplikationen leds användaren till en huvudmeny där hen får välja vilken bandel som ska följas. Vid val av bandel startar AR vägvisningen och användaren blir först ledd till den intressepunkten i spåret som ska följas. Genom att följa vägvisningen kommer användaren att progressivt flytta sig från punkt till punkt automatiskt tills spåret är slut. Det går att manuellt ändra vilken punkt som användaren ska till, detta görs genom att klicka på knappen Tidigare steg"eller Nästa steg". Knappen Tillbakatar användaren tillbaka till huvudmenyn om en annan bandel behövs följas. Under bandelens gång finns det virtuella skyltar som representerar var de riktiga skyltarna ska sitta. Ibland avsynkroniserar GPSen i telefonen och då kan vägvisning- en bli felaktigt, detta löses genom att klicka på Ladda om"knappen vilket laddar om vägvisningen och de virtuella skyltarna. 5.2 Testning och utvärdering Testningen utfördes i Skatås under ett av Parkruns evenemang där flertalet funk- tionärer var med och testade både Android- och ARapplikationerna. Testningen ge- nomfördes för att undersöka om applikationerna uppfyller de förväntningar och mål som projektet har samt om applikationen hanterar de svårigheter som kan uppstå under användningen på ett bra och säkert sätt. Funktionärerna fick en introduktion om hur Android- och ARapplikationerna fungerade, hur man växlar mellan dem och vilka funktionaliteter som finns tillgängliga i dem. 23 5. Resultat 5.3 Respons När applikationen var färdigställd lät gruppen ett antal funktionärer testa den un- der ett lopp, vilket skedde lördagen den 7/5. Vilket var för att få återkoppling på vad de tyckte fungerade bra, om det fanns någon som fungerade mindre bra eller om något inte fungerade alls. Efter att loppet var genomfört lät gruppen de funktio- närer som använt applikationen svara på en enkät angående deras upplevelse av att använda applikationen som hjälp för att staka ut banan. De frågor som funktionä- rerna besvarade handlade om applikationens olika delar, om de var till någon nytta samt om det var något som kunde förbättras. Alla funktionärer som har svarat på enkäten tyckte att applikationen var lätt att använda och att det var lätt att hit- ta bland de olika funktionerna. Hälften av funktionärerna tyckte att applikationen underlättar funktionärernas arbete, en fjärdedel tyckte att den varken underlättade eller försvårade arbetet och en fjärdedel tyckte att applikationen har en liten inlär- ningskurva men att applikationen kommer att underlätta arbete när de lärt sig hur applikationen fungerar. Angående AR-delen tyckte 80 procent av de som testade applikationen att den var tydlig och bra medan 20 procent tyckte att det tog lite lång tid för applikationen att ladda de olika bilderna. Samtliga funktionärer tyckte dock att instruktionerna som fanns tillgängliga var tydliga och lätta att följa. Alla tyckte även att skyltarna var bra, att de var tydliga och visade precis var de skulle placeras ut samt att kartan som visar alla bandelar och skyltarnas positioner var tydlig och att den gav en bra överblick över banan. Den respons som gavs var att ha en funktion där man ser om GPS-spårning är på och att man kan stänga av och sätta på den. Ytterligare respons var att undvika nedladdning av bilder på grund av säkerhetsrisk samt att implementera uppläsning av text och instruktioner så att de med svårigheter att läsa ändå kan nyttja applikationen. Figur 5.1: Respons på utskicket från funktionärerna på Skatås parkrun. 24 5. Resultat 5.4 Slutprodukt Startsidan för applikationen har två knappar. En för att välja bandel som leder till en ny meny över alla bandelar och den andra leder till ett gränssnitt för Google Maps och ger en översikt över hela banan och alla skyltar för evenemanget i Skatås. Skyltarna representeras i Google Maps av markörer, i översiktsvyn är de röda. När användaren väljer en bandel i menyn öppnas en vy i Google Maps som visar en över- sikt över den valda bandelen, samt en textruta som visar vilka skyltar funktionären behöver ta med för att markera ut den delen av banan. Trycker användaren en gång på kartan försvinner textrutan och endast kartan med markörer för alla skyltar som finns längs med bandelen kommer då att synas. Varje skyltmarkör är tryckbar och genom att trycka på en av markörerna visas en bild på den valda skylten tillsam- mans med en beskrivning om var skylten ska sitta. För att stänga vyn över den valda skylten klickar användaren på kartvyn i bakgrunden. AR applikationen kan aktiveras genom att trycka på knappen ”AKTIVERA AR” som i sin tur aktiverar själva AR applikationen, där användaren får navigera till sin önskade bandel. När AR applikationen för den valda bandelen startas visas en instruktionsskylt samt virtuella markeringar som leder funktionären till nästkommande skylt som ska pla- ceras ut. När användaren närmar sig nästa skylt som ska placeras, visas det upp en virtuell skylt på skärmen som är placerat på rätt plats med hjälp av koordinater. Figuren nedan visar applikationens flöde. 25 5. Resultat Figur 5.2: Översikt över applikationens flöde. 26 6 Diskussion 6.1 Samhälliga och etiska aspekter Syftet med projektet är att underlätta och göra det lättare för Skatås parkruns funktionärer och på så vis också locka till sig fler funktionärer. Om applikationen inte lyckats är risken att projektet får motsatt effekt och att det istället gör det svårare för funktionärerna. Gruppen har valt in olika aspekter som kan vara problematiska. 6.1.1 Krav på Androidmobil Projektet syftar till att utveckla en applikation för mobiltelefoner, i det här projektet har gruppen valt att avgränsa det till mobiltelefoner med operativsystemet Android. På grund av att applikationen endast kommer att vara tillgänglig för användare med Androidtelefoner så leder det till att dem som har ett annat operativsystem eller ingen smartmobil inte kan ta del av applikationen och få hjälp av dess funktioner under arbetet som volontär. På grund av att applikationen endast kommer att va- ra tillgänglig för användare med Androidtelefoner så leder det till att de som har ett annat operativsystem inte kan använda sig av applikationen. Projektets tids- begränsning gjorde att gruppen inte kunde utveckla applikationen till mer än ett operativsystem. Bland de nuvarande funktionärerna använder de flesta Androidtele- foner, därav är det till det operativsystemet som applikationen utvecklades i. Skatås parkrun har några lånetelefoner och även dessa har Android som operativsystem. Möjligheten att låna en telefon gör att personer kan delta oavsett huruvida de har tillgång till en egen Androidtelefon eller ej. Det diskuterades i början av projektet att använda Flutter, ett ramverk för utveck- ling av program som tillåter applikationer att fungera till flera olika operativsystem. Genom att använda Flutter skulle det då ge mobiltelefoner som använder sig av iOS tillgång för att använda applikationen. Denna idé lades ned eftersom gruppen kom fram till att användning av Android Studio skulle underlätta arbetet med tanke på tidsramen för projektet mer än om applikationen utvecklades med hjälp av Flutter. 6.1.2 Svår teknik Då terrängen och omgivningen i Skatås gör det svårt att enbart förlita sig på GPS används också AR-teknik som ett komplement till GPS-funktionen. Även om det är en teknik som funnits några år så är det fortfarande betraktat som en relativt ny teknik och det finns många som ännu inte upptäckt och utforskat tekniken. Risken 27 6. Diskussion med att utveckla en applikation med sådan ny teknik är att funktionärerna kan tycka att det känns för svårt och komplicerat. För svår teknik kan resultera i att människor känner sig dumma, en känsla de flesta människor vill undvika [24]. Det är därför viktigt att utveckla en applikation som är pedagogisk och enkel att förstå oavsett tidigare teknikvana. Användarupplevelsen var hela tiden med i designbesluten som togs under projektets gång. Vid testning och utvärdering fick vi blandad respons på hur applikationen upplevdes. De flesta var nöjda med applikation även om några tyckte att det var lite stor inlärningskurva. Något som hade kunnat förbättras under framtida arbete med applikationen. 6.1.3 GPS lokalisering Utöver AR-tekniken använder applikationen även att sig av GPS lokalisering. Nå- got som kan anses vara känsliga uppgifter och det är därför viktigt att tydliggöra varför och hur datan kommer användas. Wozniak et al. [31] understryker att många användare gärna undviker att dela med sig av personlig data, där lokalisering kan vara en sådan. Applikationen kräver bara information om lokalisering när applika- tionen används och den kommer inte delas med några andra parter. Trots detta kan det finnas funktionärer som inte vill dela med sig av sin platsinformation, gruppen ser dock inga möjligheter att utveckla applikationen utan att använda lokalisering. Skatås parkrun har några telefoner som funktionärerna kan låna om de inte kan eller vill använda sin egen. Dock finns det bara ett fåtal telefoner och dessa bör helst gå till de funktionärer som saknar Androidtelefoner. Därmed blir det viktigt att vara tydlig med hur och varför lokalisering används, och att datan inte lagras och kan nås av en utomstående part. Dessutom kommer AR Applikationen inte ge någon respons när funktionären inte delar sin platsinformation utan den ger bara fyra blåa poäng som visas i följande figuren. 28 6. Diskussion Figur 6.1: En bild över AR Applikationen när GPSen är avstängd. 6.2 Ändringar i applikationen Under applikationens utveckling har visionen om vilken funktionalitet som ska vara med ändrats flera gånger, både för vad som efterfrågas samt vad som är möjligt att utveckla inom projektets gång. 6.2.1 Kartvy i AR I det inköpta tillägget fanns det ett exempel på hur en kartvy kunde användas för att underlätta med navigationen, tanken var då i början att vi också skulle använ- da denna kartvy. Vid försök av implementationen av kartvyn upptäcktes det att det inte var möjligt att göra som i exemplet. När provprojektet som finns i doku- mentationen skulle användas för att testa hur en potentiell kartvy skulle fungera, fungerade provprojektet inte alls. Efter undersökning och felsökande visade det sig att Mapbox inte har uppdaterat sin support för Unity sedan 2019 [32], vilket innebär att Mapbox SDK inte längre fungerar för den Unityversionen som används i detta projekt. 6.2.2 Integration mellan Android och Unity Den originella idéen med projektet var att slutproduket skulle endast bestå av en APK-fil, där Unitydelen var inbyggt i Androidapplikationen. Tidigt under projektets gång gjordes en lättare undersökning för att se om detta var möjligt att åstadkom- ma och med den kunskapen som vi hade angående arbetsmiljöerna ansågs det vara möjligt. Vi flyttade därför fram arbetet med att kombinera de två delarna tills bå- 29 6. Diskussion da var klara för att effektivisera arbetet. När det var dags att integrera Unity i Android stöttes det på flera motgångar som inte var förutsagda. Eftersom Andro- id Studio använder Gradle för att skapa sina projekt behövdes ett Unitybibliotek från AR utvecklingen importeras till Android Studio. Biblioteket används som en modul inne i androidapplikationen för att öppna ARapplikationen när använderan vill aktivera AR. Problemet som uppstod var att Gradle inte kunde bygga projektet eftersom den inte hittade de nödvändiga biblioteken som behövdes för ARappli- kationen. Omfattande undersökning gjordes om detta, men alla guider som fanns vid denna tidpunkt var inte gjorda för den nya iterationen av Android Studio som användes. Tyvärr kunde inte problemet lösas i tid inför det sista testtillfället med funktionärer i Skatås, därmed behövdes en reservplan användas. Denna reservplan då att använda två olika applikationer där den ena kunde starta den andra. Vi tror att i mån av tid hade problemet kunnat lösas genom att antingen lösa problemet själva eller att överföra projektet till en tidigare verision av Android Studio. 6.3 Framtida arbete För att inkludera fler, både nya och gamla volontärer, skulle applikationen kunna utvecklas även till mobiltelefoner med operativsystemet iOS. Genom att applikatio- nen finns tillgänglig till de två största mobiloperativsystemen når man ut till över 95% av potentiella användare[33]. Att dessutom lägga till flera olika språkalternativ i applikationen så når man ut till användare som annars kanske inte hade använt applikationen på grund av att de inte förstår det befintliga språket i applikationen. Idag finns endast en bana som parkrun i Skatås använder men om banan skulle ändras, flyttas eller att fler banor läggs till, för att till exempel skapa variation för löparna så finns inget sätt att göra ändringar utan att gå in i källkoden. Ett framtida arbete skulle därför vara att lägga till funktioner i applikationen som ger användaren möjligheten att ändra en befintlig bana eller lägga till och ta bort banor. 6.3.1 Förbättringar Eftersom det ska finnas bilder på alla skyltar när de är utplacerade, som ytterligare ett hjälpmedel för funktionärerna, så behöver bilderna lagras någonstans för att se- dan kunna plockas fram och visas upp när användaren trycker på en specifik skylt i Google Maps. För att hantera lagringen av alla bilder används en databas som tillförser applikationen med bilder när användaren vill se placeringen för en skylt. Lagringen av bilder i en databas är dock inte optimalt för storleken på projektet ef- tersom det är en fördröjning på ett par sekunder innan bilden visas upp på grund av att den måste laddas ned från databasen. Då tjänsten som används för att hantera databasen är utan kostnad finns det en restriktion på hur många gånger man kan hämta data från databasen. Då projektet inte är så stort och att parkrun i Skatås endast har en bana där att antalet skyltar inte är jättemånga skulle bilderna i stället kunna lagras direkt i applikationen på mobiltelefonen. Genom att lagra bilderna i applikationen så minskas tiden det tar för att visa upp bilderna för användaren och det kommer inte finnas någon restriktion som begränsar uppvisningen av dem. Dock 30 6. Diskussion om applikationen skulle växa och fler banor läggs till eller att andra parkruns vill ansluta sig till applikationen skulle det vara mer logiskt att ha kvar en databas för alla bilder, men att byta till en tjänst där det inte finns restriktioner på anntalet hämtningar. Anledningen till att gruppen valde att inte implementera lagring av bilderna lokalt i applikationen var att det skulle göra applikationens storlek större vilket helst ville undvikas. Ytterligare en förbättring hade varit att implementera funktioner under inställnings- fliken. Just nu leder inställningsknappen till en tom sida, vilket ger ett intryck av en ofullständig applikation. Några inställningar som hade kunnat läggas till sidan är möjligheten till att byta språk för applikationen till exempelvis engelska. Att kunna byta språk hade gjort applikationen mer tillgänglig för funktionärer som inte talar svenska och skulle vara nödvändigt om delar av parkrun i andra länder vill använda applikationen för deras banor. Då ikonerna som förrut användes på knapparna för att visa vad dess funktion var har tagits bort och ersatts med text så skulle möj- ligheten att byta språk vara till stor hjälp för användare som inte kan svenska. En annan funktion som skulle kunna läggas till under inställningar hade varit möjlig- heten att rapportera problem som uppstår vid användandet av applikationen och att ge återkoppling om användarens upplevelse. Att snabbare och lättare kunna få in respons från användarna så möjliggör det en förbättrad fortsatt underhållning av applikationen eftersom potentiella problem som uppstår kan nå utvecklarna snabbt utan att de själva behöver upptäcka dem. Genom responsen kan användare också meddela vilka funktioner som skulle göra deras upplevelse bättre som de saknar i applikationen. 31 7 Slutsats Projektets mål var att genom att kombinera en klassisk karta genom Google Maps tillsammans med AR hjälpa framför allt nya funktionärer att lösa sin uppgift att placera ut skyltar inför loppen som utförs av parkrun varje lördag i Skatås. Applika- tionen är uppdelad av i två delar där ena delen är utvecklad att hantera översikten av banorna med hjälp av Google Maps och den andra delen använder sig av aug- mented reality för att hjälpa funktionären att navigera och placera ut skyltarna. Enligt respons från funktionärer som testat applikationen ansåg 80% att applika- tionens ruttnavigation fungerade och var ett bra hjälpmedel. Hela 100% tyckte att både informationen och AR-skyltarna som finns med i applikationen var tydliga och lätta att förstå. Samtliga funktionärer tyckte även att kartorna i Google Maps som fanns med gav en bra överblick över banan och dess bandelar. Alla funktionärer som utförde testerna var rutinerade och vet därför redan var alla skyltar ska placeras och hur man tar sig till alla platser runt banan. Vilket styrker varför cirka 25% tyckte att applikationen inte nödvändigtvis underlättade arbetet. Fördelen med att alla var rutinerade är att de hade observerat om navigeringen runt banan varit fel eller om skyltarna som visades upp i applikationen inte stämmer med hur de ska placeras. Ef- tersom responsen från de erfarna volontärerna var väldigt positiva och att de tyckte att applikationen fungerade enligt deras förväntningar, uppfyller projektet sitt syfte med att hjälpa och underlätta för volontärerna att utföra sina uppgifter inför loppen. Responsen som vi fick från volontärerna under testningen var bland annat att bil- derna som visas upp för de olika skyltarnas position med en textbeskrivning tar lite lång tid att ladda innan de visas. Bildernas laddningstid går att lösa genom att förbättra hanteringen och kontakten med databasen där bilderna i dagsläget ligger. Alternativt då loppet sker ute i naturen bland träd och berg som kan på- verka mottagningen hos mobiltelefonen skulle bilderna istället kunna lagras lokalt i applikationen vilket skulle göra att applikationen kan visa bilderna snabbare. Det skulle däremot leda till att storleken på applikationen blir betydligt större, men om endast en bana finns tillgänglig är det inte många bilder som behöver sparas lokalt och i sådana fall påverkas inte storleken nämnvärt. I dag finns bara applikationen tillgänglig för funktionärer med Androidtelefon då projektet var tvunget att begränsas på grund av tidsramen. Ett första steg att utveckla applikationen efter projektet hade varit att göra den tillgänglig till mo- biltelefoner med andra operativsystem så att fler funktionärer kan ta del av den hjälp som applikationen tillhandahåller. Att även göra det möjligt att byta språk i applikationen skulle leda till att fler funktionärer kan använda applikationen i sin 32 7. Slutsats fulla potential och inte endast förlita sig på kartorna och bilderna. Slutprodukten är idag uppdelad i två applikationer, en del som innehåller kartorna i Google Maps som ger en översikt av banan och en del som hanterar AR och rutt- navigeringen för de olika bandelarna. En fördel med att applikationen är uppdelad är att användaren kan välja vilken del som de känner att de har mest nytta av för att utföra sitt arbete. Däremot kan användarna också känna att det är osmidigt att behöva ladda ned två olika applikationer för att kunna använda all funktionalitet som projektet bidrar med. En utvecklingsmöjlighet för applikationen är därför att kombinera de båda applikationerna till en enda applikation så användaren inte behö- ver byta mellan applikationerna beroende på vilken funktionalitet som användaren vill åt. 33 Litteratur [1] Skatås parkrun, Skatås parkrun, 2021. [Online]. Tillgänglig: https://www. parkrun.se/skatas/ (hämtad 2022-02-09). [2] E. Gunnarsson, Vad är Augmented Reality (AR)? 2019. [Online]. Tillgänglig: https://www.soluno.se/blogg/augmented-reality/ (hämtad 2022-02-09). [3] Geotab, What is GPS? 2020. [Online]. Tillgänglig: https://www.geotab. com/blog/what-is-gps/ (hämtad 2022-02-09). [4] F. Lu,H. Zhou,L. Guo, J.Chen,L. Pei, “An ARCore-Based Augmented Reali- ty Campus Navigation System,” Applied Sciences, årg. 11, nr 16, 2021. doi: https://doi.org/10.3390/app11167515. [5] K. Ryokai, A. Agogino, “Off the Paved Paths: Exploring Nature With a Mo- bile Augmented Reality Learning Tool,” The International Journal of Mo- bile HCI, 2012. [Online]. Tillgänglig: https : / / web . archive . org / web / 20170810160118id_/http://people.ischool.berkeley.edu/~kimiko/ papers/IJMHCI2012.Ryokai.MARLearning.pdf (hämtad 2022-05-05). [6] Unity Technologies, Our Impact by the numbers, 2022. [Online]. Tillgänglig: https://unity.com/our-company (hämtad 2022-05-03). [7] Android Developers, Meet Android Studio, 2022. [Online]. Tillgänglig: https: //developer.android.com/studio/intro (hämtad 2022-04-27). [8] JetBrains s.r.o., The drive to develop, 2022. [Online]. Tillgänglig: https:// www.jetbrains.com/company/ (hämtad 2022-05-11). [9] ——, What is IntelliJ IDEA? 2022. [Online]. Tillgänglig: https : / / www . jetbrains.com/idea/features/ (hämtad 2022-04-27). [10] J. Tidwell, C. Brewer, A. Valencia, Designing Interfaces, 3rd Edition, 3. utg. O’Reilly Media, Inc., 2020. [11] G. C. Burdea, P. Coiffet, Virtual Reality Technology, 2. utg. John Wiley & Sons, 2003. [12] B. Furht, Handbook of augmented reality. New York: Springer, 2011. [13] Inter IKEA Systems B.V., IKEA Place, 2022. [Online]. Tillgänglig: https: / / www . ikea . com / se / sv / customer - service / mobile - apps/ (hämtad 2022-05-05). [14] Google Developers, Firebase, 2022. [Online]. Tillgänglig: https://firebase. google.com/ (hämtad 2022-05-12). [15] Firebase, Firebase Storage, 2022. [Online]. Tillgänglig: https://firebase. google.com/docs/storage (hämtad 2022-05-09). [16] ——, Firebase Realtime database, 2022. [Online]. Tillgänglig: https://firebase. google.com/docs/database (hämtad 2022-05-09). 34 Litteratur [17] Blender official website, Blender, 2022. [Online]. Tillgänglig: https://www. blender.org/ (hämtad 2022-05-09). [18] Figma Official Website, Figma, 2022. [Online]. Tillgänglig: https://www. figma.com/about/ (hämtad 2022-05-10). [19] Trello Official Website, Trello, 2022. [Online]. Tillgänglig: https://help. trello.com/article/708-what-is-trello (hämtad 2022-05-11). [20] Stambol, The XR and You Series: AR for Navigation, 2017. [Online]. Tillgäng- lig: https://www.stambol.com/2017/12/11/xr-series-ar-navigation/ (hämtad 2022-05-11). [21] blippar,WANT TO AUGMENT REALITY? 2019. [Online]. Tillgänglig: https: //www.blippar.com/ (hämtad 2022-05-11). [22] Stambol, Augmented Reality Outdoor Apps to Wrap Summer, 2020. [Online]. Tillgänglig: https://www.stambol.com/2020/08/31/augmented-reality- outdoor-apps-to-wrap-summer/ (hämtad 2022-05-11). [23] Schwaber, Ken, “Scrum development process,” i Business object design and implementation, Springer, 1997, s. 117–134. [24] H. Sharp, Y. Rogers, J. Preece, Interaction Design: beyond human-computer interaction, 5. utg. Indianapolis, USA: John Wiley & Sons, Incorperated, 2019. [25] Google, Få insikter snabbt med Google Forms, 2022. [Online]. Tillgänglig: https://www.google.se/intl/sv/forms/about/ (hämtad 2022-05-10). [26] D. Fortes, AR + GPS Location, 2022. [Online]. Tillgänglig: https://assetstore. unity . com / packages / tools / integration / ar - gps - location - 134882 (hämtad 2022-05-11). [27] ——,Unity AR+GPS Location Docs (v3.6.0), 2020. [Online]. Tillgänglig: https: //docs.unity-ar-gps-location.com (hämtad 2022-05-11). [28] ——, Web Map Editor, 2020. [Online]. Tillgänglig: https://editor.unity- ar-gps-location.com/ (hämtad 2022-05-11). [29] GeeksforGeeks, Haversine formula to find distance between two points on a sphere, 2021. [Online]. Tillgänglig: https : / / www . geeksforgeeks . org / haversine- formula- to- find- distance- between- two- points- on- a- sphere/ (hämtad 2022-05-11). [30] Google Maps, MyMaps, 2020. [Online]. Tillgänglig: https://www.google. com/maps/about/mymaps/ (hämtad 2022-05-11). [31] P. Wozniak, A. Fedosov, E. Mencarini, K. Knaving, “Soil, Rock, and Snow: On Designing for Information Sharing in Outdoor Sports,” 2017. [Online]. Till- gänglig: https://doi.org/10.1145/3064663.3064741 (hämtad 2022-05-05). [32] Mapbox, Changelog, 2019. [Online]. Tillgänglig: https://docs.mapbox.com/ mapbox-unity-sdk/docs/05-changelog.html (hämtad 2022-05-11). [33] G. Thomas, A. Devi, “A Study and Overview of the Mobile App Development Industry,” International Journal of Applied Engineering and Management Let- ters, s. 115–130, 2021. 35 I A. Utvärderingsfrågor A Utvärderingsfrågor II A. Utvärderingsfrågor III