Denne siden er blank med hensikt. 1 PROSJEKT NR. 2015 – 28 Studieprogram: Informasjonsteknologi Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET Offentlig Telefon: 22 45 32 00 Telefaks: 22 45 32 05 BACHELORPROSJEKT HOVEDPROSJEKTETS TITTEL DATO Dagsplanapplikasjon for nettbrett 26.05.2015 ANTALL SIDER 129 PROSJEKTDELTAKERE INTERN VEILEDER Kirsten Ribu Kristoffer Hagen Steffen Engebretsen Harald Sletten Adamsen David Meisund OPPDRAGSGIVER KONTAKTPERSON Oslo Universitetssykehus – Avdeling for nevrohabilitering. Morten Berger Vidar Antonsen SAMMENDRAG Prosjektet går ut på å lage en dagsplanapplikasjon for Androidbaserte nettbrett som viser ukens og dagens gjøremål. Applikasjonen er rettet mot brukere med kognitive funksjonsnedsettelser, der gjøremålene kan settes opp av bistandsytere og foresatte. Dette skal gjøres i en administrasjonsdel hvor det også skal være mulig å tilpasse funksjoner for personalisering. Målet er at applikasjonen skal bidra til økt selvstendighet blant brukere, og på den måten forenkle hverdagen til både brukerne og bistandsytere på institusjoner. For å løse dette har vi gjennom prosessen arbeidet med informasjonsinnhenting, prototyping, brukertesting og implementering. 3 STIKKORD Universell utforming Android-applikasjon Brukermedvirkning 2 Denne siden er blank med hensikt. 3 1 Forord Denne rapporten beskriver arbeidsprosessen med vårt hovedprosjekt, fra planlegging til sluttprodukt. Rapporten er optimalisert for å leses elektronisk. Vår veileder Kirsten Ribu inkluderte oss i et samarbeidsprosjekt med Avdeling for nevrohabilitering ved Oslo universitetssykehus (OUS). Hensikten med dette prosjektet har vært å bidra til at brukere på institusjoner skal få en bedre hverdag ved hjelp av økt selvstendighet. Vi vil takke vår veileder Kirsten Ribu på Høgskolen i Oslo og Akershus (HiOA) som har fulgt oss opp hele veien. Med sitt positive vesen, gode tilbakemeldinger og tips til forbedringer, har hun vært en god støtte i prosessen. Hun har også skaffet oss tiltrengt utstyr og ordnet opp når vi har trengt hjelp. Vidar Antonsen og Morten Berger har vært våre kontaktpersoner og samarbeidspartnere hos oppdragsgiver. De har vært veldige positive til vårt arbeid og hjulpet oss med alt fra lån av utstyr til å skaffe testpersoner til brukertesting. Deres faglige kompetanse og tilbakemeldinger har hjulpet oss på veien mot et bedre sluttprodukt. De skal derfor ha en stor takk. Vi vil også takke brukertestere som villig stilte opp. Til slutt vil vi takke HiOA for å gitt oss mulighet til å dra på velferdsteknologikonferansen CareWare i Aarhus. 4 Denne siden er blank med hensikt. 5 2 Innholdsfortegnelse 1 Forord .............................................................................................................................................. 4 2 Innholdsfortegnelse......................................................................................................................... 6 3 Innledning ...................................................................................................................................... 11 4 Bakgrunn ....................................................................................................................................... 12 4.1 5 Mål og rammebetingelser ..................................................................................................... 13 Kravspesifikasjon ........................................................................................................................... 14 5.1 Samsvar med kravspesifikasjonen......................................................................................... 14 5.1.1 5.2 Endelig kravspesifikasjon....................................................................................................... 16 5.2.1 5.3 7 Systemkrav .................................................................................................................... 16 Krav til grensesnitt................................................................................................................. 18 5.3.1 Generelle designkrav ..................................................................................................... 18 5.3.2 Brukervennlighet ........................................................................................................... 18 5.4 6 Funksjonelle krav ........................................................................................................... 14 Dokumentasjonskrav ............................................................................................................. 18 Løsninger på markedet dag ........................................................................................................... 19 6.1 MemoAssist ........................................................................................................................... 19 6.2 carePlan (e-mergency) .......................................................................................................... 20 6.3 Pictoplan ................................................................................................................................ 21 Produktbeskrivelse ........................................................................................................................ 22 7.1 Brukerdel ............................................................................................................................... 22 7.1.1 Ukesmodus .................................................................................................................... 22 7.1.2 Dagsmodus .................................................................................................................... 23 7.1.3 Tilleggsfunksjoner for brukeren .................................................................................... 24 7.2 Administrasjonsdel ................................................................................................................ 27 7.2.1 Opprettelse av førstegangsbruker ................................................................................ 27 7.2.2 Hovedside ...................................................................................................................... 28 7.2.3 Endre plan...................................................................................................................... 29 7.2.4 Endre eller slette aktivitet ............................................................................................. 30 7.2.5 Innstillinger .................................................................................................................... 30 7.2.6 Brukere .......................................................................................................................... 31 7.3 Kommunikasjon med brukeren ............................................................................................. 31 7.3.1 Meldinger som krever interaksjon ................................................................................ 32 6 8 7.3.2 Meldinger som ikke krever interaksjon ......................................................................... 32 7.3.3 Meldinger som er informasjon ...................................................................................... 32 Brukertest og intervju.................................................................................................................... 33 8.1 Personvern ............................................................................................................................ 33 8.2 Generelt om brukertester ..................................................................................................... 33 8.3 Generelt om våre intervjuer .................................................................................................. 34 8.4 Brukertest av prototype på OUS-ansatte .............................................................................. 34 8.4.1 Gjennomføring og resultat ............................................................................................ 34 8.4.2 Konklusjon ..................................................................................................................... 35 8.5 8.5.1 Gjennomføring og resultater ......................................................................................... 35 8.5.2 Konklusjon ..................................................................................................................... 36 8.6 Brukertest brukerdelen ......................................................................................................... 36 8.6.1 Gjennomføring og resultater ......................................................................................... 36 8.6.2 Intervju .......................................................................................................................... 40 8.6.3 Konklusjon ..................................................................................................................... 40 8.7 Brukertest med 5-åring ......................................................................................................... 41 8.8 Brukertest admindelen .......................................................................................................... 42 8.8.1 Gjennomføring og resultater ......................................................................................... 42 8.8.2 Konklusjon ..................................................................................................................... 43 8.9 9 Brukertest ikoner................................................................................................................... 35 Endringer som følge av brukertest ........................................................................................ 44 8.9.1 Brukertest av prototype - brukerdel ............................................................................. 44 8.9.2 Brukertest av ikoner ...................................................................................................... 44 8.9.3 Brukertest av brukerdel................................................................................................. 45 8.9.4 Brukertest av administrasjonsdel .................................................................................. 46 Utviklingsprossen .......................................................................................................................... 48 9.1 Smidig utviklingsmetodikk ..................................................................................................... 48 9.2 Utviklingsverktøy ................................................................................................................... 49 9.2.1 Android Studio ............................................................................................................... 49 9.2.2 Redmine......................................................................................................................... 49 9.2.3 Git .................................................................................................................................. 49 9.2.4 Draw.io .......................................................................................................................... 49 9.2.5 DB Browser for SQLite ................................................................................................... 49 9.2.6 Google Dokumenter ...................................................................................................... 50 9.2.7 Dropbox ......................................................................................................................... 50 9.2.8 Adobe Creative Cloud .................................................................................................... 50 7 9.2.9 Microsoft Powerpoint ................................................................................................... 50 9.2.10 Prosjektdagbok .............................................................................................................. 50 9.3 Fra skisse til ferdig løsning..................................................................................................... 50 9.3.1 Idémyldring.................................................................................................................... 50 9.3.2 Utviklingsprosess for ukesmodus .................................................................................. 51 9.3.3 Utviklingsprosess for dagsmodus .................................................................................. 54 9.3.4 Utviklingsprosess for administrasjonsmodus ................................................................ 56 9.3.5 Utvikling av logo ............................................................................................................ 60 9.4 10 CareWare 2015 ...................................................................................................................... 63 Universell utforming og interaksjon .......................................................................................... 65 10.1 WCAG 2.0 .............................................................................................................................. 66 10.2 Brukervennlighet ................................................................................................................... 66 10.2.1 Tilbydelser ..................................................................................................................... 66 10.2.2 Tilbakemeldinger ........................................................................................................... 66 10.2.3 Metaforer ...................................................................................................................... 67 10.2.4 Synlighet ........................................................................................................................ 68 10.2.5 Sperring av ugyldige handlinger .................................................................................... 68 10.2.6 Lyd ................................................................................................................................. 68 10.3 Visuell kommunikasjon (Design) ........................................................................................... 68 10.3.1 Gestaltlovene................................................................................................................. 69 10.3.2 Forgrunn og bakgrunn ................................................................................................... 69 10.3.3 Nærhet........................................................................................................................... 69 10.3.4 Kontinuitet ..................................................................................................................... 70 10.3.5 Form og det gylne snitt.................................................................................................. 70 10.3.6 Likhet ............................................................................................................................. 71 10.3.7 Tilordninger ................................................................................................................... 71 10.3.8 Tekst og lesbarhet ......................................................................................................... 72 10.3.9 Navngivning ................................................................................................................... 72 10.3.10 10.4 Farger......................................................................................................................... 73 Kognitiv belastning ................................................................................................................ 76 10.4.1 Minnekapasitet.............................................................................................................. 76 10.4.2 Lese- og skrivevansker ................................................................................................... 77 10.4.3 Toleranse for feil............................................................................................................ 77 10.4.4 Organiseringsstruktur .................................................................................................... 78 Konklusjon ................................................................................................................................. 79 11 11.1 Nytteverdi .............................................................................................................................. 80 8 Videre utvikling.......................................................................................................................... 81 12 12.1 Vedlikehold av planen ........................................................................................................... 81 12.2 Motivasjonssystem ................................................................................................................ 82 12.3 Fjernadministrering og monitorering .................................................................................... 82 12.4 Støtte for flere medier........................................................................................................... 82 12.5 Påminnere/notifications........................................................................................................ 82 12.6 Personalisert design .............................................................................................................. 82 12.7 Bekreftelse av fullførte aktiviteter ........................................................................................ 83 12.8 Valg av «pauseaktiviteter» .................................................................................................... 83 12.9 Plasseringstjenester .............................................................................................................. 83 12.10 Implementering og brukertesting ..................................................................................... 83 Teknisk spesifikasjon ................................................................................................................. 84 13 13.1 Teknologi ............................................................................................................................... 84 13.1.1 Java ................................................................................................................................ 84 13.1.2 XML ................................................................................................................................ 84 13.1.3 SQLite............................................................................................................................. 84 13.2 Kodeoptimalisering ............................................................................................................... 84 13.3 Prosjektstruktur ..................................................................................................................... 85 13.4 Manifests ............................................................................................................................... 86 13.5 Programlogikk (java) .............................................................................................................. 86 13.5.1 Adapter for ListView ...................................................................................................... 87 13.5.2 Skype-integrasjon .......................................................................................................... 87 13.5.3 Liste over java-filer ........................................................................................................ 89 13.6 Database ................................................................................................................................ 92 13.6.1 Databasetabeller ........................................................................................................... 92 13.6.2 Logisk skjema for lagring av aktiviteter ......................................................................... 94 13.7 Ressurser ............................................................................................................................... 95 13.7.1 Drawable ....................................................................................................................... 95 13.7.2 Raw ................................................................................................................................ 99 13.7.3 Values ............................................................................................................................ 99 13.8 Systemkrav .......................................................................................................................... 101 13.9 Tillatelser/permissions ........................................................................................................ 101 13.9.1 Tillatelse til å lagre data............................................................................................... 102 13.9.2 Tillatelse til å bruke kameraet ..................................................................................... 102 13.9.3 Tillatelse til å bruke internett ...................................................................................... 102 13.10 Sikkerhet .......................................................................................................................... 103 9 13.10.1 SQL-injections .......................................................................................................... 103 13.10.2 Krypterte passord .................................................................................................... 104 13.11 Tilgjengelighet (accessibility) ........................................................................................... 104 13.11.1 Opplesing av tekst og bilder .................................................................................... 104 13.11.2 Hint for tekstfelt ...................................................................................................... 105 13.11.3 Navigering med tastatur .......................................................................................... 105 13.12 Testing ............................................................................................................................. 106 13.12.1 Velkomstmodus ....................................................................................................... 107 13.12.2 Ukesmodus .............................................................................................................. 107 13.12.3 Dagsmodus .............................................................................................................. 107 13.12.4 Adminmodus ........................................................................................................... 108 13.12.5 Resultater fra testing ............................................................................................... 109 14 Referanser ............................................................................................................................... 110 15 Brukerveiledning ..................................................................................................................... 111 15.1 Brukerdel ............................................................................................................................. 111 15.1.2 Navigering.................................................................................................................... 113 15.1.3 Hvordan komme til neste steg i en handlingskjede? .................................................. 114 15.1.4 Hvordan gå tilbake et steg i en handlingskjede? ......................................................... 114 15.1.5 Hvordan fullføre en delhandling i sjekkliste? .............................................................. 115 15.1.6 Hvordan angre fullføring av delhandling i sjekkliste? ................................................. 115 15.1.7 Nedteller ...................................................................................................................... 116 15.1.8 Hvordan ringe bistandsytere, familie eller venner? .................................................... 117 15.1 Administrasjonsdel .............................................................................................................. 118 15.1.2 Aktiviteter .................................................................................................................... 122 15.1.3 Innstillinger .................................................................................................................. 125 Vedlegg .................................................................................................................................... 126 16 16.1 Vedlegg 1: Attest fra oppdragsgiver .................................................................................... 126 16.2 Vedlegg 2: Risikoplanlegging ............................................................................................... 127 16.3 Vedlegg 3: Samtykkeskjema for brukertest ........................................................................ 129 10 3 Innledning Vi er fire studenter som går anvendt datateknologi på HiOA. Vår oppgave har vært å utvikle en prototype til en dagsplanapplikasjon for personer med kognitive funksjonsnedsettelser. Den skal være tilpasset Androidbaserte nettbrett og brukes som et utgangspunkt for en ferdig løsning. Applikasjonen skal gi oversikt over dagens og ukens gjøremål, og skal i tillegg hjelpe brukeren med å utføre aktiviteter. Gjøremålene skal kunne settes opp av bistandsytere, foresatte og brukeren selv. For å øke utfordringen og omfanget av oppgaven valgte vi å utvikle en funksjonell applikasjon istedenfor en prototype. Dette tok betydelig lengre tid, men slik vi ser det har erfaringen gjort at det lønner seg. Gruppen hadde ikke tidligere erfaringer med utvikling av applikasjoner eller det helsefaglige aspektet. Vi har derimot god erfaring med universell utforming. Dette gir oss faglig tyngde om viktige aspekter som design, brukergrensesnitt, brukervennlighet og brukertesting. Ved å forene teknologi og velferd fikk vi sjansen til å jobbe med to forskjellige fagområder, noe som har vært svært spennende. Gjennom testing har forskere funnet ut at sosiale applikasjoner på for eksempel nettbrett kan hjelpe brukeren med å lettere utrykke seg og generelt forbedre sin sosiale adferd (Hourcade, Bullock-Rest & Hansen, 2012). Det er derfor svært viktig å utvikle applikasjoner som utnytter dette og øker brukernes selvstendighet. Da vil flere mennesker bli inkludert i samfunnet og få ta del i den teknologiske utviklingen. 11 4 Bakgrunn Avdeling for nevrohabilitering ved Oslo universitetssykehus (OUS) har spesialisert kompetanse overfor mennesker med tidlig ervervede hjerneskader, utviklingsforstyrrelser, sammensatte funksjonsvansker, utviklingshemming, epilepsi, autisme og/eller multifunksjonshemming. Avdelingen jobber for å fremme forutsigbarhet, selvstendighet og gi den enkelte brukeren mulighet til å påvirke sine omgivelser. I dag brukes analoge dagsplaner på veggtavler eller i permsystemer, som krever omfattende opplæring og kontinuerlig tilstedeværelse av tjenesteytere. Det er også nødvendig med utstyr for å produsere bilder, tekst eller symboler til bruk i planene. Til sammen utgjør dette et vesentlig ressursbruk for avdelingen. Brukere/pasienter som er hjemmeboende i foreldrehjemmet eller mottar begrensede timebaserte tjenester har i mindre grad struktureringsverktøy. Denne gruppen har ikke kontinuerlig tilgang til bistandsytere. Problemet med verktøyene som finnes i dag er at de er lite sosialt valide og at enhetene er lite tilpasset et familiehjem. I denne brukergruppen finnes det i dag svært liten grad av velferdsteknologi, og det er derfor en stor etterspørsel etter dette. En rekke potensielle brukere har meldt interesse for prosjektet. For å gjøre det lettere å planlegge hverdagen for denne målgruppen har OUS initiert et prosjekt der målet er å ende opp med en universelt utformet dagsplanapplikasjon for nettbrett. Dette skal gi brukeren økt forutsigbarhet og selvstendighet, økt deltakelse i eget liv og mer hensiktsmessig bruk av bistandstid. Nettbrett er valgt fordi det er et mobilt verktøy som har langt høyere sosial validitet enn tradisjonelle dagsplaner på papir eller tavle. Det er meningen at applikasjonen skal kunne administreres av bistandsytere og familiemedlemmer. HiOA og OUS samarbeider for å samle det beste fra habiliteringstjenestens kompetanse og erfaringsgrunnlag med dagens teknologiske muligheter. Dette skal bidra til at avdelingen raskere og mer effektivt kan yte tjenester av høy kvalitet til sin målgruppen. Prosjektet har som mål å ende opp som en universelt utformet applikasjon for Android- og iOS-brukere. Flere i vår målgruppe har autisme og andre utviklingsforstyrrelser med lignende symptomer. Autisme er et vidt begrep som representerer alt fra lavtfungerende til høytfungerende mennesker og er en veldig individuell sykdom. Sykdommen kjennetegnes ofte av svekket kommunikasjon, problemer med sosial interaksjon og begrensede interesser. Dette resulterer ofte i konsentrasjonsvansker og vanskeliggjør muligheten til å bygge seg opp et selvstendig liv. I april 2013 utførte forskerne ved Kennedy Krieger Institute en studie på syv unge studenter med autisme (O'Malley, Patricia, Lewis & Donehower, 2013). Forskerne ville finne ut om nettbrett kunne bidra til høyere grad av selvstendighet. Resultatet viste at selvstendigheten til brukerne økte. Dette var et viktig mål for oss, og ved å få en bekreftelse på at det hjelper å bruke nettbrett, er vi sikre på at vi bruker riktig plattform. 12 4.1 Mål og rammebetingelser Målgruppen er unge voksne med gjennomgripende utviklingsforstyrrelser og/eller kognitive funksjonsnedsettelser som bor i foreldrehjemmet eller som mottar timebaserte tjenester i egne eller samlokaliserte boliger. Prosjektets overordnede mål er å: Utforme en allment tilgjengelig, individuelt tilpasset applikasjon som kan muliggjøre at målgruppen i større grad kan nyttiggjøre seg av dagens teknologiske muligheter. Utforme og prøve ut en applikasjonsløsning som kan bidra til større grad av forutsigbarhet, selvstendighet og valgmuligheter for målgruppen og på den måten forenkle hverdagen til både brukerne og bistandsytere på institusjoner. Utvikle en dagsplanapplikasjon som på en fullverdig måte kan erstatte dagens analoge struktureringsverktøy for målgruppen. 13 5 Kravspesifikasjon Kravspesifikasjonen er en detaljert beskrivelse av hvilke krav oppdragsgiver har til systemet som skal utvikles. Den skal virke som en rettesnor der rammer og retningslinjer blir definert for utviklerne. Kravspesifikasjonen er utarbeidet i samarbeid med oppdragsgiver, og er med på å sikre at begge parter får klarlagt betingelsene for prosjektet. For oss har dette vært et levende dokument gjennom hele arbeidsperioden. 5.1 Samsvar med kravspesifikasjonen I dette kapittelet vil vi ta for oss kravene i kravspesifikasjonen og hvordan sluttproduktet vårt samsvarer med kravene. Ved oppstart av prosjektet fikk vi klare krav fra vår oppdragsgiver. Disse var ment for en prototype. Siden vi utviklet en fungerende applikasjon, var det ikke forventet at alle fastsatte krav skulle gjennomføres. Vi fikk forholdsvis frie tøyler i utviklingsprosessen, og kunne utforme applikasjonen i vår egen retning. Likevel ville oppdragsgiver at de mest essensielle kravene skulle utvikles. Dette har gjort at applikasjonen som er laget ikke har fulgt alle de opprinnelige kravene, og kravspesifikasjonen er derfor revidert underveis. 5.1.1 Funksjonelle krav Oppdragsgiver krevde at løsningen skulle ha en brukerdel med ukes- og dagsmodus. Det skulle også være en administrasjonsdel med mulighet til legge til, endre og slette aktiviteter. Disse funksjonene er nødvendig for å bruke og administrere dagsplanen. Krav for ukesmodus I ukesmodus var det få, men viktige krav som skulle utføres. Alle gjøremålene for den aktuelle uken måtte vises i en kronologisk oversikt. Aktivitetene skulle beskrives med et bilde eller ikon, og det måtte vises om gjøremålet er fullført eller ikke. I tillegg til de fastsatte kravene har vi gjort det mulig å sette på et navigasjonsfelt med ukenummer. Vi har også implementert en sveipefunksjon. Krav for dagsmodus Oppdragsgiver ønsket at det skulle være mulig å se både bilde og tekst av gjøremålene. Mulighet til å bekrefte aktiviteter og deloppgaver var også et krav. Her har vi i tillegg gjort det mulig å angre fullførte handlinger. Dette valgte vi å prioriterte på brukerdelen siden det er viktig for god brukervennlighet i applikasjonen. Et annet krav oppdragsgiver ønsket var bruk av nedteller. Dette ble implementert fordi vi mente det var nødvendig for å forenkle enkelte aktiviteter. Det skulle også være mulig å velge pauseaktiviteter, utsette eller velge bort aktiviteter og spille av video. Dette har vi ikke laget enda, fordi vi har valgt å prioritere andre funksjoner. Vi har i stedet lagt til funksjoner som bedrer helheten i applikasjonen, for eksempel bistand via Skype. 14 Oppdragsgiver ønsket at det skulle være mulig for brukeren å få hjelp til å utføre enkelte aktiviteter, via en sjekkliste eller en handlingskjede. Dette er noe mange i målgruppen vår vil trenge og var derfor viktig for oss å utvikle. Som en ønsket tilleggsfunksjon ville oppdragsgiver at det skulle være mulig for brukeren å be om bistand. Vi valgte å implementere denne funksjonen fordi vi mener det kan gjøre brukeren mer selvstendig. Krav for administrasjonsmodus Det viktigste kravet på administrasjonsdelen var å kunne legge til, endre og slette aktiviteter. Utføres ikke dette, vil brukerdelen være verdiløs og det var derfor det første vi implementerte i administrasjonssiden. Til gjøremålene skulle administrator kunne legge til bilder, beskrivelse, nedteller og sjekkliste eller handlingskjede. For å komme inn på adminmodus var det krav om passordbeskyttet innlogging. Alt dette er lagt til i applikasjonen. Vi har derimot ikke lagt til egen innlogging for ikke-administratorer, der man får en begrenset administratortilgang. Til gjengjeld har vi gitt administratorer store muligheter for å tilpasse applikasjonen individuelt. Dette er gjort ved å legge til muligheter for å skru av og på funksjoner som navigasjonsfelt, fargekoder, kontekstmeny og sveiping. Krav for tilleggsfunksjonalitet I tillegg til kravene hadde oppdragsgiver ønsker om funksjonalitet som skulle implementeres dersom det ble tid til det. Vi valgte å fokusere på brukertesting og optimalisering av grunnstrukturen i brukerdelen, og fikk derfor ikke tid til å implementere så mye av den ønskede tilleggsfunksjonaliteten. Vi valgte å implementere bistand via Skype fordi vi i samarbeid med oppdragsgiver vurderte dette som den viktigste tilleggsfunksjonaliteten. Tekniske krav Alle de tekniske kravene er oppfylt. Applikasjonen er utviklet for Android-enheter og fungerer godt for alle testede enheter med versjon 4.0.3 eller nyere. Passord blir lagret kryptert i databasen. Krav til brukergrensesnitt Designkravene går blant annet ut på at kun funksjoner som har nytteverdi for brukeren skal være synlige. Applikasjonen måtte være universelt utformet og navigasjonen enkel og intuitiv. Dette har vi jobbet mye for å sikre, blant annet gjennom skissering. Med tanke på brukervennlighet måtte ikoner være beskrivende for gjøremålet. Språket skulle være norsk bokmål, uten fremmedord og fagspråk. Det skulle være tilstrekkelig å kun ha en liten opplæring på forhånd for å kunne bruke applikasjonen. De fleste av disse kravene er ikke målbare, og det er derfor vanskelig å si med sikkerhet at alt er oppfylt. Gjennom brukertesting og tilbakemeldinger opplevde vi at kravene har blitt fulgt. 15 Dokumentasjonskrav Det var ønskelig for oppdragsgiver at applikasjonen ble nøye dokumentert. Siden mye av oppgaven gikk ut på å finne brukernes behov og ideer til løsninger, var det viktig for oppdragsgiver å få tilgang til innsamlet og bearbeidet informasjon. Dokumentasjonskravet er oppfylt fordi designvalg og hva som bør gjøres i den videre utviklingen er beskrevet i sluttrapporten. 5.2 Endelig kravspesifikasjon Dette dokumentet viser vår endelige kravspesifikasjon. Punkter markert i grønt er nye krav som er lagt til, mens punkter markert i gult er krav vi ikke ferdigstilte. Tekst uten eller med grønn markering er fullført. 5.2.1 Systemkrav Kundens krav til funksjonalitet Applikasjonen skal ha tre ulike sider; ukesmodus, dagsmodus og administrasjonsmodus. Ukesmodus skal vise en oversikt over hvilke aktiviteter som skal gjøres en aktuell uke. Dagsmodus skal i kronologisk rekkefølge liste opp alle aktiviteter som skal gjøres den aktuelle dagen. Administrasjonsmodus skal brukes for å legge til/endre/fjerne aktiviteter fra planen. Under følger en oversikt over hvilke funksjoner hver side må inneholde. Ukesmodus: Vise kronologisk oversikt over alle gjøremål den aktuelle uken. Vise bilde/ikon til hvert gjøremål. Vise tekstlig beskrivelse til hvert gjøremål. Vise om et gjøremål er fullført eller ikke. Mulighet for å navigere mellom dagene via sveip. Mulighet for å navigere mellom dagene via navigasjonsfelt. Dagsmodus: Mulighet til å spille av lydklipp. Mulighet til å se bilder av gjøremålet. Mulighet til å se tekstlig beskrivelse av gjøremålet. Mulighet til å vise nedteller som viser hvor lenge det er igjen til aktiviteten er fullført. Mulighet til å utsette/velge eller velge bort aktivitet. Mulighet til å bekrefte at aktivitet er fullført. Mulighet til å bekrefte at deloppgave er fullført. Mulighet til å avkrefte fullført handling/deloppgave. Mulighet til å velge pauseaktiviteter. Mulighet for å se sjekkliste. Mulighet for å se handlingskjede. 16 Mulighet for å vise oversikt over alle gjøremål for den aktuelle dagen. Mulighet for å navigere mellom dagene via sveip. Mulighet for å navigere mellom dagene via navigasjonsfelt. Administrasjonsmodus: Passordbeskyttet innlogging. Mulighet for å registrere ny bruker. Mulighet for å endre brukerinformasjon. Mulighet for å slette bruker. Mulighet for å legge inn/endre/slette gjøremål. Mulighet for å legge til sjekkliste. Mulighet for å legge til handlingskjede. Mulighet for å legge inn/endre/fjerne tekstlig beskrivelse av gjøremål. Mulighet for å se ukeplan. Mulighet for å sette på navigasjonsfelt. Mulighet for å sette på sveip. Mulighet for å sette på kontekstmeny. Mulighet for å sette på navigasjonsfelt. Mulighet for å sette på fargekoder. Mulighet for å legge til og slette deloppgaver i sjekklister. Mulighet for å legge til og slette deloppgaver i handlingskjeder. Mulighet for å laste inn eksempelplan. Mulighet for å slette alle aktiviteter. Mulighet til å velge/fjerne tilhørende bilde til et gjøremål. Mulighet til å ta bilder med kameraet. Egen innlogging for brukeren, der «faste gjøremål» ikke kan endres. Begrenset administratortilgang. Mulighet til å sette på Skype. Mulighet til å sette på nedteller til enkeltaktiviteter. Mulighet til å se informasjon om tilleggsfunksjonalitet. Ønsket tilleggsfunksjonalitet Følgende krav er tilleggsfunksjoner som er ønsket av oppdragsgiver. Disse er ikke regnet som krav, men er funksjonalitet som ønskes implementert dersom det bli nok tid til det: Belønning/motivasjonssystem der man samler poeng ved å utføre oppgaver. Poengene kan brukes til selvvalgte aktiviteter. Synkronisering til smarttelefon der man kan ha oversikt over planen for dagen. Mulighet for innlogging / synkronisering mot server, slik at man ikke mister dagsplanen om man mister nettbrettet. Fjernadministrering/monitorering for bistandsytere. Påminner/timer (også dersom applikasjonen ikke er åpen). Mulighet for å be om bistand gjennom Skype. 17 Tekniske krav Applikasjonen skal utvikles i Java, XML og SQLite. Applikasjonen skal utvikles for Android versjon 4.2.2 «Jelly Bean». Alle nettbrett med versjon 4.2.2 eller høyere skal kunne kjøre applikasjonen. Passord skal lagres kryptert. Krav til koden Koden skal implementeres og struktureres slik at det vil være lett å legge til ny funksjonalitet i fremtiden. Navn på klasser, metoder og variabler skal være selvforklarende. 5.3 Krav til grensesnitt 5.3.1 Generelle designkrav Applikasjonen skal være universelt utformet. Bare funksjoner som har nytteverdi for den enkelte brukeren skal være synlig. Navigasjonen skal være enkel og intuitivt. Ikoner skal være beskrivende for gjøremålet. 5.3.2 Brukervennlighet Språket i applikasjonen skal være norsk bokmål. Språket skal inneholde minst mulig fremmedord og fagspråk. Bruker skal kunne bruke systemet kun ved å ha erfaring med nettbrett samt en avgrenset opplæring. 5.4 Dokumentasjonskrav Gjennom prosjektet skal det utvikles flere dokumenter. All dokumentasjon skal skje jevnlig under hele prosjektperioden. Dokumentasjonen skal følge standarden for hovedprosjekter ved HiOA. Dokumentene skal skrives på norsk bokmål med en formell språkbruk. Ved eventuelle endringer i kravspesifikasjonen skal dette rapporteres til oppdragsgiver, som ønsker å få all sluttdokumentasjon. Sluttdokumentasjonen er spesielt viktig for oppdragsgiver. 18 6 Løsninger på markedet dag Det finnes en del lignende løsninger på markedet i dag, men kvaliteten er veldig varierende. Mange av applikasjonene bærer preg av dårlig brukervennlighet og mye støy. Dette kan komme av lite brukertesting eller utviklere som ikke har satt seg ordentlig inn i brukerens ferdighetsnivå og livssituasjon. Det viktigste med velferdsløsninger er at de må være enkle nok til at brukerne ønsker og klarer å bruke de. Dette virker det som mange har glemt. I denne delen vil vi ta for oss tre lignende løsningene som finnes på markedet i dag. Danmark har lenge satset på velferdsteknologi, og alle applikasjonene beskrevet under er derfra. 6.1 MemoAssist MemoAssist har som hensikt å skape struktur i hverdagen for brukerne og er rettet mot mennesker med blant annet ADHD, Alzheimers, demens og andre hjerneskader. Applikasjonen er tilgjengelig for iOS-enheter. FIGUR 2: DAGSMODUS I MEMOASSIST. FIGUR 1: UKESMODUS I MEMOASSIST. Fordelen med MemoAssist er at forsiden er behagelig å se på. Det er lite støy og derfor lett å få oversikt over gjøremålene. Applikasjonen har mulighet for lydavspilling for å beskrive gjøremål, noe som kan være en stor fordel for enkelte brukere. Det er enkelt å sette opp aktiviteter og det er mulig å lage både handlingskjeder og sjekklister. 19 Man har ikke en separat adminmodus der man kan legge til aktiviteter. Man legger inn aktiviteter direkte fra ukesmodus. Dette kan virke støyende da det gjøres ved pop-up-vinduer som går over hverandre. Til gjengjeld kan man administrere applikasjonen fra en ekstern app som kalles MemoRemote. I figur 3 vises et eksempel på å sette opp en aktivitet. Her har man mulighet til å legge ved bilde, skrive beskrivende tekst, spille av en egendefinert lyd og sette på en nedteller. Alt dette er veldig enkelt å gjøre, noe som er meget bra. Et stort minus er at det ikke er noen lagreknapp, i stedet er det en stor «slett»-knapp som mest sannsynlig vil forvirre mange. For å lagre aktiviteten må man trykke på tilbakeknappen, noe som er en uvanlig fremgangsmåte. Vår oppdragsgiver ønsker at brukermodus skal være så enkel som mulig, uten distraherende støy. Derfor er det ønskelig at funksjonalitet for å legge til, endre og slette FIGUR 3: OPPRETTELSE AV AKTIVITET I aktiviteter er skilt ut til en egen side. Oppdragsgiver er MEMOASSIST. også veldig opptatt av at aktiviteter skal sorteres kronologisk, men ikke nødvendigvis til bestemte tider. MemoAssist er basert på klokkeslett. Dersom man ikke utfører en aktivitet til riktig tid vil planen «gå videre», selv om aktiviteten ikke er fullført. Det var vanskelig å finne frem til funksjoner, og applikasjonen inneholdt mye unødvendig støy som kan forvirre brukere. 6.2 carePlan (e-mergency) CarePlan er en informasjon- og kommunikasjonsplattform som er utviklet hovedsakelig for å gjøre eldre og mennesker med kognitive nedsettelser mer selvstendige. Den skal også forbedre kommunikasjonen mellom ansatte, hjelpetrengende og pårørende. CarePlan har over 25 standardmoduler som gjør at det er enkelt å tilpasse planen for ulike brukere. Modulene dekker alt fra fjernstyring av lys til dagsplanlegging for mennesker med kognitive funksjonsvansker. Designmessig virket det veldig bra, med store knapper og god struktur. De tar også i bruk NFC1, der de lar brukeren skanne klistremerker med enheten. Det kan for eksempel være et klistremerke med bilde av en kaffekopp på kjøkkenbenken. Etter man har scannet koden kommer det opp hvordan 1 Near Field Communication er en trådløs overføringsmetode som lar enheter kommunisere med hverandre. Gjør det også mulig å lese av NFC-brikker som i dette tilfellet er klistremerkene. 20 man koker en kopp kaffe i applikasjonen. Dette er en enkel og rask måte å se hvordan man utfører oppgaver uten å måtte navigere seg fram i applikasjonen. Som figur 4 viser er applikasjonen også optimalisert for mobil. Nederst på bildet kan man se noen eksempler på klistremerkene man kan skanne inn. FIGUR 4: CAREPLAN INNEHOLDER MANGE NYTTIGE FUNKSJONER, MEN ER TREG Å BRUKE. Den største ulempen til CarePlan er tregheten. Det tar alt for lang tid å bruke applikasjonen. Det virker som det er lagt inn for mye innhold og at applikasjonen ikke klarer å prosessere valgene man tar raskt nok. Dette vil nok for mange være svært frustrerende, spesielt for målgruppen vår som kan slite med konsentrasjonen og ha dårlig tålmodighet. En annen stor ulempe med applikasjonen er at den er avhengig av internett. Disse to problemene alene gjør at vi ikke kan anbefale denne applikasjonen for målgruppen vår. 6.3 Pictoplan Pictoplan er et struktureringsverktøy for iOS som er utformet og testet på mennesker med kognitive utfordringer som ADHD og syndromer innenfor autismespekteret. FIGUR 5: PICTOPLAN BRUKER MANGE FARGER OG KAN DERFOR OPPLEVES SOM URYDDIG. De største fordelene med applikasjonen er at den har et stort bibliotek med beskrivende bilder, enkel struktur for å redigere aktiviteter og er forholdsvis rask å bruke. Problemet med Pictoplan er at ukesmodus kan oppfattes som visuelt uryddig, og den gir ikke mulighet for fullskjerm i dagsmodus eller ved sjekklister. Den mangler også en del viktige funksjoner, som for eksempel handlingskjeder. Planen har valgt å bruke ikoner istedenfor bilder, og har tatt i bruk svært mange farger. Dette ødelegger en del av det estetiske og kan være med på å forvirre brukeren. 21 7 Produktbeskrivelse I dette kapittelet vil produktet bli beskrevet med skjermbilder og tekst. Meningen er å få en detaljert forståelse av applikasjonens utforming. Produktbeskrivelsen er delt inn i en brukerdel og en administrasjonsdel. 7.1 Brukerdel Brukerdelen består av ukesmodus og dagsmodus. Ukesmodus viser en oversikt over alle gjøremål som skal utføres en bestemt uke og er forsiden i applikasjonen. Dagsmodus gir brukeren oversikt over alle aktiviteter for en bestemt dag. 7.1.1 Ukesmodus FIGUR 6: VISER HVORDAN UKESMODUS KAN SE UT FOR BRUKEREN. Forsiden viser ukens gjøremål fordelt på de ulike dagene. Ukedagene er organisert horisontalt og aktivitetene vertikalt. Den blå vertikale bakgrunnen viser hvilken dag det er, i dette tilfellet tirsdag. Det øverste grå feltet viser ukenummeret, og pilene gjør det mulig å navigere mellom ukene. Nøkkelen øverst til høyre leder videre til administrasjonssiden. Dersom en dag inneholder flere aktiviteter enn hva høyden på skjermen tillater, dukker en scrolle-funksjon opp. For å signalisere at en aktivitet er fullført, vises en hake over aktiviteten. Et eksempel på dette er «Stå opp» på tirsdag. Trykkes en aktivitet i planen ledes brukeren videre til dagsmodus. 22 7.1.2 Dagsmodus Topplinjen i dagsmodus inneholder et hjem-ikon som leder tilbake til ukesmodus. Det grå feltet viser hvilken dag det er, og gir brukeren mulighet til å navigere til andre dager. Listen på venstre side viser en oversikt over aktiviteter som skal utføres den aktuelle dagen. I oversikten kan brukeren navigere mellom de ulike gjøremålene uavhengig av rekkefølgen. Den valgte aktiviteten er fremhevet med lyseblå bakgrunn. Fullførte gjøremål vises i listen med en hake. FIGUR 7: VISER HVORDAN DAGSMODUS KAN SE UT FOR BRUKEREN. For den utvalgte aktiviteten i listen vises overskrift, beskrivelse og et bilde. Det brukes en stor grønn knapp for å markere at et gjøremål er fullført. For å fjerne fullført- status brukes en mindre rød knapp. Hvis aktiviteten fullføres vil brukeren ledes videre til neste gjøremål. Det er ikke mulig å igangsette aktiviteter på andre dager enn i dag, men det er mulig å se informasjon om de. Handlingskjede En handlingskjede egner seg til aktiviteter der delhandlinger må gjøres i en bestemt rekkefølge. Delaktivitetene vises med overskrift, bilde og beskrivelse. FFIGUR IGUR 8: 8: V VISER ISER HVORDAN HVORDAN EN EN HANDLINGSKJEDE HANDLINGSKJEDE MED MED KONTEKSTMENY KONTEKSTMENY SKRUDD PÅ PÅ KAN KAN SE SE UT SKRUDD UT.. Til høyre i figur 8 er det en kontekstmeny som viser alle stegene som må utføres for å fullføre aktiviteten. Under kontekstmenyen er det en beskrivelse av hver delaktivitet. Ved å bekrefte at en delhandling er gjort ledes man automatisk videre til neste steg. Har man ved en feiltakelse trykket seg forbi en delhandling, kan man angre og gå tilbake til forrige steg. 23 Sjekkliste Dersom en aktivitet inneholder en sjekkliste, dukker denne opp i stedet for aktivitetsbilde. Til høyre for sjekklisten er det en tekstlig beskrivelse. I sjekklister er knappene deaktivert. Grunnen til at de ikke er helt skjult er for å opprettholde et konsistent brukergrensesnitt. IGUR 9: 9: V VISER ISER ET ET EKSEMPEL EN SJEKKLISTE SJEKKLISTE.. FFIGUR EKSEMPEL PÅ PÅ EN Sjekklisten består av delaktiviteter som kan hukes av etterhvert som de blir gjort. Det stilles ingen krav til hvilken rekkefølge aktivitetene skal utføres i. For hver aktivitet vises aktivitetsnavn og et bilde. Dersom sjekklisten inneholder flere ledd enn det er plass til å vise, kan man scrolle i listen for å se resten av aktivitetene. Utføres et ledd ved en feiltakelse, kan avhukingen fjernes ved å trykke på aktiviteten igjen. Når alle oppgavene er huket av vil man automatisk ledes til neste oppgave. 7.1.3 Tilleggsfunksjoner for brukeren Administrator kan legge til og fjerne funksjoner som benyttes i brukerdelen. Disse påvirker både funksjonaliteten og designet, og gjør at planen kan tilpasses individuelt. Nedenfor vises ukesmodus, med og uten tilleggsfunksjoner. I figur 10 er det fargekoder under navnene på ukedagene. På toppen er det et navigasjonsfelt som gjør det mulig å skifte uke. FIGUR 10: TIL VENSTRE: UKESMODUS UTEN TILLEGG SKRUDD PÅ. TIL HØYRE: UKESMODUS MED ALLE TILLEGG SKRUDD PÅ. Nedenfor vises dagsmodus med og uten tilleggsfunksjoner. I figur 11 har listen over aktiviteter samme farge som er brukt i ukesmodus. På toppen er det et navigasjonsfelt som gjør det mulig å skifte dag. Denne har et omriss i samme farge. Til høyre for navigasjonsfeltet er det en «Hjelp» knapp som gjør det mulig å ringe etter bistand. Mellom aktivitetsbildet og knappene er det en nedteller. Til høyre for aktivitetsbildet er det en kontekstmeny for handlingskjeder. 24 FIGUR 11: TIL VENSTRE: DAGSMODUS UTEN TILLEGG SKRUDD PÅ. TIL HØYRE: DAGSMODUS MED ALLE TILLEGG SKRUDD PÅ. Bistand via Skype Bistand via Skype2 gir brukeren mulighet til å kontakte bistandsytere. Dette kan være ansatte i omsorgsboliger eller familie og venner. Ved å tilby videosamtaler gjennom applikasjonen, kan brukeren motta bistand direkte under gjennomføring av aktiviteter. For at brukeren skal slippe å tenke på at det er Skype som brukes for å ringe, er knappen for å åpne bistandsdialogen navngitt som «Hjelp». Administratorer får informasjon om at det er Skype som brukes, fordi de må oppgi sin Skype-id. Bistandsmodulen blir ikke vist til brukeren dersom ikke Skype er installert på enheten. For å skjule tekniske detaljer er det opp til administrator å laste ned og installere Skype. FIGUR 12: EN OVERSIKT OVER TILGJENGELIGE KONTAKTER DUKKER OPP OM BRUKEREN TRYKKER «HJELP». Navigasjonsfelt Navigasjonsfeltet gjør det mulig å navigere mellom dager og uker. Venstre pil navigerer en side bakover, høyre pil navigerer en side fremover. Mellom pilene vises hvilken dag eller uke det er. 2 Skype er et videokonferanseverktøy med chat-funksjon. 25 FIGUR 13: VISER NAVIGASJONSFELTET FOR DAGSMODUS ØVERST. UNDER VISES NAVIGAJSONSFELTET FOR UKESMODUS. Sveip Sveip-funksjonaliteten gjør det mulig å navigere mellom dager eller uker ved å føre fingeren til venstre eller høyre i det horisontale feltet øverst i brukerdelen. FIGUR 14: VISER SVEIPEFUNKSJONALITETEN. Fargekoder Fargekoder brukes for å gi hver dag en unik farge. Dette lar brukerne forbinde ukedagene med bestemte farger, og gjør det mulig å kjenne igjen samme dag i dagsmodus som i ukesmodus. FIGUR 15: VISER ET UTDRAG AV FARGEKODENE I APPLIKASJONEN. 26 Kontekstmeny for handlingskjeder Kontekstmenyen er en liste på høyre side i dagsmodus som viser en oversikt over delaktiviteter i handlingskjeder. Den skal gjøre det enkelt for brukeren å følge med på fremdriften. Man har oversikt over hvilke delaktiviteter som er fullført, hvilken aktivitet som skal fullføres neste gang og en oversikt over alle andre steg som må utføres for at hovedaktiviteten kan regnes som fullført. FIGUR 16: KONTEKTSMENYEN VISER TYDELIG AT BRUKEREN ER PÅ DEN SISTE AKTIVITETEN I HANDLINGSKJEDEN. Nedteller Nedtelleren ligger under bildet til valgt aktivitet. Administratorer kan legge til nedtelling for bestemte aktiviteter. I dagsmodus får brukeren mulighet til å starte og stoppe nedtelleren selv. Når tiden har gått ut høres en alarm. FIGUR 17: NEDTELLEREN I DAGSMODUS BLIR LYSEGRØNN ETTERHVERT SOM TIDEN TELLER NEDOVER. 7.2 Administrasjonsdel Administrasjonsdelen gir bistandsytere mulighet til å sette opp, endre og slette aktiviteter fra dagsplanen. For å individuelt tilpasse applikasjonen kan funksjonene nevnt i forrige kapittel skrus av og på. I tillegg kan man legge til, endre og slette administratorbrukere. 7.2.1 Opprettelse av førstegangsbruker Første gang brukeren åpner applikasjonen må det opprettes en administratorkonto. FIGUR 18: VELKOMSTSKJERM VISES FØRSTE GANG APPLIKASJONEN STARTES. 27 FIGUR 19: VISER REGISTRERINGSSKJEMAET FOR OPPRETTELSE AV NY BRUKER. I registreringsskjemaet må brukeren ta bilde og fylle inn nødvendig informasjon. Tekstfeltene viser hva som skal fylles inn. Sjekkboksen til høyre viser om kravene til feltet er oppfylt. Godkjente felt er markert med en grønn hake. Ved å trykke på sjekkboksene gis det informasjon om hvilket krav det tilhørende tekstfeltet har. Feltet hvor Skype-brukernavn skal fylles inn er valgfritt, men avgjør om brukeren vil være tilgjengelig som bistandsyter via «Hjelp» -menyen. Når alle krav er oppfylt kan administratorkontoen opprettes. Ved innlogging bruker administrator brukernavnet og passordet som ble opprettet i registreringsskjemaet. Ved feil inntasting av brukernavn eller passord gis en tilbakemelding. FIGUR 20: INNLOGGINGSSKJEMAET FOR ADMINMODUS. 7.2.2 Hovedside Til venstre i administrasjonsdelen vises en vertikal meny med fire valg; «Vis ukeplan», «Endre plan», «Brukere» og «Innstillinger». Den uthevede knappen viser hvilken side man er på. Hovedsiden er «Vis ukeplan». Denne har likt grensesnitt som i ukesmodus og gir en oversikt over alle aktiviteter for en bestemt uke. På denne siden kan administratorer endre, legge til FIGUR 21: VISER UKESOVERSIKT I ADMINMODUS eller slette gjøremål. Under hver ukedag er det en «Legg til» -knapp som lar administrator legge til aktiviteter. Gjøremål som blir lagt til legger seg under den siste aktiviteten på valgt dag. For å endre eller slette opprettede gjøremål, trykker man på en aktivitet i planen. Dette leder videre til «Endre plan», der aktiviteter opprettes. Til høyre i topplinjen er det en «Logg ut» -knapp som fører tilbake til brukerdelen. 28 7.2.3 Endre plan Administrator må fylle ut aktivitetsnavn og legge til bilde for å opprette en ny aktivitet. Det er valgfritt å beskrive aktiviteten. Å legge til hjelpeliste3 og/eller nedteller er også en valgmulighet. I hjelpelisten må administrator huke av om den skal utføres i rekkefølge eller ikke (se figur 23). Velger man å huke av, vil hjelpelisten opprettes FIGUR 22: OPPRETTELSE AV NY AKTIVITET I ADMINMODUS. som en handlingskjede. Ellers opprettes den som en sjekkliste. For å legge til felter i hjelpelisten trykker man på «Legg til», for å fjerne brukes «Fjern siste». Hjelpelisten settes opp ved å gi deloppgaver et bilde og aktivitetsnavn. Ved å skru på nedtelleren, får valgt aktivitet en tidsbegrensning. Hvis nedtelleren skrus på, dukker det opp et «pop-up»-vindu. Her bestemmer brukeren hvor lenge nedtelleren FIGUR 23: ANGIR OM EN HJELPELISTE SKAL VÆRE EN HANDLINGSKJEDE ELLER skal vare. Man har mulighet til sette på nedtelling helt opp til ett EN SJEKKLISTE. døgn. Hvis informasjonen fra brukeren ikke er tilfredsstillende utfylt, gir applikasjonen en beskrivende tilbakemelding. Lagret aktivitet legger seg i bruker- og administrasjonsdelen, på den valgte dagen. For å velge tidspunkt må brukeren trekke i tallene. FIGUR 24: NEDTELLEREN KOMMER OPP SOM ET POP-UP-VINDU. 3 En hjelpeliste er en fellesbetegnelse for handlingskjede og sjekkliste. 29 Alle aktiviteter som opprettes blir lagret som en mal. Dersom man endrer en mal som brukes andre dager, må man velge om man skal oppdatere kun for en bestemt dag eller for alle dager som bruker aktiviteten i databasen. FIGUR 25: DIALOG-BOKS FOR Å FÅ SVAR FRA BRUKEREN. 7.2.4 Endre eller slette aktivitet En opprettet aktivitet kan endres og slettes. All informasjon om aktiviteten er synlig, og oppsettet er likt som i «legg til aktivitet». Administrator kan lagre eventuelle endringer, men det er også mulig å slette hele aktiviteten. FIGUR 26: VED ENDRING AV AKTIVITETER BRUKES SAMME DESIGN SOM FOR OPPRETTELSE AV NYE. Dersom brukeren ønsker å slette en aktivitet dukker det opp en dialogboks4. Der må brukeren bekrefte at aktiviteten virkelig skal slettes. FIGUR 27: BRUKEREN MÅ GI EN BEKREFTELSE OM EN AKTIVITET SKAL SLETTES. 7.2.5 Innstillinger I innstillinger kan administrator velge hvilke funksjoner som skal være aktiverte. Enkelte brukere har ikke behov for tilleggsfunksjonalitet som fargekoder, og det er her administrator kan sette opp hva som skal vises. Ved å trykke på funksjonsnavnet kommer det opp et bilde og en beskrivende tekst som skal hjelpe administratoren med å avgjøre om dette er aktuelt å bruke for en bestemt bruker. 4 En dialogboks er et lite vindu som ber brukeren ta en beslutning eller angi tilleggsinformasjon. 30 FIGUR 28: I «INNSTILLINGER» KAN ADMINISTRATOR INDIVIDUELT TILPASSE DAGSPLANEN TIL EN BESTEMT BRUKER. Under avanserte innstillinger kan administrator laste inn en eksempelplan eller slette alle aktiviteter. Eksempelplanen oppretter en uke fylt med aktiviteter, som gir administrator mulighet til å teste ut applikasjonen uten å jobbe med virkelige aktiviteter. I tilfelle man skulle trykke feil eller angre, krever begge valgene en bekreftelse. Dette gjøres med en dialogboks. 7.2.6 Brukere Brukersiden viser en oversikt over alle brukere. Administrator kan legge til en ny bruker ved å trykke på «Lag ny bruker»-knappen. En bruker kan endres ved å trykke på bildet eller navnet til den aktuelle brukeren. For å slette en bruker benyttes «Slett»-knappen. Denne handlingen kan ikke angres, og krever derfor en bekreftelse fra brukeren. FIGUR 29: VISER EN OVERSIKT OVER ALLE REGISTRERTE BRUKERE. 7.3 Kommunikasjon med brukeren Applikasjonen kommuniserer med brukeren på ulike måter avhengig av hvilket behov det er for interaksjon og meldingens viktighet. Nedenfor er det beskrevet tre ulike måter tilbakemeldinger blir gitt til brukeren. 31 7.3.1 Meldinger som krever interaksjon Meldinger som krever at administrator tar et valg vises som en dialogboks. Dette kan eksempelvis være når en bruker skal slette en aktivitet (se figur 30) eller går ut av en ny aktivitet uten å lagre (se figur 31). I dagsmodus brukes ikke dialogbokser for å kommunisere med brukeren. Dette er fordi dialogbokser krever at brukeren tar et valg, og det er ofte ikke hensiktsmessig å tvinge brukere i Digitus’ målgruppe til å velge. FIGUR 30: DIALOGVINDU SOM MÅ BEKREFTES FOR Å SLETTE EN AKTIVITET. FIGUR 31: DIALOGVINDU SOM MÅ BEKREFTES FOR Å FORLATE EN SIDE. 7.3.2 Meldinger som ikke krever interaksjon Enkelte meldinger kan gi nyttig informasjon uten at det kreves interaksjon fra brukeren. Disse meldingene blir vist som en toast5, og kan for eksempel vise om brukernavn eller passord er skrevet inn feil (se figur 32). Disse meldingene brukes ikke i dagsmodus, da de kun vises en begrenset periode. I Digitus’ målgruppe er det mange som har lese- og skrivevansker, og da er det ikke riktig å bruke meldinger som kun vises i noen sekunder. FIGUR 32: INFORMASJONSMELDINGER SOM SKRIVES UT KREVER IKKE INTERAKSJON. 7.3.3 Meldinger som er informasjon FIGUR 33: GIR NYTTIG INFORMASJON OG KREVER IKKE INTERAKSJON. 5 6 Et vindu som viser tekstlig tilbakemelding til brukeren. Et tekstfelt som viser tekst til brukeren, uten mulighet for redigering. 32 Meldinger som gir nyttig informasjon til brukeren som ikke krever interaksjon, blir vist i form av et TextView6. Dette brukes for eksempel under Innstillinger, for å informere om funksjoner på siden. 8 Brukertest og intervju Vi har gjennomført brukertesting på brukerdelen og administrasjonsdelen. Oppdragsgiver ønsket at det skulle legges størst vekt på brukerdelen, og vi har derfor gjort mer omfattende brukertesting her. Vi har gjort fem uavhengige brukertester av følgende: Brukertest av ikoner Brukertest brukerdel – av oppdragsgiver Brukertest brukerdel – av beboere på omsorgsbolig Brukertest brukerdel – av femåring Brukertest administrasjondelen – av oppdragsgiver (kolleger ved OUS) 8.1 Personvern Datainnsamling er en viktig del av analysen for dagsplanapplikasjonen vår. Vi har derfor jobbet for å sikre at dataene vi samler inn er riktige, relevante og samtidig beskytter personvernet til intervjuobjektene. I personvernlovens 1. paragraf står følgende: «Formålet med denne loven er å beskytte den enkelte mot at personvernet blir krenket gjennom behandling av personopplysninger. Loven skal bidra til at personopplysninger blir behandlet i samsvar med grunnleggende personvernhensyn, herunder behovet for personlig integritet, privatlivets fred og tilstrekkelig kvalitet på personopplysninger.» For å sikre at personvernloven følges har vi valgt å fokusere på følgende punkter: Det er helt frivillig å delta på våre undersøkelser og intervjuer. Informasjon om formålet med datainnsamlingen gis tydelig. Intervjuobjektet kan lese gjennom innlevert data før publisering. Intervjuobjektet har mulighet til å trekke seg på hvilket som helst tidspunkt. Opplysningene skal være korrekte, og eventuelle feil skal korrigeres. Vi har valgt ikke å samle inn opplysninger om navn eller spesifikk alder, slik at ingen kan identifisere individuelle personer ut ifra brukertestene eller spørreundersøkelsene. Da slipper vi også å søke om konsesjon fra datatilsynet. Alle deltakere i våre brukertester/intervjuer har skrevet under på et samtykkeskjema. Skjemaet ligger som vedlegg i denne rapporten. 8.2 Generelt om brukertester En brukertest går ut på å observere hvordan en bruker benytter ulike funksjoner i et system, og er en av de beste metodene for å avdekke svakheter i brukergrensesnittet. Gjennom brukertesting får man tilbakemeldinger fra brukerne av systemet, noe som kan hjelpe med å forbedre løsningen. En svakhet 33 ved brukertesting er at resultatene blir basert på et representativt utvalg av testpersonene sine subjektive ferdigheter og meninger. Når testpersonen utfører oppgavene i testen er det viktig at vi som observerer forsøker å påvirke minst mulig. Dette er for at testpersonene ikke skal miste fokus og utføre oppgaven annerledes enn hvordan de vanligvis ville gjort det. Det er viktig å la testpersonene gjennomføre brukertesten på egenhånd. Hvis de blir usikre eller har spørsmål knyttet til systemet, er jobben vår å få dem til å gjøre det de ville ha gjort om vi ikke var tilstede. Siden vi har jobbet tett med OUS har vi funnet gode testpersoner innenfor vår målgruppe, både til brukerdelen og administrasjonsdelen. Dette gir oss relevante resultater og gjør det lettere å utvikle en løsning som målgruppen kan nyttiggjøre seg av. 8.3 Generelt om våre intervjuer Etter hver brukertest har vi hatt et intervju for å samle inn informasjon fra testpersonene. Fordelen med dette er at det er fleksibelt ved at man kan bygge videre på spørsmål og svar. Når man gjennomfører et intervju er det viktig å legge til rette for den man intervjuer. Vi må gjøre testpersonen oppmerksom på at dette er et intervju og hva det skal dreie seg om. 8.4 Brukertest av prototype på OUS-ansatte Det er svært viktig at brukeren faktisk kan bruke løsningen vi har laget. Derfor har vi latt oppdragsgiver prøve ut løsningen kontinuerlig gjennom utviklingsprosessen. De har faglig kunnskap om brukerens behov, noe som vil gjøre det lettere for oss å lokalisere og fjerne flest mulig tilgjengelighets- og brukervennlighetsproblemer. Dette har også gitt oppdragsgiver oversikt over utviklingen vår og muligheten til å komme med tilbakemeldinger og korrigeringer. I starten av prosjektet gjennomførte de en brukertest vi hadde laget i PowerPoint. Dette var en hi-fi prototype7 med lite funksjonalitet. Denne hadde som hensikt å hjelpe oss med å få et godt utgangspunkt før vi skulle teste på personer i målgruppen vår. 8.4.1 Gjennomføring og resultat Gjennomføringen av brukertesten foregikk ved at våre tre testere fikk fire oppgaver som gikk ut på å utføre fire forskjellige handlinger ved å følge instrukser i dagsplanen. Poenget med testen var at de som brukertestet ikke hadde forutsetninger for å klare oppgavene som ble gitt uten hjelp fra applikasjonen. Hvis de klarte oppgavene ville dette bekrefte, eventuelt avkrefte, om brukergrensesnittet var enkelt og forståelig. 7 En hi-fi prototype inneholder en del funksjonalitet og tilbyr noe interaksjon. 34 FIGUR 34: EKSEMPEL PÅ EN AV OPPGAVENE TESTPERSONENE FIKK. Tilbakemeldingene var hovedsaklig at det visuelle designet var bra og det blir tydelig vist hvilken dag det er. Testpersonene opplevde at det var lett å navigere seg rundt i applikasjonen og synes sjekklistene er satt opp på en enkel måte. Vi fikk tilbakemeldinger om at vi burde benytte plassen bedre uten å la det gå utover layouten. Dette kan gjøres ved å øke bildestørrelsen. Klokkeikonet kunne være litt diffust og gi lite mening for noen. Generelt mente de at ikonene kunne være vanskelig å forstå for noen i målgruppen. De presiserte at brukerne har veldig ulikt modenhetsnivå, og at det må være muligheter for individuell tilpasning. 8.4.2 Konklusjon Etter brukertesten fant vi ut at det vil være fordelaktig å gi hovedinnholdet mer plass. Dette kan gjøres ved å fjerne alle mellomrommene. Ved å gjøre dette vil både tekst og bilder bli mer synlige, samtidig som mindre plass blir kastet bort. 8.5 Brukertest ikoner 8.5.1 Gjennomføring og resultater På bakgrunn av brukertesten med OUS var vi i tvil om ikonene var tydelige nok, og vi valgte derfor å utføre to brukertester for å finne ut hva andre brukere mente om de. I den første brukertesten samlet vi en testgruppe på fem personer bestående av medstudenter som gjennomgikk alle ikonene våre. Resultatene fra denne testen viste at noen av ikonene i appen var tvetydige. Siden det er viktig med gode ikoner valgte vi å utvikle nye versjoner av alle ikonene testerne mislikte. 35 Deretter gjennomførte vi en ny brukertest med personer som var ukjente for oss. Testen ble gjort på nettstedet OptimalWorkshop8, og vi fikk inn totalt 30 svar. De nye ikonene la vi ut som en klikktest. Der kunne testerne trykke på det ikonet de mente passet best til en gitt beskrivelse. Resultatene fra testen kunne vi lese fra et gråskala varmekart. Dette viste tydelig hvor brukerne hadde trykket. Figur 35 viser eksempler på varmekartet. FIGUR 35: EN KLIKKTEST VISTE HVILKET IKONER EN TESTGRUPPE MENTE VAR MEST BESKRIVENDE. DET ER TYDELIG AT IKONENE SOM INNEHOLD BÅDE HUND OG POSE/BÅND BLE FORETRUKKET. 8.5.2 Konklusjon Etter samtaler med oppdragsgiver ble vi enige om at vi skulle gå bort fra ikoner og heller bruke bilder til å beskrive gjøremålene. Det er for eksempel lettere for brukeren å kjenne igjen et bilde av sin egen seng enn et ikon av en seng. Med mer brukergenerert innhold vil administrator kunne ta mer beskrivende bilder og dermed forenkle vedlikeholdet av planen. Fordelen med å ha utført disse brukertestene er at vi har fått bedre innsikt og bredere erfaring i bruk av ikoner. Selv om det ikke brukes ikoner sammen med gjøremålene, er det fortsatt ikoner andre steder i applikasjonen, for eksempel «hjem»- og «slett»-knapper. Det vil senere være ønskelig med brukertesting av disse ikonene, og dermed har vi gitt oss selv et klart fortrinn. 8.6 Brukertest brukerdelen 8.6.1 Gjennomføring og resultater I mars utførte vi en brukertest på to beboere ved en omsorgsbolig i Oslo. Brukerne er innenfor vår målgruppe, men på grunn av personvern kan vi ikke oppgi nøyaktige diagnoser. Vår veileder og en representant fra OUS var med på testen. Brukertesten av brukerdelen ble gjennomført av to potensielle brukere som behersker digitale applikasjoner. Bruk av hjelpemiddelteknologi9 vil derfor ikke være nødvendig i denne omgang. De utførte oppgaver knyttet til de viktigste funksjonene; sjekkliste og handlingskjede. Brukerne fikk like oppgaver. 8 OptimalWorkshop er et nettsted som brukes for å sjekke brukervennlighet. Ikonene ble testet med et verktøy kalt «Chalkmark». 9 Kompenserende teknologi som lar mennesker bruke teknologiske løsninger de ellers ville vært utelatt fra. Eksempler kan være øyestyring og tekst til tale/tale til tekst. 36 FIGUR 36: APPLIKASJONEN BRUKERNE TESTET, HER VISES «HANDLE» MED SJEKKLISTE. Den første oppgaven var å handle matvarer ved hjelp av applikasjonen. Testerne fikk en predefinert handleliste med fire forskjellige produkter som skulle kjøpes. Handlelisten var satt opp som en sjekkliste der varene skulle hukes av etterhvert som de ble funnet. To av prosjektmedlemmene var med i butikken for å observere brukerne. Etter handlingen skulle vannkokeren startes, og mens vannet kokte skulle bordet dekkes. Testpersonene ble trinnvis forklart hva som skulle settes på bordet gjennom en handlingskjede, se figur 37. Etter dette kom det en ny handlingskjede hvor det skulle lages kakao. Til slutt skulle de spille et selvvalgt spill. FIGUR 37: PÅ BILDET VISES HANDLINGSKJEDEN SOM BLE BRUKT FOR Å HJELPE BRUKEREN TIL Å HUSKE HVA SOM SKAL DEKKES PÅ. 37 Person 1 Person 1 er en høytfungerende beboer i omsorgsboligen som er godt vant med smarttelefoner og nettbrett. Derfor gikk vi bare igjennom applikasjonen en gang, slik at det fortsatt skulle være en viss vanskelighetsgrad. Under handlingen i butikken brukte person 1 svært kort tid, men krysset ikke av i sjekkboksene etter hvert som varene ble funnet. Person 1 så bare på bildene for å finne riktig vare. Bortsett fra dette var utførelsen slik vi ønsket. Testeren trykket seg gjennom applikasjonen uten problemer og virket å ha forstått hvordan den fungerer. FIGUR 38: TESTPERSON 1 I BUTIKKEN. TESTPERSONEN ER ANONYMISERT ETTER EGET ØNSKE. Når det skulle dekkes på ble testeren usikker siden det var fire tallerkener på bildet og fem personer som deltok på testen. Dette løste vi ved å utelate en av observatørene. Under pådekkingen glemte brukeren å trykke «fullfør» i starten, og brukte bare miniatyrbildene i handlingskjeden som hjelp. Etter litt veiledning brukte person 1 planen som tiltenkt, altså ved å «fullføre» hver delaktivitet i planen. Under oppgaven «lage kakao» virket det som at handlingskjeden stanset arbeidsflyten. Det var for mange steg og person 1 visste allerede hvordan man lager kakao. Steg blir derfor hoppet over og vi må igjen oppfordre brukeren til å følge handlingskjeden slavisk. 38 Person 2 Person 2 er også en høytfungerende beboer i omsorgsboligen, som er vant med å bruke både mobil og nettbrett i hverdagen. Vi ga derfor i likhet med person 1 kun en kort introduksjon av applikasjonen. Person 2 brukte noe lengre tid i butikken, men fant alt uten store problemer. Brukeren huket ikke av i sjekkboksene etter hvert som varene ble funnet. Videre i testen ble vannkokeren satt på, men testeren skjønte ikke hvor man skulle trykke for å komme seg videre i planen. Vi forklarte dette slik at testeren kunne komme til neste steg. FIGUR 39: TESTPERSON 2 I BUTIKKEN. TESTPERSONEN ER ANONYMISERT ETTER EGET ØNSKE. Dekking av bordet gikk forholdsvis greit, men det ble noe forvirring. Det virket som om person 2 kun brukte bildene for å utføre oppgaven. I tillegg måtte vi stadig minne testeren på å fullføre oppgavene i handlingskjeden. Det ble også forvirring da brukeren skulle hente glass. Testeren hadde hentet kopper tidligere, og tenkte at det allerede var gjort. Den andre handlingskjeden, «lage kakao», gikk bedre. Person 2 skjønte hvor man skulle trykke etter hver utførte deloppgave, og jobbet seg raskt gjennom handlingskjeden. Det var noe usikkerhet rundt hvordan man skulle «fullføre» aktiviteter i handlingskjeden, men etter litt prøving og feiling fant brukeren ut av det. 39 Etter testen lot vi brukeren navigere seg gjennom applikasjonen på nytt. Det er da tydelig at person 2 allerede har fått en mye bedre forståelse. 8.6.2 Intervju Intervjuet fungerte som en avslutning til brukertesten. Her stilte vi spørsmål om gjennomføringen og om hva testpersonene syntes om applikasjonen. Vi valgte å ha få spørsmål for at det skulle være så uformelt og lett for intervjuobjektet som mulig. Under intervjuet deltok de samme som var med på brukertesten. Dette ble gjort for at alle skulle få mest mulig kunnskap om systemet. Vi hadde en som stilte spørsmål og en som skrev ned stikkord mens resten observerte eller kom med innspill. Dette ga oss god kvalitetssikring av gjennomføringen. Det var et åpent, formelt intervju, hvor spørsmålene var laget på forhånd. Dette er nyttig når det er behov for å innhente brukerens oppfatning av systemet. Vi begrenset bruken av lukkede spørsmål, og dermed unngikk vi at intervjuobjektet utelukkende svarte ja eller nei. Intervjuet av person 1 utførte vi under den avsluttende delen av brukertesten. Spørsmålene stilte vi samtidig som vi spilte yatzy for at intervjuet ikke skulle virke så formelt. En ulempe med dette var at person 1 ble ukonsentrert da spillet virket mer spennende enn spørsmålene. Det var derfor litt vanskelig å få utdypende svar selv om vi kom med oppfølgingsspørsmål. Intervjuet av person 2 valgte vi å ta etter vi hadde spilt ludo for å unngå at personen skulle være ukonsentrert. Vi stilte de samme spørsmålene, men det var igjen vanskelig å få utdypende svar. 8.6.3 Konklusjon Resultatene fra begge brukertestene viste svært liknende problemområder, og vi har derfor valgt å samle konklusjonene. I dette avsnittet går vi også gjennom resultatene fra intervjuene. Det viktigste vi oppdaget gjennom brukertestene og intervjuet var at vi fikk bekreftet at applikasjonen vår har en nytteverdi for brukerne og at de er positive til å ta den i bruk. Dette er givende og gir oss motivasjon til å jobbe videre. Brukerne opplevde at det var for lette oppgaver, noe som ødela flyten og kun virket forstyrrende. I butikken haket ikke brukerne av i sjekklisten etterhvert som varer ble funnet. Dette kan komme av flere grunner. Det ble blant annet gitt lite opplæring, og vårt nærvær kan ha skapt stress og usikkerhet. Det er også mulig at brukerne ville imponere oss ved å fullføre oppgavene raskt. Sjekklisten fungerte likevel bra, siden oppgavene kan utføres i vilkårlig rekkefølge. Vi så gjennomgående under testen at det var bildene som ble mest brukt, og testerne så knapt på teksten. Dette til tross for at begge hadde gode leseferdigheter. Hos en av brukerne var bildene til spesielt stor hjelp, da personen var dårlig med tall. Det hjalp testeren at bildene viste antall glass og skjeer som skulle dekkes på. Dette viser at om bildene er gode nok kan de beskrive bedre enn ord. 40 Den viktigste delen vi må ta tak i er enkelhet. Vi har mye å forbedre både på design og brukervennlighet. Navigasjonsmulighetene må forenkles slik at det ikke er tvil om hva som leder hvor. Plasseringen av knapper må være konsistente og tydelige. Brukeren skal ikke være usikker på hva knappene har som hensikt. Vi må også fjerne unødvendig støy som kan forvirre brukeren og prøve å optimalisere fargene for å skape best mulig harmoni i designet. Navigering i applikasjonen skjer uten problemer, og det manøvreres lett mellom dag- og ukesplan. En ulempe er at applikasjonen opplevdes som treg for brukerne. Det tok et par sekunder fra en aktivitet ble trykket til den ble vist. Begge personene er svært positive til å bruke dagsplanen, men ville gjerne hatt mer krevende oppgaver. Med litt mer opplæring ville planen fungert godt. Testerne vil gjerne bli med videre i utviklingsprosessen og har vist stor interesse for å bruke fremtidige løsninger. 8.7 Brukertest med 5-åring FIGUR 40: BRUKERTEST MED ET BARN VISTE AT NAVIGASJONEN FUNGERTE GODT. Vi utførte en liten brukertest på om navigeringen i dagsplanen var enkel for barn. Dette ble gjennomført ved å legge inn bilder av dyr i kalenderen, og det var altså ikke kalenderfunksjonaliteten som ble testet. Navigering virket veldig intuitivt for barnet, og det var ingen større problemer som ble oppdaget. For å få bildet stort trykket barnet i venstremenyen, og trakk den opp og ned for å se flere elementer. Femåringen syntes det var veldig gøy å bruke, fordi barnet selv kunne velge hvilke 41 dyr som skulle vises. Dette var en vellykket test som viste at personer med liten/middels erfaring med nettbrett kan overføre kunnskapene sine til vår løsning. 8.8 Brukertest admindelen 8.8.1 Gjennomføring og resultater Administrasjonsdelen ble brukertestet av to ansatte tilknyttet OUS, som er vant med å sette opp analoge planer. Deres teknologiske ferdighetsnivå kan kategoriseres som lavt, men begge var kjent med smartenhenter. For å teste om applikasjonen er lett å bruke valgte vi å kun gi opplæring til en av testerne. Brukertesten bestod blant annet av å legge til, endre og slette aktiviteter. Til slutt ble det gjennomført et uformelt intervju om brukeropplevelsen. Begge brukerne slet med integrerte funksjoner på nettbrettet, blant annet hadde de problemer med å lukke tastaturet etter bruk. Dette gjøres enten ved å trykke «Ok» på tastaturet eller trykke den fysiske tilbake-tasten på nettbrettet. Brukerne prøvde å trykke på «hjem»-ikonet i applikasjonen for å lukke tastaturet, noe som førte til at dagsplanen ble avsluttet. Dette skapte stor frustrasjon for brukeren, fordi de måtte logge inn på nytt. Brukerne hadde også problemer med å få bort en liste over kjørende applikasjoner. Denne dukket opp da testpersonen kom nær en av de trykkfølsomme knappene på nettbrettet. Testperson 1 syntes det var veldig enkelt å navigere i applikasjonen. Brukeren opplevde at oppgavene var enkle, og testeren er svært positiv til nyttigheten av dagsplanen. Videre fortalte brukeren at applikasjonen kan forenkle dagen for bistandsytere ved at man slipper å skrive ut og laminere bilder. Personen mener det ikke skal mye opplæring til for å bruke planen. Likevel var brukeren usikker på hvordan man administrerer nedtelleren, og ønsker mulighet for å skrive inn tall manuelt. Med nåværende løsning må man trekke tallene opp eller ned for å stille nedtelleren. Nedtelleren er vist i figur 41. FIGUR 41: MAN MÅ TREKKE I TALLENE FOR Å ENDRE TID FOR NEDTELLEREN. Testperson 2 var veldig positiv til at det var raskt å opprette aktiviteter. Brukeren slet med å finne igjen gjøremål som nettopp har blitt opprettet, siden de havner nederst på dagen. Planen var allerede full, så brukeren måtte scrolle nedover på dagen for å finne aktiviteten. Brukeren ønsket å få en tydeligere indikasjon på om det er flere «usynlige» aktiviteter i aktivitetslisten. Brukeren forstod ikke umiddelbart hvor man må trykke for å komme til administrasjonssiden, men presiserer at dette kun har med opplæring og hva man er vant med å gjøre. 42 Begge brukerne forstod opprettelse og endring av hjelpelister godt. En av brukerne klarte ikke umiddelbart å gjøre om fra handlingskjede til sjekkliste, men oppdaget etterhvert informasjonsknappen som står plassert like over hjelpelisten. Brukeren trykket på denne og fikk opp en pop-up-melding med informasjon om forskjellen mellom handlingskjede og sjekkliste. Etter å ha lest denne endret brukeren enkelt fra handlingskjede til sjekkliste. Personen som ikke fikk opplæring stoppet litt opp på oppgaven der en sjekkliste skulle settes opp. Brukeren forsøker å legge til bilder FIGUR 42: FOR Å TA BILDE MÅ MAN TRYKKE PÅ NUMMER 1. for delaktiviteter ved å trykke på UNDER TESTEN TRYKKET BRUKEREN PÅ 2. bilderammen (nummer 2 i figur 42). For å legge til bilder må man trykke på kameraikonet (nummer 1 i figur 42). Brukeren fant ikke «administrasjonsknappen» umiddelbart, men logget inn uten problemer etter å ha funnet den. Da brukeren skulle legge til en aktivitet i planen trykket testeren «endre plan» i menyen uten at noe skjedde. Årsaken til dette var at «endre plan» allerede ble vist på skjermen. Testeren fant ut hvordan man legger inn aktiviteter uten vanskeligheter. Under testen var det tydelig at innføringen hadde stor betydning for resultatet. Brukeren som fikk opplæring utførte oppgavene vesentlig raskere, og opplevde få problemer under testingen. Testpersonene så ut til å slite mer med nettbrettet enn selve applikasjonen. Gjennomføringen av brukertesten var vellykket, og brukerne presiserer at oppgavene ville blitt utført raskere neste gang. Begge testerne var positive til å bruke dagsplanen, og ser frem til en endelig løsning. 8.8.2 Konklusjon På sikt er målet er at man ikke skal trenge opplæring for å bruke applikasjonen. Frem til dette målet er nådd må man nok ha en kort innføring i applikasjonens funksjoner og muligheter. Problemet som gikk mest igjen var fjerning av tastaturet etter bruk. Dette vil variere fra nettbrett til nettbrett, men er mulig for oss å gjøre lettere. Vi ser for oss at tastaturet kan forsvinne når man trykker utenfor tekstfeltet. Brukertesten avdekket at de integrerte hjelpemidlene på nettbrettet var forstyrrende. For å løse dette kan admindelen låses slik at man ikke kan komme til brukerdelen ved feiltrykking. Det er kjedelig å måtte logge inn på nytt dersom man trykker feil. Brukertesten viste at nedtelleren kunne vært mer intuitiv, noe som kan gjøres ved å legge til mulighet for å skrive inn tall ved hjelp av tastaturet. Brukeren trykket på bildet i hjelpelisten for å ta bilde til en delaktivitet. For å tydeliggjøre at dette ikke er en knapp, men kun et ikon for å vise at det enda ikke er lastet opp et bilde, kan kanten rundt markeres med rødt. 43 8.9 Endringer som følge av brukertest Brukertesting har vært en viktig del av vårt arbeid gjennom hele prosjektperioden. På bakgrunn av testresultatene har vi gjort mange endringer som har ført til en mer brukervennlig og effektiv løsning. 8.9.1 Brukertest av prototype - brukerdel Etter brukertesten av prototypen med oppdragsgiver ble det gjort store endringer. Vi fikk tilbakemeldinger på at vi burde utnyttet plassen bedre uten å la det gå ut over layoutet. Selv følte vi at både ukesmodus og dagsmodus i applikasjonen virket lite dynamisk og det var alt for sterk fargebruk (se figur 43). Vi valgte derfor å endre hele designet (se figur 44). FIGUR 43: PROTOTYPE-DESIGN. FIGUR 44: DESIGN FOR FERDIG LØSNING. Endringene førte til et langt penere og mer levende design. Ved å flytte hovedinnholdet nærmere kantene og samtidig fjerne de store mellomrommene, ble plassen utnyttet bedre. Aktivitetsfeltene fikk avrundede hjørner og ble dermed mer dynamiske. De sterke fargene valgte vi å fjerne. De virket tunge og var ubehagelige å se på, derfor fant vi mer harmoniske fargenyanser med mørke og lyse farger. 8.9.2 Brukertest av ikoner Som nevnt i konklusjonen for denne brukertesten gikk vi bort fra ikoner som bilder. Vi valgte å forstørre aktivitetsfeltet slik at bilder og tekst blir tydeligere. Vi åpnet også for at bistandsytere kan velge bilder selv. 44 8.9.3 Brukertest av brukerdel Brukertesten med brukere fra omsorgsboligen førte til flere endringer i dagsmodus. Under listes de viktigste endringene opp. Sjekkliste Sjekklisten ble flyttet fra høyre til midt på siden (se figur 45), slik at den blir vist som hovedinnhold. Dette fjernet mye støy og siden ble mer oversiktlig for brukeren. FIGUR 45: SJEKKLISTE FØR OG ETTER ENDRINGER. Handlingskjede Det ble også avgjort at det måtte være mulig å fjerne kontekstmenyen i handlingskjeder, noe vi implementerte kort tid senere. Mange brukere vil oppleve denne menyen som forstyrrende, noe som kan føre til at de mister flyten i aktiviteten. Når menyen er fjernet, trenger brukeren kun å forholde seg til ett bilde av gangen. Figur 46 viser en handlingskjede med og uten kontekstmeny. Menyen kan skrus på av administratorer dersom brukeren ønsker det. FIGUR 46: HANDLINGSKJEDE FØR OG ETTER ENDRINGER. Knapper Vi endret også plassering av knapper siden «utført»-knappen var forvirrende og dårlig plassert. Vi la også til en «angre»-knapp, og ga de farger som er enkle å forstå. Grønn for «ferdig», rød for «ikke ferdig». Endringen vises i figur 46. 45 Skalering av bilder Under brukertesten oppdaget vi at testerne syntes innlasting av aktiviteter tok lang tid. Innlasting av bilder er en krevende operasjon, og applikasjonen består av mange bilder. Vi forsøkte å fjerne alle bilder, noe som resulterte i at applikasjonen ble meget rask. Derfor konkluderte vi med at bildestørrelsen måtte reduseres for å oppnå en god brukeropplevelse. For å skalere bilder brukte vi Bitmap-funksjonen createScaledBitmap i Java. Her får man mulighet til å skru på filter. Eksempel på hvordan filter ser ut er vist i figur 47. Dersom man skrur på filter skal kanter bli jevne, uten blir de blokkaktige og pixelerte. Filter gir som regel best bilder10. For å finne det rette forholdet mellom filstørrelse og kvalitet er to forskjellige komprimeringer utprøvd. Testen ble utført på en Samsung Galaxy Tab SM-T700, og bildene ble tatt på stativ for å sikre et så likt bilderesultat som mulig. FIGUR 47: TIL VENSTRE: UTEN SKALERING. MIDTEN: SKALERING MED FILTER. TIL HØYRE: SKALERING UTEN FILTER. Alternativ 1 (uten skalering) gav en bildefil på 2030 KB, og bildestørrelsen var 3264 px * 1836 px. Vi fant ut at dette ga den klart beste bildekvaliteten, men tok lengst tid å laste inn. Alternativ 2 og 3 (med skalering) gav en bildefil på mellom 365-396 KB, og bildestørrelsen var 1000 px * 563 px. Alternativ 2 (med filter) hadde nest best kvalitet, og var den raskeste å laste inn. Fargene var ikke like klare som alternativ 1, og bildet var også litt uskarpt. Alternativ 3 (uten filter) var midt i mellom de andre alternativene på innlastingstid. Bildet hadde dårligst bildekvalitet, og hvis man ser nøye på kabelen ser man at det er mye mer pikslete enn de andre alternativene. Vi valgte å gå for alternativ 2, som gir god kvalitet og lav filstørrelse. Vi mener det er viktigere at appen laster raskt enn at bildekvaliteten er på topp. Samtidig er det en fordel at bildene er mindre, for da blir ikke nettbrettets lagringskapasitet brukt opp så fort. 8.9.4 Brukertest av administrasjonsdel Brukertesten av administrasjonsdelen førte til flere endringer som forenklet adminmodus. Forenklet fjerning av tastatur Begge testerne slet med å få bort tastaturet når de var ferdig med å bruke det. Vi har derfor sørget for at det er mulig å trykke utenfor tastaturet for å fjerne det. 10 http://stackoverflow.com/questions/2895065/what-does-the-filter-parameter-to-createscaledbitmap-do 46 Forbedret ikon i bilderamme Vi endret ikonet i bilderammene i hjelpelisten for å unngå forvirring. Dette gjorde vi ved å legge til en rødfarge på bilderammen(e) og ikonet i midten. Meningen var å vise at det ikke kan klikkes der for å legge til et bilde, men dette ga et inntrykk av at det var gjort en feil eller at det ikke var mulig å legge til et bilde. Vi gikk derfor tilbake til det gamle ikonet. «Info»-knappen for hjelpeliste var vanskelig å oppdage for testerne. Derfor flyttet vi på den og gjorde den tydeligere med en beskrivende tekst. 47 9 Utviklingsprossen I dette kapittelet vil vi forklare og vise prosessen fra skissestadiet til endelig løsning. Her beskrives hovedsaklig skissering, prototyping og implementering. Vi tar også for oss arbeidsmetoder, verktøy og brukertesting. 9.1 Smidig utviklingsmetodikk Smidig utvikling har de siste årene blitt en svært populær utviklingsmetodikk, særlig innenfor IT. Den tar høyde for at de funksjonelle kravene til systemet kan endres underveis i utviklingsperioden. Dette gjør det lettere å utføre endringer og kan redusere risikoen for større feil og mangler. Selv om vi hadde fastsatte krav fra starten, dukket det opp flere krav underveis. Ved å bruke elementer fra Scrum11 har det vært enkelt å tilpasse seg endrede krav fra oppdragsgiver. Metodene går ut på å utvikle systemet bit for bit og gi oppdragsgiver hyppige leveranser gjennom prosessen. Dette inkluderte oppdragsgiveren i mye større grad, og ga dem muligheten til å være med på å forme utviklingsprosessen. Hovedfordelen med smidig utvikling er at vi får testet løsningen gjennom hele utviklingsprosessen. Vi har jobbet i iterasjoner på to uker med totalt ti sprinter12. Annenhver fredag har vi fullført en iterasjon. Mellom hver sprint har vi vist fram arbeidet som er gjort for oppdragsgiver, slik at vi unngikk å utvikle noe annet enn det som var ønsket. For oss var det viktig å ha en tett dialog med oppdragsgiver, og gjennom hyppige møter kunne vi få tilbakemeldinger på fremgangen og rette oss etter deres ønsker. Vår product backlog13 har vært lagret i et prosjektstyringsverktøy kalt Redmine. For hver sprint satte vi over oppgaver fra produktkøen til en sprint backlog14. Hvilke saker som ble prioritert for hver sprint ble bestemt i samarbeid med oppdragsgiver. I starten var det mest rettet mot brukerdelen av applikasjonen, siden denne skulle brukertestes først. Hver sprint har hatt mellom 15-60 saker, avhengig av kompleksitet og omfang. I starten kunne vi ikke Android-programmering, og det var derfor få saker i hver sprint. Utover i prosessen økte antall saker for hver sprint. Vi hadde daglige stand up-møter innad i gruppen hvor vi presenterte hva vi hadde gjort det siste døgnet for hverandre. Dette gjorde at alle fikk større faglig tyngde, og vi fikk diskutert mulige løsninger på utfordringer vi hadde. 11 Scrum er en smidig utviklingsmetodikk som i hovedsak brukes for å utvikle informasjonssystemer. En sprint er et bestemt tidsaspekt, vanligvis mellom 1-4 uker. 13 Product backlog er en liste over all funksjonalitet som skal utvikles. 14 Sprint backlog er en liste over all funksjonalitet som skal utvikles i en bestemt sprint. 12 48 9.2 Utviklingsverktøy I denne delen tar vi for oss verktøyene vi har benyttet til planlegging, prosjektstyring og utvikling. 9.2.1 Android Studio Android Studio har blitt brukt for å utvikle applikasjonen. Programmet har WYSIWYG15-editor, som vil si at man umiddelbart kan se resultatet fra utvikling av brukergrensesnittet. Kodefeil blir markert og det tilbys syntaksfremheving. Lint, som tilbyr verktøy for å optimalisere ytelse, brukervennlighet, versjonskompabilitet og unngå andre problemer, er innebygget. 9.2.2 Redmine For å holde styr på arbeidsutviklingen har vi benyttet Redmine som prosjektstyringsverktøy. Redmine har funksjoner som veikart, kalender og dokumentoversikt. Redmine har blitt brukt daglig, og har vært til stor hjelp for oss gjennom hele prosjektperioden. Vi mener at dette har bidratt til en effektiv arbeidsrutine i hovedprosjektet. Redmine er satt opp på en server hjemme hos en av prosjektdeltakerne. Programmet er brukt til å logge tid, holde oversikt over hvilken funksjonalitet som mangler, og hvem som har ansvaret for ulike arbeidsoppgaver. Oppgaver blir tilordnet ulike milepæler, som det kan genereres et gantt-diagram fra. Dermed har det vært lett å holde oversikt over fremgangen i prosjektet. 9.2.3 Git Git er brukt som versjonskontrollsystem. Git tar vare på all historikk, slik at det er enkelt å gå tilbake til tidligere versjoner. Et Git-tillegg er installert på Redmine-serveren, slik at man kan se all kildekode direkte fra prosjektstyringsverktøyet. Man har også mulighet til å lukke saker i Redmine direkte fra Android Studio via Git. 9.2.4 Draw.io For å designe databasemodellen har vi benyttet draw.io. Dette er et modelleringsverktøy som gjør det enkelt å opprette databasemodeller, slik at vi har fått oversikt over hva som skal lages. Verktøyet er brukt hver gang vi har oppdatert databasemodellen i applikasjonen. 9.2.5 DB Browser for SQLite DB Browser for SQLite er brukt for å utforske databasen som brukes i applikasjonen. Programmet er nyttig ved feilsøking, fordi man har mulighet til å se all informasjon som er lagret i databasen. 15 What You See Is What You Get. 49 9.2.6 Google Dokumenter Vi har benyttet oss av Google Dokumenter for at flere på gruppen kunne skrive på det samme dokumentet samtidig. Dette har bidratt til en effektiv arbeidsflyt der vi slapp å bekymre oss for å overskrive hverandres arbeid. Dokumentene blir automatisk lagret i Google sin lagringstjeneste Google Drive. 9.2.7 Dropbox Alle på gruppen har tidligere brukt Dropbox, og det falt derfor naturlig å bruke det som skylagringstjeneste. Ved å bruke Dropbox har vi hatt tilgang til felles kataloger og filer til enhver tid, både på PC og mobil. Dropbox regnes som en relativ trygg lagringsplass, men vi har likevel jevnlig tatt lokal backup av informasjonen. 9.2.8 Adobe Creative Cloud Adobe Creative Cloud er en pakke med ulik programvare som kan brukes for å utforme grafiske elementer og brukergrensesnitt. Vi benyttet Adobe Photoshop for å designe noen av de første digitale skissene. Photoshop er også brukt for å finne ut hvilke fargekombinasjoner som passer sammen. Adobe Illustrator ble brukt for å utvikle ikonene som brukes i applikasjonen. 9.2.9 Microsoft Powerpoint Powerpoint er brukt til å lage prototyper av applikasjonen vår. Programmet er et godt prototypingsverktøy fordi man kan gjøre sidene interaktive med hyperlenkefunksjonalitet. 9.2.10 Prosjektdagbok Vi har brukt en prosjektdagbok til å loggføre arbeidet vi har gjort i prosjektperioden. I denne har vi hver dag skrevet ned hva den enkelte har gjort. Viktige beskjeder og gjøremål ble lagt inn her. 9.3 Fra skisse til ferdig løsning I denne delen av dokumentasjonen tar vi for oss hvordan applikasjonen har utviklet seg, fra skisser til ferdig programmert løsning. 9.3.1 Idémyldring I idémyldringsfasen lette vi på nettet og i applikasjonsbutikker for å finne ut hvilke løsninger som allerede eksisterte. For å utvinne tanker og ideer til hvordan løsningen skulle være brukte vi et tankekart. All relevant informasjon ble skrevet opp, og dette dannet en basis for det videre arbeidet. Ved å samle alle tanker i et tankekart var det enkelt å omdanne disse til forslag til ulike utforminger. 50 FIGUR 48: TANKEKART SOM BLE LAGET TIDLIG I UTVIKLINGSPROSESSEN. 9.3.2 Utviklingsprosess for ukesmodus Vi skisserte mange ulike alternativer for å finne den beste løsningen for ukesmodus. I ukesmodus skal alle aktiviteter for en bestemt uke vises, og vi var derfor nødt til å finne ut hvordan vi kan utnytte plassen best mulig. Vi startet å skissere på et stort whiteboard for at alle på gruppen skulle kunne tegne og komme med innspill samtidig. Poenget var å finne de beste løsningene for hvordan aktivitetene skulle organiseres, og det var uvesentlig hvordan designet ellers skulle være. I figur 49 vises de designutkastene vi ønsket å jobbe videre med. FIGUR 49: VISER NOEN UTKAST TIL OPPSETT. 51 FIGUR 50: VISER DEN FØRSTE LO-FI PROTOTYPEN VI UTVIKLET FOR UKESMODUS. Ideen vi var mest fornøyd med utviklet vi videre til en lo-fi prototype. Denne vises i figur 50. Poenget med å lage en prototype så tidlig i prosessen var for å finne ut om dette er en løsning som kan videreutvikles eller ikke. Prototypen ble laget ved at vi tegnet en ramme rundt hver ukedag, og plasserte ikoner med tilhørende tekst på innsiden. Ikonene ble funnet via Google bildesøk, og alle er lisensiert på en måte som gjør at vi har lov til å bruke de16. Vi viste fram prototypen for oppdragsgiver, som mente vi var på rett spor. De synes det var litt vanskelig å si mye om løsningen fordi den var så uferdig, men de kunne se et potensiale i ideen. Selv om oppdragsgiver var positiv til vår første prototype, slo vi oss ikke til ro med dette. Samtidig som vi utviklet en digital prototype av papirprototypen, lagde vi også en annen variant. Vår første prototype hadde aktivitetene plassert under hverandre. Vi ønsket å prøve å ha aktivitetene etter hverandre i stedet, for å tydeliggjøre hvilken rekkefølge aktivitetene skal utføres i. Både den første prototypen og den nye varianten lagde vi digitale skisser av i Photoshop. Disse er vist i figur 51. 16 Ikonene er markert som «lov å bruke kommersielt, også i endret form». 52 FIGUR 51: TIL VENSTRE VISES EN DIGITAL VERSJON AV DEN FØRSTE PROTOTYPEN. TIL HØYRE ER AKTIVITETENE PLASSERT ETTER HVERANDRE FOR Å TYDELIGGJØRE HVILKEN REKKEFØLGE DE MÅ UTFØRES I. Vi mente at den første prototypen var mer oversiktlig enn å vise aktivitetene etter hverandre. I tillegg er brukeren vant med å se aktiviteter under hverandre, så vi valgte å fokusere på den første prototypen. Vi laget en digital prototype av papir-prototypen i PowerPoint. Her fokuserte vi på å skape et harmonisk design som var fint å se på. For å tydeliggjøre hvilken dag det er i dag, brukte vi en stor toppmeny som buer ned mot «i dag». Denne prototypen brukertestet vi på oppdragsgiver. De var svært fornøyd med løsningen, så vi valgte derfor å forkaste alle andre alternativer. FIGUR 52: VISER UKESMODUS I APPLIKASJONEN. Den nye prototypen satset vi fullt på, og valgte derfor å programmere den i Android Studio. Vi beholdt det samme designet, men gjorde noen mindre justeringer. Blant annet fjernet vi den blå buen, da den tok veldig stor plass. I stedet viser vi hvilken dag det er ved hjelp av en blåfarge bak «i dag». Av andre merkbare endringer er plassbruken effektivisert ved at tomrom er fjernet. I tillegg er det lagt til muligheter for å navigere mellom uker og en nøkkel for å logge inn i administratormodus. 53 9.3.3 Utviklingsprosess for dagsmodus FIGUR 53: VISER FIRE ULIKE SKISSER FOR DAGSMODUS. I dagsmodus har vi forsøkt mange forskjellige måter å vise aktiviteter på. Fire av alternativene er vist i figur 53. Gjennomgående for alle variantene er at sjekklisten får større plass enn hovedaktiviteten. Av ulikheter er det verdt å merke seg skissen øverst til høyre. Vi forsøkte å plassere listen over aktiviteter for en bestemt dag på toppen av skjermbildet. Tanken bak dette er at det ligner på en slags «kø-ordning», der de første aktivitetene må gjennomføres før de som kommer senere i listen. Dette ble ikke tatt med videre, da vi ønsket å ha plass øverst for å implementere tilleggsfunksjonalitet. Vi ønsket å planlegge frem i tid, og da ville det være dumt å bruke toppmenyen til dette. Ved å holde toppmenyen ren beholder vi en grunnstruktur det er lett å bygge videre på senere. I skissen nederst til venstre prøvde vi å plassere listen over aktiviteter i midten av skjermbildet. Dette var uheldig fordi det skapte et skille mellom hovedaktiviteten og delaktiviteter. Det er viktig å tydeliggjøre for brukeren at delaktivitetene henger sammen med hovedaktiviteten. Nederst til høyre vises designet vi brukte videre. Den har en ryddig struktur der delaktivitetene er plassert nærme hovedaktiviteten. I tillegg har den stor plass til tilleggsfunksjonalitet i toppmenyen. 54 FIGUR 54: VISER POWERPOINT-PROTOTYPE TIL VENSTRE, FERDIG APPLIKASJON TIL HØYRE. Designet vi foretrakk ble opprettet i Android Studio. Gjennom brukertesting og samtaler med oppdragsgiver kom vi fram til designet som vises til høyre i figur 54. Blant annet er det lagt til en handlingskjede i stedet for sjekkliste. Knapper for å fullføre/fjerne fullført er lagt til. Det er også funksjonalitet for å bytte uke og ringe etter hjelp fra applikasjonen. Designmessig er hovedforskjellen at innholdet har fått større plass, blant annet ved at den store bakgrunnen fra prototypen er erstattet med innhold. I prototypen er det et tydelig skille mellom hoved- og delaktiviteter, mens de i den ferdige løsningen er knyttet nærmere til hverandre. Den store tilbakeknappen ble også erstattet med et mindre «hjem»-ikon. Tidsrepresentasjon Oppdragsgiver ønsket ikke at applikasjonen skulle basere seg på tid. Likevel kan det være nyttig for brukeren å vite om en aktivitet skal utføres på morgenen, midt på dagen eller på kvelden. Vi prøvde derfor ulike måter å representere tid på uten at man trenger å forholde seg til tid. De fleste variantene inneholdt en pil som beveget seg fra topp til bunn, avhengig av når på døgnet man ser den. Vi forsøkte også å bruke sol og måne. FIGUR 55: SKISSEN VISER TIDSREPRESENTASJON HELT TIL VENSTRE. 55 Tidsrepresentasjon krever at brukerne må utføre en aktivitet på en bestemt tid på døgnet. Oppdragsgiver var usikker på om dette vil være til hjelp eller kun være støy for brukerne, og vi jobbet derfor ikke videre med denne ideen. Likevel mener vi at tidsrepresentasjon kan være nyttig for enkelte brukere, og ser for oss at dette bør være med i en ferdig løsning. Ved å gi brukeren et hint om når en aktivitet skal utføres, kan det være lettere å planlegge dagen. Man kan da enkelt se hvilke tider man ikke har noen bestemte gjøremål. Vi ser for oss at tidsrepresentasjon kan innføres som et frivillig tillegg som skrus på ved behov. Det forutsetter at funksjonen utvikles på en slik måte at den passer naturlig inn i applikasjonen og ikke tar opp for stor plass. FIGUR 56: ULIKE FORSLAG FOR TIDSREPRESENTASJON. 9.3.4 Utviklingsprosess for administrasjonsmodus Oppdragsgiver hadde i utgangspunktet få meninger om hvordan forsiden skal være i adminmodus. Det eneste kravet var at det må finnes en hensiktsmessig måte å administrere brukerens plan på. En av våre første skisser av adminforsiden inneholdt en oversikt over de viktigste funksjonene i toppen og en månedsoversikt under. Til venstre hadde vi en meldingsboks, der hensikten var å lagre FIGUR 58: ADMINMODUS MED LINKER TIL MEST BRUKTE HANDLINGER ØVERST. FIGUR 57: ADMINMODUS MED MENY PÅ VENSTRE SIDE. 56 meldinger fra bistandsytere til andre bistandsytere. Dette utkastet vises i figur 57. Tanken bak denne skissen var å skape et kontrollpanel der alle tilgjengelige funksjoner vises. Ulempen var at det ikke er noen meny her. Det gjør at man er nødt til å gå tilbake til kontrollpanelet mellom hver funksjon som skal brukes. Derfor la vi til en meny på venstre side og flyttet «beskjeder» nederst på siden. Dette vises i figur 58. Menyen gjør det mulig å navigere til alle de ulike sidene i adminmodus. I tillegg er de mest brukte alternativene flyttet til toppen for enkel tilgang. Månedsoversikten er flyttet fra forsiden til menyalternativet «Planlegg». I den videre utviklingen bestemte vi oss for å flytte månedsoversikten tilbake til forsiden. Kravet fra oppdragsgiver var at det skal være lett å administrere aktivitetene, og vi mente derfor det var riktig å rydde bort meldinger og andre funksjoner fra forsiden. Meldinger tok vi ikke med videre i utviklingen. Både oppdragsgiver og vi mente det var en flott funksjon, men at det ikke har høy prioritet med det første. På den nye forsiden fylles mesteparten av plassen opp med en oversikt over aktiviteter for en bestemt tidsperiode. Man har mulighet for å velge om man vil vise aktiviteter for en dag, en uke eller en måned. FIGUR 59: OVERSIKT OVER EN BESTEMT MÅNED I ADMINMODUS. Vi valgte å bruke figur 59 som utgangspunkt for å lage en digital skisse. Den første digitale skissen vises i figur 60. Vi valgte å kun lage en ukesoversikt for enkelthetens skyld. I dagsmodus brukes ukesoversikt, og vi vurderer det som hensiktsmessig at man kan se gjøremålene på samme måte som i dagsmodus. Månedsoversikten er ikke tatt med videre i utviklingen fordi vi har fokusert på at ukesoversikten skal være best mulig. Likevel mener vi at månedsvisning bør implementeres på et 57 senere tidspunkt, da den gir administratoren bedre oversikt og gjør det lettere å planlegge aktiviteter lenger frem i tid. I skissen brukes store piler for å navigere mellom ulike uker. FIGUR 61: SKISSE DER UNØDVENDIGE MELLOMROM ER FJERNET. FIGUR 60: EN AV DE FØRSTE DIGITALE SKISSENE FOR ADMINMODUS. Under ukesoversikten innførte vi to nye knapper; «Hent mal» og «Lagre uke som mal». Dette ble lagt til for å forenkle vedlikehold av dagsplanen. Det er meningen at man skal kunne lagre hele uker som maler, slik at man enkelt kan lage identiske ukeplaner. Da slipper bistandsytere å sette opp aktiviteter som er like hver eneste uke, og kan fokusere på å tilpasse den enkelte uken. Figur 61 er en videreutvikling av figur 60. Her utnyttes plassen bedre ved at ukesvisningen går helt ut i kantene. Pilene for å navigere mellom ukene er fjernet, fordi de tok opp for stor plass. Menyen er gjort firkantet for å gi et mer seriøst uttrykk. Ukemaler FIGUR 62: UKEMALER KAN EFFEKTIVISERE VEDLIKEHOLD AV DAGSPLANEN. 58 Skissene som inneholdt maler i adminmodus (figur 60 og 61) ble vist til oppdragsgiver. De var svært positive til løsningen, da det er et viktig mål med applikasjonen at bistandstid skal brukes bedre. Ved å frigjøre tid fra vedlikehold av dagsplaner kan mer tid brukes på sosiale aktiviteter. Vi jobbet derfor videre med ideen om maler. Figur 62 viser hvordan vi så for oss at maler kan implementeres. Man kan hente en bestemt aktivitet, en hel dag eller en uke. Maler er ikke implementert i den digitale løsningen enda, men det er et viktig tillegg som må på plass for at administrasjonsdelen skal være effektiv. Endre plan Oppdragsgiver ønsker at det skal være enkelt og effektivt å legge til gjøremål. I en tidlig skisse for opprettelse av aktiviteter satt vi opp en side med de ulike elementene vi ønsket å ha med. Dette ukastet vises i figur 63. Med denne skissen prøvde vi å finne ut hvordan de ulike funksjonene kunne plasseres og vises på en hensiktsmessig måte. Oppsettet vi kom fram til virket rotete fordi det var for mange elementer FIGUR 63: SKISSE FOR Å ENDRE/LEGGE TIL AKTIVITET. og de virket tilfeldig plassert. Derfor valgte vi å fjerne de som ikke skulle utvikles i prosjektperioden, og heller fokusere på å forbedre de vi skulle ha med videre. Tankene bak hakene var at de skulle indikere om hjelpebetingelser som sjekkliste, handlingskjede og nedteller var lagt til i oppgaven. Endringene vi gjorde resulterte i skissen vist i figur 64. Endringene frigjorde mye plass og ga oss mulighet til å eksperimentere mer med plasseringen. Det var først meningen at hver hjelpebetingelse skulle lages i et eget pop-up-vindu, men vi fant senere ut at dette var unødvendig og ga for mange tilleggssider. Vi gikk derfor bort i fra det og begynte å tenke på om det var mulig at alt opprettes på samme side. Figur 65 viser hvordan vi løste det. FIGUR 64: FJERNER ELEMENTER FRA FORRIGE DESIGN. Skissen viser hvordan vi valgte å plassere elementene. Det ga mye plass på høyresiden, og vi valgte derfor at sjekklister og handlingskjeder skulle opprettes der. I tillegg la vi til en tekstboks for beskrivelse av aktiviteter og en bryter for å skru av og på nedtelleren. Figur 66 viser hvordan siden ser ut i applikasjonen. FIGUR 65: VIDEREUTVIKLING AV FIGUR 59. 59 FIGUR 66: VISER HVORDAN DEN ENDELIGE «LEGG TIL AKTIVITET»-SIDEN SER UT. 9.3.5 Utvikling av logo Det har vært viktig for oss å ha en logo som gjenspeiler produktet vårt. Vi har derfor brukt en del tid på å utvikle en logo vi mener står i stil til løsningen vi har utviklet. Logoen er viktig for at brukere skal finne applikasjonen vår blant titalls andre apper som gjerne ligger lagret på et nettbrett. FIGUR 67: VISER NOEN AV PAPIRSKISSENE FOR LOGO. 60 I startfasen ville vi få med så mange elementer vi klarte for å vise hva Digitus representerer. De viktigste aspektene vi ville logoen skulle få frem var at produktet vårt var både en kalender og en planlegger. Navnet på produktet mente vi også det var viktig å få frem. I figur 67 vises noen av papirskissene vi lagde. Vi var veldig opptatt av å få frem at man «setter sammen sin egen hverdag». Dette prøvde vi å representere ved å bruke sammenkoblede puslespillbiter. Som vist i figur 68 inneholder logoene det meste av det vi ønsket å få med. Likevel var vi ikke fornøyde med logoene. Selv om de hadde alle elementene vi ville ha med, gjenspeilet de ikke produktet vårt, og vi skjønte derfor at vi måtte tenke annerledes. Vi forsøkte å overføre tankegangen vi hadde fra utviklingsprosessen med løsningen vår ved å forenkle. I applikasjonen starten vi med å ta med mest mulig, men gjennom arbeidsprosessen la vi mer vekt på enkelthet. FIGUR 68: FIRE FORSKJELLIGE DIGITALE LOGOER BLE TESTET UT. Vi bestemte oss derfor for å starte på nytt, og begynte igjen på skissestadiet. Vi ville fortsatt ha med navnet vårt i logoen og tok derfor utgangspunkt i det. Vi ønsket at logoen skulle være så enkel som mulig, derfor forenklet vi den kraftig. I figur 69 vises de nye logoene. FIGUR 69: FIRE NYE LOGOFORSLAG SOM ER KRAFTIG FORENKLET. Det ligger mye mer arbeid i utviklingen enn det som vises her, men man kan se hvordan vi endret formen på logoen og la på en hake over den siste i-en. Denne haken er vår måte å representere at en aktivitet er fullført i løsningen vår. Meningen er kanskje litt dyp, men den viser på en enkel designmessig måte at produktet vårt handler om å fullføre noe. 61 Det neste stadiet var å finjustere logoen og finne riktig fargekombinasjon. Under kan man se noen av utkastene fra utviklingen. FIGUR 70: VISER ULIKE FARGEVARIANTER LOGOEN BLE TESTET MED. Haken vi brukte over i-en følte vi kunne minne litt om en pipe, derfor gjorde vi den spissere. Ved å gjøre den spissere mener vi den blir mer estetisk riktig for løsningen vår, selv om det finnes «fullført»-haker i alle slags former. Fargene var vanskelig å bestemme, og vi prøvde ut mye forskjellig. Til slutt gikk vi for den hvite, som er den enkleste. I figur 71 kan man se forsiden på et Android-nettbrett. I forhold til de andre logoene synes vi ikke at vår skiller seg nevneverdig ut. Siden enkelhet var målet vårt føler vi at vi har klart å lage en logo som er enkel og i tillegg representerer løsningen vår på en god måte. Under logoen har vi lagt inn en tekst som beskriver hva applikasjonen er slik at man ikke kan ta feil. FIGUR 71: VISER DIGITUS-LOGOEN SAMMEN MED ANDRE ANDROIDAPPLIKASJONER. 62 Prosessen vi hadde gjennom logoene kan sies å oppsummere store deler av resten av utviklingsprosessen; vi har hele tiden forsøkt å forenkle så mye som mulig. 9.4 CareWare 2015 Onsdag 15.04.2015 deltok hele gruppen på en velferdskonferanse kalt CareWare i Aarhus i Danmark. CareWare har som hensikt å koble velferd sammen med teknologi. Både de som har bruk for hjelp og de som skal hjelpe er med på å utvikle de velferdsteknologiske løsningene. På denne måten får alle brukerne tatt del i utviklingsprosessen og sjansen for at løsningen vil kunne brukes økes betraktelig. Under beskrives innholdet og hva vi fikk ut av konferansen. FIGUR 72: CAREWARE 2015 – HER VISES PRISUTDELINGEN I MUSIKKHUSET I AARHUS. Hovedgrunnen til at vi ville dra på konferansen var at våre og CareWare’s mål og tankemåte er veldig like. På hjemmesiden til CareWare står det blant annet: «Velferdsteknologi gir først mening når mennesket og velferden kommer før teknologien. Når teknologiske redskaper blir ufarlige og ukompliserte hjelpemidler som blir brukt på en måte som gir frihet og overskudd. Når det gagner mennesker som har bruk for teknologi for å trygt kunne klare hverdagen i hjemmet sitt selv. Og når teknologien skaper et bedre arbeidsmiljø og mer tid til omsorg for de mennesker som arbeider med velferdsteknologi. Derfor setter CareWare mennesket først». Første del av konferansen bestod av foredrag fra initiativtakeren og litt om bakgrunnen til CareWare. Andre del bestod av «stands» hvor 16 forskjellige løsninger ble presentert. Alle deltagerne ble delt opp i grupper med en guide som viste oss rundt. Åtte av presentasjonene hadde fokus på teknologi til pleie og omsorg av mennesker i pleieboliger og eldre mennesker på sykehus. De åtte andre hadde 63 fokus på teknologi for økt livskvalitet og selvhjelp for mennesker med fysisk, psykisk, sosial og/eller kognitiv funksjonsnedsettelse. Det var det siste fokusområde som var mest relevant for oss, men det var uansett svært spennende å få med seg begge. De som presenterte produktet sitt fikk ti minutter hver på å vise frem hva de hadde. Etter her fjerde presentasjon fikk vi en pause hvor vi kunne gå tilbake til stands vi hadde vært tidligere. Da benyttet vi anledningen til å prate med utviklerne av både carePlan og MemoAssist. Begge disse applikasjonene er beskrevet i «Løsninger på markedet i dag» i denne rapporten. Tredje del fant sted i musikkhuset i Aarhus. Her ble det holdt flere foredrag, blant annet om hvordan innovasjon skal kunne bli en suksess. Ordføreren i Aarhus sa også noen ord om hvor viktig velferdsteknologi er og hvor stolt han var over konferansen og dens utvikling. Til slutt ble det delt ut premier for de beste ideene. Siste del var middag med nettverksbygging. Dette var en viktig del av agendaen, da vi fikk vist fram og diskutert løsninger på utfordringer vi har hatt. FIGUR 73: FRA VENSTRE: GLORIA MUNDI CARE JDOME BIKEAROUND, HART DESIGNS HUSKETAVLEN OG EMERGENCY CAREPLAN. Vi lærte veldig mye om hvordan mennesker tenker annerledes på og så også viktigheten av hjelpemiddelteknologi for mennesker som virkelig trenger det. Vi fikk god utbytte av konferansen, både i form av styrket samarbeid i gruppen og økt motivasjon. Det var svært motiverende å se hva andre har laget og å høre om hvor mye de ulike løsningene hjelper sine målgrupper. 64 10 Universell utforming og interaksjon En universelt utformet løsning skal kunne nå ut til alle målgrupper uavhengig av kunnskapsnivå og funksjonsnedsettelser. For å sikre universell utforming er det viktig med god planlegging. Man må ha klarhet i hvordan applikasjonen skal brukes og hvilke aspekter ved brukervennlighet som er viktig. Alle mennesker er ulike, og det er derfor ingen fasit for hvordan en teknologisk løsning skal være. Det finnes derimot retningslinjer og prinsipper man kan følge for å utvikle et best mulig produkt. Vi har som mål at Digitus skal være enkel og intuitiv å ta i bruk. Det skal ikke være nødvendig med lang erfaring, kunnskaper, språkferdigheter eller et høyt konsentrasjonsnivå for å bruke applikasjonen. Vi har brukt GAP- modellen for å inspirere oss i utviklingen av løsningen. En funksjonshemning defineres som gapet mellom forutsetninger og krav (Sandnes, 2014, s. 24). Den nordiske GAPmodellen måler graden av funksjonshemming ut fra den enkeltes fysiske forutsetninger, og hva samfunnet bidrar med for å tilrettelegge for de ulike fysiske utgangspunktene (Grue, 2011, s. 14). Modellen har som hensikt å nedbygge funksjonshemmende barrierer gjennom tilrettelegging, slik at avviket mellom individets forutsetninger og samfunnets krav reduseres. Dette kan gjøres ved å forbedre omgivelsene til individet, blant annet gjennom universell utforming av teknologiske hjelpemidler. FIGUR 74: ILLUSTRASJON AV DEN NORDISKE «GAP-MODELLEN»17. Videre i kapittelet vil vi forklare hvilket arbeid som er utført for å sikre universell utforming av dagsplanen, og dermed også minsket gapet som oppstår. 17 Illustrasjon fra Arbeids- og inkluderingsdepartementet (http://ndla.no/nb/node/14938). Gjengitt med tillatelse. 65 10.1 WCAG 2.0 WCAG 2.018 er retningslinjer for hvordan man gjør innhold tilgjengelig for mennesker uavhengig av funksjonsnedsettelser. Vi vil bruke noen av retningslinjene for å forbedre brukervennligheten til dagsplanen. WCAG består av fire hovedprinsipper som danner grunnlaget for tilgjengelighet. Selv om dette alene ikke vil sikre universell utforming, kan det gjøre dagsplanen mer tilgjengelig. Under gjennomgås noen eksempler på hva som er gjort for å oppfylle kravene. For at innholdet skal være mulig å oppfatte har vi tekstalternativer til ikke-tekstlig innhold. For å gjøre innholdet forståelig har vi brukt korte, konsise setninger og unngått fagterminologi. Alle steder der det kreves inndata fra brukeren er det brukt tydelige ledetekster som forteller hva som skal skrives inn. Alle handlinger er reversible slik at det er lett å rette opp feil. Applikasjonen er robust ved at den har støtte for kompenserende teknologi, blant annet skjermleser. Mulig å betjene løser vi ved at man kan bruke både trykking, sveiping og tastatur. 10.2 Brukervennlighet God brukervennlighet er viktig for at brukerne kan bruke dagsplanen. Da vi utformet designet i applikasjonen tok vi hensyn til flere av Don Normans designprinsipper (Preece, Rogers & Sharp, 2002, s. 21). Norman er en anerkjent forsker på brukervennlighet og prinsippene hans blir ofte brukt under utviklingen av design, til tross for at de ble skrevet for over 20 år siden. Under gjennomgås de prinsippene som er mest relevant for Digitus; tilbydelser, tilbakemeldinger, ugyldige handlinger og synlighet. 10.2.1 Tilbydelser Vi har brukt virtuelle tilbydelser for å hjelpe brukeren til å vite hvordan man utfører handlinger i applikasjonen. I dagsplanen har vi blant annet brukt store knapper som innbyr til trykking, som vist i figur 75. Grensesnittet gir et hint om hva som kan trykkes på, slik at man ikke trenger noen instruksjoner eller opplæring for å skjønne hvordan de brukes. Knappene er tydeliggjort ved gradering av farger og tillagte 3D-effekter. Om man trykker på knappen oppfører den seg som en fysisk knapp ved at den «blir dyttet innover». FIGUR 75: FERDIG-KNAPPEN INNBYR TIL TRYKKING GJENNOM TILLAGTE 3D-EFFEKTER. 10.2.2 Tilbakemeldinger En tilbakemelding er informasjon som blir gitt til brukeren etter en handling er utført. Tilbakemeldinger kan fungere som en komplettering av tilbydelsene, og kan formidles både visuelt og auditivt. Dersom man ikke registrerer noen umiddelbare konsekvenser av en handling vil vi anta at 18 Web Content Accessibility Guidelines 2.0, forkortet WCAG 2.0. 66 noe er galt. Smertegrensen for å få tilbakemelding på en utført handlinger er ifølge Bouch, Kuchinsky og Bhatti (2000) åtte sekunder. På grunn av den teknologiske utviklingen de siste 15 årene er nok dette betydelig redusert i dag. FIGUR 77: FULLFØRTE AKTIVITETER BLIR TONET NED, NOE SOM GIR EN TYDELIG TILBAKEMELDING OM AT DE ER FULLFØRT. FIGUR 76: BRUKEREN FÅR UMIDDELBART TILBAKEMELDING OM INFORMASJONEN SOM ER SKREVET INN ER GODKJENT. Når brukeren utfører handlinger i applikasjonen er det viktig at vedkommende raskt kan se endring i tilstanden. Dette vil spare brukeren for tid og man unngår unødvendig frustrasjon. Digitus bruker «grå haker» for å indikerer at et steg er utført, også kalt framdriftsindikatorer. Dette kan man se i figur 76. Ved opprettelse eller endring av brukere blir tekstfeltene validert. Dersom informasjonen er godkjent, gir brukergrensesnittet umiddelbart tilbakemelding i form av en grønn hake. Brukeren får da en bekreftelse på om det er handlet riktig. 10.2.3 Metaforer Ideen bak metaforer i brukergrensesnitt er at man utnytter et konsept brukeren allerede er kjent med, og overfører dette til en ny situasjon. Dette kan i enkelte situasjoner lette forståelsen og redusere kompleksitet (Sandnes, 2011, s. 54). Metaforer som er brukt i Digitus er blant annet piler, start- og stopptegnet på nedtelleren og kameraikonet. Dette lar brukerne benytte tidligere erfaringer for å lettere forstå brukergrensesnittet. FIGUR 78: ET KAMERA BRUKES SOM METAFOR FOR Å TA BILDE. 67 10.2.4 Synlighet Synlighet er en viktig faktor for god oversikt. Et godt utformet brukergrensesnitt vil kunne synliggjøre for brukeren alle handlingene som kan utføres. På de viktigste funksjonene har dagsplanen gjennomgående store knapper og alle trykkbare flater er tydelig markert. Dette gir brukeren bedre oversikt og minsker behovet for opplæring. FIGUR 79: ALLE TILGJENGELIGE MENYALTERNATIVER VISES TYDELIG. 10.2.5 Sperring av ugyldige handlinger Ugyldige handlinger kan skape forvirring og bør ikke tilbys. Alle aktiviteter i dagsmodus har likt grensesnitt, og det kan være forvirrende for brukeren om designet endres. Derfor er irrelevante komponenter grået ut istedenfor å fjerne dem helt. FIGUR 80: UGYLDIGE HANDLINGER BLIR SPERRET, SOM VIST TIL VENSTRE I FIGUREN. 10.2.6 Lyd Lyd kan være helt avgjørende for at enkelte mennesker kan bruke dagsplanen. Dette gjelder for eksempel personer med nedsatt syn eller de som har dysleksi. Skjermlesere er den vanligste kompenserende teknologien basert på lyd. Denne har til oppgave å tolke innholdet som vises på skjermen, og formidle dette til brukeren gjennom syntetisk tale eller punktskrift. Android har en innebygd skjermleser som kan lese opp både på norsk og engelsk. Ifølge Sandnes (2011, s.129) går prosessering av lyd tregere enn visuell prosessering. Derfor brukes ikke lyd alene i dagsplanen. Lyd brukes for å signalisere at tiden har gått ut i nedtelleren, i tillegg til at hele nedtelleren blir grønn. Dermed kan man visuelt se om tiden har gått ut, selv om man ikke oppfatter lydsignalet. 10.3 Visuell kommunikasjon (Design) Den visuelle utformingen avgjør om et grensesnitt er godt eller dårlig. For å unngå støy er det lagt vekt på enkelhet og god struktur. I dette kapittelet gjennomgås hva som er gjort for å oppnå best mulig visuell kommunikasjon i dagsplanen. 68 10.3.1 Gestaltlovene Gestaltlovene omhandler hvordan mennesker oppfatter helhetlige visuelle inntrykk. For å gi en best mulig visuell formidling til brukerne har vi valgt å legge vekt på de gestaltlovene som er spesielt nyttig for design. 10.3.2 Forgrunn og bakgrunn Vi har prøvd å skape et klart skille mellom forgrunn og bakgrunn ved å bruke større arealer som bakgrunn og mindre arealer som forgrunn. Dette gir mer dybde i skjermen og gjør innholdet mer «levende». Dette gjør også at vi unngår tvetydighet i brukergrensesnittet. Et eksempel på dette vises i figur 81. FIGUR 81: DET ER ET KLART SKILLE MELLOM FORGRUNN OG BAKGRUNN. 10.3.3 Nærhet For å skape nærhet i brukergrensesnittet er overskrifter og tilhørende tekst/bilder plassert sammen. Dermed dannes grupperinger som gjør det lettere for brukeren å skille elementer. Mellom de ulike grupperingsblokkene er det brukt større distanse slik at de ikke blandes. Siden alle aktiviteter under hver dag er plassert nærme hverandre, skaper de en gruppering. I tillegg er aktivitetene rammet inn med en tynn, grå kant. Dette tydeliggjør hvilke aktiviteter som skal gjøres de ulike dagene. FIGUR 83: NÆRHET SKAPER GRUPPERINGER. FIGUR 82: GRÅ KANTER BRUKES SOM INNRAMMING. 69 10.3.4 Kontinuitet Ved å følge kontinuitetsloven fremheves strukturen i den visuelle fremstillingen (Sandnes, 2011 s. 74). Aktivitetene i dagsplanen er plassert rett under hverandre, noe som skaper «usynlige linjer» på hver side av aktiviteten. Ved å plassere like store elementer rett under hverandre, vil brukeren oppfatte linjer selv om de ikke eksisterer. I applikasjonen utnyttes dette virkemiddelet for å skape et ryddigere grafisk design. I figur 84 vises de usynlige linjene. FIGUR 84: USYNLIGE LINJER ER MARKERT MED RØDT. 10.3.5 Form og det gylne snitt Det gylne snitt brukes for å designe estetiske former. Kort sagt handler det gylne snitt om å dele opp en linje i to deler, en lang og en kort. Ifølge Brady & Phillips (2003) er design som utnytter det gylne snitt behagelig å se på for øyet. Skillet mellom hovedaktiviteteten og delaktiviteter i dagsmodus ligger midt i det gylne snitt. Som vist i figur 85 får hovedaktiviteteten nøyaktig dobbelt så stor plass som delaktivitetene. FIGUR 85: SKILLET MELLOM AKTIVITET OG DELHANDLINGER LIGGER MIDT I DET GYLNE SNITT. 70 Innenfor hovedaktiviteteten benyttes det gylne snitt for knappene. Ulike farger har ulik vekt. Ifølge Niki Fulton19 oppleves rødt som en tyngre farge enn grønt. For å oppnå likevekt er derfor den grønne knappen dobbelt så stor som den røde. Ferdig-knappen er den som fører brukeren videre, og er den som brukes mest. Derfor er det naturlig at den er størst. I tillegg er den plassert midt i det gylne snitt på høyre side. Det gylne snitt blir ofte lagt raskt merke til, og det er derfor viktig å plassere essensiell informasjon her. Et utklipp av knappene vises i figur 86. FIGUR 86: DEN GRØNNE KNAPPEN ER PLASSERT MIDT I DET GYLNE SNITT. 10.3.6 Likhet Det er brukt likhet for å vise at elementer hører til i samme gruppe. Knapper og bokser har samme form, og dette tydeliggjør at de er relaterte. Selv om teksten er ulik får applikasjonen en tydelig struktur. Elementene har faste plasser på ulike sider, og sammen med nærhet gjør dette at dagsplanen oppleves ryddigere. Brukerne får dermed raskere oversikt. FIGUR 87: ALLE KNAPPER FOR UKEDAGER HAR LIKT DESIGN FOR Å VISE AT DE ER RELATERT. UNNTAKET ER «MANDAG», SOM HAR EN ANNEN FARGE. FARGEN SIGNALISERER AT DET ER MANDAG I DAG. 10.3.7 Tilordninger En tilordning beskriver forholdet mellom en kontroll og det kontrollen styrer. Et eksempel på en tilordning som brukes i dagliglivet er lysbryteren (Sandnes, 2011: 79). Det er viktig at tilordningen samsvarer med brukerens forventninger, ellers kan det bli forvirrende. Direkte tilordninger er plassert i umiddelbar nærhet til det kontrollen styrer. Dette er intuitivt for brukeren ved at det fjerner all tvil om hva tilordningen styrer. Dette benyttes i hjelpelisten, der det er tydelig at kameraikonet er en direkte tilordning til «ta bilde»- funksjonen. FIGUR 88: KAMERAIKONET ER EN DIREKTE TILORDNING SOM KONTROLLERER KAMERAET. 19 https://unifiedspace.wordpress.com/2012/03/20/why-do-colours-have-a-visual-weight/ 71 10.3.8 Tekst og lesbarhet For å bedre tekst og lesbarhet brukes marg og økt avstand mellom bokstavene. Viktig tekst, for eksempel overskrifter, er venstrestilt. Små bokstaver er konsekvent brukt, siden de er mer lesbare enn store. Dette er fordi de har forskjellig høyde og det er dermed lettere å kjenne igjen ordene. Teksttypen som brukes i dagsplanen er «Roboto Regular». Den er standard for Android, ser moderne ut og er laget spesielt for å oppfylle kravene til skjermer med høy oppløsning. Tekststørrelsen i applikasjonen er mellom 12 og 40 sp20. Skiftstørrelsen kan justeres i Android-innstilingene. Teksttypen er sans-serif21 og halvfet, noe som gir god lesbarhet på skjermer. Teksten er kvalitetssikret i en kontrastsjekker. Mer informasjon om dette finnes under «Fargekontraster» i denne rapporten. Fordi teksten skalerer på en god måte, er den godt tilpasset for mobile enheter. Vi har testet applikasjonen på nettbrett med skjermstørrelser mellom 8-12”, og kan derfor si med sikkerhet at den passer til både middels og store mobile enheter. 10.3.9 Navngivning Navngivning blir brukt for å beskrive informasjonsblokker og navigering i applikasjonen. Det finnes to måter å navngi på; tekstlig og ikonisk. Tekstlig er den den mest brukte formen. Mennesker oppfatter ikoner hurtigere enn tekst fordi vi lettere relaterer oss til bilder (Carney & Levin, 2002). På grunn av dette har det blitt vanlig å bruke ikoner som et supplement til tekst. Tekstlig navngiving Tekstlig navngivning kan være vanskelig siden man blant annet må ta hensyn til synonymer og homonymer. For å gjøre navngivningen så enkel som mulig har oppdragsgiver bistått i valg av navngivningstekster. God navngivning vil effektiviserer navigeringen og få applikasjonen til å se mer ryddig ut. Det er derfor viktig at navngivningen representerer det den beskriver og er konsistent gjennom hele applikasjonen. Ved å navngi informasjonsblokkene som inneholder aktivitetene for en bestemt dag, er det ikke tvil om hvilke aktiviteter som skal utføres til hvilke dager. Dette kan gi brukeren en følelse av trygghet og kjennskap til dagsplanen. 20 Scale-independent Pixels (SP) brukes i Android for å sette tekststørrelse. Størrelsen justerer seg både etter skjermoppløsning og brukerinnstillinger for tekststørrelse. 21 Sans-serif betyr at teksttypen ikke bruker seriffer. 72 FIGUR 89: VISER NAVNGIVNING FOR UKEDAGENE. Ikonisk navngivning Ikoner kan gjøre det lettere for brukeren å forstå betydningen av navigasjonen. I tillegg tar ikoner ofte mindre plass enn tekst. I brukergrensesnittet til Android brukes ofte ikoner uten tekst, blant annet i kameraet. Ikonene i Digitus har lav kompleksitet, er unike og lett gjenkjennbare ved at de skiller seg ut med hvit farge. Det behøves derfor liten eller ingen opplæring for å forstå ikonene. Dagsplanen bruker få og enkle ikoner. Dette gjør det lettere for brukeren å ha kontroll på hensikten til ikonene. Ikonene er piktogrammer22 som viser en visuell framstilling av de faktiske objektene. De følger konvensjoner på grafiske symboler som er allment kjent. Blant annet brukes et bilde av et hus for å representere «Gå til forsiden» i applikasjonen. FIGUR 90: ET HUS REPRESENTERER «GÅ TIL FORSIDEN» I APPLIKASJONEN. 10.3.10 Farger Bruk av farger kan gi brukeren visuell oversikt ved å tydeliggjøre informasjon i applikasjonen. Fargene i dagsplanen er satt sammen for å skape stabilitet og harmoni. Ved å benytte en monokromatisk23 fargeharmoni blir det visuelle designet mer konservativt og behagelig å se på. Fargebruken i applikasjonen er begrenset. Det er anbefalt å bruke maks fire farger i ett skjermbilde, og ikke mer enn syv farger i brukergrensesnittet som helhet (Shneiderman & Plaisant, 2005, s. 511). Erfarne brukere kan ha nytte av flere farger, men for nybegynnere kan for mange farger skape forvirring. Derfor har brukergrensesnittet svært få farger, men man har mulighet til å skru på flere. Spesielt fargekoder for de ulike dagene innfører nye farger, og denne funksjonen er derfor kun tiltenkt brukere som allerede er vant med å bruke fargekoder fra analoge dagsplaner. Dersom alle tillegg er skrudd av, inneholder applikasjonen færre farger enn det anbefalte maksnivået. Under er det listet opp flere enn syv farger, men flesteparten er kun ulike fargenyanser av den samme fargen. 22 Pliktogram er et forenklet bilde som symboliserer et ord, en gjenstand eller et begrep. En monokromatisk fargeharmoni bruker kun én farge for å oppnå maksimal effekt. Intensiteten og fargetonen kan varieres ved å tilsette sort eller hvit. 23 73 Fargene er delt opp i tre kategorier; farger for ukedager, basisfarger og knappefarger. Under vises alle farger som er brukt i dagsplanen. FIGUR 91: OVERSIKT OVER UKEDAGFARGER. Fargekoder brukes som color mapping, altså for å representere en bestemt dag. Fargene for de ulike ukedagene følger den norske standarden24. Dette er spesielt nyttig for brukere som ikke kan lese, men det kan også hjelpe de som har gode leseferdigheter. Dersom man kjenner til hvilken farge hver ukedag har, er det svært raskt å se hvilken dag det er kun basert på fargen. I dagsmodus vises det hvor langt man har kommet i uken ved hjelp av fargene. FIGUR 92: OVERSIKT OVER BASISFARGER. Blå brukes som basisfarge med varierende metnings- og lyshetsgrad. Fargen kan ses av mennesker med fargeblindhet, og den gir en følelse av ro. Fargen symboliserer lojalitet, styrke, visdom og tillit. Blå benyttes ofte av virksomheter innenfor helsesektoren25. For å skape et enkelt og ryddig design er det brukt få farger. FIGUR 93: OVERSIKT OVER KNAPPEFARGER. Knappene for å fullføre aktiviteter i dagsmodus bruker ikke standard Android-design. Det er svært viktig at disse knappene er tydelige for brukeren, og for at de skal skille seg ut brukes grønt og rødt. Grønt brukes for «Ferdig/Gå videre», rødt brukes for «Ikke ferdig/Gå tilbake». Grunnen til dette er at vi er vant med disse fargene i hverdagen, blant annet fra trafikklys. Fargene finnes i tre nyanser, der 24 Ifølge Magnus Skou Andersen, utvikler av Husketavlen, er det forskjellige standarder for Norge, Sverige og Danmark. 25 http://www.farvernesbetydning.dk/farven-bla/ 74 den lyseste brukes for å signalisere at knappen er deaktivert. Den midterste er normal farge for knappen, og den mørkeste brukes for å vise brukeren at knappen er «trykket». Fargeblindhet Fargeblindhet er en utbredt synshemning blant mennesker. Omtrent 7 % av alle menn og 0,5 % av alle kvinner har en eller annen form for fargeblindhet (Sandnes, 2011, s. 113). Med fargeblindhet oppleves mange farger annerledes, og forskjellen vil variere avhengig av farge og type fargeblindhet. Rød og grønn er brukt som knappefarger, og for å unngå misforståelser for fargeblinde har vi lagt ved en beskrivende tekst og gitt knappene forskjellig størrelse. I figur 94 kan man se et eksempel på hvordan applikasjonen vår blir seende ut for en person som er fargeblind. FIGUR 94: TIL HØYRE VISES HVORDAN DAGSPLANEN SER UT FOR EN SOM ER RØD/GRØNN-FARGEBLIND. Fargekontraster For å sikre at brukeren skal kunne skille mellom forskjellige elementer er det brukt tilstrekkelig kontrast i metning og lyshet. Fargene er kvalitetssikret i en «Color Blindness Simulator», som vises hvordan fargene oppleves for fargeblinde. Testen viste at lesbarheten skal være god selv for svaksynte. Lys/mørk-kontrast er brukt i forgrunns- og bakgrunnsfargene for å skape best mulig lesbarhet. FIGUR 95: ILLUSTRASJONEN VISER DE ULIKE FARGENE SOM ER BRUKT FOR TEKST OG BAKGRUNN. 75 Tabellen viser fargekoder (RGB heksadesimalt) 26 for bakgrunn og forgrunn. Kontrastratioen for fargene som er brukt i appen vises også. Nummer Bakgrunn Forgrunn Kontrastratio Tekst 1 #195790 #ffffff 7.48 : 1 Tekst 2 #43bdfc #000000 9.92 : 1 Tekst 3 #ffffff #000000 21 : 1 Tekst 4 #1fd238 #000000 10.33 : 1 Tekst 5 #f57b7f #000000 8.02 : 1 Tekst 6 #d9d9d9 #000000 14.88 : 1 Lov om universell utforming av IKT-løsninger27 krever at tekst skal ha en fargekontrast mot bakgrunnen minst i samsvar med nivå AA i WCAG. For å oppnå det høyeste nivået i WCAG (AAA) kreves det at normal tekst har en kontrastratio på minst 7:1. Stor tekst krever 4.5:1. Som vist i tabellen over oppfyller all tekst i dagsplanen denne regelen. Det eneste unntaket er for knapper som er grået ut. Denne er på 5.98:1, noe som er rett under grensen for AAA normal tekst. Direktoratet for forvaltning og IKT mener dette kan være akseptabelt i gitte situasjoner28, og vi vurderer det som greit at denne teksten kun oppfyller AA. 10.4 Kognitiv belastning Mange innenfor vår målgruppe kan ikke lese, og vil derfor ikke trenge tekstlig innhold i applikasjonen. I Digitus er dette noe administrator enkelt kan tilpasse etter brukerens behov, enten ved å fjerne eller skru på opplesning av tekst. Andre kognitive vansker som dårlig hukommelse, lav konsentrasjon og skrive- og lesevansker er viktige faktorer man må ta høyde for når man utformer brukergrensesnittet. Et dårlig utformet brukergrensesnitt kan i verste fall fungere som en barriere for brukerne. I denne delen vil vi forklare hva vi har gjort for å optimalisere brukergrensesnittet. 10.4.1 Minnekapasitet Mennesker har lettere for å kjenne igjen noe enn å hente det frem fra hukommelsen. Visuelle hint i et brukergrensesnitt kan redusere hukommelsesbelastningen for brukeren. Miller (1956) fant ut at unge voksne mennesker sitt korttidsminne i gjennomsnitt klarer å huske syv elementer på en gang. Dette kalles «7+-2»-regelen eller Millers lov. Ved å ha et lavt antall kategorier i applikasjonen vil det være enklere for brukeren oppfatte alle valgene man kan ta. Digitus inneholder alle dagene i en uke, 26 Fargekoder brukes for å kunne vise nøyaktig den samme fargen. https://lovdata.no/dokument/SF/forskrift/2013-06-21-732 28 http://uu.difi.no/veiledning/nettsider/uu-skolen/kontrast 27 76 noe som gir syv trykkbare kategorier. Venstremenyen i dagsmodus gir oversikt over mellom fire og fem aktiviteter. Dermed overholdes Millers lov. 10.4.2 Lese- og skrivevansker Mange mennesker sliter med lese- og skrivevansker. Vi har ikke noen klare tall om vår målgruppe, men på landsbasis er det rundt 10 % som opplever problemer med lesing og/eller skriving. En form for lese- og skrivevansker kalles dysleksi. Personer med dysleksi har ofte også nedsatt arbeidsminne, lav konsentrasjonsevne, nedsatt motorikk og sekvensieringsvansker29. Fordi vi vet at disse symptomer også forekommer innenfor vår målgruppe, var dette et problem vi måtte ta alvorlig. For å bedre opplevelsen av brukergrensesnittet er informasjonsmengden begrenset. For mye informasjon kan gjøre at brukeren mister motet og gir opp. Bilder er brukt som hovedbeskrivelse, med tekst som supplement. Det er derfor ikke nødvendig å se på teksten for å forstå hva som skal gjøres. Bruk av lange ord er unngått, siden det kan være vanskelig å lese. FIGUR 96: BILDET HAR HOVEDFOKUS, MEN MAN HAR OGSÅ ET TEKSTLIG ALTERNATIV. 10.4.3 Toleranse for feil Brukergrensesnittet skal være utformet slik at faren for feil reduseres. Likevel hender det at brukeren gjør feil, og da er det viktig at det er mulig å angre utførte handlinger. Feiltoleranse er implementert på to forskjellige måter. Dersom en aktivitet markeres som «Ferdig», er det mulig å fjerne fullført-statusen. I adminmodus får man en advarsel dersom man prøver å forlate «Opprett aktivitet» uten å lagre. På den måten unngår man at brukeren ved en feiltagelse mister arbeid. FIGUR 97: FOR Å REDUSERE FAREN FOR AT BRUKEREN UTILSIKTET FORLATER UTEN Å LAGRE, MÅ BRUKEREN BEKREFTE HANDLINGEN. 29 Sekvensieringsvansker er at man har vanskelig for å vite rekkefølge for hvordan ting skal gjøres. Et eksempel på dette er å ta på seg skoene før buksen. 77 10.4.4 Organiseringsstruktur Applikasjonen har en hierarkisk top-down organiseringsstruktur30. Ved å følge denne innordningen kan brukeren lettere danne seg en mental modell31 av strukturen, og dermed øke forståelsen av applikasjonen. For at hierarkiet skal opprettholde sin verdi, er ikke informasjon lagret redundant32. Ifølge Miller (1981) er det viktig at dybden i applikasjonen er så liten som mulig uten at det går utover bredden. Med mange nivåer kan det bli forvirrende og tungvint for brukerne. Ved å ikke ha for dypt hierarki, blir det kortere vei til viktig informasjon. Digitus har en god balanse mellom dybde og bredde i sin taksonomi, der mesteparten av innholdet kan nås gjennom 3-4 trykk. 30 Rangordning hvor den viktigste informasjonen kommer først. En mental modell kan defineres som en forklaring på en persons tankeprosess rundt hvordan noe virker (Sandnes, 2011, s. 56). 32 Redundans kan være unødvendig dobbeltlagring. 31 78 11 Konklusjon Vi har alle ønsket å tilegne oss ny kunnskap og utfordre oss selv. Det har derfor vært et stort privilegium å få sjansen til å jobbe med noe så givende og lærerikt. Ved å kombinere teknologi med velferd fikk vi sjansen til å jobbe med to forskjellige fagområder, og det var derfor aldri noen tvil om at dette prosjektet var riktig for oss. Vi var så heldige å få brukertestet løsningen på den faktiske målgruppen vår, og her fikk vi mye positivt tilbake. Testpersonene ønsket å bruke den endelige løsningen, og dette har vært en stor motivasjonsfaktor for å gjøre dagsplanen best mulig. Samarbeidet i gruppa har vært godt. I prosessen har vi fått relativt frie tøyler, og har derfor vært veldig selvstendige i arbeidet vårt. Vi har hatt månedlige møter med oppdragsgiver og veileder, og kommunikasjonen mellom oss har vært bra. Alle har vært tilgjengelige når vi har trengt hjelp eller tilbakemeldinger. Vi har tilegnet oss mye ny kunnskap om applikasjonsutvikling, designutvikling og brukertesting. Dette vil komme godt med når vi skal ut i relevante jobber. Vi har også erfart at planlegging og dokumentasjon underveis er svært viktig i prosjekter av denne størrelsen. Skulle vi ha gjentatt prosessen ville vi derfor vært mer grundig med disse fasene. Oppdragsgiver var redd vi ikke skulle forstå hva slags løsning de ønsket, men dette fikk de bekreftet at vi gjorde allerede i oppstartsfasen av prosjektet. Dette var en lettelse for begge parter. Selv om vi ikke implementerte alle kravene til oppdragsgiver, var de veldig imponert over løsningen og positive til all tilleggsfunksjonalitet vi har utviklet. Siden vi har laget en funksjonell applikasjon, har vi gitt oppdragsgiver mye mer enn de forventet. Dette gjør at de allerede nå i mye større grad kan teste ut løsningen i praksis. Oppdragsgiver har gått langt i å antyde at de ønsker å ha oss med videre for å ferdigstille løsningen. Dette er en stor tillitserklæring og bekrefter den positive vurderingen vi selv har av arbeidet som er gjort. Får vi jobbe videre med applikasjonen vil vi implementere flere krav og ønsker fra oppdragsgiver. I tillegg har vi utviklet en rekke tanker og ideer gjennom utviklingsperioden, som trolig vil være med på å øke kvaliteten på en fremtidig løsning. Vi ønsker også å lære mer om målgruppen, blant annet gjennom brukertesting og økt faglig kompetanse. Det er vanskelig å si om vi har oppfylt målene vi satte oss i starten av prosjektperioden. Et av målene var å utforme en individuelt tilpasset applikasjon som kan muliggjøre at målgruppen i større grad kan nyttiggjøre seg av dagens teknologiske muligheter. Oppdragsgiver ønsker å teste ut applikasjonen over tid blant en brukergruppe, og dette skal inngå i et større forskningsprosjekt. Etter at forskningsprosjektet er over vil vi vite mer om målene er nådd. For oss har ikke den største utfordringen vært den tekniske delen av applikasjonsutviklingen, men å finne ut hva som er den beste løsningen for målgruppen vår. Å sette seg inn i behovene til en brukergruppe vi kan lite om fra før har vært utfordrende, men vi mener vi har løst det ganske godt. Alt i alt er vi fornøyd med gjennomføringen, og vi er alle enige om at dette har vært en svært lærerik prosess. 79 11.1 Nytteverdi Dagsplanen kan gjøre brukeren mer selvstendig, ved at den tilbyr en digital kalender med funksjoner som kan gi forutsigbarhet og hjelp i hverdagen. Å klare oppgaver på egenhånd gi mestringsfølelse og økt selvtillit. For de ansatte kan applikasjonen bidra til å forenkle deres hverdag. Dagsplanen digitaliserer den analoge planen de er vant til å bruke, noe som kan spare de ansatte for tid ved at den forenkler opprettelse og vedlikehold av ukesplanen. Nytteverdien for OUS er at de får en Android-applikasjon som er utviklet etter deres krav. Denne kan de velge å utvikle videre eller hente relevante elementer fra. Nytteverdien for oss som har laget applikasjonen har vært veldig stor. Vi har tilegnet oss ny kunnskap både når det gjelder design av brukergrensesnitt og programmering. Vi har også erfart hvordan man jobber i prosjekter på tvers av forskjellige fagområder. Dette har vært en god erfaring som vi vil få god nytte av i arbeidslivet. 80 12 Videre utvikling I denne oppgaven har fokuset vært å utvikle en testbar applikasjon. Det har også vært en del av oppgaven å finne ut hvilke behov brukere og bistandsytere har. Gjennom samtaler med utviklere av lignende apper på CareWare, med brukere og bistandsytere har nye ønsker for funksjonalitet dukket opp underveis i utviklingsprosessen. Det som er utviklet hittil en er grunnstruktur, og mye annen funksjonalitet er ønsket lagt til. Under følger en liste utarbeidet i samarbeid med oppdragsgiver over det viktigste arbeidet som gjenstår for å forbedre dagsplanen. Funksjonaliteten er listet i tilfeldig rekkefølge. 12.1 Vedlikehold av planen Alle aktiviteter som blir opprettet legger seg kronologisk på valgt dag i ukeplanen. Foreløpig er det ingen mulighet til å endre rekkefølgen på aktivitetene, med mindre man sletter de og legger de til på nytt i en annen rekkefølge. Dette er svært tungvint og kan løses ved å legge til en «drag-and-drop»funksjon33. Denne vil fungere ved at administrator kan holde fingeren på en valgt aktivitet, og flytte den rundt på planen etter eget ønske. Den samme funksjonen bør også implementeres i hjelpelisten, der samme problemet ligger. For å gjøre det enkelt å vedlikeholde planen skal maler/templates utvides. Det skal være mulig å lagre og laste inn hele ukesmaler. I tillegg skal man kunne bruke ferdiglagde maler for enkeltaktiviteter. Hvordan det kan fungere er illustrert i figur 98. FIGUR 98: ILLUSTRERER HVORDAN «DRAG-AND-DROP»-FUNKSJONALITET KAN FUNGERE FOR Å FORENKLE VEDLIKEHOLD AV PLANEN. 33 «Drag-and-drop» er en pekegest der man velger et virtuelt objekt ved å «ta tak» i det og dra det til et annet sted. 81 Ved opprettelse av aktiviteter er det flere funksjoner som bør implementeres. Det skal blant annet være mulig å legge til bilder som allerede ligger i galleriet/fotoalbumet på nettbrettet. Nå er man nødt til å ta bilder med det innebygde kameraet. 12.2 Motivasjonssystem Det skal etterhvert implementeres et individuelt tilpasset motivasjonssystem. Dette kan innebære at brukeren opparbeider seg poeng, stjerner eller liknende som er knyttet til gjennomførte oppgaver. Poengene kan på et senere tidspunkt veksles inn i attraktive aktiviteter, gjenstander eller tjenester. Det finnes en rekke norske studier som dokumenterer effekten av slike motivasjonssystemer (Andresen, Løkke & Løkke, 2013) og (Finstad, 2001). 12.3 Fjernadministrering og monitorering Det skal gjøres mulig å administrere og monitorere applikasjonen fra et annet geografisk sted. Dette vil gi anledning til å yte tjenester på en mer hensiktsmessig og kostnadseffektiv måte. Monitorering vil gi foreldre eller bistandsytere mulighet til å gi bistand på de tidspunktene, eller under de aktivitetene, der behovet er størst. 12.4 Støtte for flere medier Administrator skal ha mulighet til å spille inn og legge ved lydklipp sammen med hoved- og delaktiviteter. Denne funksjonen kan være svært nyttig, spesielt for brukere som ikke kan lese. Lydklippet kan hjelpe til med å forklare hele eller deler av oppgaven som skal utføres. Det skal også være mulig å legge ved videoer til aktivitetene. En video kan eksempelvis gi brukeren en mer nøyaktig beskrivelse av hvordan oppgaven skal gjøres, og kan dermed fungere som et godt hjelpemiddel. Det skal også være mulig å legge ved linker (URL-er) til nettsider under de ulike aktivitetene. Linken kan for eksempel være relatert til en oppgave, og hjelpe brukeren med utførelsen. 12.5 Påminnere/notifications Til tross for planen ikke er tidsavhengig skal det være mulig å sette påminnere knyttet til enkelte oppgaver. Dette vil fungere som en alarmfunksjon og kan for eksempel sørge for at brukeren ikke glemmer enkelte aktiviteter i planen. Det skal også være mulig å få påminnelsen som en «notification»34 dersom ikke applikasjonen er åpen. 12.6 Personalisert design Det er avgjørende at planen kan tilpasses individuelt. Med tanke på at dette er en løsning brukeren skal benytte over lengre tid, er det viktig å kunne personliggjøre den. Dette kan løses ved å ha et utvalg av forskjellig design eller farger som brukeren kan velge mellom. 34 En melding som vises til brukeren utenfor brukergrensesnittet til et program. 82 12.7 Bekreftelse av fullførte aktiviteter Det skal være mulig at enkelte aktiviteter må bekreftes fullført for å åpne tilgang til andre aktiviteter. Dette kan være aktuelt for aktiviteter som er definert som obligatoriske, som for eksempel å ta medisiner. Ved å legge inn slike forutsetninger øker sannsynligheten for at slike aktiviteter ikke faller bort ved at brukeren går videre i planen. Aktiviteter som ikke er satt opp med en slik forutsetning skal være mulig å utsette eller velge bort fra planen. 12.8 Valg av «pauseaktiviteter» Dagsplaner og andre struktureringsverktøy kan for enkelte oppleves som statiske og lite fleksible. Derfor skal det være mulig å tilrettelegge for valg i planen. Brukeren kan da enkelt medvirke til valg av aktiviteter og dermed påvirke sin egen hverdag. For enkelte brukere kan pauser være en utfordring. Ved å erstatte pauser med valg av en «pauseaktivitet» kan brukeren ta reelle valg over aktiviteter som er tilgjengelig i perioden. Dette kan eksempelvis være passive aktiviteter som å høre på musikk og se på TV, eller andre aktiviteter som brukeren ønsker å fylle fritiden med. 12.9 Plasseringstjenester Det skal på sikt legges til funksjoner som innebærer GPS. En slik funksjon vil eksempelvis muliggjøre differensiering av hjelpebetingelser avhengig av hvor brukeren befinner seg. Det skal også være mulig at hele eller deler av løsningen kan brukes og administreres via smarttelefoner. Da kan for eksempel handlelister eller andre sjekklister synkroniseres med smarttelefoner, noe som vil gjøre verktøyet ytterligere mobilt og tilgjengelig. 12.10 Implementering og brukertesting Når det foreligger en betaversjon av planen skal denne utprøves av et utvalg brukere og deres familie eller tjenesteytere over tid. Det er et mål at dette utvalget består av brukere med ulike behov, livssituasjon og funksjonsnivå. Utprøvningen utføres etter samtykke fra brukere og deres representanter. 83 13 Teknisk spesifikasjon I dette kapittelet er Digitus beskrevet fra et teknologisk ståsted. Teknologier som er brukt og hvordan programmet er bygget opp gjennomgås i detalj. Kapittelet er skrevet for videreutviklere og det forutsettes kompetanse i programmering og systemutvikling. Den kan også brukes som et oppslagsverk til utenforstående for å gi innsikt i oppbygging og funksjonalitet. 13.1 Teknologi 13.1.1 Java Java er et objektorientert programmeringsspråk som kjøres på milliarder av enheter rundt i verden35. Java-programmer kan kjøre på alle plattformer som har støtte for JVM (Java Virtual Machine). Java er det mest brukte programmeringsspråket for Android-utvikling, og kjøres på en virtuell maskin kalt Dalvik i Android. Applikasjonens logikk er programmert i Java. 13.1.2 XML XML36 er et markeringsspråk for visning av strukturert informasjon. I Android brukes XML-filer for å sette opp grafisk design, men det kan også brukes for å lagre informasjon som tekststrenger og fargekoder. All data lagres i en hierarkisk struktur som er lesbar for både mennesker og maskiner. Designet blir skilt fra logikken, noe som gjør det enkelt å endre designet uten å måtte endre programlogikken. 13.1.3 SQLite SQLite er en åpen-kildekode relasjonsdatabase, innebygget i Android-enheter. Den krever lite ressurser for å kjøre og brukes for lagring og administrering av SQL-databaser. Databasen blir lagret lokalt i en fil på Android-enheten. 13.2 Kodeoptimalisering For at applikasjonen skal virke så raskt og responsiv som mulig er det gjort mange grep. Under er en oversikt over kodeoptimaliseringsteknikker som er brukt. Retningslinjer for god objektorientert programmering er fulgt i applikasjonen. Kode som er brukt flere stedet, både i samme klasse og i applikasjonen generelt, er skilt ut i egne metoder for å hindre redundans. Det er lagt stor vekt på å forhindre redundans som nødvendigvis øker størrelsen og kompleksiteten til applikasjonen. Alle klassevariabler er private med mindre spesielle forhold tilsier at de må være public. Unntak fra denne regelen er datafelt for innstillinger i DBHandler.java, da dette er felt som brukes statisk fra andre klasser. Variabler som har konstant verdi er satt til final, da det er en god vane å deklarere static final der det er mulig. Grunnen til dette er at kompilatoren genererer en egen metode kalt <clinit> som 35 36 https://www.java.com/en/about/ Extensible Markup Language. 84 brukes hver gang man skal bruke en variabel som ikke er final. Hvis man deklarerer variabelen som final slipper man dette, og sparer derfor ressurser. Alle metoder som ikke tar i bruk klassevariabler er gjort static. Det er normalt å bruke get/set-metoder for å hente/sette data internt i en datastruktur. Set- og getmetoder brukes for å innkapsle data. I stedet for å bruke klassevariabler direkte definerer man egne metoder som får tilgang til disse feltene. Da får man full kontroll over endring av dataen slik at det er lett å endre virkemåte internt i klassen. I Android er det ikke anbefalt å bruke get/set-metoder internt i klassen. Grunnen til det er at virtuelle metodekall krever mye større ressurser enn å kun sjekke datafeltet. Alle datafelt som skal endres eksternt bruker get/set-metoder, men internt brukes alle felt i datastrukturen direkte. For å sjekke prosjektfiler for potensielle bugs og forbedringspotensiale for riktighet, sikkerhet, ytelse, brukervennlighet og tilgjengelighet, er Android lint brukt. Programmet kjøres automatisk hver gang kildekoden kompileres, og kommer med tips til forbedringer dersom det finnes. Den ferdige løsningen er gjennomgått med lint uten noen spesielle bemerkninger. 13.3 Prosjektstruktur Ved opprettelse av et nytt Android-prosjekt setter Android SDK opp en forhåndsbestemt prosjektstruktur. Det er anbefalt å følge denne strukturen videre i utviklingen. For å unngå konflikter med andre applikasjoner er det anbefalt å bruke pakkenavn i omvendt rekkefølge av domenet for organisasjonen. Det vil si at digitusplan.no blir til no.digitusplan. Alle pakkenavn må være unike. For at det skal være lett å finne fram i filene har vi valgt å dele opp programmet i flere pakker. Vi har fulgt Androids retningslinjer for navngiving, og endte dermed opp med følgende navngivingsregel: no.digitusplan.<delpakkenavn>. FIGUR 99: VISER OVERSIKT OVER PROSJEKTSTRUKTUREN I ANDROID STUDIO. I Android skilles javafiler fra ressurser. Javafilene inneholder programlogikken, mens ressursene kan være alt fra layout til bilder og lydfiler. Man har også en manifests-mappe som inneholder innstillinger. 85 13.4 Manifests Alle Android-apper må ha en AndroidManifest.xml-fil. Den er plassert i Manifests-mappen. Filen brukes for å gi informasjon om applikasjonen til Android-systemet37. Den bestemmer hvilken Androidversjon som kreves for å kunne kjøre appen og hva slags tilganger applikasjonen trenger. Mer informasjon om hva slags tilganger appen trenger står det om under «Tillatelser». Det er i Manifestsfilen man bestemmer hvilken logo som skal vises og hvilken fil som skal starte når applikasjonen startes. Alle filer som skal vise noe på skjerm må oppgis i denne filen. I Digitus brukes AndroidManifest.xml for å sørge for at applikasjonen kun kan brukes i landskapsformat. Applikasjonen er spesielt tilpasset landskapsformat, og derfor vil ikke portrettformat fungere bra. For at man skal kunne bruke nettbrettet i omvendt landskapsformat, bruker vi «sensorLandscape», som vist i koden under. Dersom man kun bruker «landscape», vil appen være låst i en retning. 1. <activity 2. android:name="no.digitusplan.<delpakkenavn>.<klasse>" 3. android:screenOrientation="sensorLandscape"> 4. </activity> Kodesnutt 1: SensorLandscape gjør at applikasjonen fungerer både i normal og omvendt landskapsformat. 13.5 Programlogikk (java) Det vil være for omfattende å gjennomgå hver eneste fil detaljert, derfor blir kun det mest essensielle beskrevet. Skype-integrasjon skiller seg fra resten av koden ved at det benytter eksterne data. Hoveddelen av applikasjonen består av ListViews og derfor gjennomgås også hvordan rådata blir gjort om til ferdige ListViews. I tillegg finnes det en komplett oversikt over javafiler med en kort beskrivelse av hver enkelt nederst i dette kapittelet. FIGUR 100: VISER ALLE PAKKER OG JAVAFILER PROGRAMMET BESTÅR AV. 37 http://developer.android.com/guide/topics/manifest/manifest-intro.html 86 13.5.1 Adapter for ListView Mesteparten av visning av aktiviteter i applikasjonen skjer via ListViews38. For å fylle inn data i ListViews brukes en adapter, som fungerer som et bindeledd mellom dataene og visningen. Hvert element i en ListView er et View, og det er adapteret som er ansvarlig for å opprette dette39. I figur 101 vises et eksempel på hvordan data hentet fra databasen blir gjort om til et ListView. FIGUR 101: VISER HVORDAN KODE BLIR TIL FERDIG DESIGN VIA ET ADAPTER. 13.5.2 Skype-integrasjon For å legge til mulighet for videosamtaler er Skype-applikasjonen brukt. Skype tilbyr funksjonalitet for å sjekke om en bestemt Skype-bruker er pålogget. Dette gjøres ved å sjekke en bestemt URL, der påloggingsstatus skrives ut. Status som returneres kan være en av følgende: Unknown Offline Online Away Do Not Disturb Invisible Skype Me 1. http://mystatus.skype.com/<brukernavn>.txt Kodesnutt 2: Adressen over kan brukes for å sjekke påloggingsstatus for en bestemt Skype-bruker. 38 39 ListView viser en liste over elementer. http://developer.android.com/reference/android/widget/Adapter.html 87 I applikasjonen blir alle andre statuser enn «Online» behandlet som ikke tilgjengelig. Dermed er det kun to statuser å forholde seg til for brukeren - pålogget eller ikke pålogget. Skypefunksjonalitet er plassert i SkypeHandler.java. Klassen har fire funksjoner, der de tre førstnevnte er hentet fra Skype URI Tutorial40: initiateSkypeUri(Context, String): void Har ansvar for å lage en Intent41 som starter en Skypesamtale med en bestemt bruker. String-en som kommer inn som parameter inneholder brukernavn og informasjon om man ønsker tekst-, lyd-, eller videosamtale. isSkypeClientInstalled(): boolean Funksjonen sjekker om Skype-applikasjonen er installert på enheten og returnerer en boolsk variabel av resultatet. goToMarket(Context): void Funksjonen starter en Intent som går til Google Play42. Der er Skype forhåndsvalgt, slik at man kun trenger å trykke installer for å laste ned Skype. setOnline(String, TextView, ImageView): void FIGUR 102: VISER HVILKE DELER BRUKER-BISTAND BESTÅR AV. Sjekker om en bestemt bruker er pålogget på Skype ved hjelp av linken som er vist i kodesnutt 2. TextView og ImageView er referanser til tekst- og bildefelt som vises sammen med brukernavnet. Funksjonen har ansvar for å oppdatere disse. Dersom brukeren er pålogget blir en grønn telefon vist, ellers vises en rød telefon. Statusen blir også skrevet ut tekstlig. Sjekk av om en bruker er pålogget gjøres i en ny thread. Dette er for at ikke hele applikasjonen skal vente på å få svar fra Skype sin nettjeneste. Applikasjonen lastes altså inn samtidig som nettstatusen hentes, slik at man ikke må vente på dette. 40 https://msdn.microsoft.com/en-us/library/office/dn745884.aspx I dagsplanen brukes Intent til å starte eksterne applikasjoner. 42 Google Play er en digital butikk for Android-applikasjoner. 41 88 13.5.3 Liste over java-filer Under blir alle javafiler i applikasjonen listet opp. Filene er delt opp etter hvilken pakke de er i, og hovedfunksjonaliteten til hver enkelt fil er beskrevet. no.digitusplan.adapter: Adapter-klassene tar seg av å gjøre om fra rådata til View. Denne prosessen er mer detaljert beskrevet i «Adapter for ListView» i dette kapittelet. ActivityAdapter Fyller ListView for aktiviteter med data fra databasen. NewChecklistAdapter Fyller ListView for nye sjekklister (ved opprettelse i adminmodus) med data fra databasen. UserAdapter Fyller ListView for brukere med data fra databasen. no.digitusplan.admin: Denne pakken inneholder java-filer som brukes i forbindelse med administrasjonssiden. Admin Abstrakt klasse som brukes for å styre navgasjonen for adminsidene. Login Innlogging til administrasjonssidene, krever brukernavn og passord. Bruker handler.DBHandler for å sjekke om brukernavn/passord finnes i databasen. Hvis login er vellykket blir man sendt til admin.WeekOverview. ManageActivity Gjør det mulig å opprette, endre og slette aktiviteter fra databasen. ManageSettings Gjør det mulig å skru av/på funksjoner i applikasjonen. Man kan også tømme planen eller laste inn standardaktiviteter. ManageUsers Gjør det mulig å opprette, endre og slette brukere fra databasen. WeekOverview Viser en oversikt over aktiviteter som er lagret i planen. Ved å trykke på en aktivitet blir man sendt til admin.ManageActivity. 89 no.digitusplan.dayplan: Denne pakken inneholder java-filer som brukes i forbindelse med brukermodus. DayMode Viser en bestemt dag til brukeren. WeekMode Viser en bestemt uke til brukeren. Welcome Viser en velkomstskjerm første gangen applikasjonen starter. no.digitusplan.dialog: Dialog-pakken håndterer popup-vinduer som inneholder funksjonalitet. AssistanceDialog Viser en oversikt over registrerte brukere. Gir også mulighet til å ringe til bistandsytere. ManageTimerDialog Pop-up som gjør det mulig å velge tidspunkt for varighet av nedteller. ManageUserDialog Pop-up som gjør det mulig å legge til/endre eksisterende brukere. no.digitusplan.handler: Handler-pakken inneholder forskjellig funksjonalitet for å behandle en spesiell type data. Flesteparten av funksjonene er static43. CameraHandler Starter kameraet og lagrer en midlertidig bildefil. DateHandler Tar seg av behandling av datoer. DBHandler Tar seg av behandling av databasen. ImageHandler Tar seg av behandling av bilder. InternetHandler Sjekker om brukeren har tilgang til internet. MessageHandler Tar seg av behandling av utskrift av meldinger til skjerm. SkypeHandler Sjekker om Skype er installert og foretar oppringninger. 43 Metoder som er static kan brukes uten å instansiere et objekt. 90 UserHandler Tar seg av brukerhåndtering - tar inn data, validerer og lagrer til database via handler.DBHandler. ValidateHandler Sjekker om en bestemt verdi er godkjent til et bestemt bruk. For eksempel sjekker den om et brukernavn er gyldig. no.digitusplan.misc: Misc-pakken inneholder diverse funksjonalitet som ikke har noen annen naturlig plassering. CalendarTemplate Abstrakt klasse som inneholder funksjonalitet for å opprette en ukesoversikt over aktiviteter. ExamplePlan Inneholder eksempelaktiviteter til dagsplanen. Disse kan lastes inn for å se et eksempel på hvordan en full dagsplan vil se ut. NumberPickerTimer Gjør det mulig å sette min- og maksverdier for timere. Brukes for at ikke skal kunne velge ulovlige verdier. OnSwipeTouchListener Lytter etter sveip/gestures44. no.digitusplan.object: Object-pakken inneholder klasser det er mulig å instansiere objekter fra, både brukere og aktiviteter. Activity Brukes for aktivitet-objekter. ActivityPart Brukes for delaktivitet-objekter. ActivityTemplate Brukes for aktivitetsmal-objekter. User Brukes for bruker-objekter. 44 http://developer.android.com/design/patterns/gestures.html 91 13.6 Database For lagring av data i applikasjonen er SQLite brukt. 13.6.1 Databasetabeller FIGUR 103: VISER EN OVERSIKT OVER ALLE TABELLER I DATABASEN. I figur 103 vises alle databasetabellene som brukes i applikasjonen. Under listes alle tabellene opp, der hvert enkelt attributt blir forklart. ActivityTemplate templateId Unik id som identifiserer en bestemt mal. name Navn for aktiviteten. description Beskrivelse av aktiviteten. timer Hvor mange sekunder nedtelleren eventuelt skal telle ned fra. image Inneholder filsti for hvor aktivitetsbildet er lagret. Activity activityId Unik id som identifiserer en bestemt aktivitet. activityTemplateId Angir hvilken mal (templateId) aktiviteten skal benytte. Fremmednøkkel til ActivityTemplate.templateId. date Angir hvilken dato aktiviteten skal vises. position Angir hvilken rekkefølge på dagen aktiviteten skal vises. Brukes dersom det er flere aktiviteter samme dag. checkList Angir om aktiviteten inneholder en sjekkliste (true/false). 92 activityChain Angir om aktiviteten inneholder en handlingskjede (true/false) finished Angir om aktiviteten er fullført eller ikke. PartActivity partActivityId Unik id som identifiserer en bestemt delaktivitet. templateId Angir hvilken mal (ActivityTemplate.templateId) delaktiviteten skal benytte. usedByTemplateId Angir hvilken mal (ActivityTemplate.templateId) delaktiviteten inngår i. PartActivityFinished partActivityId Er identifikator for om en delaktivitet for en bestemt aktivitet er fullført, sammen med activityId. Fremmednøkkel til PartActivity.partActivityId. activityId Er identifikator for om en delaktivitet for en bestemt aktivitet er fullført, sammen med partActivityId. Fremmednøkkel til Activity.activityId. finished Angir om en delaktivitet som inngår i en bestemt aktiviteten er fullført eller ikke. Settings name Angir navnet på en bestemt funksjon. enabled Angir om funksjonen angitt i name skal vises for brukeren (true/false). User userId Unik id som identifiserer en bestemt bruker. fullName Brukerens fulle navn. username Brukernavn som brukes ved innlogging. 93 password Passord som brukes ved innlogging. skypeId Brukernavn for innlogging i Skype. image Inneholder filsti for hvor bilde av brukeren er lagret. 13.6.2 Logisk skjema for lagring av aktiviteter For å lagre aktiviteter i databasen brukes fire ulike tabeller. Relasjonen mellom disse er vist i figur 104. Årsaken til at det er nødvendig med fire tabeller er for å kunne lagre (del)aktiviteter som maler. Delaktiviteter hører til en bestemt mal, slik at det er mulig å opprette nye aktiviteter som inneholder samme delaktiviteter. For å lagre om en delaktivitet er fullført for en bestemt aktivitet, brukes PartActivityFinished. FIGUR 104: LOGISK SKJEMA FOR AKTIVITETER I DATABASEN. 94 13.7 Ressurser 13.7.1 Drawable Drawable inneholder alle bildefiler som trengs for at applikasjonen skal kjøre. Her ligger blant annet ikoner og grafikk. Mappen inneholder et førtitalls filer, og man kan ikke dele inn drawable i flere undermapper. For å holde orden her er det brukt prefixer45 for navnene. Det vil si at alle bildefiler som brukes som ikoner heter «icon_xx». Det samme gjelder for grafikk og knapper. FIGUR 105: OVERSIKT OVER ALLE DRAWABLE-FILER. XML-filene i drawable-mappen genererer grafikk, og under vises et eksempel på hvordan dette foregår. I kodesnutt 3 oppgis det at en rektangel med 3 px svart omriss skal lages. Videre skal den være avrundet med 10 dp, og den skal ha en gradient-farge46. Det oppgis også at gradienten skal ha en vinkel på 270 grader, noe som resulterer i en form som er lys øverst, mørk underst. Resultatet av koden vises i figur 107. 1. <?xml version="1.0" encoding="utf-8"?> 2. <shape xmlns:android="http://schemas.android.com/apk/res/android" 3. android:shape="rectangle"> 4. 5. <gradient 6. android:startColor="@color/button_green_light" 7. android:endColor="@color/button_green" 8. android:angle="270" /> 9. 10. <corners android:radius="10dp" /> 11. <stroke android:width="3px" android:color="@color/black" /> 12. </shape> Kodesnutt 3: Kodeeksempel for å generere en grønn knapp som er lys på toppen, mørkere nederst. 45 46 http://developer.android.com/design/style/iconography.html#DesignTips En gradient er en gradvis overgang fra en farge til en annen. 95 FIGUR 106: EKSEMPEL PÅ GENERERING AV DRAWABLE-FIL GJENNOM XML-KODE. Layout I layout-mappen lagres utseendet til applikasjonen. Det er for omfattende å beskrive hver enkelt fil detaljert, men en oversikt over alle filene er inkludert. De viktigste designfilene, ukesmodus og dagsmodus blir beskrevet mer detaljert. Ved utvikling av designet kan man velge mellom ulike Layouts47, som definerer den visuelle strukturen for brukergrensesnittet. RelativeLayout, som er vist i figur 107, gjør det mulig å sette opp elementer relativt til hverandre. For eksempel ser man i figuren at 1 er plassert over 2 og 3. Element 2 er plassert til venstre for element 3. Alle elementer i strukturen er satt opp i relasjon til hverandre. RelativeLayout er valgt som Layout i hele applikasjonen fordi det er mulig å holde hierarkiet flatt, noe som øker ytelsen48. FIGUR 107: VISER ET EKSEMPEL PÅ HVORDAN RELATIVE-LAYOUT KAN SETTES OPP. 47 48 http://developer.android.com/guide/topics/ui/declaring-layout.html http://developer.android.com/guide/topics/ui/layout/relative.html 96 Ukesmodus Ukesmodus (week_view.xml) består av en rekke ulike XML-filer. Figur 108 viser de viktigste. 1. 2. 3. 4. 5. date_picker.xml style.xml (weekTextWeekDay) style.xml (weekListView) single_activity_list_item.xml icon_key.png FIGUR 108: VISER HVILKE FILER UKESOVERSIKTEN BESTÅR AV. For videreutviklere er det viktig å raskt få innblikk i størrelsesforhold i applikasjonen. I fremtiden er det mulig at størrelsen for bilder eller tekst for aktiviteter må justeres. Siden ukesmodus består av flere ulike XML-filer, er størrelsesforholdene samlet og vist i figur 109. FIGUR 109: VISER STØRRELSER SOM BRUKES FOR AKTIVITETER I UKESMODUS. 97 Dagsmodus Dagsmodus (day_view.xml) består av en rekke ulike komponenter. Figur 110 viser de viktigste. Dersom en aktivitet inneholder en sjekkliste, blir punkt 6 (day_view_normal.xml) byttet ut med day_view_checklist.xml. 1. 2. 3. 4. 5. 6. 7. 8. icon_home.png date_picker.xml Button - åpner day_view_assistance.xml single_activity_list_item.xml ListView day_view_normal.xml ListView single_activity_chain_item.xml FIGUR 110: VISER DE ULIKE KOMPONENTENE DAGSMODUS BESTÅR AV. Liste over layout-filer Under følger en komplett liste over layout-filer: admin_add_checklist.xml admin_home_button.xml admin_login.xml admin_manage_activity.xml admin_manage_activity_timer.xml admin_manage_users.xml admin_manage_users_form.xml admin_menu.xml admin_settings.xml admin_week_overview.xml date_picker.xml day_view.xml 98 day_view_assistance.xml day_view_checklist.xml day_view_normal.xml download_skype.xml part_activity_field.xml single_activity_admin_list_item.xml single_activity_chain_item.xml single_activity_list_item.xml single_user_overview.xml week_view.xml welcome.xml welcome_add_first_user.xml 13.7.2 Raw I raw-mappen lagres råfiler som ikke er bearbeidet. I Digitus lagres to lydklipp her: alarmlyd for å signalisere at nedtelleren er ferdig og en feilmeldingslyd dersom administrator ikke har fylt inn alle felt tilstrekkelig godt nok. 13.7.3 Values I values-mappen finnes color.xml, strings.xml og styles.xml. Alle disse filene er til for å unngå at informasjon er lagret redundant. Under blir hver enkelt fil gjennomgått. Strings.xml Strings.xml inneholder alle tekststrenger i applikasjonen. Fordelen med å bruke strings.xml er å gjøre det lett å oversette teksten til forskjellige språk. Da er alle tekster samlet og organisert på ett sted, slik at det er lett å oppdatere eller oversette. Ved å ha flere strings-filer for ulike språk vil språket som brukes på enheten automatisk brukes. Dersom applikasjonen skal oversettes til andre språk holder det altså å oppdatere strings.xml. 1. <?xml version="1.0" encoding="utf-8"?> 2. <resources> 3. <string name="activityAdded">Aktiviteten er opprettet.</string> 4. <string name="activityDeleted">Aktiviteten er slettet.</string> 5. </resources> Kodesnutt 4: Utdrag fra strings.xml-fil. 99 Color.xml Color.xml inneholder en oversikt over alle farger som brukes i applikasjonen. Denne filen ligger under res/values og alle fargene har fått et navn. Dermed slipper man å forholde seg til fargekoder i resten av applikasjonen, da holder det å huske for eksempel «blue». Det finnes mange forskjellige fargenyanser, men ved å bruke color.xml har man enkelt oversikt over alle farger. Det finnes mange ulike fargenyanser, og dersom man senere finner ut at man vil gjøre en farge lysere, trenger man kun å endre fargen i color.xml. Da vil fargen bli oppdatert alle steder i applikasjonen. Der fargen vises er det kun lagret en referanse til color.xml, mens selve fargekoden lagres i color.xml. Fargene er organisert etter hvor det er brukt; knappefarger, generelt og farger for ukedager. Hver enkelt ukedag har sin egen farge, og for å gjøre det lettere å finne fram er de navngitt etter ukedag, ikke hvilken farge de faktisk er. Alle farger som er brukt i applikasjonen er beskrevet i «Universell utforming/Farger» FIGUR 111: VISER ALLE FARGEKODER SOM BRUKES I APPEN. 1. <color name="blue">#43bdfc</color> 2. <color name="blue_light">#5f9dd6</color> 3. <color name="blue_dark">#07324f</color> Kodesnutt 5: Viser hvordan fargekoder er organisert i Color.xml. Her knyttes kodeordet «blue» opp mot fargekoden #43bdfc. Dermed holder det å huske «blue» dersom man senere trenger å bruke fargen. Styles.xml I styles.xml setter man opp en designmal som kan brukes flere ganger. Ved å skille ut designspesifikke XML-tags, er det enkelt å oppdatere alle filer samtidig, og man er da sikrer at alle knapper og tekstfelt har likt design. Et eksempel på bruk av styles.xml er ListView-en som brukes for å vise en oversikt over alle aktiviteter som skal utføres en bestemt dag. Planen overskriver standard ListView, blant annet for å posisjonere aktiviteter ved å legge til padding. Den legger også til et mellomrom mellom hvert element i listen. For å unngå at denne koden er repetert for hver eneste dag er den skilt ut i styles.xml, som vist i kodesnutt 6. 100 1. <style name="weekListView" parent="@android:style/Widget.ListView"> 2. <item name="android:layout_width">183dp</item> 3. <item name="android:layout_height">match_parent</item> 4. <item name="android:scrollbars">none</item> 5. <item name="android:background">@android:color/transparent</item> 6. <item name="android:divider">@android:color/transparent</item> 7. <item name="android:dividerHeight">5.0sp</item> 8. <item name="android:paddingLeft">6dp</item> 9. <item name="android:paddingRight">6dp</item> 10. <item name="android:paddingTop">10dp</item> 11. </style> Kodesnutt 6: Eksempel på style av ListView for aktiviteter i styles.xml. 13.8 Systemkrav Det stilles en del krav til enheten for å kunne bruke Digitus. Applikasjonen i seg selv bruker kun 3.61 MB lagringsplass. Databasen, mellomlager og bildefiler er det som tar opp mest plass. Det er vanskelig å beregne hvor mye plass man trenger til dette, men databasen og mellomlageret tar ikke spesielt stor plass. Eksempelvis tar en plan med 30 aktiviteter og fire administratorer i underkant av 80 KB. Bildefilene derimot kan ta opp mye plass. Etter komprimering kan man regne med at bildefilene ligger på omtrent 200-400 KB per bilde. For at applikasjonen skal kunne kjøre kreves minimum Android versjon 4.0.3 (API 15, Ice Cream Sandwich). Det er også påkrevd at enheten har innebygget kamera. Skype-applikasjonen må være installert for at bistandsdelen av dagsplanen skal fungere. 13.9 Tillatelser/permissions En sentral tankegang i Androids sikkerhetsarkitektur er at ingen applikasjoner har tilgang til å gjøre noen operasjoner som kan påvirke andre apper, operativsystemet eller brukeren selv som standard. Man har altså ikke tilgang til å lese eller lagre brukerens private informasjon som for eksempel kontakter, meldinger eller mailer. Man har heller ikke tilgang til internett, mulighet til å sende meldinger og lignende. Kort sagt kan man si at applikasjonen ikke kan påvirke brukeropplevelsen eller noen informasjon på enheten. FIGUR 112: OVERSIKT OVER TILLATELSENE DIGITUS KREVER. 101 For å få tilgang til funksjonalitet som påvirker enheten må man oppgi dette i AndroidManifest.xml. Da får brukeren opp hva slags tillatelser applikasjonen krever før man får installert. Digitus krever få tillatelser for å fungere, og under er en liste over alle. 13.9.1 Tillatelse til å lagre data Digitus spør om tillatelse til WRITE_EXTERNAL_STORAGE. Denne tilgangen trengs for å lagre bilder til enheten. Alle bilder som blir tatt i applikasjonen må lagres, og derfor må brukeren tillate lagring. 1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> Kodesnutt 7: I AndroidManifest.xml oppgis det at applikasjonen krever tilgang til lagringsplass. 13.9.2 Tillatelse til å bruke kameraet Digitus starter kameraet som en Intent49, og bruker derfor aldri kameraet direkte50. Det vil si at man strengt tatt ikke trenger å be om tillatelse til å bruke kameraet, da den originale kameraapplikasjonen allerede har tillatelse til det. For ordens skyld og for å gjøre brukeren oppmerksom på at kameraet faktisk blir brukt ber applikasjonen likevel om tillatelse til å bruke kameraet. 1. <uses-permission android:name="android.permission.CAMERA" /> Kodesnutt 8: I AndroidManifest.xml oppgis det at applikasjonen krever tilgang til kameraet. 13.9.3 Tillatelse til å bruke internett Applikasjonen krever tilgang til internett for å sjekke om bistandsytere er pålogget på Skype. Internet brukes for å hente ned et kort kodeord fra Skype sin nettside. For å finne ut om brukeren er tilkoblet internett eller ikke, må applikasjonen ha tilgang til nettverkstilstand. Nettverkstilstand brukes for å skrive ut en melding til brukeren dersom Skype-modulen åpnes uten at enheten har tilgang til internett. Da får brukeren tilbakemelding om at internett må være tilgjengelig og tilkoblet for å bruke Skype. 1. <uses-permission android:name="android.permission.INTERNET" /> 2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> Kodesnutt 9: I AndroidManifest.xml oppgis det at applikasjonen krever tilgang til internett og informasjon om nettverkstilstand. 49 50 http://developer.android.com/guide/topics/media/camera.html#intents http://developer.android.com/guide/topics/media/camera.html#manifest 102 13.10 Sikkerhet Androids operativsystem har mange sikkerhetssystemer innebygget51. Systemet er bygget opp slik at man som utvikler skal unngå mye sikkerhetsproblematikk. Blant annet brukes et kryptert filsystem for å beskytte data, man har systemer for å sikre minnehåndteringsfeil og Android Application Sandbox52. De to viktigste sikkerhetsområdene som er aktuelt for Digitus er å hindre SQL-injections og å kryptere passord. 13.10.1 SQL-injections SQL-injections er angrep som utnytter metategn53 i SQL. Dette kan endre spørringen slik at angriperen kan endre eller generere nye databasespørringer. Dersom input fra brukeren blir sendt direkte til databasetjeneren uten å håndtere metategn kan angriperen få tilgang til å lese, endre eller slette data. Ifølge OWASP54 er SQL-injections den mest kritiske sikkerhetsrisikoen. For å unngå SQL-injections benytter applikasjonen ContentValues i stedet for rene SQL-spørringer ved innsetting av data. ContentValues bruker variabelbinding55, noe som forhindrer SQL-injections56 (Burns, J. 2008:20). ContentValues kan gi kortere kode og er mer oversiktlig enn lange SQLspørringer. Ved henting av data fra databasen brukes prepared statements57, som gir både sikkerhet og er mer effektiv enn normale spørringer58. Ved oppdatering og sletting av data brukes paramtriserte spørremetoder; update() og delete(). 1. 2. 3. 4. 5. ContentValues values = new ContentValues(); values.put(COLUMN_ACTIVITY_ID, activity.getActivityID()); values.put(COLUMN_ACTIVITY_POSITION, activityPosition); values.put(COLUMN_ACTIVITY_FROM_TEMPLATE_ID, activity.getActivityTemplateID()); values.put(COLUMN_ACTIVITY_DATE, DateHandler.getStringFromCalendar(activity.getActiv ityDate())); 6. values.put(COLUMN_ACTIVITY_FINISHED, false); 7. 8. db.insert(TABLE_ACTIVITY, null, values); Kodesnutt 10: Eksempel på ContentValues for innsetting av data. Her legges det inn informasjon om en ny aktivitet. 51 http://developer.android.com/training/articles/security-tips.html Android Application Sandbox isolerer forskjellige apper fra hverandre. 53 Eksempler på metategn er ‘#--. 54 https://www.owasp.org/index.php/Top_10_2013-Top_10 55 http://androidxref.com/4.4.2_r1/xref/frameworks/base/core/java/android/database/sqlite/ SQLiteDatabase.java#1537 56 http://thecodist.com/article/sql-injections-how-not-to-get 57 http://tutorials.jenkov.com/jdbc/preparedstatement.html#preparedstatement-performance 58 http://developer.android.com/training/articles/security-tips.html#ContentProviders 52 103 1. String query = 2. "SELECT " + COLUMN_ACTIVITY_ID + 3. " FROM " + TABLE_ACTIVITY + 4. " WHERE " + COLUMN_ACTIVITY_DATE + " = ?" + 5. " AND " + COLUMN_ACTIVITY_POSITION + " = ?"; 6. 7. String[] values = {DateHandler.getStringFromCalendar(date), String.valueOf(position) }; Kodesnutt 11: Eksempel på prepared statement for henting av data. Det første spørsmålstegnet blir erstattet med verdien på posisjon 0 i values-arrayen, det andre med posisjon 1. 13.10.2 Krypterte passord For å unngå at brukernes passord skal kunne leses av direkte dersom noen får tilgang til databasen, blir passord lagret kryptert i databasen. Hash-funksjonen SHA-25659 brukes for kryptering, og som vist i kodesnutt 12 brukes MessageDigest i java-koden. Klassen har sikre «enveis-hash»-funksjoner60. 1. MessageDigest md = null; 2. md = MessageDigest.getInstance("SHA-256"); 3. return byteArrayToHexString(md.digest(password)); Kodesnutt 12: Utdrag fra kode for å konvertere byte-array til en kryptert String. 13.11 Tilgjengelighet (accessibility) Et viktig mål med applikasjonen er at den skal være så tilgjengelig som mulig. For å teste at applikasjonen er tilgjengelig er Androids sjekkliste for brukervennlighet61 fulgt. Under gjennomgås de viktigste stegene som er nødvendig for å gjøre appen brukbar for personer med funksjonsnedsettelser. 13.11.1 Opplesing av tekst og bilder TalkBack er en tilgjengelighetstjeneste som hjelper blinde og synshemmede brukere ved å legge til tale-, lyd- og vibrasjonstilbakemelding på enheten62. Appen er forhåndsinstallert på de fleste Android-enheter. Dagsplanapplikasjonen er testet med TalkBack aktivert, og alle essensielle elementer blir lest opp for brukeren når de blir trykket på. ContentDescription er en tagg man setter på bilder og grafikk. Konsekvent bruk av taggen har sikret at applikasjonen kan brukes selv om man ikke klarer å lese tekst eller bilder. Alle elementer blir beskrevet tekstlig, og dermed kan man forstå innholdet uten å se for eksempel bildet. Dersom man har aktivert TalkBack, vil innholdet i bildet bli lest opp hvis man trykker på det. ContentDescription er lagt til alle ImageButton, ImageView og CheckBox som tilbyr funksjonalitet eller viktig informasjon 59 SHA-256 (Secure Hash Algorithm) hører til «SHA-2»-familien, og de ferdige hash-verdiene blir på 256 biter. http://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html 61 http://developer.android.com/tools/testing/testing_accessibility.html 62 https://support.google.com/accessibility/android/answer/6007100 60 104 i applikasjonen. Bilder som kun er brukt som dekorativ grafikk inneholder ikke ContentDescription. Tekstfelt blir automatisk tolket av TalkBack, og de inneholder derfor heller ikke taggen. 13.11.2 Hint for tekstfelt For EditText-felt brukes android:hint i stedet for ContentDescription. Årsaken til dette er at man skal gi brukeren informasjon om hva som skal fylles inn i feltet. Dette blir lest opp når tekstfeltet er tomt. Etter at informasjon er fylt inn i feltet, blir innholdet lest opp i steden for hint-teksten63. Siden hint-teksten havner i tekstfeltet blir det mer brukervennlig selv for personer som ikke bruker TalkBack. Årsaken til dette er at beskrivelsen av hva som skal fylles inn i tekstfeltet havner midt i feltet, og det er da ingen tvil om hva som skal fylles inn. FIGUR 113: ANDROID:HINT SØRGER FOR AT DET TYDELIG VISES HVA SOM SKAL FYLLES INN I EDITTEXT-FELT. 13.11.3 Navigering med tastatur For at applikasjonen skal være tilgjengelig for personer som ikke bruker touch-skjermen er alle navigasjonssystemer gjort tilgjengelig for bruk med tastatur. Brukere med begrenset syn eller som har motoriske problemer kan ha god nytte av å bruke tastatur i stedet for den trykkbare skjermen. Appen er testet med tastatur for å sikre at det fungerer optimalt. For å gjøre et element tilgjengelig med tastatur, legger man til XML-taggen android:focusable="true"64. FIGUR 114: VISER UTDRAG FRA ADMIN-INNSTILLINGER, DER SWITCH FOR NAVIGASJONSFELT HAR FOKUS. Android har en innebygget algoritme for å styre hva som skal få fokus hvis brukeren trykker opp/ned/venstre/høyre. For innstillinger i adminmodus fungerer ikke dette, siden en switch er plassert foran en TextView. Ved å trykke til høyre i «Navigasjonsfelt» havner man ikke på switch, og omvendt havner man ikke på «Navigasjonsfelt». Løsningen på dette er å overstyre Android, ved å bruke android:nextFocusLeft og android:nextFocusRight. Figur 115 viser hvordan dette er gjort i koden. Som bildet viser, blir man ført til switch ved å trykke til høyre i «Navigasjonsfelt», og man kommer tilbake igjen ved å trykke til høyre. Dette er gjort for alle innstillinger-felt, og er helt nødvendig for at man skal kunne endre innstillinger med tastatur. 63 64 http://developer.android.com/guide/topics/ui/accessibility/apps.html#label-ui http://developer.android.com/guide/topics/ui/accessibility/apps.html#focus-nav 105 FIGUR 115: VISER HVORDAN TASTATUR-NAVIGERING ER IVARETATT VED Å OVERSTYRE ANDROIDS STANDARDOPPFØRSEL. For at brukeren skal slippe å navigere innom elementer som ikke kan endres, fjernes fokuset fra knapper som blir merket som deaktivert. Android vet ikke om en knapp med selvlagd design skal ha fokus eller ikke, og derfor må man selv oppgi det. I dagsplanen deaktiveres knappen «Ikke ferdig» om en oppgave ikke er fullført, som vist i figur 116. I java-koden brukes setFocusable(false) for å la tastaturet «hoppe over» knappen. Dermed blir navigeringen raskere. FIGUR 116: «IKKE FERDIG» ER DEAKTIVERT. DA KAN MAN IKKE NAVIGERE TIL KNAPPEN MED TASTATURET. 13.12 Testing I dette kapittelet blir det beskrevet hva slags testing som er utført og en oversikt over testresultatene. Dette er gjort for å kvalitetssikre produktet og meningen er å avdekke feil som ikke ble funnet under utviklingen. Testingen er utført på det produktet som er levert til oppdragsgiver. Digitus er testet med fire ulike nettbrett: Samsung Galaxy Tab S 8.4" (SM-T700) Samsung Galaxy Tab 10.1" (GT-P7510) Samsung Galaxy Tab 4, 10.1" (SM-T530) Samsung Galaxy Note Pro 12.2" (SM-P900) I tillegg til de fysiske nettbrettene er dagsplanen testet med Android-emulatoren som følger med i Android SDK. Følgende Android API-versjoner er testet: API 15 API 16 API 17 API 18 API 19 API 20 API 21 Android 4.0.3-4.0.4 (Ice Cream Sandwich) Android 4.1-4.1.2 (Jelly Bean) Android 4.2-4.2.2 (Jelly Bean) Android 4.3-4.3.1 (Jelly Bean) Android 4.4-4.4.4 (KitKat) Android 4.4W-4.4W.2 (KitKat) Android 5.0-5.0.2 (Lollipop) 106 13.12.1 Velkomstmodus Funksjonalitet Test Resultat Opprette ny bruker Opprett en ny bruker og logg inn med den i adminmodus. OK 13.12.2 Ukesmodus Funksjonalitet Test Resultat Vise ukesoversikt Sjekk at ukesoversikt, inkludert oversikt over hvilke aktiviteter som er fullført og ikke vises. OK Navigasjon Navigere til forrige/neste uke og til ukesmodus. OK Vise hvilken dag som er i dag Sjekk at «i dag» er markert med annen bakgrunnsfarge. OK 13.12.3 Dagsmodus Funksjonalitet Test Resultat Navigasjon Navigere til forrige/neste dag og tilbake til ukesmodus. OK Fullføre aktivitet Sjekke at aktivitet blir markert som ferdig og at man blir flyttet til neste aktivitet. OK Fjern fullført aktivitet Sjekke at en aktivitet som er markert som fullført kan bli «ikke fullført» ved å trykke på «Ikke ferdig»-knappen. OK Bistand Sjekke at bistand-vindu dukker opp, at tilgjengelig-status er riktig og at det er mulig å ringe til kontakter. OK Sjekklister Sjekke at det er mulig å huke av/fjerne avhukninger for delhandlinger. OK Handlingskjeder Sjekke at det er mulig å navigere fram/tilbake i handlingskjeder via OK «Fullført»/«Ikke fullført»-knapper. 107 13.12.4 Adminmodus Funksjonalitet Test Resultat Logge inn Logge inn med brukernavn og passord. OK Navigasjon Navigere til «Innstillinger», «Brukere» og «Endre plan». OK Legge til aktivitet Legge til aktivitet i dag, med overskrift, beskrivelse og bilde. OK Legge til handlingskjede Legge til handlingskjede med tre delhandlinger. OK Legge til sjekkliste Legge til sjekkliste med tre delhandlinger. OK Endre eksisterende aktivitet Skift ut overskrift, beskrivelse og bilde for eksisterende aktivitet. Slett eksisterende handlingskjede, gjør om til sjekkliste. Legg til tre delhandlinger. OK Slette aktivitet Slett en aktivitet, sjekk at den forsvinner fra planen. OK Aktivere/deaktivere funksjoner Sjekk at bistand via Skype, navigasjonsfelt, sveip, fargekoder, kontekstmeny for handlingskjeder og nedtelling kan skrus på via adminmodus og fungerer som det skal. OK Last inn eksempelplan Last inn eksempelplan og sjekk at alle eksisterende aktivteter forsvinner, og eksempelplan lastes inn. OK Fjern alle aktiviteter Fjern alle aktiviteter fra databasen (via knapp i «Innstillinger»), sjekk at alle aktiviteter forsvinner fra planen. OK Legg til ny bruker Legg til en ny bruker med alle felt, inkludert bilde, utfylt. OK Endre bruker Endre bilde, fullt navn, brukernavn, passord og Skype-id. OK Slett bruker Slett bruker via brukeradministrasjon. OK Logge ut Logge ut fra adminmodus. OK 108 13.12.5 Resultater fra testing Testingen ga en bekreftelse på at all hovedfunksjonalitet fungerer uten feil på de testede Androidversjonene. Applikasjonen skalerte godt på alle de forskjellige skjermstørrelsene, og kravet om at applikasjonen skal fungere på 8"-12"-skjermer er dermed oppfylt. Applikasjonen oppførte seg identisk uavhengig av skjermstørrelse og Android-versjon. 109 14 Referanser Andresen, M. L., Løkke, J. A., & Løkke, G. E. (2013). Tegnøkonomi og påvirkning av oppmøte etter friminutt i en barneskoleklasse. Bouch, A., Kuchinsky, A., & Bhatti, N. (2000, April). Quality is in the eye of the beholder: meeting users' requirements for Internet quality of service. In Proceedings of the SIGCHI conference on Human Factors in Computing Systems (pp. 297-304). ACM. Brady, L., & Phillips, C. (2003). Aesthetics and usability: A look at color and balance. Usability News, 5(1), 2003. Burns, J. (2008). Developing secure mobile applications for Android. Finstad, J. (2001). Avtalestyring - en beskrivelse. Diskriminanten, 28, 2, 39–55. Hourcade, J. P., Bullock-Rest, N. E., & Hansen, T. E. (2012). Multitouch tablet applications and activities to enhance the social skills of children with autism spectrum disorders. Personal and ubiquitous computing, 16(2), 157-168. Miller, G. A. (1956). The magical number seven, plus or minus two: some limits on our capacity for processing information. Psychological review, 63(2), 81 O'Malley, P., Lewis, M. E. B., & Donehower, C. (2013). Using Tablet Computers as Instructional Tools to Increase Task Completion by Students with Autism. Online Submission. Preece, J., Rogers, Y., Sharp, H. (2002), Interaction Design: Beyond Human-Computer Interaction, New York: Wiley, p.21 Sandnes, F. E. (2011) Universell utforming av IKT-systemer: brukergrensesnitt for alle. Oslo: Universitetsforlaget. Shneiderman, S. B., & Plaisant, C. (2005). Designing the user interface 4 th edition. ed: Pearson Addison Wesley, USA. 110 15 Brukerveiledning I denne brukerhåndboken blir det trinnvis beskrevet hvordan man tar i bruk Digitus Dagsplan og dens funksjoner. Applikasjonen er designet for å brukes horisontalt og støtter alle Androidbaserte nettbrett med versjon 4.0.3 eller høyere. Brukerhåndboken består av to deler; en brukerdel som er beregnet for brukere, og en administrasjonsdel som er beregnet for bistandsytere. 15.1 Brukerdel Under beskrives navigasjonen for ukes- og dagsmodus i applikasjonen. 1. Brukes for navigering mellom uker. 2. Velges for å komme til administrasjonsdelen. 3. Viser oversikt over en ukeplan. 4. Viser oversikt over en dagsplan. 5. Viser et gjøremål. 1. Velges for å komme til ukeplanen. 2. Brukes for navigering mellom dager. 3. Velges for å ringe etter assistanse. 4. Viser oversikt over dagens aktiviteter. 5. Brukes for å fullføre/fjerne fullført-status. 6. Viser oppgavene i handlingskjeden og hvor du befinner deg. 111 Hvordan fullføre gjøremål? Trykk «Ferdig» etter å ha fullført et gjøremål. Hvordan angre utført gjøremål? Etter å ha valgt det gjøremål som skal angres, trykk «Ikke ferdig». Avhukingen for gjøremålet vil forsvinne, og det blir igjen mulig å trykke på «Ferdig»-knappen. 112 15.1.2 Navigering Hvordan bytte uke? Dra fingeren langs det blå toppfeltet i ukesmodus for å bytte uke. Man kan også bruke pilene som står ved siden av ukenummeret. Hvordan bytte dag? Dra fingeren langs det blå toppfeltet i dagsmodus for å bytte dag. Man kan også bruke pilene som står ved siden av ukedagnavnet, i dette tilfellet «Onsdag». Hvordan navigere mellom gjøremål? Bruk den venstre menyen for å navigere til et annet gjøremål. 113 15.1.3 Hvordan komme til neste steg i en handlingskjede? Trykk på den grønne knappen «Ferdig», for å fullføre deloppgaven. Ved å trykke her blir du sendt til neste deloppgave. 15.1.4 Hvordan gå tilbake et steg i en handlingskjede? Dersom du ønsker å gå tilbake i handlingskjeden må du trykke «Ikke ferdig». 114 15.1.5 Hvordan fullføre en delhandling i sjekkliste? Trykk på teksten eller bildet for en delhandling for at den skal bli fullført. Ved fullføring vises et sjekk-symbol over bildet. 15.1.6 Hvordan angre fullføring av delhandling i sjekkliste? Du kan angre i sjekklisten ved å trykke på et gjøremål som allerede er huket av. 115 15.1.7 Nedteller Hvordan starte nedtelleren? Trykk på «Start»-ikonet i nedtellingsfeltet for å starte nedtelleren. Applikasjonen vil lage en lyd når nedtellingen er fullført. Hvordan pause nedtelleren? Nedtellingen kan settes på pause ved å trykke på «Pause»-ikonet. 116 15.1.8 Hvordan ringe bistandsytere, familie eller venner? Trykk på «Hjelp»-knappen øverst i høyre hjørne i dagsmodus. Trykk på bildet av den du vil ringe. Da vil kontakten umiddelbart ringes opp. Grønn telefon viser at personen kan ringes. Rød telefon viser at personen ikke kan ringes. 117 15.1 Administrasjonsdel Trykk for å komme til forsiden av administrasjonen - ukeplan Trykk for å logge ut Trykk for å se ukeplan Trykk for å legge til/endre aktivitet Trykk for å se/endre brukere Trykk for å endre innstillinger Første gang Digitus Dagsplan startes må en brukerkonto for en bistandsyter opprettes. For å komme til opprettelsessiden må du trykke «Lag ny bruker». For å opprette en administrator må skjemaet vist i bildet til venstre utfylles. Alle felt unntatt «Skype-brukernavn» må utfylles. Sjekkboksene til høyre for tekstfeltene blir grønne når de er godkjent. For å se kravene kan sjekkboksene trykkes. Når all informasjon er fylt ut må «Lag ny bruker» trykkes for å lagre. 118 Hvordan logge inn? For å komme til innloggingssiden må du trykke på nøkkelen øverst til høyre i ukesmodus. Skriv inn ditt brukernavn og passord i feltene og trykk deretter «Logg inn». Hvordan logge ut? Øverst til høyre i hver side i adminmodus er det en «Logg ut»knapp. Ved å trykke på denne blir du logget ut og sendt til ukesmodus. 119 Hvordan opprette ny administrator? Velg brukere i venstremenyen, deretter trykk «Lag ny bruker» nederst på siden. Ta et bilde av brukeren ved å trykke «Ta bilde». Alle felt unntatt «Skypebrukernavn» må utfylles. Sjekkboksene til høyre for tekstfeltene blir grønne når de er godkjent. For å se kravene kan sjekkboksene trykkes. Når all informasjon er fylt ut må «Lagre bruker» trykkes. Hvordan endre administratorbruker? Velg den brukeren du vil endre ved å trykke på bildet eller tilhørende tekst. 120 Endre informasjonen som skal rettes, deretter trykk «Lagre bruker». Hvordan slette en administratorbruker? Trykk «Slett»-knappen for å slette brukeren. Bekreft «Ja» på spørsmål om du vil slette brukeren. 121 15.1.2 Aktiviteter Hvordan opprette en aktivitet? Opprett en aktivitet ved å trykke «Legg til» under ønsket dag nederst i ukeplanen. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Skriv inn navn for aktivitetet. Skriv inn en beskrivelse for aktiviteten. Ta et bilde for aktiviteten ved å trykke «Ta bilde»-knappen. Velg «Legg til»-knappen om du vil legge til en hjelpeliste sammen med aktiviteten. Trykk «Slett siste» for å fjerne den siste delaktiviteten i hjelpelisten. Trykk på «Info om hjelpelister» for å lese mer om forskjellen på en handlingskjede og en sjekkliste. Ved å huke av vil delaktivitetene vises som en handlingskjede, ellers vises den som en sjekkliste. Trykk for å ta et bilde av delaktiviteten. Legg til overskrift for delaktiviteten. Trykk «Lagre» for å opprette aktiviteten. 122 Hvordan endre en aktivitet? Trykk på aktiviteten du vil endre fra ukesoversikten. Her kan du endre aktiviteten, likt som for opprettelse av aktiviteter. Endre ønskede felter og trykk «Lagre»-knappen. Dersom det finnes flere identiske aktiviteter plassert på ulike dager må du bestemme om du ønsker å endre for kun en bestemt dag eller alle aktiviteter. 123 Hvordan slette en aktivitet? Trykk på den aktiviteten du vil slette. Trykk på den røde «Slett»-knappen. Bekreft med «Ja» for å slette aktiviteten. 124 15.1.3 Innstillinger Hvordan skru av/på funksjoner? Skru på ønsket funksjonalitet ved å dra bryteren til høyre. Skru av ved å trekke til venstre. Ved å trykke på funksjonsnavnet dukker det opp en beskrivelse av hva funksjonen gjør. Hvordan laste inn en eksempelplan? Trykk på knappen «Last inn eksempelplan» for å laste inn en uke med eksempelaktiviteter. Disse kan brukes for å prøve seg fram i planen uten å ha virkelige aktiviteter å jobbe med. Ved å laste inn eksempelplanen blir alle eksisterende aktiviteter i planen slettet. Handlingen må derfor bekreftes ved å trykke «Ja» i en dialogboks som dukker opp. Hvordan slette alle aktiviteter? Trykk på knappen «Slett alle aktiviteter» for å slette alle aktiviteter fra planen. Handlingen må bekreftes ved å trykke «Ja» i en dialogboks som dukker opp. 125 16 Vedlegg 16.1 Vedlegg 1: Attest fra oppdragsgiver 126 16.2 Vedlegg 2: Risikoplanlegging Alle prosjekter har en risiko og det er evnen til å løse problemer før de oppstår som er med på å definerer et godt gjennomført prosjekt. Ved å lage en risikoplan kan vi forebygge problemer som oppstår eller allerede har oppstått. Vi mener at fravær, tekniske problemer, gratispassasjerer og tidsmangel er de største farene for dette prosjektet. Risiko Beskrivelse av risikoen Hvor stor er Sannsynligheten? Hva er konsekvensen? Hvordan forebygger vi? Tap av gruppemedlem Ett eller flere gruppemedlemmer trekker seg fra gruppa eller studiet. Lav Færre tanker og ideer om prosjektet. Mer jobbing på de gjenværende. Ha god kommunikasjon gjennom hele prosessen. Dersom dette oppstår må vi ha en plan B og omfordele arbeidet for å forhindre store opphold i arbeidet. Gratispassasjer En eller flere gruppemedlemmer bidrar i svært liten grad eller ikke møter opp på gruppemøter. Lav/moderat Dårlig stemning i gruppa. De som bidrar får mer å gjøre, men lærer også mer. De som ikke deltar har lite læringsutbytte. Ha en utfyllende samarbeidsavtal e som er klar på at alle må bidra. Hvis ikke vil det bli konsekvenser. Tekniske problemer Tekniske problemer som harddiskkrasj og tap av internettforbindelse. Moderat Ting må gjøres om igjen. Arbeidet blir utsatt. Lagre alt arbeidet på Dropbox, slik at alle har en lokal kopi av arbeidet. Tap av tid og ressurser. Dårlig kommunikasjon Dårlig kommunikasjon innad i gruppa, for eksempel krangler eller uenigheter. Lav/moderat 127 Ting tar generelt lenger tid, spesielt møter. Lytte til hverandre, komme med konstruktiv kritikk. Ha Tidsmangel Fravær For lite kunnskap og/eller tid til å fullføre oppgaver til fastsatte tider. Lav/moderat Sykdom, ferie og andre ting som gjør at en eller flere ikke kan møte eller utføre oppgavene sine innen fastsatt tidsfrist. Moderat Dårlig stemning i gruppa. respekt for andres menigheter. Mye stress og intensiv jobbing. Starte å jobbe med arbeidsoppgaver tidlig. Fordele oppgavene mest mulig likt. Stort press på hver enkelt for å bli ferdig. Det blir skjev arbeidsfordeling. Ikke planlegg ferier eller andre tidkrevende ting i arbeidsperioden. Gi beskjed god tid i forveien. 128 16.3 Vedlegg 3: Samtykkeskjema for brukertest Brukertest for å undersøke et mulig grensesnitt for en dagsplanapplikasjon for nettbrett, laget av studenter ved Høgskolen i Oslo og Akershus i samarbeid med Oslo universitetssykehus. Prosjektet er vår hovedoppgave på Høgskolen i Oslo og Akershus våren 2015. Testundersøkere: Kristoffer Hagen Steffen Engebretsen Harald S. Adamsen David Meisund epost: [email protected] epost: [email protected] epost: [email protected] epost: [email protected] Formålet med brukertesten er å få tilbakemeldinger på en prototype for dagsplanapplikasjon for nettbrett som gruppen har laget i samarbeid med avdeling for nevrohabilitering ved Oslo universitetssykehus. Det er viktig å presisere at det ikke er du som blir testet, men grensesnittet til prototypen. Hovedhensikten med testen er å få tilbakemelding på utformingen og eventuelt finne feil og mangler i applikasjonen. Gjennomføringen av brukertesten vil foregå på HiOA (iLab, rom P35-PS323), ______________(dato). Testen går ut på å teste et brukergrensesnitt for dagsplanapplikasjonen, og sammenligne dette med det som brukes i dag. Du vil bli gitt fire oppgaver, der det eneste hjelpemiddelet du kan bruke er applikasjonen. Vi ønsker også å vise noen alternative løsninger på utforming for å få tilbakemelding på hvordan det oppleves. All deltakelse i testen er frivillig, og du kan når som helst velge å trekke deg. Dersom du ikke ønsker å foreta en oppgave eller trekke tilbake informasjon som er gitt under testen er dette mulig. Det vil bli tatt bilder under brukertesten. Fordelen med å delta i brukertesten er at det vil hjelpe oss i det videre arbeidet med applikasjonen, noe som kan resultere i en bedre tilpasset app for deg som bruker. Taushetsplikt. All informasjon som blir samlet inn under brukertesten vil være konfidensiell. Ingen publikasjoner vil inneholde informasjon som kan identifisere hvem du er. Eventuelle bilder som blir tatt under brukertesten vil ikke kunne identifisere deg. Innhentet informasjon vil bli behandlet etter Personopplysningsloven, § 8 (behandling av personopplysninger) og § 9 (behandling av sensitive personopplysninger). Jeg har lest og forstått informasjonen over og gir mitt samtykke til å delta i brukertesten: _ ___ Deltaker/foresatt signatur Dato 129 Testleders signatur .
© Copyright 2024