5.2.2 Mellomlaget (Viewmodel) Modellaget Controller-laget Verktøy (Utilities) REST-laget...

Størrelse: px
Begynne med side:

Download "5.2.2 Mellomlaget (Viewmodel)...21 5.2.3 Modellaget... 23 5.2.4 Controller-laget... 23 5.2.5 Verktøy (Utilities)... 24 5.2.6 REST-laget..."

Transkript

1

2 1 Forord Denne rapporten er prosjektets produktrapport og redegjør for applikasjonens bruksområder, funksjonalitet, oppbygning, tekniske detaljer og hvordan man feilsøker. Rapporten er beregnet for både sensor, veileder, og eventuelle utviklere som skal arbeide med eller drifte applikasjonen i ettertid, men kan også leses av andre interessenter. Rapporten er beregnet for personer med datatekniske kunnskaper, spesielt om de benyttede teknologier, men grundige innføringer blir gitt for spesiell programvare, teknologi og teknikker som påkreves for å få fullt utbytte av dokumentasjonen. 2

3 Innholdsfortegnelse 1 Forord Innledning Gruppen Om oppdragsgiver Get AS BEKK AS Bakgrunn for oppgaven Dagens løsning Oppgavens mål Windows Phone Introduksjon til Windows Phone Metros designprinsipper Typografi Bevegelse Content, not Chrome - Fokus på innhold Autentisk digitalt Navigasjonsmuligheter Panorama Pivot Single Andre navigasjonsveier Tekniske krav til mobile enheter Kodespråk og verktøy Beskrivelse av applikasjonen Konsept Generell beskrivelse Design Funksjonalitet Kontekstuelle menyer (Context Menus) Struktur / navigasjon Struktur i kildekoden MVVM - en introduksjon Hvorfor bruke MVVM Generelt om struktur Presentasjonslaget (View)

4 5.2.2 Mellomlaget (Viewmodel) Modellaget Controller-laget Verktøy (Utilities) REST-laget Datagrunnlag (REST) Hva er en REST-tjeneste? Kundens REST-tjeneste Endpoints Svakheter og uregelmessigheter som må tas høyde for Inkonsekvent parsing av felter (lister) Inkonsekvent parsing av felter (tall) Wrappere Json.NET, deserialisering og converters Isolated Storage Brukere og sikkerhet Feilsøking Teknikker Runtime-feil og exceptions Breakpointing IntelliSense Grensetilfeller Tilbakemeldinger Tilbakemelding fra oppdragsgiver Tilbakemelding fra kunden Tilbakemelding fra Microsoft Utvidelsesmuligheter Videreutvikling av frakoblet modus Minimering av datatrafikk Bruk av live tile Sosial deling Bedre filtreringsmuligheter Hjem-knapp Endring av legg til i kalender -knapp i programsiden

5 2 Innledning Denne innledningen inneholder bakgrunnsinformasjon for oppgaven, og finnes både i prosess- og produktrapporten. Innledningsvis vil vi beskrive hvem som har vært involvert i prosjektet, bakgrunnen for oppgaven og hva som har vært oppgavens mål. 2.1 Gruppen Gruppen bestod av tre dataingeniørstudenter og én informasjonsteknologistudent: Hans Petter Naumann, Kristofer Selbekk, Alexander Barve og Vegard Nyeng. Gruppemedlemmene har tidligere arbeidet sammen på skoleprosjekter, og kjenner hverandres faglige styrker meget godt. Vi valgte å danne denne gruppen da vi tidligere har hatt god kommunikasjon, sterke faglige kvaliteter og samme, høye ambisjonsnivå. Figur 2.1: Organisasjonskart over alle aktører 5

6 2.2 Om oppdragsgiver I dette prosjektet har vi hatt to ulike bedrifter å forholde oss til, hvor vi skiller mellom kunde og oppdragsgiver. Kunden, Get AS, har hyrt inn BEKK, vår oppdragsgiver, til å utføre dette prosjektet. Ved prosjektslutt vil Get overta ansvaret for vedlikehold og videreutvikling av applikasjonen Get AS Get AS er en av Norges største leverandører av bredbånd og digital-tv. Med over 500 ansatte og over 1 million kunder, har Get alltid vært grensesprengende innen teknologi. Som første leverandør av bredbånd (1997) og første leverandør av digital-tv i verden med vifteløs HD PVR-dekoder (2007), har Get alltid arbeidet Figur 2.2: Get-logo for å bringe den nyeste underholdningsteknologien til hjem og arbeidsplasser over hele Norge. Get AS vil bli referert til som kunden i fremover BEKK AS Bekk er et konsulentselskap med omkring 300 ansatte, som utvikler IT-systemer for offentlige og private virksomheter. Bedriften, som er eid av Evry, har kontorer både i Oslo og Trondheim. Figur 2.3: Bekk-logo Til prosjektet vårt stilte Bekk med to veiledere: Dan Robert Ekrem og Hans Magnus Inderberg. Dan Robert har sin ekspertise innen interaksjonsdesign, og har bidratt mye innen konseptutvikling og interaksjonsdesign. Hans Magnus er programmerer, og var behjelpelig med innen implementeringsfasen. I tillegg ble vi bistått av grafisk designer Morten Kjøs Utengen, som assisterte oss innen designspørsmål. BEKK AS vil bli referert til som oppdragsgiver i fremover. 2.3 Bakgrunn for oppgaven Kunden har allerede utviklet TV-guide-applikasjoner for ios og Android-baserte telefoner, men ønsket å utvide sin portefølje med en applikasjon for Windows Phone 7, da mange eksperter har foreslått at dette også blir en viktig mobil-plattform i fremtiden. Det fantes ikke noe umiddelbart behov for støtte på denne plattformen, men kunden ville utforske de tekniske mulighetene og være ute på markedet før sine konkurrenter. Deres eksisterende TVguide-applikasjoner innholder en komplett tv-guide, mulighet til å sortere ut kanaler, igangsette opptak på kundens PVR-boks over nettverket, varsling på mobil før tvprogrammer begynner og oversikt over filmene tilgjengelige i kundens filmleie-tjeneste. 6

7 2.4 Dagens løsning I dag har kunden applikasjoner for ios- og Android-baserte telefoner, i tillegg til webapplikasjoner tilpasset vanlige og mobile nettlesere. ios-versjonen av dagens applikasjon er portet med PhoneGap til Android, og er relativt like hverandre. Begge disse versjonene inkluderer funksjonalitet for å se tv-programmet for den kommende uken, filmer i filmleiedatabasen og søkefunksjonalitet, samt opptaksfunksjonalitet for innloggede brukere. Applikasjonene har fått gode, om enn varierende skussmål på sine respektive salgskanaler, og gjennom å analysere disse tilbakemeldingene fikk vi innsikt i hva vår versjon av applikasjonen burde inkludere. 2.5 Oppgavens mål Målet med prosjektet er å konseptualisere, planlegge og produsere en TV-guide-applikasjon for smarttelefoner basert på Windows Phone 7-plattformen. Applikasjonen som skal utvikles skal inkludere all funksjonalitet som finnes i dagens applikasjoner for ios og Android, og, om tiden tillater, noen nye funksjoner. Applikasjonen skal tilby: TV-guide Muligheten til å velge TV-kanaler som vises Søk i TV-programmet og filmleiedatabasen Fjernstyring av programopptak Muligheten til å lage varsling før et TV-program starter Applikasjonen bør tilby (om tiden tillater): Planleggingsfunksjonalitet Trailerstreaming ved filmleie I tillegg hadde vi følgende overliggende visjoner å strekke oss etter: Lage den beste TV-guiden i Norge Lage den beste WP7-appen i Norge I utgangspunktet skulle vi lage en hybridapplikasjon, som gjør det lettere å forvalte og oppdatere applikasjonen. Det ble det etter hvert tatt en helomvending på, siden det viste seg å være lite hensiktsmessig for plattformen. Vi endte da opp med å implementere applikasjonen i native-kode, C#. Begrunnelsen for dette følger senere i rapporten. Videre ble det ytret et ønske om at applikasjonen designes med hensyn på styrkene og designprinsippene til Windows Phone 7, og at nåværende informasjons-api er blir brukt til sitt fulle potensiale. 7

8 3 Windows Phone 7 Her vil vi diskutere de styrker og kvaliteter denne plattformen tilbyr, hvilke retningslinjer for design som blir anbefalt, tekniske krav til telefoner, samt hvilke utviklingsverktøy som er tilgjengelige for utvikling av WP7-applikasjoner. I denne seksjonen vil vi gjøre rede for hva Windows Phone 7 (heretter kalt WP7) er, hvilke designretningslinjer og navigasjonsmuligheter plattformen gjør tilgjengelig, tekniske krav til hardware og hvilke kodespråk plattformen programmeres på. 3.1 Introduksjon til Windows Phone 7 Windows Phone 7 er Microsofts nysatsning for mobile enheter. Plattformen erstattet Windows Mobile i 3. kvartal 2010, og baserer store deler av sin grafiske utforming på designspråket Metro Figur 3.1: Windows Phone-motto (også utviklet av Microsoft). Plattformen ble utviklet i samarbeid med en rekke forskjellige hardware-utviklere (Nokia, Samsung, HTC m.fl.), og setter strenge krav til hardware-spesifikasjonene på telefonene som implementerer det. Sent i 2011 kom det en større oppdatering - kodenavn Mango - som blant annet ga støtte for multitasking. 3.2 Metros designprinsipper Metro er Microsofts egenutviklede designspråk, og brukes meget konsekvent på WP7- plattformen. Designspråket, som er basert på klassisk sveitsisk grafisk design, har hovedtyngden sin på bruk av typografi for å skille elementer fra hverandre. For å gjøre tredjepartsapplikasjoner mer tro mot resten av WP7-plattformen, har Microsoft satt sammen en rekke designprinsipper. Under følger en rask introduksjon til de forskjellige framlagte prinsippene, og hvordan vi har forholdt oss til dem Typografi Typografi er kunsten å visualisere tekst på en lesbar måte. Et sentralt poeng i Metro-design er å bruke størrelsen, tykkelsen og formen på teksten til å forme et visuelt hierarki, for å unngå å bruke grafiske elementer som skillelinjer og unødvendige ikoner for å gjøre samme jobben typografi kan oppnå. Microsoft har tilpasset sin egen Segoe-font til mobile plattformer, Segoe WP. Denne fonten er standardfonten i WP7. Det er intet krav om å kun bruke disse fontene, og vi har valgt å bruke en kombinasjon av Segoe WP og kundens egen font - FS Lola - i applikasjonen Bevegelse Bevegelse er her definert som animasjoner og overganger mellom forskjellige views i applikasjonen. Ved riktig bruk av animasjoner oppnår man et mer levende grensesnitt for brukeren, i tillegg til en raskere oppfatning av brukeropplevelsen - man føler at applikasjoner oppfører seg raskere og mer responsivt enn de nødvendigvis gjør. 8

9 Oppdragsgiver ønsket at dette designkravet skulle få mindre fokus enn de andre i vår applikasjon. Derfor har applikasjonen kun implementert enkle overgangs- og innlastningsanimasjoner Content, not Chrome - Fokus på innhold Metro oppfordrer til å fokusere brukeren på innholdet - og ikke inkludere unødvendige grafiske elementer kun for syns skyld. Dette er et godt prinsipp for mobile enheter, siden skjermstørrelse og bevegelses-basert interaksjon da er noe man må ta høyde for. I vår applikasjon - som er meget informasjonstung - hadde vi stort fokus på å maksimere lesbarheten, oversiktligheten og brukervennligheten gjennom nettopp dette prinsippet Autentisk digitalt Metro oppfordrer til å designe med enheten man designer for i bakhodet. En liten, men høyoppløselig skjerm og bevegelsesbasert, rask interaksjon gir muligheten for å utforme brukergrensesnittet autentisk digitalt. Med andre ord - ingen gjenspeilingseffekter, falske bokhyller og andre grafiske elementer som prøver å fremstille enheten som noe annet enn det den er. Vår applikasjonen følger dette prinsippet gjennomgående. Det er ingen tv-antenner, kabler eller andre grafiske elementer som pynter på grensesnittet - alt fokus er på å presentere selve innholdet på best mulig måte for enheten. 3.3 Navigasjonsmuligheter Windows Phone 7 tilbyr tre forskjellige visningsalternativer, kalt panorama -, pivot -, og single -views. Her følger en kort oversikt over hva de forskjellige er og hva de er ment for Panorama Panorama-visning (også kalt panoramaview) er en bred visning med et satt bakgrunnsbilde som beveger seg i en annen hastighet enn elementene som ligger over. Man kan bevege seg horisontalt bortover flere sidestilte views, og slik navigere seg rundt raskt og Figur 3.2: Panoramavisning i Windows Phone 7 enkelt. Sidene i et panoramaview er knyttet sammen i en slags sirkel. For eksempel, hvis man befinner seg i siden helt til venstre, og navigerer én mot venstre, så havner man på siden helt til høyre. Slik er det aldri vanskelig å navigere seg til det ønskede viewet. Microsoft anbefaler å bruke enten denne visningen eller pivot-visningen til applikasjonens oppstartsside, fordi man får en rask oversikt over et større spekter av funksjonalitet og informasjon. Når man er i en side i et panoramaview, vil man ofte kunne se litt av den neste siden til høyre. Slik får brukere et hint om at det finnes mer informasjon tilgjengelig. 9

10 3.3.2 Pivot Pivot-visning ligner på panorama-viewet i at det fungerer på lik måte - man navigerer seg horisontalt bortover flere sidestilte, men adskilte views. Pivot-views blir typisk brukt til å gruppere lignende views av lik viktighetsgrad. I motsetning til panorama kan ikke brukeren her se noe av siden til høyre, men derimot synes overskriften til den neste siden. Pivotsidene er knyttet sammen i en sirkel, i likhet med beskrivelsen av panoramaviewet Single Single-visning er spesielt tilpasset visning av detaljer. De har ingen sidestilte views, og er én-dimensjonale Andre navigasjonsveier I tillegg til de forskjellige visningstypene, finnes det andre måter å navigere gjennom applikasjonen på. Den første er såkalt ContextMenu, som er en navigasjonsmeny som dukker opp når man holder på et element i en liste, og ApplicationBar, som er en halvskjult rekke med ikoner og valg nederst på skjermen. 3.4 Tekniske krav til mobile enheter Figur 3.3: Pivotvisning i Windows Phone 7 Microsoft satt tøffe, men rettferdige krav til hardware-leverandørene da de lanserte Windows Phone 7. Alle enheter som skal implementere WP7 må minimum møte følgende spesifikasjoner: Capacitive, 4-point multi-touch screen with WVGA (480x800) resolution ARM v7 "Cortex/Scorpion" Snapdragon QSD8X50, MSM7X30, and MSM8X55 DirectX9 rendering-capable GPU 256MB of RAM with at least 4GB of Flash memory Accelerometer, ambient light sensor, proximity sensor and Assisted GPS FM radio tuner Six (6) dedicated hardware buttons back, Start, search, 2-stage camera, power/sleep and volume buttons Optional hardware: Front-facing camera, compass and gyroscope Spesifikasjoner er hentet fra Microsofts nettsider. 3.5 Kodespråk og verktøy Windows Phone 7-applikasjoner programmeres i Microsofts egenutviklede programmeringsspråk C#. Språket er et komplett, objektorientert språk, og er meget godt egnet til å utvikle avanserte og sammensatte programmer. Brukergrensesnittene struktureres og stilsettes i Microsofts egenutviklede XAML-strukturspråk. Microsoft har lagt til rette for at utviklere skal benytte seg av MVVM-strukturen der presentasjonslaget, dataen og logikken separeres (som blir forklart noe senere). 10

11 Windows Presentation Foundation (WPF) er rammeverket som tar seg av UI-rendring. WPF gir utvikleren mange sterke verktøy, inkludert databinding - som gir en enkel og effektiv kommunikasjonslinje mellom XAML-strukturkoden og forretningslogikken. Forretningslogikken (skrevet i C#) er basert på Microsofts.NET-rammeverk - og da en lettvektsversjon av.net spesialtilpasset WP7-enheter. Rammeverket tilbyr i tillegg endel praktisk ekstrafunksjonalitet som forenkler utvikling for mobile enheter. For å utvikle WP7-applikasjoner trenger man noen spesialtilpassede verktøy. Microsoft Visual Studio 2010 (med Windows Phone 7 SDK-tilleggspakke), Expression Blend 2010 og Windows Phone 7 Emulator er verktøyene vi brukte - og regnes som en satt standard i WP7- utviklingsmiljøer. Visual Studio 2010 blir generelt sett brukt som programmerings-ide, og tilbyr nyttig funksjonalitet som breakpointing (for debugging), intellisense, en kompilator, og testverktøy. Hva breakpointing og intellisense er, er beskrevet senere i denne rapporten. Expression Blend 2010 blir brukt som et UI-programmerings-IDE, og har et brukergrensesnitt tilpasset utvikling av attraktive, responsive og sammensatte UI-elementer. Windows Phone 7 Emulatoren er verktøyet som kjører selve applikasjonen på datamaskinen - for rask testing av funksjonalitet og utseende. 11

12 4 Beskrivelse av applikasjonen Vi vil i denne seksjonen gjøre rede for den overordnede strukturen og funksjonaliteten som tilbys i TV-guide-applikasjonen slik at leseren får større utbytte av senere kapitler. Her vil vi gi en innføring til applikasjonens konsept, en generell beskrivelse av hva applikasjonen er og gjør, samt navigasjonsstruktur. 4.1 Konsept Før kodingen av applikasjonen ble påbegynt, gikk gruppen gjennom en grundig konseptutviklingsfase. Vi ønsket å utvikle en applikasjon som tok de beste elementene fra dagens mobile tv-guider, samt nye ideer vi og våre veiledere kom opp med, og sette dem sammen til et enkelt, brukervennlig og strømlinjeformet konsept. Flyten i applikasjonen skulle være intuitiv og effektiv, og det grafiske uttrykket skulle bidra til merkevarebygging for kunden. 4.2 Generell beskrivelse Applikasjonen er en TV-guide - et hjelpemiddel som skal bidra til å forenkle planlegging av tv-kvelden for sluttbrukeren og andre tv-tittere, i tillegg til å øke kundens salg av filmleietjenester. Brukeren blir presentert med en komplett oversikt over dagens tv-program, med søke-, planleggings- og opptaksfunksjonalitet, oversikt over kundens filmleieutvalg (inkludert filmtrailervisning), programvarsling og annen mindre, men smart, funksjonalitet. Nedenfor følger screenshots av et utvalg av sidene som er å finne i den ferdige applikasjonen Design Designet som ble valgt gjenspeiler kundens grafiske profil i alle ledd. Logo ble implementert på oppstartsskjerm og hovedsiden, og kundens selvutviklede font (FS Lola) ble brukt i union med WP7-plattformens egne Segoe WP-fontfamilie. Gulfargen, brukt gjennomgående i applikasjonen, er ment å fremheve kundens varemerke, og gråfargen gir en fin kontrast og fremhever denne. Metro designprinsippene var noe som ble fokusert da den grafiske fremstillingen til applikasjonen ble utformet. Fokuset ble lagt på å strukturere innholdet, og ikke unødvendig støy. Fargebruk og typografi gir informasjon og struktur til brukeren, fremfor å kun være pent. Et eksempel er bruken av farger i kanalvisning, der programmer har ulik farge ettersom de har gått, er pågående eller starter senere. Ved navigasjon mellom sidene er det lagt til animerte overganger. Standard overganger for WP7-plattformen er brukt for å gi applikasjonen en mer integrert følelse, og bidrar til at overgangen mellom views oppleves raskere enn de er. 12

13 Figur 4.1: Førstesiden Figur 4.2: Kanalvisning Figur 4.3: Filmleie 13

14 4.2.2 Funksjonalitet Applikasjonen inneholder mye funksjonalitet under sitt minimalistiske ytre. Brukeren kan logge inn og ut som han eller hun ønsker. Nye kunder, eller brukere som har glemt passord, kan hente ny kode ved å skrive inn telefonnummeret sitt. En innlogget bruker kan ta opptak av programmer, slik at de blir tatt opp på brukerens tvboks hjemme. En innlogget bruker vil også, ved å gå til kanalvelgeren, automatisk få satt opp de kanalene hun eller han har på boksen hjemme i tv-guiden. Kanalvelgeren er selvfølgelig også tilgjengelig for brukere som ikke er logget inn, og lar vedkommende velge kanaler å følge med på. Sett bort fra opptak er alt av funksjonalitet tilgjengelig selv om brukeren ikke er en betalende kunde. En spennende mulighet som tilbys i denne applikasjonen er Min kalender. Dette er en funksjon som hverken finnes i Kundens øvrige mobilapplikasjoner, eller i tilsvarande TV- Guider fra før av. Brukeren kan velge å legge programmet i kalenderen sin fra programsiden eller forskjellige kontekstuelle menyer rundt om i applikasjonen. Hvis programmet er en serie vil brukeren få valget om å legge til hele serien som et abonnement. Programmer i kalenderen, planlagte programmer, vil dukke opp kronologisk i kalenderen, slik at brukeren for en oversikt over planlagte programmer. Ved serieplanlegging vil alle programmene i den aktuelle serien, som går på tv de neste 7 dagene, ligge i kalenderen. Programmer og abonnementer kan fjernes som brukeren selv ønsker fra Min kalender-siden. Planlagte programmer for i dag vises på hovedsiden, mens alle planlagte programmer og abonnementer er å finne på Min kalender-siden. I på tv nå -viewet kan brukeren se hva som går på tv i øyeblikket, på de kanalene hun eller han har valgt. En gul linje representerer en progressbar som viser hvor langt et program har gått i forhold til lengden på sendingen. Fra denne siden kan brukeren gå inn på en hvilken som helst kanal i listen, og få oversikt over hva som går på tv på denne kanelen i dag og de neste 6 dagene. Hver dag har er en egen side i pivot-viewet, så å endre dag gjøres enkelt ved et swipe til høyre eller venstre. Brukeren kan også velge å bli varslet om et program. Dette gjøres like enkelt som opptak, ved et raskt trykk på programsidens varslingsknapp eller gjennom en ContextMenu. En beskjed vil bli vist på telefonen 10 minutter før programmets start. En innebygget reminder-funksjon i operativsystemet er her brukt, og sørger for at brukeren får varslingen uavhengig av om applikasjonen kjører eller ikke. For å implementere varslinger, blir Reminder-klassen brukt. OSet i versjon 7.5 gir ikke direkte tilgang til den innebygde kalenderen, og et kompromiss ble derfor tatt for å allikevel gi brukeren muligheten til å sette varslinger. Sluttbrukeren vil ikke merke videre forskjell, og resultatet blir det samme som gjennom direkte kalenderintegrasjon. Søkefunksjonen er tilgjengelig hvor enn man befinner seg i applikasjonen. Et søkeord er alt som trengs for å søke, og resultatene vises i to forskjellige sider i en pivot; én side for tvprogrammer og én for filmer i filmleiedatabasen. Dette gir et raskt, effektivt søk hvor brukeren enkelt kan finne det hun eller han leter etter. En oversikt over tilgjengelige filmer i kundens filmleie er delt inn i 5 hovedkategorier, og har fått sin egen side i applikasjonen. Her kan brukeren se hvilke nye filmer som har kommet ut, 14

15 hvilke som er i HD, anbefalte filmer, topp 25 og filmer som er på vei ut. Alle øvrige filmer som ikke ligger i en av disse kategoriene kan finnes via søkefunksjonen. Ved å gå inn på en film kan brukeren lese om filmen, se screenshots og eventuelt trailer om tilgjengelig. Trailer vises i liggende fullskjerm-modus. På hovedsiden finnes en delside som heter filmer i dag. Her får brukeren en oversikt over alle filmer som går på tv denne dagen, sortert etter starttidspunkt. Kun filmer som går på kanaler valgt av brukeren vises, slik at mest mulig uinteressant informasjon blir filtrert vekk. I Om appen -siden kan brukeren ringe kundens kundeservice eller besøke kundens kundesupportsider på internett Kontekstuelle menyer (Context Menus) Elementene på noen sider gir mulighet for å åpne en kontekstuell meny ved at brukeren holder en finger over elementet. Disse menyene gir brukeren ulike valg for dette elementet, som for eksempel funksjoner som hører til dette objektet. For eksempel vil contextmenyen til en film i filmer i dag -viewet gi 4 alternativer: gå til film, ta opp, varsle og legg til i kalender. Andre views som tar i bruk contextmenyer er kalender (gå til program, opptak, varsling, fjern program, stopp abonnement), på tv nå (gå til program, opptak), kanalvelger (gå til kanal) og søkeresultater for tv-programmer (gå til program, opptak, varsling, legg til i kalender). Disse contextmenyene bidrar til et renere design da de ikke synes før brukeren holder over et element. Om brukeren ikke er klar over at contextmenyene finnes, er likevel all denne funksjonaliteten, foruten stopp abonnement og fjern fra kalender, tilgjengelig via applicationbaren i enkeltsiden for et program. 15

16 Figur 4.4: Context Menu i "filmer i dag" Figur 4.5: Context Menu i Kanalvelger 16

17 4.2.4 Struktur / navigasjon Applikasjonens navigasjon ble nøye gjennomtenkt. Det var mye informasjon å presentere brukeren, og med tanke på mobilplattformen, liten plass å vise det på. WP7-plattformen tilbyr en rekke forskjellige navigasjonsmuligheter som gjør strukturering av applikasjonens brukergrensesnitt enkelt og strømlinjeformet. Ved oppstart bringes brukeren til en panorama-side med oversikt over hva som går på TV i øyeblikket. Den samme panorama-visningen inneholder en navigasjonsmeny, planlagte programmer for i dag og filmer som går på tv i dag. Videre graving nedover i navigasjonen vil enten bringe brukeren til en pivot-side eller single-side, avhengig av hva som skal vises. Her følger en oversikt over navigasjonsflyten i applikasjonen: Figur 4.6: Oversikt over navigasjonsflyten Gruppen mente denne løsningen på navigasjonen var best av flere grunner. Etter brukertester, sammenligning av lignende applikasjoner på flere forskjellige plattformer, og diskusjoner med kunden internt, kom vi frem til hvilken funksjonalitet som burde være enkelt tilgjengelig, og i hvilken rekkefølge elementene skulle sorteres i. Denne omfattende prosessen blir diskutert nærmere i prosessdokumentasjonen. 17

18 5 Struktur i kildekoden Her tar vi for oss struktureringen av kode i applikasjonen. Applikasjonens hovedklasser benytter seg av en MVVM-basert kodestruktur for å skille de forskjellige applikasjonslagene. Vi betegner de ulike komponentene som presentasjonslag (View), mellomlag (ViewModel), modeller (Model), kontrollerlag (Controller) og verktøylag (Utility). Applikasjonen begynner med å kjøre filen App.xaml.cs, oppstartsfilen som intialiserer applikasjonen, samt laster inn og deserialiserer lagret data. Brukeren blir så sendt videre til viewet LoadingScreen.xaml, som laster inn data asynkront fra server. Denne seksjonen vil gi en kort introduksjon til kodemønsteret MVVM, samt en oversikt over de forskjellige lagene og hvilke roller de spiller. 5.1 MVVM - en introduksjon Applikasjonen bruker kodemønsteret MVVM (Model-View-ViewModel) for å strukturere kildekode. Det er et utviklingsmønster for applikasjonsutvikling, og er basert på det eldre utviklingsmønsteret MVC (Model-View-Controller). MVVM legger et klart skille mellom design-kode (user interface) og backend-kode. Modeller representerer maler for objekter, eksempelvis kanaler og programmer i dette prosjektet. Views er kodefilene som inneholder brukergrensesnittet - plassering og design av innhold som knapper og tekst. Disse filene er to-delt, med en XAML-basert struktur-del, og en C# basert logikk-del. Det siste laget i MVVM - ViewModels - fungerer som datagrunnlag for brukergrensesnittet, og henter inn informasjonen som skal vises i et view. Informasjonen består ofte av modeller, som viewmodellene kan endre på og restrukturere etter hvilke behov viewet har. Viewene bruker en av WPFs sterkeste verktøy - databinding - til å vise informasjonen i viewmodellene. Dette fungerer slik at et element i design-koden får satt en datakilde, som ligger i viewmodellen, for sine verdier. Denne datakilden spesifiserer dermed innholdet til elementet (om det er en liste, et tekstfelt eller en bakgrunnsfarge), og separerer struktur fra databehandling Hvorfor bruke MVVM Det er flere fordeler med å bruke MVVM som utviklingmønster. At koden for brukergrensesnittet og databehandling skilles gjør at utviklere som jobber med én del av applikasjonen kan gjøre det uten å påvirke/forstyrre det som skjer i en annen del, og vice versa. Dette gjør at utviklere kan fokusere på det de er spesialisert til, og man får mer effektiv utvikling. Selv om det bare skulle være én utvikler på et prosjekt, så vil ofte designønsker, etter brukertesting, endres mot slutten av produksjonen. Da er det gunstig å kunne endre på brukergrensesnittet uten at det påvirker forretningslogikken. MVVM gjør testing av forretningslogikk enklere; man får testet all logikk uten at selve designet blir involvert. Backend-utviklere kan dermed skrive tester for sitt arbeid uten å måtte ta høyde for de problemer som ofte oppstår ved programmatisk testing av brukergrensesnittet. 18

19 For WP7-applikasjoner anbefales det å bruke MVVM som utviklingsmønster. Microsoft skriver på sine websider at det er et naturlig mønster å bruke for XAML-baserte applikasjoner. Figur 5.1: Hvordan de ulike lagene forholder seg til hverandre 19

20 5.2 Generelt om struktur Applikasjonen bruker en tilpasset implementasjon av MVVM-strukturen. I tillegg til de klassiske lagene for modeller, views og viewmodeller, inkluderer også denne applikasjonen eget Controller-lag, egne utility-klasser og en rekke andre elementer. Dette ble gjort for å maksimere gjenbruk av kode, separere ut datainnhentingsprosessen, og ikke minst for å separere logiske lag fra hverandre. Denne seksjonen vil beskrive de forskjellige lagene denne applikasjonen består av. Figur 5.2: Oversikt over klassene i kildekoden 20

21 5.2.1 Presentasjonslaget (View) Presentasjonslaget inneholder filene som definerer og strukturerer brukergrensesnittet (forkortet UI). Et view består av to filer - en strukturfil og en logikkfil (også kalt code-behind). Strukturfilen blir skrevet i strukturspråket XAML, og inneholder de grafiske byggestenene som sammen former brukergrensesnittet. Viewlagets logikkfiler inneholder event handlers og lyttere som XAML kobles til. Logikkfilene bruker vi for å koble viewet opp mot ViewModel, igangsette navigasjonshendelser og datamanipulasjon i ViewModelen. Viewlagets logikkfiler i MVVM inneholder minimalt med kode, og er i dette prosjektet begrenset til å inneholde en binding opp mot viewets viewmodell, samt logikk for å styre navigasjonshendelser og lignende. Mange MVVM-entusiaster gjør et poeng ut av å ha helt tomme logikkfiler. Dette er mer et spørsmål om såkalt best practice, og gjør lite for den totale ytelsen eller oversikligheten i applikasjonen. Gruppen bestemte seg for at et godt kompromiss - der lite eller ingen forretningslogikk ble godtatt, mens annen logikk for blant annet caching av informasjon og navigasjonshendelser ble bevart i codebehindfilene Stiler og Static Resources For å lette programmering, lesbarhet og gjenbrukbarhet, har gruppen programmert en rekke sentralt definerte stiler - eller statiske ressurser. Eksempler på disse stilene er fonter, farger og hele elementer. Disse er kodeblokker spesifisert kun én gang sentralt i applikasjonen, og beskriver layout og design på spesifikke elementer. Dette medfører langt ryddigere strukturfiler, og gjør store endringer i designet mye raskere å implementere, samt mer konsekvente. Figur 5.3: Opprettelse av en static resource Opprettelse av en static resource: Figur 5.4: Bruk av en static resource Mellomlaget (Viewmodel) Mellomlaget i MVVM, kalt en ViewModel, består av de funksjonene og datafeltene presentasjonslaget presenterer gjennom brukergrensesnittet. Viewet bruker databinding til å koble seg til viewmodelen, og data blir typisk lastet inn gjennom viewmodelens konstruktør. Siden storparten av dataene som vises i applikasjonen hentes inn asynkront over internett, er applikasjonen avhengig av å vise en innlastningsindikator i tiden før all data er overført til telefonen. For å oppnå dette implementerte vi PropertyChanged-rammeverket, som lar presentasjonslaget oppdatere seg selv for hver endring i mellomlaget. 21

22 PropertyChanged er en integrert del av WPF, men må implementeres eksplisitt. Derfor programmerte vi en baseklasse som alle ViewModels deler - ObjectBase - med blant annet denne implementasjonen. Systemet fungerer slik at når et datafelt i mellomlaget endres, sendes det ut en event (eller hendelse) som alle de aktive viewene lytter etter. Når hendelsen blir fanget opp, blir viewet tegnet på nytt, med oppdaterte data. Her er diverse kodeeksempler på hvordan en ViewModel og et View blir koblet sammen ved hjelp av databinding og onpropertychanged-events: Figur 5.5: ViewModel-instansen blir bundet til et view sin datakilde Figur 5.6: Databindingene blir skrevet i XAML-koden til viewet Figur 5.7: For hver property som kan bli oppdatert etter instansieringen av viewet, trengs det en PropertyChanged-event. Denne hender hver gang OnPropertyChanged()-metoden blir kalt Figur 5.8: OnPropertyChange-grensesnittet arves fra ObjectBase-klassen 22

23 5.2.3 Modellaget Applikasjonens forretningsmodeller inneholder informasjonen som blir vist i presentasjonslaget, og restrukturert i mellomlaget. Informasjonen blir hentet inn som JSONobjekter, og modellene er strukturert på en lik måte. Hver modell består av en rekke datafelter som gjenspeiler JSON-strukturen, samt noen deriverte felter. De deriverte feltene bruker de originale feltenes verdier, og returnerer formatterte verdier. Et godt eksempel på et derivert felt er hvordan vi setter aldersgrensestringen i en film ved å ta i bruk andre properties for å skreddersy resultatet: Figur 5.9: En derivert property Figur: En derivert property bruker som regel andre properties til å produsere et skreddersydd resultat. Denne typen modeller blir ofte kalt smarte, av den grunn at de gjør mer enn kun å samle et utvalg objekter og verdier. Dette var å foretrekke siden modellene blir brukt på liknende måte i forskjellige viewmodels, som ellers måtte implementere de samme funksjonene flere ganger Controller-laget I ordinære implementasjoner av MVVM blir data hentet direkte i modellene. Dette valgte vi bevisst å gå bort ifra. For mer sentralisering, gjenbruk og bedre oversikt valgte vi å hente data via controller-klasser - klasser dedikert til datahenting fra REST-tjeneren og fra isolated storage, samt håndtering av brukerdata. Vi endte opp med følgende kontroller-struktur: Kontroller TVController MovieController Rolle Håndterer all datainnhenting rundt tv-program, opptak og søk i tv-databasen Håndterer all datainnhenting rundt filmleie StorageController Håndterer alle kall til og fra Isolated Storage UserController Håndterer alle kall rundt brukere, innlogging og utlogging 23

24 I tillegg til å ta hånd om datainnhenting (og lagring), er kontrollerlaget ansvarlig for mesteparten av logikken i programmet. Slik blir mesteparten av forretningslogikken fjernet fra presentasjon og modellene, og gjør hele strukturen mer oversiktlig og enkel å utvide senere Verktøy (Utilities) Mange funksjoner og konstanter vil ofte bli gjenbrukt flere ganger gjennom applikasjonen, og av ulike klasser. Da er det fordelaktig å sentralisere disse for å gjøre koden mer effektiv og oversiktlig. Dette gjøres gjennom såkalte utility-klasser. Klassene gjør det også enkelt å finne og endre disse sentrale funksjonene og konstantene etter ønske. Hver klasse har en samling metoder og konstanter som har en eller flere likhetstrekk. For eksempel vil metoder som manipulerer dato og tid være samlet i èn utility-klasse - i vårt tilfelle kalt DateUtility. Converter-klasser faller også inn under utilities, men brukes kun av presentasjonslaget. Dette er metoder som for eksempel konverterer et nummer til en farge, eller en boolean til en Visibility-enum. Her er en full oversikt over våre Utility-klasser, og hva de gjør: Navn AppUtility DateUtility NavigationUtility NetworkUtility UrlUtility Settings Beskrivelse Oppsamlingsklasse for alle generelle funksjoner Metoder som konverterer datoer og tidspunkter Hjelpemiddel for å navigere mellom views med minimalt av REST-kall Metoder, events og properties som bidrar til å styre applikasjonen i varierende nettverksforhold Samling av adresser til bruk for REST-kall Samling av innstillinger som kan tenkes å endres på et senere tidspunkt FeaturedColorConverter Konverterer booleans til farger og tilbake igjen StateColorConverter VisibilityConverter Konverterer PlayStates-enumer til farger og tilbake igjen Konverterer booleans til Visibility-enums m.m Settings Etter ønske av kunde, ble en rekke variabler lagret sentralt i filen Settings.cs. Dette er variabler som kunne ønskes å endres fortløpende i en betatest-periode, som antall søkeresultater, standard -kanaler med mer. Disse ble implementert som statiske variabler, og er dermed enkelt tilgjengelig fra hele applikasjonen REST-laget For å lette kontrollernes kall mot REST-tjeneren, utviklet vi et sett med klasser for å standardisere kall mot REST. Disse ble internt kalt REST-laget, og fungerer som et slags underlag av kontrollerlaget. REST-laget gir mulighet for både GET- og POST-kall over HTTP-protokollen. Ved hvert kall sjekker metoden om man har internettilgang, samt om det var parsing-, autentifiserings- 24

25 eller server-feil ved utførelsen. Ved hjelp av egne exceptionklasser gjør dette systemet feilsøking og behandling av spesialtilfeller meget enkelt og oversiktlig. 6 Datagrunnlag (REST) For å få en full forståelse av hvordan applikasjonen henter inn data, er det viktig å ha en viss forståelse for datagrunnlaget - hvor dataene blir hentet fra. Kunden stilte med en selvutviklet webservice - basert på REST-modellen - som returnerer informasjon i JSON- eller XMLformat. I denne seksjonen vil du finne en forklaring av hva en REST-tjeneste er, hvordan REST-tjenesten til kunden fungerer å samarbeide med, hvilke endpoints som er tilgjengelig, og til slutt en oversikt over svakheter og uforutsett oppførsel som må tas høyde for. 6.1 Hva er en REST-tjeneste? REST står for Representational State Transfer. En REST-tjeneste er en såkalt webservice som er tilgjengelig over HTTP-protokollen, og tilbyr et grensesnitt for kommunikasjon mellom en server (REST-tjeneren) og en klient (her - mobilapplikasjonen) over internett. En REST-tjeneste må oppfylle en rekke krav for å bli ansett som RESTfull. Disse er: Separation of concern - En klient trenger kun å vite om grensesnittet til en tjener - og ingenting annet. Dette er for å øke portabiliteten til klienter. Tilstandsløs - Siden kommunikasjonen skjer over den tilstandsløse protokollen HTTP, kan ikke en REST-tjener lagre detaljer om en klient internt mellom kall. Cachebar - For å øke ytelse og skalering, må kall til tjeneren caches hvis de er like siden forrige kall, eller besvares på nytt. Lagdelt system - En klient skal ikke kunne merke forskjell på om den er koblet til den faktiske serveren eller en mellomserver - dette for å øke skaleringsmuligheter. Uniformt grensesnitt - Et uniformt grensesnitt på REST-tjeneren lar både tjener og klient utvikles uavhengig av hverandre. 6.2 Kundens REST-tjeneste Kundens REST-tjeneste er et avansert, komplisert og stort program. Heldigvis, på grunn av kravene som stilles til en RESTfull tjeneste, trenger ikke utviklere av klienten å sette seg grundig inn i hvordan denne tjenesten fungerer. Generelt kan det nevnes at kundens REST-tjeneste tilbyr både XML- og JSON-overføring av data over HTTP-protokollen, som gjør serialisering og deserialisering av data både enkelt og effektivt. Responstiden er kort (~ 500 ms ms) selv for omfattende kall, og grunnet egne kall for binære data (bilder, videoer etc), er datamengden overført minimal. REST-tjeneren bruker en JSON-parser kalt Jackson, et open-source prosjekt som tilbyr både rask og kvalitetssikret JSON-serialisering. 25

26 6.2.1 Endpoints Endpoints er grensesnittet for REST-tjenesten mot klienten, og kundens REST-tjener har et utvalg som er veldig nyttig for senere videreutvikling av applikasjonen. Disse er som følger: Tabell: Åpne REST-kall Metode URL for kall Beskrivelse GET /open/tvguide/batch Lister ut kanaler, pakker, sjangre GET /open/tvguide/events?[&fields=id,name,description...][&channels=1,2,3..][&start= t10:00][&duration={minutes}][&maxcount=0-n][&search=..] Henter tvprogrammer/events sortert på kanal. GET /open/tvguide/events/{eventid} Henter ut detaljer om en event GET /open/tvguide/channels Henter ut alle kanaler GET /open/tvguide/channelgroups Henter ut beskrivelse av kanalpakkene med kanalid'er POST /open/tvguide/pin/reset POST: "phone" Sender en tekstmelding til det spesifiserte telefonnummeret med ny pinkode GET Justerer størrelse på bilde med spesifisert enonic-id/key GET /open/moviesguide/shallowmovielists Henter navn og ID på alle filmlister GET /open/moviesguide/batch [moviesinlistcount={antall}] Henter filmsjangre og filmlister GET /open/movieguide/movielists Henter filmlister med filmer GET /open/movieguide/movielists/{listid} Henter en gitt filmliste GET GET /open/tvguide/eventgenres Henter ut alle eventsjangerere /open/image/cms/resize?key={enonic-content-key}&height={pixelheight}&width={pixel-width} /open/movieguide/movies?[&fields=id,title...][&fromindex=0-n][&maxcount=0- n][&search=...][&genres=1,2,3] Henter et gitt utvalg av filmer fra filmleiedatabasen GET /open/movieguide/movies/{movieid} Henter en gitt film GET /open/movieguide/moviegenres Henter filmsjangre 26

27 Tabell: REST-kall som krever autentifisering (uautoriserte kall returnerer status kode 403) Meto de POST POST URL for kall POST: "auth_tvguide_username", "auth_tvguide_password" [rememberme=true] POST: "auth_unregisteredcustomer_customerid","auth_unregisteredcustom er_dateofbirth","auth_unregisteredcustomer_postalno" [rememberme=true] Beskrivelse For å bli autentisert må man gjøre en POST som inneholder parameterne "auth_tvguide_username" og "auth_tvguide_password". Kunden kan da logge inn med enten telefonnummer/pin eller brukernavn/passord fra minside. Rememberme flagget kan brukes dersom man ønsker at brukeren skal være logget inn over tid For å autentisere en GET-kunde som ikke er registrert på minside må man gjøre en POST som inneholder parameterne ovenfor. Rememberme flagget kan brukes dersom man ønsker at brukeren skal være logget inn over tid GET /authenticated/tvguide/loginstatus Gir ut status på kunden som er logget inn (kundeid, organization, partner etc) GET /authenticated/tvguide/subscriptions Abonnementdetailjer for den innloggede kunden: loginstatus + channelsubscriptions (fungerer også for partnerkunder) GET /authenticated/tvguide/channelsubscriptions Henter ut kanalene til en GET-kunde (fungerer ikke for partnere) POST /authenticated/tvguide/pin/set POST: "phone", "pin" Lagrer/erstatter pinkode for å logge inn på tvguiden for det spesifiserte telefonnummeret (phone parameteret) POST /authenticated/tvguide/record/{eventid} Sender et opptak til dekoderen registerert på kunden 6.3 Svakheter og uregelmessigheter som må tas høyde for Grunnet kompleksiteten til kundens REST-tjeneste, er det noen spesialtilfeller som må tas høyde for. Denne seksjonen vil informere om de gruppen har funnet, og har måttet ta høyde for under utviklingen av applikasjonen Inkonsekvent parsing av felter (lister) Når man ber serveren om et spesielt sett med events (tv-programmer) eller filmer, vil JSONdataen som blir returnert være strukturert relativt inkonsekvent. Mange felter kan ha null eller flere medlemmer - og dette kan skape trøbbel under deserialiseringen av JSON. Et eksempel her er skuespillere som er med i en film - noen ganger kan REST returnere et enkeltfelt: actors : Jean-Claude Van Damme Andre ganger kan den derimot returnere en liste med skuespillere: actors : [ Angelina Jolie, Brad Pitt, Matt Damon ] 27

28 Dette er noe som må tas høyde for i JSON-deserialiseringen gjennom såkalte JSONconverters. Deserialiseringsrammeverket som blir brukt i applikasjonen (Json.NET) lar programmereren lage egne konverterere som tar høyde for slik inkonsekvent parsing Inkonsekvent parsing av felter (tall) Når man ber serveren om et spesielt sett med events (tv-programmer) eller filmer, vil JSONdataen som blir returnert være tall-sensitiv. Et godt eksempel på dette er titler til programmer. Når man ønsker å få ut programmet 24 - en klassisk historie om spesialagenten Jack Bauer - vil man få tilbake følgende utsnitt JSON: title : 24 Deserialiseringsrammeverket vil da anta at title -feltet er av typen int, mens det i virkeligheten er av typen string. Dette er noe som må tas høyde for i JSON-deserialiseringen gjennom såkalte JSON-converters Wrappere All respons fra REST-tjenesten blir returnert inkapsulert i såkalte wrappere - JSON-objekter som har som oppgave å innhylle returnert data i et ekstra lag. Dette er ofte et krav for gyldig JSON, og er noe som må tas høyde for på klientsiden. I denne implementasjonen har gruppen valgt å lage eksplisitte klasser som fungerer på samme måte som i JSON - kun for wrapping av indre objekter. Det er også mulig å lage såkalte JSON-converters - deserialiseringsrammeverket som blir brukt i applikasjonen (Json.NET) lar programmereren lage egne konverterere som tar høyde for wrapper-klasser. 6.4 Json.NET, deserialisering og converters Json.NET er et rammeverk for å serialisere og deserialisere mellom JSON og C#. Dette rammeverket har mange store fordeler over det innebygde DataContractJsonSerializer, men spesielt så er Json.NET mer fleksibelt i forhold til hvordan (de)serialiseringen blir gjort. For å kunne ta høyde for inkonsekvent serialisering fra server, ble det programmert såkalte converters, som blir brukt i deserialiseringen. Disse converter-klassene er spesiallaget for kundens REST-tjener og dens oppførsel, og tar høyde for problemer som feilformatterte lister og strenger. Converter-klassene implementeres ved å bruke en JsonReader, som leser gjennom en JSONstreng token for token. Et token i JSON er spesialtegn som separerer elementer, og ved å lese gjennom hvert token kan man ta høyde for alle situasjoner og legge inn tester for de spesialtilfellene som blir oppdaget. Systemet som er implementert i applikasjonen i dag er både robust og enkelt å videreutvikle. 28

29 7 Isolated Storage Isolated Storage er WP7s interne rammeverk for lokal lagring av data. Et avgrenset lagringsområde blir reservert for hver applikasjon, og dette lagringsområdet blir benyttet som et privat filsystem. Vår applikasjon benytter dette for å lagre nedlastet data mellom kjøringer. Når man skal lagre data med Isolated Storage har man to muligheter, lagre til fil(er) eller lagre til Isolated Storage Settings. Sistnevnte er en fil som er innebygget i applikasjonens Isolated Storage område, med innebygget funksjonalitet for lagring og uthenting. Istedenfor å lage avanserte lagringsalgoritmer kan man enkelt lagre egendefinerte objekter. Lagring og uthenting av data blir automatisk håndtert etter delegering fra utviklernes side, så lenge programmereren klargjør dataen for lagring. Isolated Storage Settings er implementert som et Dictionary-objekt, som parer opp nøkler og innhold. Man kan lagre en instans med et nøkkelord, som senere brukes for å hente ut den samme instansen. For å lagre en instans av et objekt er instansens modell-klasse nødt til å: 1. implementere serialisering på feltene som skal lagres 2. spesifisere hvilke felter som ikke skal lagres (alle datatyper har ikke støtte for serialisering) Applikasjonens datamodeller implementerer DataContract-attributten, som delegerer til en klient hvilke felter som skal serialiseres, og hvilke felter som skal ignoreres. Lagring av data skjer når brukeren lukker applikasjonen. All informasjonen (foruten passord) samles i en wrapper-klasse definert for å forenkle lagring, samt videreutvikling. Istedenfor at eventuelle senere utviklere er nødt til å lage egne håndteringssystemer for tidligere versjoner av applikasjonen når man forbereder en oppdatering av applikasjonen, kan utviklerne nå endre på innholdet i modellklassen, mens selve lagringen skjer på samme måte. Passord blir lagret kryptert som en egen nøkkel hver gang en ny bruker logges inn, og blir fjernet ved utlogging. Ved oppstart av applikasjonen hentes lagret informasjon inn fra Isolated Storage før brukeren blir sendt videre til det første vinduet. Det er nødvendig at brukeren venter på denne innhentingen fordi innhenting av data fra REST avhenger av informasjonen i Isolated Storage. Feilhåndtering har blitt implementert i både innhentingen og lagringen. Ved første kjøring opprettes tomme lister, og standard-data for brukerne blir opprettet. Ved første lagring av data opprettes nye felter i Isolated Storage. 29

30 8 Brukere og sikkerhet Mobile applikasjoner er en personlig opplevelse - og TV-guide-applikasjonens funksjonalitet bærer preg av nettopp dette. Det er for eksempel mulig å logge inn som en annen bruker, men informasjonen i min kalender, abonnementer og varslinger blir delt uavhengig av brukere. En slik forenkling er ønskelig for de aller fleste brukere slik at applikasjonen ikke tar for lang tid å sette opp, og er selvforklarende slik at brukere ikke behøver å lese instruksjoner. Det gjør at brukere slipper å stusse over hvorfor innhold blir borte hvis en annen person logger inn på applikasjonen for å starte et opptak. Innlogging eksisterer i dagens mobilapplikasjoner bare for å støtte èn funksjon - for å kunne fjernstyre opptak. All annen funksjonalitet i applikasjonen er tilgjengelig uten å være innlogget. Innloggingen skjer via REST-tjeneren, og gjør at applikasjonen ikke stiller store krav til sikkerhet da alle sensitive detaljer blir håndtert internt. Applikasjonen støtter funksjonalitet for automatisk pålogging ved oppstart, slik at en bruker forblir pålogget til han eller hun selv logger ut. Både passord og brukernummer blir lagret i Isolated Storage. Andre applikasjoner har ikke tilgang til applikasjonens lagringsområde, men for å øke sikkerheten krypteres passordet gjennom krypteringsalgoritmen ProtectData. 30

31 9 Feilsøking Denne seksjonen vil beskrive teknikker og metoder for å finne, utbedre og rette eventuelle feil og svakheter i kildekoden, samt å diskutere de forskjellige feiltyper som kan oppstå, og hvordan man angriper problemet. Gruppen har selv brukt disse problemløsningsmetodikkene under utviklingen, og anser dem som sterke nok til å løse de aller fleste problemer som måtte oppstå. Å feilsøke en Windows Phone 7-applikasjon er relativt enkelt, gitt nok tid til å grave seg ned i programmet. Applikasjonen er velstrukturert, og med de rette teknikker og verktøy er feilsøking ingen vanskelig oppgave. 9.1 Teknikker Her vil vi beskrive de forskjellige teknikkene og verktøyene som burde bli brukt under eventuell feilsøking - tolking av runtime tilbakemeldinger og exceptions, breakpointing og riktig bruk av IntelliSense Runtime-feil og exceptions Hvis applikasjonen stopper under kjøring av kodelinje eller lasting av et spesifikt view, avslutter applikasjonen brått og uhøytidelig. Ofte når dette skjer, er det på grunn av såkalte uhåndterte exceptions. Slike uhåndterte feil gir som regel en informativ feilmelding til programmereren, og kan peke mot hvor feilen ligger og hva slags feil det er. Selv om mange exceptions er lite beskrivende - som for eksempel en NullReferenceException - er det mange feil som kun skjer ved utføring av spesifikke metoder. Ved aktiv bruk av aktuell dokumentasjon og breakpointing, er slike feil relativt raske å peke ut og rette opp. Figur 9.1: Feilmeldinger i Visual Studio 31

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester.

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester. 1 Forord Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg prosjektets rammer

Detaljer

KRAVSPESIFIKASJON FORORD

KRAVSPESIFIKASJON FORORD KRAVSPESIFIKASJON FORORD Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg

Detaljer

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk Produktdokumentasjon Madison Møbler Administrasjonsside og Nettbutikk 1 1. Forord 1.1 Dokumentasjonen Dette er en teknisk dokumentasjon på produktet som er utviklet. Denne er tiltenkt personer med teknisk

Detaljer

Presentasjon. Kristian Hewlett- Packard 29.05.2012

Presentasjon. Kristian Hewlett- Packard 29.05.2012 2012 Presentasjon Kristian Hewlett- Packard 29.05.2012 1 Innledning Denne innledningen inneholder informasjon om gruppen, samt bakgrunn og mål for oppgaven og en introduksjon til temaet. 1.1 Gruppen Vår

Detaljer

KRAVSPESIFIKASJON DAGSPLANAPPLIKASJON FOR NETTBRETT. Gruppe 28 Hovedprosjekt våren 2015

KRAVSPESIFIKASJON DAGSPLANAPPLIKASJON FOR NETTBRETT. Gruppe 28 Hovedprosjekt våren 2015 KRAVSPESIFIKASJON Kravspesifikasjon er en beskrivelse av hvilke krav oppdragsgiver har til systemet som skal utvikles. Den fungerer som en kontrakt mellom oppdragsgiver og utviklere. DAGSPLANAPPLIKASJON

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

Dokument 1 - Sammendrag

Dokument 1 - Sammendrag Dokument 1 - Sammendrag Automatnett - Nytt CMS-verktøy for Uno-X Automat Fakultet for teknologi, kunst og design Høgskolen i Oslo og Akershus, 2013 Innholdsfortegnelse Sammendrag 1 1. Innledning 1 2. Om

Detaljer

Brukerdokumentasjon. Webservices og webklient for kodeverk/ kodeverdi verifisering

Brukerdokumentasjon. Webservices og webklient for kodeverk/ kodeverdi verifisering Brukerdokumentasjon Webservices og webklient for kodeverk/ kodeverdi verifisering Innholdsfortegnelse... 3... 3... 3... 3... 4... 4... 4... 4... 8... 9... 10!... 10 "... 11 # $... 11 1. Om systemet 1.1.

Detaljer

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet Kravspesifikasjon Hovedprosjekt 2014 Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus Presentasjon Tittel: Oppgave: Gruppemedlemmer: Digitalt Helsekort for Gravide Utvikle en prototype

Detaljer

Kravspesifikasjon. Aker Surveillance. Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo,

Kravspesifikasjon. Aker Surveillance. Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, Kravspesifikasjon Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 12.01.2013 Public 2013 Aker Solutions Page 1 of 7 Table of Contents Forord... 3 Om bakgrunnen... 3 Presentasjon...

Detaljer

Forprosjekt gruppe 13

Forprosjekt gruppe 13 Forprosjekt gruppe 13 Presentasjon Tittel: Oppgave: Periode: Gruppemedlemmer: Veileder: Oppdragsgiver: Kontaktperson: Mobilbillett i HTML5 Utvikle en mobil billettautomat innenfor kategorien dedikert web

Detaljer

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen.

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen. Artist webside Innhold Artist webside...1 Gruppe medlemmer...1 Oppdragsgiver...1 Kontaktperson...2 Veileder...2 Oppgaven...2 Muligheter...2 Sammendrag...2 Dagens situasjon...2 Mål og rammebetingelser...3

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Forord Kravspesifikasjonen skal gi en oversikt og forståelse over det planlagte systemets funksjonalitet. Dokumentet skal gi både utviklere og oppdragsgivere innblikk i hvordan og hva systemet skal levere.

Detaljer

NorskInternett Brukermanual. Sist oppdatert 09.08.15. Side 1/30

NorskInternett Brukermanual. Sist oppdatert 09.08.15. Side 1/30 NorskInternett Brukermanual Sist oppdatert 09.08.15. Side 1/30 Innholdsliste Hvordan kan vår tjeneste brukes...2 Hva vi leverer...2 Kontoinformasjon...3 Bruk av VPN tilkobling...3 Konfigurering av Android...4

Detaljer

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

Detaljer

4.1. Kravspesifikasjon

4.1. Kravspesifikasjon 4.1. Kravspesifikasjon Dette delkapittelet beskriver nærgående alle deler av systemet, hvordan det er tenkt ferdigutviklet med fokus på oppdragsgivers ønsker. 4.1.1. Innledning Informasjon om hvordan kravspesifikasjonens

Detaljer

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni.

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. KRAVSPESIFIKASJON Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. Prosjektgruppe: 27 Prosjektmedlem: Ole Almenning Stenhaug Veileder.

Detaljer

BRUKERMANUAL. Deviations and Reporting

BRUKERMANUAL. Deviations and Reporting BRUKERMANUAL Deviations and Reporting Forord Dette er brukermanual for CEMAsys Immediate Reporting applikasjon som er laget for iphone og Android telefoner. CEMAsys Immediate Reporting er en applikasjon

Detaljer

Brukermanual for nettpublisering. frivilligsentral.no

Brukermanual for nettpublisering. frivilligsentral.no Brukermanual for nettpublisering frivilligsentral.no Innholdsfortegnelse Introduksjon 3 1 - Innlogging 4 1.1 - Logge inn 4 1.1 - Logge ut 4 2 - Grensesnitt 5 2.1 - Menyfelt 5 2.2-3 - Opprette, lagre og

Detaljer

SiteGen CMS. Innføringsmanual

SiteGen CMS. Innføringsmanual SiteGen CMS Innføringsmanual Copyright Barlind Solutions AS 2008 Hva er SiteGen CMS? SiteGen CMS er et såkalt content-management-system; eller med litt andre ord et publiseringssystem. Det kan brukes til

Detaljer

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013 Testrapport 1 INNHOLDSFORTEGNELSE 1 INNHOLDSFORTEGNELSE... 1 2 Innledning... 2 3 Formål med testing... 3 3.1 Funksjonalitet...

Detaljer

Kravspesifikasjon. Android app for aktivering av jakt- og fiskekort. Bacheloroppgave vår 2014. Høgskolen i Oslo og Akershus. Charlotte Sjøthun s180495

Kravspesifikasjon. Android app for aktivering av jakt- og fiskekort. Bacheloroppgave vår 2014. Høgskolen i Oslo og Akershus. Charlotte Sjøthun s180495 Charlotte Sjøthun s180495 Nanna Mjørud s180477 Anette Molund s181083 Kravspesifikasjon Android app for aktivering av jakt- og fiskekort Bacheloroppgave vår 2014 Høgskolen i Oslo og Akershus Forord Hensikten

Detaljer

Multi-Faktor Autentisering. Brukerveiledning

Multi-Faktor Autentisering. Brukerveiledning Multi-Faktor Autentisering Brukerveiledning 1 Innhold Innledning... 3 Telefonanrop (standard)... 3 Oppsett... 3 Bruk... 3 Mobil App (valgfri)... 4 Oppsett... 4 Bruk... 5 Multi-Faktor portal...7 Pålogging...7

Detaljer

CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA

CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA Sist oppdatert 18.02.2010 INNHOLD INNHOLD... 1 HVA ER CABINWEB... 2 HVA KAN DU BRUKE CABINWEB TIL?... 3 HVA ER NYTT I CABINWEB VERSJON 2.0...

Detaljer

VEDLEGG 1 KRAVSPESIFIKASJON

VEDLEGG 1 KRAVSPESIFIKASJON VEDLEGG 1 KRAVSPESIFIKASJON INNHOLDSFORTEGNELSE Forord... 2 1 Systembeskrivelse... 2 2 Mål for systemet... 3 3 Funksjonelle krav... 4 4 Ikke-funksjonelle krav... 5 5 Use-case diagram... 6 6 Rammekrav...

Detaljer

BRUKERMANUAL. Telsys Online Backup

BRUKERMANUAL. Telsys Online Backup BRUKERMANUAL Telsys Online Backup TELSYS AS - 06.08.2009 Innhold Generelt... 3 Kom i gang... 4 Installasjon av Telsys Online Backup Proff/Standard... 4 Start opp klienten for første gang!... 10 Logg inn...

Detaljer

S y s t e m d o k u m e n t a s j o n

S y s t e m d o k u m e n t a s j o n S y s t e m d o k u m e n t a s j o n Monitorering av produksjonsløyper ved Nasjonalbiblioteket - Project BAKE Utarbeidet av: Einar Wågan Kristian Akerhei Studium: Informasjonssystemer Innlevert: 26.5.2015

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Hva er problemet? Styring av maskinvare og ressurser tilknyttet en datamaskin er komplisert, detaljert og vanskelig Maskinvare, komponenter og programvare endres og forbedres

Detaljer

Hurtigveiledning for «PLEXTALK Linio Pocket» online spiller

Hurtigveiledning for «PLEXTALK Linio Pocket» online spiller Hurtigveiledning for «PLEXTALK Linio Pocket» online spiller 1 Innstilling av PLEXTALK Linio Pocket 1. Vend Linio Pocket. Sjekk at for at toppen av spilleren er opp evt fra deg hvis du holder den vannrett.

Detaljer

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 2 - revidert 10.02.2010 AESTON. Side 1

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 2 - revidert 10.02.2010 AESTON. Side 1 Brukerveiledning Kom i gang publiseringsverktøy versjon 2 - revidert 10.02.2010 AESTON Side 1 Velkommen som bruker av Kameleon Introduksjon Kameleon er et publiseringsverktøy (Content Management system

Detaljer

Prosjektrapport. Gruppe 23

Prosjektrapport. Gruppe 23 Prosjektrapport Gruppe 23 Prosjektrapport Forord Hensikten med denne rapporten er å gi en introduksjon til oppgaven. Her vil det bli forklart hensikten med oppgaven og applikasjonens funksjonalitet. Brukergrensesnittet

Detaljer

VMware Horizon View Client. Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang

VMware Horizon View Client. Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang VMware Horizon View Client Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang Introduksjon Fjerntilgang er blitt oppgradert til en bedre og mer moderne løsning. Programmet er identisk

Detaljer

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress Sist oppdatert 05.06.2015 Innholdsfortegnelse 1. Hva er Wordpress?... 3 2. Hvordan logger jeg inn i kontrollpanelet?...

Detaljer

Forprosjekt. Accenture Rune Waage, rune.waage@accenture.com, 91605634

Forprosjekt. Accenture Rune Waage, rune.waage@accenture.com, 91605634 Forprosjekt Presentasjon Gruppe 19: Event-planlegger Andreas Berglihn s169991 Harald R. Svendsen s127142 Gruppe Gruppe 19 Andreas Berglihn, s169991 Harald R. Svendsen s127142 Oppgave Eventplanlegger Utvikle

Detaljer

DinVikar - Bruker Manual

DinVikar - Bruker Manual DinVikar - Bruker Manual Utvikliet av Fosen-Utvikling AS I samarbeid med Alvens AS Skrevet av: Jonas Kirkemyr Innhold 1 Introduksjon................................................... 4 I Systemet 2 Systemet......................................................

Detaljer

Kjørehjelperen Testdokumentasjon

Kjørehjelperen Testdokumentasjon 2013 Kjørehjelperen Testdokumentasjon Høgskolen i Oslo og Akershus Henrik Hermansen og Lars Smeby Gruppe 8 26.05.2013 Forord Dette dokumentet tar for seg to forskjellige ting. Først forklares det hvordan

Detaljer

Trådløs Bedrift Mobilapplikasjon

Trådløs Bedrift Mobilapplikasjon Trådløs Bedrift Mobilapplikasjon Trådløs Bedrift Mobilapplikasjon Trådløs Bedrift tilbyr en mobilapplikasjon som åpnes i nettleseren på din mobiltelefon. Med applikasjonen kan du enkelt sette over samtaler,

Detaljer

Kandidat nr. 1, 2 og 3

Kandidat nr. 1, 2 og 3 Kandidat nr. 1, 2 og 3 Rapport 1 IT202E Bacheloroppgave i Informatikk Vår 2011 Mobilapplikasjonsutvikling med Scrum 1 Innhold Innledning... 3 Overordnet Prosjektplan... 3 Produktbacklog... 5 Sprint planning

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

PROSESSDOKUMENTASJON

PROSESSDOKUMENTASJON PROSJEKT NR.: 10-30 Studieprogram: Anvendt Datateknologi Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET: Papir og elektronisk Telefon: 22 45 32 00

Detaljer

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven 2015. - Prosessdokumentasjon - Alternativ 1

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven 2015. - Prosessdokumentasjon - Alternativ 1 HiOA TDK Ingeniørfag data DATS1600 Programutvikling Eva Hadler Vihovde Prosjektoppgaven 2015 - Prosessdokumentasjon - Alternativ 1 - Forsikring - Gruppe #14 Studentnavn Marius Alexander Skjolden Hans Christian

Detaljer

LocalBank Prosjektbeskrivelse

LocalBank Prosjektbeskrivelse LocalBank Prosjektbeskrivelse INNHOLD MÅL... 2 STRUKTUR... 2 IMPLEMENTASJON AV ILOCALBANKREPOSITORY... 3 GUI... 4 EXCEPTION... 4 KODE... 4 NOEN KLASSER OG SPESIELLE EMNER SOM DE VISER... 5 KLASSE DIAGRAMMER...

Detaljer

360 eworker. Appen som gjør det enda enklere å jobbe i 360 - Saksbehandling og dokumenthåndtering fra ipad

360 eworker. Appen som gjør det enda enklere å jobbe i 360 - Saksbehandling og dokumenthåndtering fra ipad 360 eworker Appen som gjør det enda enklere å jobbe i 360 - Saksbehandling og dokumenthåndtering fra ipad 360 eworker - Appen som gjør det enda enklere å jobbe i 360 Jobb med saksbehandlingsoppgaver, dokumenter

Detaljer

Testrapport for Sir Jerky Leap

Testrapport for Sir Jerky Leap Jasmine Garry (s135600) Line Sørensen (s135590) Fredrik Hoem Grelland (s135595) Tor Anders Gustavsen (s127668) 1 1. Forord Dette dokumentet inneholder informasjon og redegjøring av tester foretatt i forbindelse

Detaljer

ChiCMS Hovedprosjekt ved Høgskolen i Oslo 2011

ChiCMS Hovedprosjekt ved Høgskolen i Oslo 2011 TESTRAPPORT Forord Denne testrapporten har som formål å beskrive all testing som er utført på systemet, både under utviklingen og etter ferdigstilling. Målet for testingen er for å verifisere at vi har

Detaljer

KOLLEKTIV LEVERANSE. Til: Sameiet Kanalen. Loqal AS tar forbehold om feil og endringer i brev og produktark.

KOLLEKTIV LEVERANSE. Til: Sameiet Kanalen. Loqal AS tar forbehold om feil og endringer i brev og produktark. KOLLEKTIV LEVERANSE Til: Sameiet Kanalen Loqal AS tar forbehold om feil og endringer i brev og produktark. Tilbud til: Sameiet Kanalen Get box Mikro, markedets minste og stiligste tv-boks. Denne boksen

Detaljer

HØGSKOLEN I OSLO OG AKERSHUS. FôrIt CDS. Testrapport

HØGSKOLEN I OSLO OG AKERSHUS. FôrIt CDS. Testrapport HØGSKOLEN I OSLO OG AKERSHUS FôrIt CDS Stian Strøm Anderssen, Mikkel Sannes Nylend og Shahariar Kabir Bhuiyan Gruppe 10 26.05.2014 Forord I dette dokumentet vil det bli beskrevet hvordan vi har testet

Detaljer

OBLIG 1 - WEBUTVIKLING

OBLIG 1 - WEBUTVIKLING OBLIG 1 WEBUTVIKLING Oppgave 1 Gå gjennom nettsiden arngren.net og list opp alle problemene du ser. Både i funksjonalitet/bruk og i koden bak. Problemer med funksjonalitet / bruk Uoversiktlig side For

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING Prosjekt 18 Jørgen Mobekk Sørensen Morten Evje Tor Andreas Baakind Anders Gabrielsen Side 1 1 FORORD Dette dokumentet er brukerveiledningen, og skal være en veiledning

Detaljer

Kravspesifikasjon. 1. Innledning. Presentasjon. Innledning. Om bedriften. Bakgrunn for prosjektet

Kravspesifikasjon. 1. Innledning. Presentasjon. Innledning. Om bedriften. Bakgrunn for prosjektet Kravspesifikasjon Presentasjon Tittel: Oppgave: Backup for PDA/Smartphones Utvikle en applikasjon for PDA/Smartphones med funksjonalitet for backup av sms, mms, e-post, kontakter, kalender, bilder og dokumenter

Detaljer

Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING

Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING 1 Word 1.1 Gjør ting raskt med Fortell meg det Du vil legge merke til en tekstboks på båndet i Word 2016 med teksten Fortell meg hva du vil gjøre.

Detaljer

Testrapport. Studentevalueringssystem

Testrapport. Studentevalueringssystem Testrapport Studentevalueringssystem 1 Forord 1.2 Forord Dette prosjektet er et hovedprosjekt i data ved Høgskolen i Oslo, avdeling for ingeniørutdanning, og gjennomføres i samarbeid med Ingeniøravdeling

Detaljer

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus Forprosjektrapport Gruppe 2 Hovedprosjekt 2014, Høgskolen i Oslo og Akershus 1 INNHOLD 2 Presentasjon... 2 2.1 Gruppen medlemmer... 2 2.2 Oppgave... 2 2.3 Oppdragsgiver... 2 2.4 Veileder... 2 3 Sammendrag...

Detaljer

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm Hovedprosjekt i informasjonsteknologi 2016 Høyskolen i Oslo og Akershus Forprosjektrapport Digitalt læreverktøy for Cappelen Damm Gruppe 26 Sofia Aittamaa - s198580@stud.hioa.no Petter Lysne - s198579@stud.hioa.no

Detaljer

Brukerveiledning WordPress. Innlogging:

Brukerveiledning WordPress. Innlogging: Brukerveiledning WordPress Her er en liten guide for hjelpe deg gjennom det grunnleggende i Wordpress. Denne veilederen vil ta deg gjennom: Innlogging Lage en side Lage et innlegg Innlogging: For å logge

Detaljer

WordPress. Brukerveiledning. Kjære kunde. Innlogging:

WordPress. Brukerveiledning. Kjære kunde. Innlogging: Brukerveiledning WordPress Sist oppdatert: 26.02.2014 Kjære kunde Her er en liten guide for å hjelpe deg gjennom det grunnleggende i Wordpress. Denne veilederen vil ta deg gjennom: Innlogging - s.1 Kontrollpanel

Detaljer

360 emeetings. -Papirløse møter på ipad eller iphone

360 emeetings. -Papirløse møter på ipad eller iphone 360 emeetings -Papirløse møter på ipad eller iphone 360 emeetings for Apple ios 360 emeetings - en løsning med multitouch og et levende brukergrensesnitt. 360 emeetings hjelper deg og din virksomhet med

Detaljer

1. Intro om SharePoint 2013

1. Intro om SharePoint 2013 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Intro om SharePoint 2013 Stein Meisingseth 09.08.2013 Lærestoffet er utviklet for faget LO205D Microsoft SharePoint 1. Intro om SharePoint

Detaljer

Slik lager du et web-område bestående av flere sammenhengende websider i. Frontpage 2003. Laget av Magnus Nohr Høgskolen i Østfold

Slik lager du et web-område bestående av flere sammenhengende websider i. Frontpage 2003. Laget av Magnus Nohr Høgskolen i Østfold Slik lager du et web-område bestående av flere sammenhengende websider i Frontpage 2003 Laget av Magnus Nohr Høgskolen i Østfold Innholdsfortegnelse 1 Opprett Web-område 3 2 Opprett en navigasjonsstruktur

Detaljer

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5 Testrapport Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 24.5.2013 Public 2013 Aker Solutions Page 1 of 5 Innledning I denne rapporten vil vi skrive om testingen som

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Kravspesifikasjon Forord Kravspesifikasjonen skal beskrive applikasjonens funksjonalitet og betingelsene som oppdragsgiver krever. Det skal også hjelpe utviklerne med å begrense applikasjonen slik at den

Detaljer

Bilag 1 Kravspesifikasjon Avtalereferanse: NT Web avspiller

Bilag 1 Kravspesifikasjon Avtalereferanse: NT Web avspiller ilag 1 Kravspesifikasjon Avtalereferanse: NT-0730-15 Web avspiller SIST LAGRET DATO: 18. desember 2015 Side 1 av 12 Innholdsfortegnelse ilag 1 Kravspesifikasjon 1 INNLEDNING... 3 1.1 EGREPSDEFINISJONER...

Detaljer

Brukerveiledning for hjemmesider

Brukerveiledning for hjemmesider Hegra Idrettslag Brukerveiledning for hjemmesider En kort innføring for bidragsytere på www.hegrail.no Ivar Friheim 2009-05-18 Innhold Innledning... 3 Nyheter... 3 Sider... 3 Kalenderinnslag... 3 Pålogging...

Detaljer

DIAGNOSERAPPORT. for. Dato:19122012 Utført av: Tommy Svendsen

DIAGNOSERAPPORT. for. Dato:19122012 Utført av: Tommy Svendsen DIAGNOSERAPPORT for Dato:19122012 Utført av: Tommy Svendsen Generell synlighet (pagerank) En god start er å sjekke den generelle synligheten på siden. Dette er en test som rangerer med utgangspunkt i hvor

Detaljer

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Oblig 5 Webutvikling. Av Thomas Gitlevaag Oblig 5 Webutvikling Av Thomas Gitlevaag For oppgave 1 og 2 skal dere levere en funksjonell webside på deres hjemmeområde. Dere skal også levere alle phps-filene slik at man for en hver side kan slenge

Detaljer

Humanware. Trekker Breeze versjon 2.0.0.

Humanware. Trekker Breeze versjon 2.0.0. Humanware Trekker Breeze versjon 2.0.0. Humanware er stolte av å kunne introdusere versjon 2.0 av Trekker Breeze talende GPS. Denne oppgraderingen er gratis for alle Trekker Breeze brukere. Programmet

Detaljer

Testdokumentasjon. Testdokumentasjon Side 1

Testdokumentasjon. Testdokumentasjon Side 1 Testdokumentasjon Testdokumentasjon Side 1 1. Innledning Dette er en testrapport som er laget for å teste applikasjonene for ios og Android plattformer. Den vil være delt opp i 4 deler. Den første delen

Detaljer

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas Prosjekt nr. 2011 22 Testrapport Hovedprosjektets tittel Implementering av plugin og utvikling av wizard for Det Norske Veritas Prosjektdeltakere Magnus Strand Nekstad s156159 Jørgen Rønbeck s135779 Dato

Detaljer

I ÅS FORSLAG TIL LØSNING

I ÅS FORSLAG TIL LØSNING epolitiker I ÅS FORSLAG TIL LØSNING Det finnes noen få løsninger i dag som gir politikerne mulighet til å få tilgang til ferdige nedlastede dokumenter, kommentere i utvalgsdokumenter, lagring i sky etc.

Detaljer

innenfor grafisk design i fremtiden. Dette fordi jeg selv ønsker at jeg en dag vil bli en av dem.

innenfor grafisk design i fremtiden. Dette fordi jeg selv ønsker at jeg en dag vil bli en av dem. RAPPORT - INFOGRAFIKK 1. HVA GIKK OPPGAVEN UT PÅ? Ved bruk av opptaksprøvene til Westerdals, så valgte jeg en oppgave som gikk ut på å benytte infografikk for å vise høyskolens utvikling. Men siden jeg

Detaljer

Næringsregner på PC n versjon 1.1.0

Næringsregner på PC n versjon 1.1.0 Laget av Innhold: Introduksjon 2 Næringsregner på PC n 2 Næringstabell 2 Statistikk 2 Hvem passer programmet for? 2 Bruk av programmet 3 Innlogging av forskjellige brukere 3 Hovedprogramet har 3 felt 4

Detaljer

Brukerdokumentasjon for LabOra portal - forfattere

Brukerdokumentasjon for LabOra portal - forfattere Brukerdokumentasjon for LabOra portal - forfattere Skin: Dnnbest-Grey-Skin1024 Skin: Metro7 Custom LabOra web-portal er et web-basert publiseringsprogram for publisering av informasjon på hjemmesider.

Detaljer

Brukerveiledning. Madison Møbler Administrasjonsside

Brukerveiledning. Madison Møbler Administrasjonsside Brukerveiledning Madison Møbler Administrasjonsside 1 1. Forord 1.1 Produktet Produktet blir konstruert som et nytt produkt da kunde/bruker ikke har noe eksisterende løsning, derfor er dette den nåværende

Detaljer

Kom i gang med programmering i Java

Kom i gang med programmering i Java Kom i gang med programmering i Java Dette dokumentet forteller hvordan du skal komme i gang med programmering inkludert nedlasting av den programvare du trenger samt oppsett av disse samt en del innstillinger

Detaljer

- reklamebannere mobil og tablet

- reklamebannere mobil og tablet Spesifikasjoner - reklamebannere mobil og tablet FINN.no Versjon 2.4 Sist oppdatert 16.08.2013 1. Innhold Innhold Introduksjon Målsetning Spesifikasjoner HTML Fysisk størrelse 225 px* Eksempler Størrelser

Detaljer

Brukermanual. Studentevalueringssystem

Brukermanual. Studentevalueringssystem Brukermanual Studentevalueringssystem 1 Forord 1.1 Forord Denne brukermanualen innholder beskrivelse av systemets funksjonalitet og introduserer systemet for brukeren. Brukermanualen er delt inn i tre

Detaljer

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram Fastsatt som forskrift av Utdanningsdirektoratet 3. april 2006 etter delegasjon i brev 26. september 2005 fra Utdannings-

Detaljer

DEN NYE TV-OPPLEVELSEN

DEN NYE TV-OPPLEVELSEN DEN NYE TV-OPPLEVELSEN SE TV SOM FØR Finn tv-kanal s. 8 Pause, spole og opptak s. 9 Guide s. 10 Miniguide og programmeny s. 11 Favorittkanaler s. 20 NYHETER Start forfra s. 12 Reprise s. 13 Profiler s.

Detaljer

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 7 - revidert 29.01.2014. Gevir IT Drift AS Webside: www.gevir.no.

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 7 - revidert 29.01.2014. Gevir IT Drift AS Webside: www.gevir.no. Brukerveiledning Kom i gang publiseringsverktøy versjon 7 - revidert 29.01.2014 Gevir IT Drift AS Webside: www.gevir.no Side 1 Velkommen som bruker av Kameleon Introduksjon Kameleon er et publiseringsverktøy

Detaljer

ActiveBuilder Brukermanual

ActiveBuilder Brukermanual ActiveBuilder Brukermanual Forfatter: TalkActive I/S Dato: Juni 2004 Versjon: R. 1.01 Språk: Norsk Copyright 2004 - Talk Active - all rights reserved. Innhold: 1. INNLEDNING...2 2. HURTIGSTART...3 3. OPPBYGGINGEN

Detaljer

MyLocator2 Brukermanual v1.6 (20.08.2013) Utdrag av vlocpro2/vlocml2 brukermanual

MyLocator2 Brukermanual v1.6 (20.08.2013) Utdrag av vlocpro2/vlocml2 brukermanual MyLocator2 Brukermanual v1.6 (20.08.2013) Utdrag av vlocpro2/vlocml2 brukermanual 5.1 MyLocator2 MyLocator2 konfigurasjons verktøyet er en programpakke som tillater brukeren å konfigurere vloc 2. generasjons

Detaljer

GJENNOMGANG UKESOPPGAVER 9 TESTING

GJENNOMGANG UKESOPPGAVER 9 TESTING GJENNOMGANG UKESOPPGAVER 9 TESTING INF1050 V16 KRISTIN BRÆNDEN 1 A) Testing viser feil som du oppdager under kjøring av testen. Forklar hvorfor testing ikke kan vise at det ikke er flere gjenstående feil.

Detaljer

Teknostorage - Lagersystem. Et lagersystem som på enkel måte kan registrere varer inn og ut fra lager. 3. januar 2012 til 11.

Teknostorage - Lagersystem. Et lagersystem som på enkel måte kan registrere varer inn og ut fra lager. 3. januar 2012 til 11. 1 Brukerveiledning Presentasjon Tittel Oppgave Periode Gruppemedlemmer Prosjektgruppe Veileder Oppdragsgiver Kontaktperson Teknostorage - Lagersystem Et lagersystem som på enkel måte kan registrere varer

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Kom i gang med E-Site - Med E-Site er det enkelt og trygt å redigere dine websider

Kom i gang med E-Site - Med E-Site er det enkelt og trygt å redigere dine websider Kom i gang med E-Site - Med E-Site er det enkelt og trygt å redigere dine websider Innhold Side 1 Introduksjon...2 2 Logge inn i administrasjonsområdet...3 2.1 Fyll inn brukernavn og passord...3 2.2 Glemt

Detaljer

Vedlegg LMC intranett

Vedlegg LMC intranett Vedlegg LMC intranett H12D02 Jarl-Håvard Holen Ole-Martin Larsen Fredrik Sethne-Andersen André Ritari Vedlegg 1 Resultater av kortsortering. Kortsortering Bruker 1, Salg: Kortsortering Bruker 2, Teknisk:

Detaljer

WWW.POLARPRODUKSJON.NO

WWW.POLARPRODUKSJON.NO GUIDE RSHL.NO Av Fredrik Mediå Oppgraderingen av nettstedet RSHL.NO har ført til at det kan oppstå en del spørsmål og forvirringer rundt hvordan forskjellige elementer fungerer. Denne guiden skal fungere

Detaljer

Hurtigveiledning for «PLEXTALK Pocket» online spiller

Hurtigveiledning for «PLEXTALK Pocket» online spiller Hurtigveiledning for «PLEXTALK Pocket» online spiller 1 Innstilling av PLEXTALK Pocket 1. Vend PLEXTALK Pocket. Sjekk at for at toppen av spilleren er opp evt fra deg hvis du holder den vannrett. Trykk

Detaljer

BlindShell bruksanvisning

BlindShell bruksanvisning Dato: 1.6.2015 BlindShell bruksanvisning BlindShell er en smarttelefon for blinde og svaksynte brukere. Enheten betjenes med enkle bevegelseskommandoer, talemeldinger leses opp ved hjelp av kunstig tale

Detaljer

KTN1 - Design av forbindelsesorientert protokoll

KTN1 - Design av forbindelsesorientert protokoll KTN1 - Design av forbindelsesorientert protokoll Beskrivelse av A1 A1 skal tilby en pålitelig, forbindelsesorientert tjeneste over en upålitelig, forbindelsesløs tjeneste A2. Det er flere ting A1 må implementere

Detaljer

Om Traxway Conrivo registreringsløsning

Om Traxway Conrivo registreringsløsning Om Traxway Conrivo registreringsløsning Conrivo betyr «Samle» på latin. Conrivo er laget for å samle data og så analysere dem etterpå. Du finner en demoversjon ved å gå til http://www.traxway.com og så

Detaljer

BAAN IVc. BAAN Data Navigator - Brukerhåndbok

BAAN IVc. BAAN Data Navigator - Brukerhåndbok BAAN IVc BAAN Data Navigator - Brukerhåndbok Utgitt av: Baan Development B.V. P.O.Box 143 3770 AC Barneveld The Netherlands Trykt i Nederland Baan Development B.V. 1997. Med enerett. Informasjonen i dette

Detaljer

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen Forprosjektrapport Presentasjon Tittel Informasjonsplatform for NorgesGruppen Oppgave Utvikle en informasjonsplatform for butikkene i NorgesGruppen Periode 3. Januar 14. Juni Gruppemedlemmer Joakim Sjögren

Detaljer

Linglyder 2.0 Brukerveiledning

Linglyder 2.0 Brukerveiledning Linglyder 2.0 Brukerveiledning Introduksjon Linglyder (uttalt Linglydér) er et skriveprogram med lydstøtte som leser opp bokstaver, bokstavlyder, enkeltord og setninger. Det er laget spesielt for dem som

Detaljer

References Hovedprosjekt ved Høgskolen I Oslo 2010 Brukermanual

References Hovedprosjekt ved Høgskolen I Oslo 2010 Brukermanual BRUKERMANUAL FORORD References 1 er en plugin 2 til DrPublish for håndtering av kildemateriale knyttet mot artikler. DrPublish er et artikkelredigeringsprogram for nettaviser, utviklet av Aptoma. DrPublish

Detaljer

En enkel lærerveiledning

En enkel lærerveiledning En enkel lærerveiledning ~ 1 ~ Innhold INNLEDNING... 3 Hva?... 3 Hvorfor?... 3 INN- og UTLOGGING... 4 Innlogging... 4 Utlogging... 5 Lærerinnlogging/-utlogging... 5 OUTLOOK / EPOST... 6 Skrive epost...

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 29. august 2005 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

Forprosjektrapport. Feilsøkingsverktøy for Homebase AS INNHOLD

Forprosjektrapport. Feilsøkingsverktøy for Homebase AS INNHOLD Forprosjektrapport Feilsøkingsverktøy for Homebase AS INNHOLD Presentasjon Sammendrag Om bedriften Dagens situasjon Mål og rammebetingelser Funksjonelle krav: Ikke-funksjonelle krav: Løsninger Analyse

Detaljer

Aktive hyller (Ref #1307884069102)

Aktive hyller (Ref #1307884069102) Aktive hyller (Ref #1307884069102) Søknadssum: 429600 Kategori: Ny formidling Varighet: Ettårig Opplysninger om søker Organisasjonsnavn / nr Deichmanske bibliotek / 992410213 Arne Garborgs plass 4 0179

Detaljer