33
Sj¨ alvst ¨ andigt arbete i informationsteknologi 8 september 2016 Icebreaker Daniel Hietarinta Markus Norstr ¨ om Husein Vilic Civilingenj ¨ orsprogrammet i informationsteknologi Computer and Information Engineering Programme

Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

Sjalvstandigt arbete i informationsteknologi8 september 2016

Icebreaker

Daniel HietarintaMarkus NorstromHusein Vilic

Civilingenjorsprogrammet i informationsteknologi

Computer and Information Engineering Programme

Page 2: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

Institutionen forinformationsteknologi

Besoksadress:ITC, PolacksbackenLagerhyddsvagen 2

Postadress:Box 337751 05 Uppsala

Hemsida:http:/www.it.uu.se

Abstract

Icebreaker

Daniel HietarintaMarkus NorstromHusein Vilic

In this report, we describe an application which we created for AndroidOS whose task is to make it easier to find a gym partner. The application(aptly named Icebreaker) is meant to make it easier for people to sociallyinteract in the gym by pairing them and allowing them to make contactthrough predetermined messages. The goal is to make it easier for theuser to get help or find a training partner. The help can either come fromanother user of the application or from a personal trainer at the gym,who will also use the application.The social interaction part of the application has been implemented andthe application works as intended with a test group of six users. Thiswas the core part of the project. Other minor components such as a pointsystem, profile page, and parts of a page with functionality focused onthe actual training are not fully implemented.

Handledare: Sofia Cassel och Bjorn VictorExaminator: Bjorn Victor

Page 3: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

Sammanfattning

I denna rapport beskrivs en applikation som har designats for operativsystemet Andro-id som ska underlatta for anvandarna att hitta och para ihop sig med en gympartner.Applikationen ska hjalpa folk att socialt interagera pa gymmet. Anvandare ska, nar deparat ihop sig via forutbestamda meddelanden, kunna hjalpa varandra med allt mojligt.Allt fran ett par repetitioner pa bankpressen, till ett langre traningspass. Utover detta skaapplikationen ocksa anvandas av gympersonal. Medlemmar ska pa detta satt erbjudasmojligheten att fa hjalp av personliga tranare.Kommunikationsdelen ar implementerad och applikationen fungerar som tankt med entestgrupp bestaende av sex anvandare. Denna del ar den viktigaste delen av detta pro-jekt. Andra mindre delar som ett betygsystem, profilsida och delar av en traningssida arinte helt implementerade.

ii

Page 4: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

Innehall

1 Introduktion 1

2 Bakgrund 1

2.1 Socialisering pa gym . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Syfte, mal, och motivation 2

3.1 Avgransningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.1.1 Operativsystem . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.1.2 Android API . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4 Relaterat arbete 4

4.1 Gymlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4.2 Gym Comrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4.3 JEFIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4.4 Runkeeper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4.5 Facebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

5 Metod 7

6 Systemstruktur 7

7 Krav och utvarderingsmetoder 10

8 Design 11

8.1 Anvandarguide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

8.1.1 Breaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

8.1.2 Ice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

iii

Page 5: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

8.1.3 Begin training . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

8.2 Utvecklingsmiljo for designen . . . . . . . . . . . . . . . . . . . . . . 14

9 Teknisk del 16

9.1 Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

9.2 Notifikationer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

9.3 Sokning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

9.4 Chatt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

9.5 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

10 Utvarderingsresultat 19

11 Resultat 20

12 Diskussion 20

12.1 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

12.2 Profilsidan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

12.3 Traningssidan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

12.4 Betygsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

12.5 Alljoyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

13 Slutsatser 23

14 Framtida arbete 23

14.1 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

14.2 Anvandbarhet utan router . . . . . . . . . . . . . . . . . . . . . . . . . 23

14.3 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

14.4 Profilbild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

iv

Page 6: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

14.5 Traningssidan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

14.6 Motesplats istallet for chatt . . . . . . . . . . . . . . . . . . . . . . . . 24

14.7 Uppslagstabell for forutbestamda meddelanden . . . . . . . . . . . . . 25

A Enkat 27

v

Page 7: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

2 Bakgrund

1 Introduktion

Det senaste decenniet har fler valt att halla kontakten genom sociala medier istallet foratt traffas pa riktigt [1] for att det inte upplevs lika socialt pafrestande som i verklig-heten. Vi har valt att utnyttja detta genom att lata var gymapplikation fa agera somett skyddsnat, men samtidigt uppmuntra anvandarna till att traffas och hjalpa varand-ra i det verkliga livet. Detta kommer att uppnas genom en tradlos matchning mellanmobilenheterna, dar applikationen kommer hjalpa anvandarna med att snabbt hitta entraningspartner. Icebreaker ska aven gora det smidigare att fa hjalp fran antingen per-sonliga tranare eller andra gymmedlemmar. Detta underlattar for personliga tranare attfa en storre kundbas vilket i sin tur gynnar gymmet.

Anvandarna kommer endast kunna skicka forutbestamda meddelanden sa de kan hittavarandra. Anledningen till att vi valt att gora pa detta vis ar for att vi vill att chatten skavara opersonlig och endast vara till for att hitta varandra.

Applikationen ar till for operativsystemet Android och utvecklades i Android Studio[2].

2 Bakgrund

Enligt en artikel ur The Wall Street Journal [1] sa har explosionen av teknologi samtutbudet av sociala medier de senaste aren okat den virtuella kommunikationen mellanmanniskor, medan kommunikationen i den verkliga varlden har minskat. Detta har letttill att folk tror att de gor nagot socialt, men istallet for att skapa riktiga band sa ser manbara till att man uppratthaller ett ytligt band [3].

Anledningen till att manga valjer att anvanda sociala medier istallet for att traffas ochprata i verkligen ar att det har blivit valdigt latt-tillgangligt. Det har blivit billigare attbade anvanda Internet och kopa hardvaran som anvands for att kommunicera. En annananledning ar att sociala medier tillater direkt kommunikation over langa strackor. Forr itiden, innan den stora teknologiska revolutionen (1997–2000), var det ovanligt att manlarde kanna personer utanfor ens trakt. Nu ar det snarare vanligt att bade lara kanna ochhalla kontakten med manniskor flera hundra/tusen kilometer bort, som man aldrig traffati verkliga livet. Enligt [4] har varje anvandare pa Facebook i genomsnitt aldrig traffat7% av sina Facebook-vanner.

Var applikation, Icebreaker, ska forsoka forhindra den minskning av djupa sociala bandoch forsoka fa folk att interagera med varandra utan att behova prata med en skarm, och

1

Page 8: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

3 Syfte, mal, och motivation

darmed hjalpa folk skapa nya starka band.

Var huvudide ar att losa detta stora sociala problem, men eftersom det ar ett problemsom finns i manga omraden har vi valt att forst losa detta pa gym. Icebreaker ska sedankunna utokas till att bryta isen pa flera stallen och fa manniskor att lattare komma ikontakt med varandra i verkligheten.

2.1 Socialisering pa gym

Da traning ar en del av vardagen for manga [5], sag vi en mojlighet till att utnyttjadetta och driva fram vart projekt. Allt fler ungdomar valjer ett gym som deras kalla fortraning [6]. De storre traningskedjorna har aven sankt aldersgransen de senaste aren.Utover det okande intresset finns andra fordelar med att gymma. Det finns ny forskningsom visar pa att aldre personer gynnas av att gymma da det motarbetar sjukdomar somtill exempel demens [7]. Det finns aven forskning som visar att personer i medelaldernminskar risken for sa kallade tysta hjarnblodningar nar de styrketranar.

Vi markte aven att det finns brist pa applikationer for manniskor som tranar pa sammagym som gor det mojligt for anvandarna att komma i kontakt med varandra och tranatillsammans. Utifran var sokning fann vi endast ett fatal applikationer tillgangliga forAndroid-mobiler som tacklar detta problem. De mest framstaende av dessa var GymComrade [8] och JEFIT [9].

3 Syfte, mal, och motivation

Syfte

Syftet med Icebreaker ar att enkelt fa manniskor att komma i kontakt och interageramed varandra i ett traningssyfte. Vi vill med denna applikation att folk ska bli mermotiverade att trana och lopa mindre risk att sluta trana. Detta kan vi uppna genom attfa folk att trana tillsammans. Vi vill aven att gymmedlemmarna ska skapa djupare bandmed sina traningspartners genom att prata med varandra i verkliga livet istallet for attkommunicera genom en chatt pa mobilen eller datorn. Detta tror vi kommer att leda tillen forbattrad gymupplevelse vilket aven skulle kunna motivera folk till att trana mer.

2

Page 9: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

3 Syfte, mal, och motivation

Mal

Malet med projektet ar att utveckla en applikation med en anvandarvanlig design somar enkel och smidig att anvanda. En person ska, via applikationen, kunna lagga till sigsjalv pa en av tva listor av anvandare; de som vill ha hjalp, eller de som vill hjalpaandra anvandare. Andra anvandare ska se att man star med i listan och kunna skapa enmatchning genom ett enkelt knapptryck. Nar en matchning uppstar ska dessa anvandarevia forutbestamda meddelanden kunna kontakta varandra. Pa detta satt blir det enklareatt lokalisera varandra. Dessa meddelanden ska vara korta, med tillracklig information,som t.ex. ”vi ses vid ingangen”.

Vi ska aven implementera ett poangsystem dar man betygsatter folk som har hjalpt en.Detta betygsystem ska endast ge positiv respons i form av en like och inte ha nagotnegativt betyg.

Motivation

Vi vill hjalpa manniskor att forbattra deras traningsupplevelse, gora det roligare att tranaoch lata dem traffa nya manniskor genom var applikation.

Eftersom Icebreakers syfte ar att fora folk tillsammans nar de tranar sa kommer detsjalvklart paverka resultaten fran deras traning. Om man tranar tillsammans sa tranarman hardare, speciellt om man tranar med nagon som klarar av mer an en sjalv [10].Man loper dessutom mindre risk for att sluta trana nar man tranar med nagon annan.Enligt studien [10] sa loper man 40 procent mindre risk att sluta om man har nagonannan att trana med, vilket ar en ganska stor skillnad an om man tranar ensam. Detta vardrivkrafterna vi hade for att implementera var applikation pa ett gym.

3.1 Avgransningar

3.1.1 Operativsystem

En avgransning var att endast utveckla applikationen for ett operativsystem. Enligt IDC(International Data Corporation) sa var Android och iOS de mest dominerande operativ-systemen ute pa marknaden rent forsaljningsmassigt 2015 [11]. Utover detta markte viatt datan som kom fran IDC visade en okad forsaljning av Android-enheter i jamforelsemed iOS. I framtiden hoppas vi pa att applikationen far anvandare utomlands och ef-tersom enheter med Android saljs mest utomlands sa ser vi att man kommer na ut till

3

Page 10: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

4 Relaterat arbete

fler anvandare. Darfor bestamde vi oss for att utveckla for Android.

3.1.2 Android API

Det aldsta API:et (Application Programming Interface) som valdes och som kommervara kompatibilt med applikationen ar API 16, Android 4.1 Jelly Bean [12]. Detta berorpa tva anledningar. Det forsta ar att vi vill stodja aldre mobilenheter och det andra atttidigare versioner inte stodjer NSD (Network Service Discovery) [13]. Applikationenstekniska huvudfunktion ar att kunna kommunicera inom ett lokalt natverk pa ett enkeltsatt.

4 Relaterat arbete

For att se till att vi var pa ratt vag med var projektide sa undersokte vi marknaden foratt se vad som gick att bygga vidare pa. Vi ville undvika att upprepa misstag och un-dersokningar som redan gjorts i andra projekt och aven fa ideer om vad som anvandarear vana vid att finna i applikationer. Utover detta ville vi aven fa en kansla av vad somsaknades i dagens marknad. Vi fann en undersokning och tre applikationer som vi kandevar relaterade till varat arbete samt att webbsidor som t.ex. Facebook [14] skulle kunnalosa varan problemstallning till en viss del. Det finns flera applikationer med liknandefunktionalitet utover de vi valde att ta upp nedan, men vi valde dessa da de var de mestrelevanta och det vore overflodigt att ha med flera som fyller samma funktion.

4.1 Gymlog

Det finns en undersokning som gjordes av Andre Engstrom [15] dar man anvande sig aven webbapplikation for att utreda om det gar att forbattra traningen for vana gymutovare.Detta skulle goras genom att underlatta resultathanteringen.

Anvandaren skulle via webbapplikationen registrera sina resultat och pa detta satt ar-kivera ens framgang. Det skulle aven finnas mojlighet att komma tillbaka till applika-tionen for att fa en overblick av tidigare resultat. Ytterligare funktioner som enligt till-verkaren skulle existera var grafisk visualisering av olika resultat, sortering av resultat,lagring av information om rutiner, traningsupplagg, ovningar och set m.m.. Webbappli-kationen lade inte nagon fokus pa att forsoka infora nagon typ av interaktion mellananvandare. Det ar mer en applikation for sjalva individen dar ingen social aspekt exi-

4

Page 11: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

4 Relaterat arbete

sterar. Till skillnad fran denna webbapplikation sa kommer Icebreaker att lagga en storvikt pa den sociala aspekten.

Andre Engstrom hann aldrig gora klart webbapplikationen. Eftersom den fortfarandebefinner sig i utvecklingsstadiet har inget storre resultat kunnat framforas.

4.2 Gym Comrade

En liknande applikation (Gym Comrade - Find A Partner [8]) finns bade till iOS ochAndroid men var icke-fungerande i sitt nuvarande skick. Anvandare har lamnat kla-gomal och daliga betyg riktade mot granssnittet, utbud av gym, och att applikationenkraschar.

Gym Comrade kraver aven att man skriver in privat information som t.ex. namn ochaddress, som ar irrelevant for applikationen, vilket kan avskracka potentiella anvandare.

Till skillnad fran Gym Comrade som endast ar anvandbar pa gym som anvandare bettadministratorerna pa Gym Comrade att lagga till, sa ska Icebreaker fungera pa alla gymdar personalen valjer att anvanda applikationen. Icebreaker kommer aven vara en appli-kation som man anvander lokalt nar man ar pa gymmet, till skillnad fran Gym Comradesom kan anvandas trots att man inte ar pa plats. Vidare sa kravs det att man forst be-kraftar var man ar, hittar en potential gympartner och skickar en vanforfragan innan mankan borja diskutera traningen. Dessa extra steg kravs inte i Icebreaker vilket forbattraranvandbarheten.

4.3 JEFIT

JEFIT [9] ar en traningsapplikation som hjalper anvandaren med sin traning. Appli-kationen erbjuder funktioner som hjalper till att logga sin traning, mojlighet till att setillbaka pa tidigare prestationer, traningsrapporter m.m.. Utover dessa funktioner kananvandare ocksa kommunicera med sina vanner. Denna typ av kommunikation ar likvar egna. Den stora skillnaden mellan denna applikation och varan ar att JEFIT ar merinriktat mot anvandarens individuella traning da man kan logga sin traning och skapatraningsrutiner. Ytterligare en skillnad ar att JEFIT kraver att man lagger till en annananvandare innan man kan borja kommunicera. I Icebreaker finns inte denna del, utanman kan interagera med andra anvandare i narheten direkt. JEFIT har aven en betalver-sion som kravs for att utnyttja vissa funktioner medan Icebreaker ar planerad att varahelt gratis.

5

Page 12: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

4 Relaterat arbete

4.4 Runkeeper

Runkeeper [16] ar en applikation som man startar nar man borjar jogga. Den haller kollpa distansen man sprungit, kalorieforbranningen, samt medelhastigheten man hallit. Enav funktionerna som Runkeeper har, tillater anvandaren att se hur mycket ens vanner paFacebook har sprungit, forutsatt att de ocksa har applikationen. Detta kan, precis somIcebreaker, motivera manniskor till att trana mer. Det finns dock ett par stora skillnadersom separerar de tva applikationerna. Den storsta ar att Runkeeper endast ska finnasdar for att dokumentera och motivera anvandaren till mer traning, medan Icebreaker skahjalpa anvandarna att socialisera mer med andra anvandare i verkligheten. Det andra aratt Runkeeper kraver att man har koppling till Internet, vilket skiljer sig fran Icebreakersom endast kraver ett lokalt tradlost natverk. Vi forklarar hur detta fungerar nedan iavsnitt 5 (Metod).

4.5 Facebook

Facebook ar en gratis webbsida som ar tillganglig for alla som har tillgang till Internet.Man kan genom Facebook skapa grupper som t.ex. en gymgrupp som antingen ar oppenfor allmanheten eller en sluten grupp som man behover behorighet for att vara delaktigi.

Med en anvandarbas pa 1,59 miljarder [17] sa ar det naturligt for manga att utvecklaframtida applikationer inom Facebook.

Med en sa stor anvandarbas sa blir det ohallbart att skapa en gemensam traningsgruppfor alla anvandare pa Facebook, da anvandbarheten for anvandarna blir mindre destostorre gruppen blir. Pa grund av detta blir det svart att komma i kontakt med personersom tranar pa samma gym.

Detta skulle kunna losas genom att ha ett filter som endast later manniskor inom ettvisst omrade ga med i gruppen, men det skulle krava att en person manuellt forsakraratt varje person som gar med i gruppen faktiskt finns inom omradet. Dessa problemexisterar inte inom Icebreaker eftersom det kravs en uppkoppling till en narligganderouter for att anvanda applikationen. Detta leder till att Icebreaker undgar problemetmed overflod av anvandare samt att behova bekrafta anvandare manuellt.

6

Page 13: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

6 Systemstruktur

5 Metod

For att skapa var applikation sa anvande vi oss av ett antal bibliotek tillsammans medtva verktyg. Biblioteken ar:

• com.android.support:appcompat-v7:23.3.0

• com.android.support:design:23.3.0

• com.android.support:support-v13:23.3.0

• com.android.support:support-v4:23.3.0

De tva verktygen som anvandes ar:

• Android Studio, IDE:t (Integrated Developement Environment) som vi anvant un-der projektets gang. Storre delen av designen i Android Studio gar att implemente-ra pa ett visuellt satt. Detta effektiviserar utvecklandet av applikationen och gjordedet lattare att forsta grunderna i Android Studio. Koordinater kodades in direkt foratt fa olika delar som knappar och liknande att hamna exakt var vi ville ha dem.

Ett alternativ till Android Studio ar Eclipse [18] som anvandes flitigt av utveck-lare innan Android Studio introducerades. Anledningen till att vi valde just det-ta IDE over Eclipse ar att det ar specifikt inriktat mot utveckling av Android-applikationer, medan Eclipse ar mer av ett multifunktionellt IDE som aven harstod for andra sprak som t.ex. C och C++.

• Det andra verktyget som vi anvande var applikationens ramverk som heter NSD(Network Service Discovery). Denna del tar hand om lokaliseringen av andramobilenheter pa ett lokalt nat. Detta gor att vi enkelt kan fa tag pa anvandareav applikationen och darefter kunna skapa en uppkoppling. NSD har dock endasthand om att hitta andra mobilenheter som ocksa har kopplat upp sig till sammarouter. Sjalva uppkopplingen mellan enheter skots med hjalp av sockets.

Vi valde detta ramverk eftersom det gjorde det mojligt att upptacka mobilenheteroch fa dem att kunna kommunicera med varandra utan att anvanda Internet. Ettalternativ till NSD tas upp i avsnitt 12 (Diskussion).

6 Systemstruktur

Systemet bestar av ett lokalt natverk (router) samt de mobilenheter som kor applika-tionen Icebreaker. Icebreaker bestar av ett bakomliggande ramverk (NSD) som skoter

7

Page 14: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

6 Systemstruktur

upptackandet av mobilenheter samt ett GUI (Graphical User Interface) som omfattar enhuvudsida, profilsida, lista pa anvandare, chatt, samt en traningssida.

Figur 1: Systemets bestandsdelar

Figur 1 ger en oversiktlig bild av de olika delarna av systemet. De grona pilarna indike-rar applikationens front-end. Dessa ar grafiska komponenter som anvandaren interagerarmed t.ex. bild och beskrivning i anvandarens profil, eller aktiviteter (sidor) som exem-pelvis sok, profil och lista anvandare. De blaa pilarna indikerar applikationens back-end(NSD) vilket ar delen som inte syns for anvandaren. I figuren ser vi att det ar tre me-toder som ingar i NSD. Register kors nar man gar in pa soksidan, Discovery nar mantrycker pa knappen hjalpa eller fa hjalp, och till sist Resolve nar man far upp sidan listaanvandare.

Register registrerar mobilen tillsammans med applikationens signatur (applikationensnamn och anslutningstyp) pa det lokala natverket. Discovery kollar pa det lokala natverketoch hamtar de mobilenheter som matchar applikationens signatur. De som matchar tasemot av Resolve vilket hamtar information som t.ex. IP-address och portnummer tilldessa mobilenheter.

Applikationen har tre typer av anvandare. Den forsta typen av anvandare, som vi kallarIce bestar av medlemmar fran gymmet som behover hjalp. Medlemmar som vill hjalpaandra kallar vi Breakers vilka utgor den andra typen av anvandare. Den tredje typen avanvandare kallar vi for Pro’s. Dessa utgors av personalen pa gymmet.

8

Page 15: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

6 Systemstruktur

Storre delen av systemet vi implementerat ar kommunikationen mellan mobilenheteroch hur vi hanterar informationsutbytet mellan dessa enheter. Denna kommunikationsker via NSD som i sin tur anvander TCP och HTTP [19, 3.4, s.106].

Figur 2: Soksidan, profilsidor samt traningssidan

Figur 2 visar applikationen fran en Breakers perspektiv av soksidan d.v.s. nar man tryc-ker pa Breaker. Detta leder till en lista pa anvandare som vill ha hjalp, Ice. Figurenvisar aven profilsidorna. Man kan bade komma at och redigera sin egen profil, samt tittapa andras profiler genom att trycka pa deras namn i resultatlistorna Ice, Breakers ellerPro’s. Traningssidan med traningsrelaterade funktioner aterfinns ocksa i figuren.

9

Page 16: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

7 Krav och utvarderingsmetoder

7 Krav och utvarderingsmetoder

Icebreaker skall kunna anvandas av alla medlemmar pa gymmet samtidigt. Vilket bety-der att antalet kan variera beroende pa sasong och gymstorlek.

Applikationen ska skicka ut notifikationer nar man matchar med nagon. Dessa notifika-tioner bestar av applikationens ikon samt ett meddelande som berattar for anvandarenvem det ar som man har matchat med. Nar anvandaren klickar pa notifikationen ska ap-plikationen starta. Detta underlattar anvandandet av applikationen da man inte behoverlasa upp skarmen och starta applikationen for att veta om man fatt en matchning. Deflesta applikationer som ar lanserade idag anvander sig av nagon sorts notifikation. Det-ta gor att anvandare intuitivt forvantar sig att applikationen har notifikationer.

Det ska finnas mojlighet till att konfigurera sin egen profil. Har ska information som arrelevant som t.ex. namn och en kort beskrivning om anvandaren visas upp. Med hjalp avprofilerna kommer anvandarna latt kunna para ihop sig med andra anvandare som harliknande traningserfarenhet. Denna del ar viktig da alla anvandare inte har kunskapeneller formagan att hjalpa till med vissa ovningar.

Man ska kunna skicka forutbestamda meddelanden till varandra nar man har matchat.Detta kravs for att anvandarna latt ska kunna hitta varandra, utan att infora en chattfunk-tion.

Sjalvklart maste dessa meddelanden anpassas av personalen for respektive gym. Ett gymkan i vissa fall ha flera ingangar eller vaningar och darfor kan ett meddelande som ”Vises vid ingangen” vara vagt.

For att utvardera dessa krav anvandes sex stycken simultana anvandare pa ett lokaltnatverk pa gymmet. Antalet valdes for att i en enkel och kontrollerad miljo kunna draslutsater om de krav som sattes upp. Anvandarna fick instruktioner att stalla in sin profil,soka efter en annan anvandare och skapa en matchning med hjalp chatten.

10

Page 17: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

8 Design

8 Design

I designdelen gar vi forst in pa hur interfacen pa Icebreaker fungerar och forklarar vadsom hander nar man navigerar runt applikationen. Detta ska klargora for lasaren vadsom hander nar man trycker pa de olika knapparna i applikationen.

8.1 Anvandarguide

Nar anvandaren introduceras till applikationen mots hen av Icebreakers startsida (fi-gur 3). Harifran kan anvandaren komma at sin profil eller sokfunktionen. Profilen aranvandarens egna profil dar en bild gar att bifoga och en liten beskrivande text avtraningsmal som anvandaren stravar mot, eller en kort allman beskrivning om anvandaren.

Figur 3: Huvudsidan och profilsidan (Profilbilden ar tagen fran [20].)

11

Page 18: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

8 Design

I Icebreakers huvudsida existerar, som tidigare namnt, sokfunktionen. Om anvandarenvill hitta eller hjalpa andra sa trycker man pa Search. Har (figur 4) presenteras tvamojligheter till anvandaren. Om anvandaren vill hjalpa andra sa trycker hen pa Brea-ker och om man sjalv behover hjalp av andra trycker man pa Ice.

Figur 4: Huvudsidan, soksidan och ice-sidan

12

Page 19: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

8 Design

8.1.1 Breaker

Personer som vill hjalpa andra kommer motas av en lista som heter Ice (figur 5). Dennalista innehaller alla andra anvandare pa gymmet som behover hjalp. Om man vill lasadennes profil trycker man pa namnet, vilket tar en till profilsidan. For att hjalpa nagontrycker man pa isbiten till vanster om namnet pa personen som ska erhalla hjalpen. Efteranvandaren tryckt pa isbiten sa kommer denne fram till en simpel chatt. Har (figur 5)

Figur 5: Ice-sidan, chattsidan och traningssidan

kommer bada anvandarna anvanda sig av forutbestamda meddelanden som presenterasi en lista. Dessa meddelanden skickas genom att trycka pa dem. Ytterligare tva knappar,OK och NO, finns med for att underlatta kommunikationen. Dessa hittas vid sidan omBegin training. Nar bada anvandarna kanner sig redo kan de starta sin traning genom attbada trycker pa Begin training.

8.1.2 Ice

I fallet nar anvandaren sjalv behover hjalp kommer hen trycka pa Ice. Detta lederanvandaren till en listvy. En lista bestar av andra anvandare som ar villiga att hjalpa(Breakers) och en annan lista bestar av personliga tranare (Pro’s). For att navigera mel-lan dessa tva listor swipar man hoger respektive vanster. Proceduren till hur man parar

13

Page 20: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

8 Design

ihop sig med nagon ar exakt likadan som tidigare namnt.

8.1.3 Begin training

Efter att tva personer parat ihop sig, kommer de att trycka pa Begin training. Detta kom-mer leda till traningssidan (figur 6), dar ett antal traningsrelaterade funktioner finns. Harkan anvandarna anvanda sig av ett tidtagarur och en lista med exempel pa olika mus-kelovningar. Nar anvandaren fatt den hjalp som behovdes kan traningen avslutas. Detta

Figur 6: Traningssidan och dessa tabbar samt huvudsidan

gor man genom att trycka pa Finish training. Applikationen kommer da att automatisktga tillbaka till startsidan. Efter ett par minuter kommer anvandaren fa upp ett popup-fonster (syns inte i figuren) dar hen kan betygsatta hjalpen. Antingen trycker man patummen upp eller sa stanger man ner popup-fonstret.

8.2 Utvecklingsmiljo for designen

All design inom detta projekt ar skapad genom Android Studio. I Android Studio sa kannastan all design skapas grafiskt, vilket gjorde det enklare att utveckla applikationen

14

Page 21: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

8 Design

efter var egna designide. Vill man t.ex. skapa en knapp som tar en till en annan sida avapplikationen sa kan man latt skapa en knapp grafiskt och sedan lanka knappen med enmetod som oppnar sidan man vill till. Denna lankning gor man genom att skapa faltetandroid:onClick for knappen i XML-filen [21] for sidans layout dar man skriver vilkenmetod som man vill ska akallas.

Det underlattar alltsa att koda designen grafiskt med hjalp av Android Studio’s GUI.

Figur 7: Knapp i Android studio

I figur 7 har vi en simpel knapp som endast blivit dragen fran listan till vanster ut tillinterfacen. Nar man anvander dessa inbyggda funktioner sa skapas automatiskt den kod-text som behovs for motsvarande funktion.

15

Page 22: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

9 Teknisk del

Figur 8: Knappen i kod

I figur 8 visas koden for sidan och knappen i figur 7. Placeringen av knappen bestams avde tre sista raderna inom Button taggarna (</>). Faltet android:layout alignParentTopgor sa att knappen laggs vinkelrat mot ovansidan av skarmen.android:layout centerHorizontal centrerar knappen horisontellt.android:layout marginTop flyttar ned knappen med vardet man valjer att skriva in. Dettabehovdes vid vissa tillfallen under utvecklingen da det ar begransat var man kan placerade grafiska komponenterna. Detta beror pa att Android Studio forsoker rakna ut var manvill lagga komponenten och forankrar dessa mot t.ex. andra komponenter eller horn.Man kan alltsa skapa och dra runt moduler grafiskt, men for att finjustera sa blir detlattast att andra direkt i koden. Det gar aven att komma at de flesta parametrarna underProperties nar man ar i den grafiska vyn.

9 Teknisk del

Har gar vi in lite mer ingaende pa hur vi har skapat de olika delarna som systemet bestarav. Denna del fokuserar mer pa hur de olika funktionerna ar skapade och aven lite hurde hor ihop samt interagerar med varann.

16

Page 23: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

9 Teknisk del

9.1 Profil

I profilen kan man skriva sitt namn, en kort beskrivning om antingen sig sjalv eller vadfor sorts gympartner man soker, samt att man kan ladda upp en profilbild pa sig sjalv. Inulaget sparas endast namnet mellan korningar. Detta gors genom Androids granssnittSharedPreferences. Vi sparar inte bilden eller beskrivningen eftersom vi inte hittadeett satt att skicka dem till andra mobilenheter. Namnet skickar vi genom sakallad pig-gybacking [22]. Vi konkatenerar anvandarens namn med namnet pa applikationen, ettfalt vilket ligger i signaturen som anda skickas till routern nar mobilenheten registreras.Detta gor att vi enkelt kan fa tag pa anvandares namn genom att bara titta pa appli-kationens namn hos en registrerad mobilenhet. For att tydliggora: om applikationensnamn ar Icebreaker och anvandarens namn ar Frida, sa blir till slut namnet pa applika-tionen Icebreaker%Frida dar procenttecknet ar en avgransare. Avgransaren anvander vifor ovrigt for att lagra information om anvandaren ar Ice, Breaker eller Pro.

For att applikationen ska kunna fa tillgang till minnet pa mobilenheten sa maste den habehorighet att lasa och skriva till minnet. Behorigheterna laggs till i manifestet for ap-plikationen. Detta maste goras eftersom vissa funktioner (som t.ex. tillgang till kameraeller bilder) i Android-mobiler ar skyddade av operativsystemet for att applikationeninte ska paverka anvandaren eller mobilenheten negativt. Anvandaren kan sedan valjasjalv att ge applikationen tillgang till dessa behorigheter nar anvandaren installerar ap-plikationen (eller under korning om API >= 23).

Behorigheterna som anvandes for att implementera denna del var READ EXTERNAL S-TORAGE och WRITE EXTERNAL STORAGE. Dessa anvands for att kunna lasa ochskriva till minnet. Detta anvands t.ex. till att lasa av bilder fran mobilens minne nar manskapar sin profil.

9.2 Notifikationer

Nar en anvandare valjer att den vill trana med en annan och trycker pa Connect sa kom-mer mottagarens mobilenhet anropa metoden som skapar och visar notifikationen. Dettakan goras genom att anvanda en existerande klass som heter Notification. Vi har istalletanvant oss av NotificationCompat som gor att vi kan forbise vilket API anvandaren harinstallerat och ser istallet till att notifikationerna ser likadana ut for alla.

Behorigheterna som anvandes for denna del var VIBRATE vilket behovs for att fa tillgangtill mobilenhetens vibreringsfunktion, och WAKE LOCK vilket ger oss tilltrade till attfa en avstangd skarm att lysa upp under en viss tid.

17

Page 24: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

9 Teknisk del

9.3 Sokning

Nar man trycker pa knappen Search och sedan pa Ice, alternativt Breaker, sa kommeranvandaren till en lista. En service registreras pa det lokala natverket som sager att mo-bilenheten anvander denna applikation. Servicen ar, som namnt innan, applikationenssignatur vilket bestar av applikationens namn och anslutningstyp. Detta gor att andramobilenheter kan fa tag pa IP-addressen och porten till enheten genom att anvanda tvakomponenter av NSD:

• Discovery Listener vilket aktivt soker efter services pa det lokala natverket ochidentifierar dem som tillhandahaller samma service som efterfragas.

• Resolve Listener laser av den nodvandiga informationen, for att skapa en upp-koppling, fran Discovery Listener. Denna information ar IP-addressen och portentill mobilenheten.

For varje mobilenhet som hittas, sparas bade addressen och porten till denna och tva nyaknappar skapas i respektive tidigare namnda lista (Ice/Breaker/Pro’s). Av de knapparsom skapas leder en till anvandarens profil och den andra till att ansluta (addressen ochporten sparas i denna knapp).

Med denna information, d.v.s. IP-addressen och porten, skapar vi enkelt en anslutningmellan enheterna med hjalp av sockets [23] nar anvandaren trycker pa att ansluta. VilkenIP-address och port som hamtas och anvands beror pa vilken anvandare som man tryc-ker pa for att ansluta sig till. Om anslutningen lyckas sa tas anvandaren till chattsidansamtidigt som enheten pa den andra anden bade far upp en notifikation och kommer tillchattsidan.

Behorigheten som behovdes for denna del ar INTERNET. Denna behorighet behovs foratt kunna skapa och anvanda sockets.

9.4 Chatt

Chatten dyker forst upp nar man har gjort en sokning och anslutit till en mobilenhet. Nartva enheter har matchat med varandra, med hjalp av NSD, sa skapas fyra nya tradar. Tvaskapas pa vardera enhet, varav en star for att lyssna efter meddelanden, och den andratar hand om att skicka meddelanden. Chatten bestar av forutbestamda meddelanden somskickas over natverket som fullstandiga strangar. Vidare bestar den av tva tradar; en somlyssnar ifall det finns nagot att skicka, samt en som lyssnar ifall det finns nagot som haranlant och behover skrivas ut pa GUI:t.

18

Page 25: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

10 Utvarderingsresultat

9.5 Timer

Den timer vi har implementerat i Icebreaker mater tiden som har gatt sedan man trycktpa startknappen. Denna tid mats i millisekunder, men vi ville aven visa tiden i sekunderoch minuter. Detta blir sedan enkelt visat for anvandaren genom att skriva ut det till enTextView.

10 Utvarderingsresultat

Applikationen testades pa sex simultana anvandare och den lyckades hitta alla anvandareutan problem. Alla lyckades ansluta sig i par och de fick aven notifikationer for match-ningen. Chattfunktionen fungerade ocksa, dar det gick att skicka forutbestamda medde-landen till varandra.

I profilen finns mojligheten att konfiguera sitt namn men den korta beskrivningen omsig sjalv gar inte att andra. Vi ansag det som onodigt att ha med da informationen somsatts in inte kommer att skickas i nulaget. Detta galler insattning av profilbilden ochanvandarens beskrivning.

Vi gjorde en enkat, Appendix A (Enkat), som vi sedan tog till ett gym. Dar gick vi runtoch fragade potentiella anvandare om de skulle anvanda var applikation och fragadebade om vara designval och om det fanns nagon funktionalitet som de tyckte saknades.Ytterligare fragor som vi stallde hittas under appendix for denna enkat.

Vi fragade och fick svar fran totalt 17 st.

Feedbacken vi fick var overlag det vi redan integrerat i systemet, eller sa var det redanmed som en del av vart framtida arbete. Detta var exempelvis att vissa kande att manska kunna swipa mellan Ice-, Breaker- och Pro’s-listorna, medan andra tyckte att detkandes onaturligt. Det fanns aven fler personer som ville ha Icebreaker pa iOS, specifiktpa Apple-watches sa att man kan se notifikationerna direkt pa klockan. Nagra personerobserverade att det skulle kunna kannas laskigt att anvanda applikationen da man skullekunna matchas med nagon som kanns obehaglig.

Vi fick ocksa asikter om hur interfacen skulle kunna andras, men vissa asikter sa emotandras, sa i slutandan fick vi gora en bedomning av vad vi ansag blev bast. Dennabedomning gjorde vi utifran majoriteten av undersokningstagarnas asikt och vad visjalva tyckte. Detta gallde t.ex. placering av knappar och farger.

Vi har aven en extern intressent som ar IT-ansvarig for ett av gymmen som vi kommer

19

Page 26: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

12 Diskussion

att lansera Icebreaker hos, Campus1477. Vi hade ett mote med intressenten fran Cam-pus1477 som hjalpte oss utvardera applikationen. Fran hans kunskap om gymmedlem-marna och personalen kunde han ge oss forslag fran ett annat perspektiv. Han namnde attdet kan vara viktigt att fa ut applikationen snabbt, aven om den inte ar fardig an. Skalettill att man ville fa ut den snabbt var att det sprider uppmarksamhet samtidigt som detkan ge oss gratis feedback. Speciellt om man ser till att gora det mojligt for anvandarnaatt kontakta oss utvecklare angaende eventuella buggar eller forslag. Vi kom da overensom att demo:n vi kommer utvardera i slutet av projektet skulle kunna vara ett bra forstautkast.

11 Resultat

Projektet har lett till skapandet av en fungerande men minimal applikation som hjalpermobilenheter att kommunicera. Applikationen later anvandare soka efter andra anvandarepa gymmet, forutsatt att det finns ett lokalt natverk att ansluta sig till. Matchningen mel-lan anvandare och kommunikationen fungerar. Traningssidan som man kommer till narman trycker pa Begin training ar inte helt implementerad. Tidtagaruren finns och funge-rar samt att det finns skelettkod och knappar for exempelovningar men ingen funktiona-litet existerar under denna del. Man kan oppna sin profilsida och lagga upp en bild samtredigera sitt namn. Namnet skickas over det lokala natverket men det gor dessvarre inteprofilbilden da vi inte hittade ett satt att utfora detta pa.

12 Diskussion

Under projektets gang upptackte vi att vi inte skulle hinna med alla delar som var pla-nerade. Det var ocksa vissa tekniska detaljer som paverkade besluten. Detta fick oss atttanka om och prioritera vissa delar mer an andra. Vi ansag att projektets viktigare delvar kommunikationen over det lokala natverket istallet for att anvanda en server. Darforlades det mycket tid pa just denna del.

Effekten av detta gjorde att andra delar uteslots och placerades istallet i Framtida ar-bete. Det som flyttades till Framtida arbete var delar av funktionaliteten pa profilsidan,traningssidan och betygsystemet.

20

Page 27: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

12 Diskussion

12.1 Interface

Vi ar nojda med var design som den ar just nu, men vi kanner att det fortfarande finnsforbattringar vi kan gora i framtiden. Vi har diskuterat mycket om hur vi ska ha de-signen for att den ska vara sa bekvamlig for synen som mojligt, medan vi aven har be-kvamligheten for anvandaren i atanke som att t.ex. positionera knappar for att underlattaanvandarens atkomst.

En sak vi hade i atanke var att gora interfacen pa ett sadant satt att det tar sa fa knapp-tryckningar som mojligt for att fa en matching med en anvandare.

Ett annat krav som vi stallde pa applikationen var att det inte skulle ta mer an ett tiotalsekunder for att forsta sidans syfte och kunna ta sig vidare. Vi har ocksa lagt till en delav Interface i framtida arbeten.

12.2 Profilsidan

Kommunikationen sker mellan anvandare nar dessa har parat ihop sig. Detta innebar attvi inte kan skicka nagot mellan anvandare tills de har kopplats ihop. Det har leder tillatt anvandarna inte kommer at profilbilderna innan en uppkoppling sker.

En losning for att skicka profilbilderna till alla anvandare ar att skapa en kort tem-porar uppkoppling mellan varje anvandare som hamtar profilbilden och sedan stangauppkopplingen. Detta skulle dock blockera anvandare fran att koppla ihop sig med enannan under anslutningens gang. Problemet skulle bli mer markbart desto fler anvandaresom ar inne pa applikationen och soker.

Med hjalp av en server skulle anvandare istallet kunna ladda upp sin profilbild pa servernoch sedan kan anvandare hamta ut dessa fran servern istallet for att skapa en anslutningmellan alla anvandare.

12.3 Traningssidan

Traningssidan ar ocksa en del som lamnas over som framtida arbete. Eftersom imple-mentationen av kommunikationen tog storre delen av tiden sa skapade vi en demo somska visa hur vi vill att traningssidan ska se ut. Vi har gjort en timer som ska ge demo:nlite liv, samt att man finner en mall (en sida med knappar) for exempelovningar for olikamuskelgrupper (t.ex. armar och ben). Det som aterstar att gora ar att lagga till illustra-tioner och text for olika muskelovningar som gar att gora. I framtiden ska man komma

21

Page 28: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

12 Diskussion

till muskelovningar efter att man valt muskelgrupp.

Vi tycker att denna del blev relativt bra infor demonstrationen. Den visar upp ungefarhur traningssidan kommer se ut, aven om allt inte ar fardigimplementerat.

12.4 Betygsystem

Betygsystemet ar tankt att anvandas av gymmet. Tanken bakom det ar att lata gymmetge ut nagon slags beloning for anvandare som samlat pa sig ett visst antal poang.

Denna del kanner vi skulle passa battre att implementera pa en server da det blir enklarefor gymmet att halla koll pa hur mycket poang olika anvandare har. Det minskar avenrisken for manipulering av poangen.

12.5 Alljoyn

Nar vi borjade med applikationen funderade vi over vilket ramverk som var bast lampatfor kommunikationen. Det som anvandes var NSD, men det fanns ett annat alternativ vidnamn AllJoyn [24]. Alljoyn ar ett ramverk som mojliggor ad-hoc natverk. Detta skul-le gora det mojligt for varje mobilenhet att skicka data mellan varandra. Alla mobilersom anvander applikationen skulle agera som en nod dar data skickas mellan noderna.Detta ramverk skulle tillata anvandare att koppla ihop sig till varandra helt utan routerseller Internet. En nackdel med ad-hoc-natverk ar att rackvidden ar beroende pa antaletanvandare och var de befinner sig. Om en anvandare inte befinner sig inom rackvidd tillen annan, sa bidrar denne inte med att oka rackvidden. Detta innebar att farre anvandarekan leda till samre rackvidd. Annu en nackdel ar att Android-mobiler inte ger tillgangtill ad-hoc-funktionalitet med fabriksinstallningar. Som anvandare maste man sjalv lasaupp det genom att roota sin mobilenhet. Detta innebar att man far tillgang till privilegi-erade funktioner i operativsystemet. Nar man rootar sin mobilenhet blir man aven oftaav med garantin.

Eftersom det finns risker med att roota sin mobilenhet sa kande vi att det var battre attistallet anvanda NSD sa att vi fick en storre kundbas.

Ytterliggare en begransningen som vi upptackte med Alljoyn var att det fanns lite doku-mentation i jamforelse med NSD som kunde hjalpa oss forsta implementationsproces-sen. I grunden gav NSD oss samma funktioner som Alljoyn forutom nodvandigheten avatt anvanda en router.

22

Page 29: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

14 Framtida arbete

13 Slutsatser

Vi har kommit fram till en fungerande applikation som lyckas para ihop tva indivi-der pa gymmet. Bortsett fran vissa funktioner som lagring av profilbilden, delar avtraningssidan och betygsystemet som inte ar klara sa har vi lyckats bra med kommu-nikationsdelen vilket var en stor del av syftet med vart projekt. Vi kan saga det medsakerhet da vi har gjort tester med flera anvandare och kan saga att applikationen fun-gerar i storre grupper.

Kommunikationsdelen ligger till grund for applikationen. Det ar med hjalp av kommu-nikationen som sker over det lokala natverket som mojliggor applikationens grundsyfte,vilket var att para ihop manniskor pa gym for att hjalpa varandra. Det var aven dennadel (att kommunicera tradlost mellan mobilenheter utan Internet) som var mest intres-sant att arbeta med eftersom det var ett omrade som ingen av oss tidigare haft sa mycketerfarenhet inom.

14 Framtida arbete

14.1 Server

Under arbetets gang har vi kommit i underfund med att mycket av de metoder vi villimplementera hade varit enklare om vi grundat applikationen pa en server. En serverhade, som vi namnt tidigare, gjort det lattare att komma at gemensam data da den skul-le vara atkomstbar for alla anvandare med en internetuppkoppling. Ett framtida arbetesaledes, som skulle forenkla utvecklingen av andra framtida funktioner sa som mus-kelovningar (om dessa skulla ta upp mycket utrymme pa mobilenheten) och profilbilderskulle vara att implementera en server for Icebreaker. Ett problem med detta skulle varadatasakerhet. Finns all information pa en server sa blir det mojligt for andra att kommaat ovannamnda information illegalt.

14.2 Anvandbarhet utan router

Grundiden var att vi skulle kunna anvanda applikationen for att hitta manniskor inomett hundratals meter utan att behova koppla upp sig till en router. Anledningen till attvi ville undvika att anvanda Internet och routrar var for att vi ville gora applikationensa tillganglig som mojligt utan nagra driftkostnader (router, mobildata, internetabonne-mang o.s.v.). Svarigheterna som uppstod med detta togs upp i avsnitt 12.5 (AllJoyn). Vi

23

Page 30: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

14 Framtida arbete

insag snabbt att detta inte var hallbart med den tidsram vi hade, men det ar anda nagotsom vi skulle vilja gora om projektet fortsatt under en langre period.

14.3 Interface

I framtiden kan vi samla lite mer anvandarstatistik och nya synpunkter vilket skullekunna forbattra anvandarvanligheten. Detta skulle omfatta t.ex. valet av farger, placeringoch storlek pa knappar och text. Vi skulle aven ha tid att titta pa hur layouten skiljer sigmellan olika skarmstorlekar och upplosningar for att hitta en design som nojer alla.

14.4 Profilbild

Som vi namnt tidigare i rapporten sa vill vi att anvandarna ska kunna lagga upp och sevarandras profilbilder. Detta har varit svart att implementera da vi inte har anvant ossav nagon server, men eftersom vi vill implementera en server i framtiden sa vill vi avenlosa problemet med profilbilden.

14.5 Traningssidan

Nar man trycker pa knappen Begin training i chatten ar det tankt att man ska fa uppen sida med traningsrelaterade funktioner sasom bilder pa ovningar som man kan gorafor alla olika muskelgrupper. Dessa bilder skulle agera som stod for anvandare som arnyborjare.

Huvudsyftet med traningsidan ar att anvandaren slipper byta applikation for att hittatraningsovningar. Pa detta satt sparar anvandaren tid. Sidan existerar och har en funktionvilket ar ett tidtagarur samt en mall till en muskelovningssida. Ett framtida arbete voreatt vidareutveckla denna sida sa att den kan ge ytterligare hjalp med traningen.

14.6 Motesplats istallet for chatt

Vi har aven diskuterat om vi istallet for en chatt ska gora sa att varje gym designerar enplats i gymmet dar man kan traffa anvandaren man matchat med. Fordelen med dettaar att anvandarna snabbare kommer igang med deras traning. Vidare leder det har tillatt mindre tid spenderas pa applikationen. Genomforbarheten av detta ar simpelt, da detskulle fungera genom att satta upp en enkelt skylt eller markera ut ett omrade med tejp.

24

Page 31: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

Referenser

Gymmet skulle ocksa kunna anvanda ett existerande allrum som till exempel ett cafe.Detta skulle ta bort problemet med forvirring om gymmet ar stort. En nackdel ar attdet skulle gora applikationen mindre flexibel da man alltid behover ga till motesplatsen.Var gym-kontakt fran Campus1477 sa att denna del skulle kunna vara bra da det geren snabb samlingspunkt. Han namnde daremot att inte alla gym kommer att vara villigaoch att en alternativ plan kan vara bra att ha.

14.7 Uppslagstabell for forutbestamda meddelanden

Vi vill att varje gym ska kunna anpassa de forutbestamda meddelanden som gar attskicka mellan anvandare pa gymmet. Detta for att olika gym ar utformade pa olika sattoch har olika igenkannbara platser. De hardkodade meddelanden i appen skulle da bytasut mot en uppslagstabell som gympersonalen enkelt kan redigera genom en annan enkelapplikation.

Referenser

[1] K. N. Hampton, “Is technology making people less sociable?”[Url date : 2016-05-10]. [Online]. Available: http://www.wsj.com/articles/is-technology-making-people-less-sociable-1431093491

[2] “Android Studio,” [Url date : 2016-05-18]. [Online]. Available: https://developer.android.com/studio/index.html

[3] “CMU HomeNet Study,” [Url date : 2016-08-09]. [Online]. Available: https://cs.stanford.edu/people/eroberts/cs181/projects/personal-lives/conclusions.html

[4] “Study: You’ve Never Met 7% Of Your Facebook Friends,” [Url da-te : 2016-08-02]. [Online]. Available: https://techcrunch.com/2011/06/16/study-youve-never-met-7-of-your-facebook-friends

[5] European Commission, “Sport and physical activity,” 2014, [Url date :2016-04-18]. [Online]. Available: http://ec.europa.eu/public opinion/archives/ebs/ebs 412 en.pdf

[6] J. Sundstrom, “Fler unga valjer gymmet fore lagsport,” 2015, [Url date: 2016-04-18]. [Online]. Available: http://www.svt.se/nyheter/lokalt/dalarna/fler-unga-valjer-gymmet-fore-lagsport

25

Page 32: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

Referenser

[7] B. Eriksson and L. Brohult, “Styrketraning for 90-aringar hindrar demens,” 2016,[Url date : 2016-04-18]. [Online]. Available: http://www.svt.se/nyheter/vetenskap/styketraning-for-90-aringar-hindrar-demens

[8] “Gym Comrade - Find A Partner,” 2016. [Online]. Available: https://play.google.com/store/apps/details?id=com.gymcomrade

[9] “Jefit workout tracker gym log,” 2016. [Online]. Available: https://play.google.com/store/apps/details?id=je.fit

[10] “Oka din motivation genom att trana tillsammans med nagon,”[Url date: 2016-05-17]. [Online]. Available: http://www.muscles.se/oka-din-motivation-genom-att-trana-tillsammans-med-nagon-du-upplever-som-battre-an-dig

[11] International Data Corporation, “Android and iOS Squeeze the Competition,Swelling to 96.3CY14, According to IDC,” 2015, [Url date : 2016-04-22].[Online]. Available: http://www.idc.com/getdoc.jsp?containerId=prUS25450615

[12] Android Developers, “Android 4.1 apis,” [Url date : 2016-04-23]. [Online].Available: http://developer.android.com/about/versions/android-4.1.html

[13] “Using network service discovery,” 2016, [Url date : 2016-08-09]. [Online].Available: https://developer.android.com/training/connect-devices-wirelessly/nsd.html

[14] “Facebook,” 2016. [Online]. Available: https://www.facebook.com/

[15] A. Engstrom, “Gymlog, en webbapplikation for personer som ar vanaatt trana pa gym,” 2013, [Url date : 2016-04-20]. [Online]. Available:http://www.diva-portal.org/smash/get/diva2:681371/FULLTEXT01.pdf

[16] “Runkeeper,” [Url date : 2016-06-11]. [Online]. Available: https://runkeeper.com/

[17] “Global social networks ranked by number of users,”2016. [Online]. Available: http://www.statista.com/statistics/272014/global-social-networks-ranked-by-number-of-users/

[18] “Eclipse,” [Url date : 2016-06-11]. [Online]. Available: https://eclipse.org/

[19] George Coulouris, et al., Distributed Systems: Concepts and Design, 5th ed. Ad-dison Wesley, 2011.

[20] “Naf Sadh,” [Url date : 2016-05-18]. [Online]. Availab-le: https://upload.wikimedia.org/wikipedia/en/thumb/a/a1/NafSadh Profile.jpg/768px-NafSadh Profile.jpg

26

Page 33: Icebreaker - DiVA portaluu.diva-portal.org/smash/get/diva2:967516/FULLTEXT01.pdf · 2016. 9. 8. · Icebreaker Daniel Hietarinta Markus Norstrom¨ Husein Vilic In this report, we

A Enkat

[21] “XML: Extensible Markup Language,” [Url date : 2016-07-25]. [Online].Available: http://www.w3schools.com/xml/

[22] “Piggybacking (Transportation),” [Url date : 2016-07-25]. [Online]. Available:https://en.wikipedia.org/wiki/Piggyback %28transportation%29

[23] “What Is a Socket?” [Url date : 2016-05-18]. [Online]. Available: https://docs.oracle.com/javase/tutorial/networking/sockets/definition.html

[24] “Alljoyn R© framework,” 2016. [Online]. Available: https://allseenalliance.org/framework

A Enkat

Grattis! Ditt gym har nu utrustats med ett lokalt natverk. Detta innebar att du kankoppla upp dig och direkt hitta gympartners och fa hjalp av personliga tranare som arpa plats. Skulle du anvanda dig av denna service?

Vi kommer nu visa en live demonstration pa hur vi har tankt att applikationen ska seut. Har du nagra ideer pa hur interfacen skulle kunna bli forbattrad? Tycker du att detsaknas nagonting som du behover nar du tranar?

Tycker du att man intuitivt forstar hur applikationen fungerar?

Finns det nagra knappar som du tycker ligger konstigt till?

Finns det nagonting mer du tycker borde uppmarksammas?

27