EXAMENSARBETE Mobila anpassningar Joakim Wallmark Ali Rahimpour Högskoleingenjörsexamen Datateknik Luleå tekniska universitet Institutionen för System- och rymdteknik
Mobila Anpassningar
Förord Vi som skapat och författat denna rapport är två studenter som studerar vid LTU i Skellefteå och går linjen Högskoleingenjör i datateknik. Vi har under sista läsperioden på vårterminen 2011 jobbat med detta examensarbete där vi skapat en mobil webbapplikation åt Tieto. Anledningen till att vi valde att göra detta examensarbete var att det är starkt relaterat till vår utbildning, och verkade intressant. Vi hade båda sommarjobbat hos Tieto sommaren 2010 och det var på grund av detta som vi fick möjlighet att göra examensarbetet här, så ett stort tack till Tieto. Skellefteå 2011-05-18 Ali Rahimpour Joakim Wallmark
Sammanfattning Denna rapport beskriver utvecklingen av en mobil webbapplikation som vi utvecklat åt Tieto. Målet var att skapa en mobil version av deras redan existerande webbtjänst Edwise, som är en webbaserad lärplattform. Applikationen innehåller nyheter, schemaaktiviteter samt möjligheten att registrera studentfrånvaro. Applikationen är utvecklad i ASP.NET med programmeringsspråket C#. Vi har använt oss av arkitekturen MVC för filstrukturen och uppbyggnaden av applikationen, samt ramverket jquery Mobile för att ge ett mobilanpassat utseende. Vi har arbetat testdrivet och med dagliga möten där vi sammanfattat arbetet från föregående dag. Abstract This report describes the development of a mobile web application which we developed for Tieto. The goal was to create a mobile version of their already existing web service Edwise, which is a web based learning management system. The application contains news, schedule activities and the possibility to report student absence. The application is developed in ASP.NET with C#, and we have been using the architecture MVC for file structure and building of the application, as well as the framework jquery Mobile to give a more mobile device feeling to the UI. We have been using test driven development with daily meetings to summarize the work from the day before.
Innehållsförteckning Inledning...1 Bakgrund...1 Syfte...1 Problembeskrivning...1 Målgrupper...2 Tillgänglighet...3 Metod...4 Arbetsflöde...4 jquery Mobile...4 MVC...5 Tester...6 Resultat...7 Inloggningssida (IdP, Identity Provider)...8 Hem...9 Nyheter... 10 Schema... 13 Heldagsfrånvaroanmälan... 15 Service Container... 19 Diskussion... 20 Fortsatt arbete... 22 Referenser... 23 Internetsidor... 23 Muntliga källor... 23
Inledning I denna del finns information om bakgrunden och problembeskrivningen till examineringsarbetet men även om syftet med arbetet och rapportens målgrupper. Bakgrund Tieto har under ca 10 år haft tjänsten Rexnet som nu ska bytas ut mot Edwise. Dessa två tjänster är webbtjänster för lärare, elever och även föräldrar för att på ett enkelt sätt kunna hantera frånvaro, läsa och skapa nyheter, läsa schema och mycket mer. I dagsläget finns det en väldigt enkel mobil version som är byggd för mobila enheter som klarar av WAP, men nu när smartphones börjar vara en stor del av mångas vardag kommer en bättre version att bli mer och mer eftertraktad. Syfte Dagens mobiltelefoner blir allt kompetentare för varje dag som går och nu finns det inte mycket en dator klarar av som inte en mobiltelefon klarar. Nu när tablets börjar finnas i fler och fler hem har behovet av mobila lösningar blivit allt större och det har många företag märkt. Vi tror dock att de mobila enheternas potential fortfarande inte är helt utnyttjad. Därför är ett av våra främsta syften med detta arbete att få upp intresset för den mobila världen och att få folk att utnyttja det de mobila enheterna har att erbjuda. Målet med vårt projekt är att skapa en mobilanpassad sida av Tietos nuvarande webbtjänst Edwise. Sidan ska kunna läsa nyheter, anmäla frånvaro och kolla schema och schemaaktiviteter. Det ska vara en nedskalad mobilanpassad version som enbart visar det som är mest relevant för användaren och ska fungera i alla typer av mobila enheter som klarar av att använda Internet. För de äldre enheterna som inte klarar av JavaScript, CSS och HTML5 kommer det bli medföra en begränsad upplevelse. Problembeskrivning Efter att vi jobbat med att utveckla två applikationer, en för Android och en för ios, under sommaren 2010 hos Tieto, så kom de fram till att underhålla dessa applikationer kommer kräva alldeles för mycket tid och pengar. Tieto började därför titta på webbaserade lösningar och hur man skulle kunna utveckla något mer anpassat för nyare mobiler, men som också är kompatibelt med äldre enheter som inte klarar av modernare teknik. För att på ett enkelt sätt få ett mobilanpassat gränssnitt bestämdes att det bästa sättet att gå var att använda jquery Mobile, en mobilanpassad version av ramverket jquery. Detta skulle dock medföra en begränsad upplevelse på enheter som inte klarar av nyare teknik. I nästan alla Tietos tidigare projekt är webbsidorna skrivna som Web forms eftersom de mesta är skrivet för många år sedan, vilket i sig inte är så dåligt men när projekten börjar bli stora så krävs det disciplin för att Web forms enkelt ska kunna förstås. På grund av detta skrev vi vårt projekt med hjälp av MVC, Model View Controller, där programmets funktionalitet delas upp i olika delar. Mer om MVC kommer tas upp senare i rapporten. 1
Utvecklingen skedde testdrivet, och Tietos gamla kod medförde vissa problem eftersom den inte var helt objektorienterad. Koden var svår att unit testa och väldigt många klasser var tvungna att mockas upp eller skrivas om för att kunna användas i testen. Målgrupper Denna rapport är tänkt för dessa målgrupper: IT-Branschen Ett av våra större mål är att driva den mobila utvecklingen framåt och att få fler inom ITbranschen, oberoende av ålder, att redan nu öppna upp ögonen för det som kommer vara en enorm del av vår framtid. De ska kunna lära sig av våra misstag och idéer men även få inspiration för egna sätt att driva utvecklingen framåt. Examinator/Handledare Examensarbetet och rapporten är en del av det avslutande kapitlet av vår utbildning, Högskoleingenjör i datateknik, och kräver ett godkänt betyg för att slutligen kunna få vår examen. Detta betyg sätts av examinatorn. Examensarbetare Målet med rapporten är att kvalitén ska vara hög och fungera som en mall för rapporter skrivna för ett examensarbete med praktiskt innehåll. Övriga Vi vill även kunna nå övriga IT-studerande och hobbyutvecklare för att även de ska få upp ett intresse och en nyfikenhet för den mobila världen. Även dessa kan bidra med väldigt mycket inom detta område och ett bevis på det är att kolla i de mer populära mobilapplikationsbutikerna, till exempel Apples App Store och Androids Android Market där en väldigt stor del är privat personer som gjort kvalitetsapplikationer. 2
Tillgänglighet Information är en stor del av allas vardag och att kunna ha uppdaterad information tillgänglig var du än är kan öppna upp en hel del dörrar. Inte bara information om allmänna saker som morgondagens väder utan även om det som står dig närmast. Intressen, vänner eller varför inte uppgifter du fått från skolan? Att kunna komma åt Internet från var du än är har förändrat tjänster som Twitter och Facebook och nu kan dessa tjänster användas på sättet de är menade att användas till. Man behöver inte längre komma åt en dator för att kunna hålla sina vänner uppdaterade på vad som händer kring ditt liv utan nu kan de veta det samtidigt som du gör det. Eller varför inte skicka iväg ett e-mail till din farmor om att du har det bra på din semester? Senare på dagen kanske du kommer på att du glömt vilken tid bussen hem går och kan då ta upp telefonen och leta upp detta eller om du ska gå tillbaka till hotellrummet kan det vara bra med vägbeskrivning dit. Du behöver inte alltid själv hålla dig uppdaterad genom att anropa tjänster från mobiltelefonen, utan får notifikationer när någonting nytt har kommit. Tjänster som Spotify i mobilen har gjort att allt färre laddar ner musik olagligt för att ha i mobilen och kan väldigt enkelt strömma ljud från ett bibliotek med musik från hela världen i väldigt hög kvalité. Det finns även företag som försökt sig på att göra detsamma fast med film och vi tvekar inte på att det kommer bli lika stort. Ett viktigt ord för sådana tjänster är tillgänglighet. Man vill kunna komma åt allt var man än befinner sig och slipper man vänta för att använda det så är det ännu bättre. Möjligheterna är många och företag som Google och Dropbox har gjort det möjligt att kunna se videoklipp, läsa och redigera dokument, komma åt dina personliga filer och synkronisera kontakter och kalendrar mellan olika enheter vars du än är. Även Tietos idé med detta projekt har med tillgänglighet att göra och innebär att man ska kunna göra de mest vanliga sysslorna från Edwise oberoende av var du är på ett väldigt smidigt sätt. 3
Metod Arbetsflöde Vi har arbetat med projektet varje vardag i ungefär tio veckor från 08:00 till 17:00 på Tietos kontor. Datorer har vi fått låna av Tieto under projekttiden. Vi har arbetat enligt Tietos Agila arbetsmetoder, och vi har haft dagliga möten enligt arbetsmetoden Scrum, där vi sagt till de andra team-medlemmarna vad vi gjort dagen innan och vad vi planerar att fortsätta med. På detta sätt kan man enkelt hålla koll på vad de andra gör och hur det går för dem, och kanske få hjälp av varandra om någon har problem med något. Vi har försökt att jämt fördela arbetet mellan varandra, så att båda har koll på all kod och vet hur allt fungerar. Vi har turats om att göra testar och skriva kod för testerna. Ibland har vi parprogrammerat och ibland har vi programmerat enskilt. Vi tycker att detta fungerat bra, och de känns som att båda har fått en god insikt i projektet. Vi började med att göra applikationen för nyheter, sedan fortsatte vi med schemaaktiviteter och sist heldagsfrånvaro. Vi har inte haft någon speciell tidsplan, utan tidsplanen till anpassats till de design- och tekniska beslut som fattats under projekttiden. Tester av UI:t har vi gjort med Selenium med jämna mellanrum under projektets gång. Vi har också försökt täcka så mycket som möjligt av koden med våra unit-tester. Även om det är tänkt att man ska göra testen före man skriver den riktiga koden och metoderna, så har de ofta blivit tvärt om. Frånvaroanmälan ligger i ett eget projekt med en egen inloggning, vilket skapar lite problem med länkningen mellan projekten. När man t.ex. går från hemvyn till frånvaroanmälan vill man ju inte behöva logga in en gång till. Projekten måste på grund av detta kunna kommunicera med varandra om vem som är inloggad. Detta löste vi med en så kallad Service Container som beskrivs senare i rapporten. jquery Mobile Mobilanpassat JavaScript för att anpassa utseendet av hemsidor för mobila touch-enheter. Fungerar bäst på ios, Android, Blackberry, Windows phone, Bada, WebOS, Symbian, Meego som alla har stöd för html 5 och JavaScript 2. Sidor som använder sig av jquery Mobile fungerar även på andra enheter, men dock kommer sidorna inte alltid att visas på rätt sätt. jquery Mobile har själva lagt upp demon på de olika funktionerna som finns tillgängliga i ramverket så om man är intresserad av att veta lite mer vad man kan göra och hur det kan se ut när man använder jquery Mobile så är det här en bra sida: http://jquerymobile.com/demos/. 4
MVC Model Model håller koll på data som tillhör applikationen. Den skickar information om sitt nuvarande tillstånd till View som kan ändra utseende utifrån det. Controller skickar instruktioner till Model när något ska ändras 4. View View är det som användaren kommer att se, och visar data från Model för användaren med ett passande gränssnitt. Flera Views kan finnas för en Model 4. Controller Controllern används för att agera på användarinteraktion och andra händelser. Beroende på vad som då hänt kan den då uppdatera modellen 4. 5
Tester Unit test Unit test används för att testa kodbitar och funktioner utan yttre beroenden. Man skapar unit testet först av en tänkt funktion som man sedan kodar och så att den klarar testet. Testet kan sedan användas senare vid eventuella ändringar av koden för att testa utan beroende av servrar, databaser etc. Om din funktion innehåller ett objekt som anropar till exempel en databas så kan man inte använda det riktiga objektet i testet, eftersom testet ska fungera oberoende av andra objekt och data. Man löser detta genom att mocka objektet. Vi har i vårt projekt använt oss av gratisbiblioteket moq för detta. Det finns att ladda ner på denna sida http://code.google.com/p/moq/. Selenium För att testa UI:t använde vi oss av seleniumtester, som är ett verktyg för att testa UI:t på webbsidor. Man kan välja mellan att själv koda testerna eller använda sig av en plugin som finns att ladda hem till Firefox som sedan spelar in en sekvens av klickningar i webbläsarfönstret. När inspelningen är klar kan man sedan exportera testet till olika programmeringsspråk (C#, Ruby, Python, php, Java och Perl) 3. Detta medför sedan att man kan justera sina test så de beter sig som man vill eller lägga in i sitt test framework. Testen är uppbyggda av en serie selenium-kommandon som är menade att köras kontinuerligt på en testserver. Vi har använt oss av detta verktyg för att täcka så mycket som möjligt av vår webbsidas funktionalitet. Selenium är gratis att ladda ner och finns här http://seleniumhq.org/. 6
Resultat Resultatet är en hemsida som fungerar bra och enkelt på diverse mobila touchenheter men även enheter utan pekskärm. Mobilsidan har inte lika mycket funktionalitet som den fullskaliga applikationen ännu, men allt är lätthanterligt och vi har försökt få med allt man skulle kunna tänkas vilja göra via mobiltelefonen. Man kan läsa nyheter, titta på schemaaktiviteter och registrera frånvaro på elever, både som förälder, lärare eller elev. Vi har använt oss mycket av listor, då vi tyckte att dessa ofta var bra alternativ när man till exempel ska välja en nyhet, en veckodag eller på annat sätt navigera sig vidare på sidan. jquery Mobiles listor har ganska stora list objekt vilket gör att de passar bra för mobila enheter då det blir lätt att välja ett objekt i listan. Utseendet på sidan är byggt på jquery Mobiles grafiska ramverk, men är tänkt att anpassas mer senare till ett mer Tieto-specifikt utseende. Sidan fungerar utan JavaScript också, dock blir den inte särskilt attraktiv. Bakåtknappar och lite annan navigering är tillagd i headern och laddningar mellan sidor fungerar sömlöst, skärmen blir inte helt vit för att sedan ladda in hemsidan stegvis utan en laddsnurra visas över din nuvarande sida i sitt aktuella tillstånd tills nästa sida är färdigladdad för att sedan animeras in på ett väldigt snyggt sätt precis som om du navigerade i en riktig mobilapplikation. 7
Inloggningssida (IdP, Identity Provider) Den första som kommer hända när du kommer till den mobila versionen av Edwise är att du måste logga in. Stora tydliga fält för att skriva in användarnamn och lösenord och här kan du även byta språk till det språk som passar dig bäst. När du försöker gå in på webbsidan kommer första steget att köras(1), det vill säga den försöker komma åt en sida som kräver inloggning. Då kommer den kontrollera om du är inloggad, är du inloggad så stannar den på sidan men är du inte det kommer den att göra andra steget(2). Den skickar dig till IdP:n med en parameter för att hålla reda på vilken sida du försökte komma åt. När du skrivit in ditt användarnamn och lösenord kommer den att kontrollera om det är en giltig inloggning, är den giltig så körs tredje steget(3) och du länkas tillbaka till sidan du försökte komma åt från första början, misslyckas inloggningen stannar du kvar på IdP:n och den ber dig att försöka igen. 8
Hem Upplägget på hemskärmen är väldigt enkel och är tänkt att efterlikna standardupplägget för en vanlig mobilapplikation. Det första du kommer lägga märke till är de stora tydliga knappar för varje valmöjlighet som även visar en bild vilket gör att du snabbt kan se vad alla knappar gör om du tidigare använt tjänsten på en dator. I headern finns en knapp för att logga ut. Precis som i desktopversionen för Edwise laddas knapparna dynamiskt in beroende på roll och på vilka tjänster den inloggade användaren har tillåtelse till. Du behöver därför aldrig se något du inte kan använda. 9
Nyheter Den första vyn för nyheter visar det som känns mest väsentligt för användaren, de 10 senaste nyheterna för alla dina kanaler i form av en väldigt enkel lista. Varje rad innehåller en rubrik, en kort beskrivning och tiden nyheten lades upp. Här har du några alternativ på hur du kan gå vidare. Är du nöjd så kan du antingen trycka på bakåt- eller hemknappen som båda finns i headern. Vill du läsa fortsättningen på en nyhet i listan så trycker du på valfri nyhet och en detaljerad vy kommer nu att visas, mer information om denna vy kommer beskrivas senare. Det sista alternativet är att gå till dina kanaler, dit kommer du genom att trycka på nyhetskanalknappen som också finns i headern. Listan med nyhetskanaler är även den en väldigt enkel lista som visar namn på alla dina kanaler och sedan en räknare som visar hur många nyheter varje kanal innehåller. Även här finns alternativen för att komma hem eller om du vill gå bakåt till de senaste nyheterna. 10
Trycker du på en kanal kommer du vidare till en lista med alla aktuella nyheter för just denna kanal som är utformad på samma sätt som vyn för de senaste nyheterna. 11
När man väljer att visa en nyhet kommer du till en mer detaljerad vy för den specifika nyheten. Här kan du se all information som finns om just denna nyhet, det vill säga rubrik, publiceringsdatum, ingress, brödtext och om nyheten har en tilldelad bild kommer även denna visas. 12
Schema När du öppnar schemat kommer du att mötas av en simpel men väldigt smidig dagväljare. Först kommer den aktuella veckan att visas som en lista. Ovanför listan ser du veckonumret och med hjälp av pilarna kan du byta vecka, vilket är bra ifall du ska planera in något i framtiden. Utan att behöva läsa mycket får du ändå veta en hel del om varje dag. Raderna i listan innehåller datum, veckodag och en smidig aktivitetssräknare som visar hur många aktiviteter personen har den specifika dagen vilket är bra om man till exempel vill se om man är ledig en viss dag. Trycker du på en veckodag visas en lista med alla lektioner och aktiviteter för denna dag. 13
Även här kan du enkelt byta dag genom att trycka på pilarna och ovanför listan kan du se datumet. Varje rad i listan visar lektions- eller aktivitetsnamn, eventuell plats för händelsen och start- och sluttid. Varje händelse är även färgkodad, denna färg visar vilken typ av händelse det är. Detta är även implementerat i desktopversionen och därför kommer användaren snabbt förstå om det till exempel är en lektion, ett utvecklingssamtal eller en läxa. Vill du veta ännu mer om en specifik lektion kan du trycka på den lektionen och sedan kommer du till en ännu mer detaljerad beskrivning av lektionen. 14
Här kan du se lektionsnamn, beskrivning, eventuell plats för händelsen, en lista med aktivitetens ägare, en lista med aktivitetens medlemmar samt start- och sluttid. Heldagsfrånvaroanmälan Beroende på vilken roll den inloggade personen har kommer första vyn vara olika. UI:et är enkelt uppbyggt. Läraren kommer börja med att välja en klass för eleven han eller hon vill anmäla. Denna vy är gjord som en enkel lista med klassernas namn. 15
Nästa vy visar en lista med eleverna för klassen du just valt men om det är så att du är förälder eller vårdnadshavare till en elev kommer detta vara din startvy som visar alla studenter du har tillgång till. Om en elev loggar in har rättighet att rapportera frånvaro kommer denna person få se en datumväljare som första vy och här kan du välja start- och slutdatum för sin frånvaro. Denna lista har samma upplägg som när du ska visa ditt schema, det vill säga en lista med veckans sju dagar. Först väljer du startdatumet och sedan slutdatumet. 16
Slutligen kommer en vy för att välja vilken typ av frånvaro du ska anmäla och denna sida fungerar även som en bekräftningssida. Denna vy kommer alla se och även här är det en enkel design, högst upp står elevens namn och det start- och slutdatum du just valt att anmäla. Under detta finns en rullgardin (drop-down list) med de anledningar skolan valt att lägga till för just din roll. Om skolan tillåter kommentarer kommer det finnas antingen en inmatningsruta för fri text eller en rullgardin med kommentarer som hänger ihop med anledningen du just valt, denna uppdateras varje gång du ändrar anledning. 17
När du tryckt på knappen för att anmäla detta kommer du komma till en sida med information om den anmälan du just skickat in. 18
Service Container Eftersom att frånvaroanmälningssidan ligger i ett annat projekt kräver den även en egen inloggning. Detta görs med hjälp av något som kallas för en service container. Det första som händer när man klickar på absence är att information om vart man ska länkas skickas med till service containern. Informationen bearbetas i service container så att användaren kan skickas vidare till den valda sidan som i vårt fall är sidan för heldagsfrånvaroanmälan (Absence). Absence kommer sedan att se att man inte är inloggad i absence webben, och skicka användaren till absence IDPn med information om vilken användare som är inloggad i webpage och vanliga IDPn, information som absence fått från service container). Absence IDPn använder sedan denna information som den skickar till vanliga IDPn och frågar om användaren verkligen är inloggad. Är användaren det så loggas personen in även i absence webben och skickas tillbaka till sidan Absence. 19
Diskussion Efter att ha utvecklat för OS:en Android och ios tidigare samt gjort en mobil webbsida i vårt examensarbete så har vi fått en ganska bra insikt i de olika alternativ som finns när man utvecklar för mobila enheter. Fördelen med att göra en webbsida är givetvis den att man bara behöver en produkt som sen fungerar mellan de olika operativen och att underhålla en produkt är lättare än flera. En nackdel kan ju dock vara att man inte får samma känsla och applikationen inte känns lika mobilanpassad som när man utvecklar en native-applikation för till exempel Android. Skärmen blir helt vit innan sidorna börjar laddas in stegvis så delar av ditt UI kan visas före andra delar som egentligen känns viktigare. Om man själv ska utveckla en applikation och vill ha publicitet så kan de nog vara smartare att göra en native-app, just för att den då kommer synas på Android market eller app store och den kanske klassas mer riktig än en webbsida. Webbsidor känns inte lika speciellt då de funnits så pass länge, och mobilappar känns som någonting nytt och fräscht. Vill man ha bakgrundsprocesser som kör i bakgrunden i sin applikation så fungerar inte heller webbapplikationer. Vill man använda inbyggda telefonfunktioner som kameran eller kontaktboken eller liknande så är native-apps, om inte den enda, så i alla fall den enklaste och bästa vägen att gå. Vår slutsats är att de, om man inte vill använda inbyggda telefonfunktioner eller bakgrundsprocesser, är bäst att göra en webbapplikation. jquery Mobile som vi använt för designen när vi gjorde webbsidan har dock fungerat jättebra för att få en mer mobilanpassad känsla och det är lätt att klicka på länkar och läsa text utan att zooma, scrolla sidled, etc. Det är också bra på det sättet att sidan inte laddas in stegvis utan den laddas klart helt innan någonting visas, precis som de skulle ha varit på en app till iphone eller Android. jquery Mobile är dock bara i alpha-stadiet och har en del buggar fortfarande, några exempel på buggar är att när man deklarerar css- och javascriptsfiler måste URL:en vara absolut, vilket innebär man måste utgå från roten på servern, inklusive domännamn, istället för att utgå från den aktuella filens position på servern. Ett annat exempel är att sidan kan blinka till efter att den glidit in efter länkklickningar men detta händer sällan och inte på alla enheter. Trots detta så tycker vi fortfarande att jquery Mobile är ett bra alternativ om man vill ha ett bra och enkelt resultat. Det finns en hel del fördelar med jquery Mobile som vi tycker väger upp problemen. Mängden webbutvecklare är betydligt större än mängden utvecklare för de olika mobila operativsystemen och med hjälp av jquery Mobile kan alla webbutvecklare göra applikationer för mobilen och få väldigt mycket gratis. Teamet som utvecklat jquery Mobile har gjort ett väldigt bra jobb med att få in applikationskänslan i gränssnittet och att navigera mellan sidor ger ifrån sig en väldigt bra känsla. Företag kommer spara en hel del pengar på att inte behöva göra en applikation för varje operativsystem och man behöver inte hålla reda på vilket operativsystem som är mest populärt just för tillfället eftersom att det kommer fungera på alla moderna telefoner. Mest troligast kommer jquery Mobile bara att bli bättre med tiden och om man använt vanliga jquery är nog de flesta helt säkra på att detta kommer bli en framgångssaga. Vi har jobbat testdrivet vilket vi till en början tyckte var lite svårt och ovant, och det blev ofta så att vi gjorde testen sist av allt istället för att bygga koden efter de som testet visar är nödvändigt. Vi inser dock att testen kan vara bra om man senare vill ändra i koden eller enkelt 20
testa så att koden fungerar som den ska utan att behöva några yttre beroenden, och att de också kan hjälpa en att lättare se vad som egentligen krävs för att få de beteenden man vill ha när man börjar utveckla utan onödig kod. MVC har fungerat bra och allt känns bra strukturerat då man delar upp vyn, logik och dataresurser. Det har dock vissa begränsningar, till exempel så kan man inte anropa funktioner i controllerklassen när man klickar på en knapp. Det finns sätt att jobba runt de flesta begränsningar, men kan kännas onödigt krångligt och ge sämre lösningar. Det blir också ofta fler filer och mappar i projektet att hålla reda på vilket kan skapa en viss förvirring om man är ny till MVC. Ingen av oss hade tidigare jobbat särkilt mycket med varken jquery Mobile, MVC, Selenium eller testdriven utveckling, så det har blivit mycket nytt att lära sig vilket vi ser positivt på även om det kanske har bromsat arbetet en aning. Det som vi haft mest problem med är nog unit testen, då de ofta varit svårt att mocka vissa objekt då många funktioner haft många yttre beroenden. Vi tror att vi kommer att ha stor nytta av det vi har lärt oss i framtiden, eftersom mobila enheter har utvecklats så pass mycket under de senaste åren, och troligtvis kommer fortsätta göra de. De har också blivit en större del av mångas vardag då man kan göra så mycket mer med telefonen nu än tidigare. Detta kommer ju självklart medföra att behovet av utvecklare som kan programmera till mobiler kommer öka, så att kunna lite sedan tidigare lär inte vara någon nackdel. 21
Fortsatt arbete Vi kommer båda troligtvis att fortsätta jobba på produkten under sommaren, och det första steget är då att utöka frånvaroanmälning från bara möjligheten till att registrera heldagsfrånvaro till att kunna registrera lektionsfrånvaro. Kanske skulle man också kunna lägga till ytterligare funktioner som att ta bort frånvaroanmälan eller lägga in egna aktiviteter i schemat. Detta är bara våra egna spekulationer på hur produkten skulle kunna utvecklas och ingenting Tieto har sagt att de planerar att göra. 22
Referenser Internetsidor 1. https://www.edwise.se/ 2011 05-16 2. http://jquerymobile.com/ 2011 05-18 3. http://seleniumhq.org/ 2011 05-18 4. http://www.asp.net/mvc 2011 05-24 5. http://code.google.com/p/moq/ 2011 05-24 6. http://www.youtube.com/watch?v=yyvogpmlvdo 2011-05-27 Muntliga källor 7. Andersson, A. Software Developer, Tieto Sweden Healthcare & Welfare AB i Skellefteå 8. Brännström, J. Software Developer, Tieto Sweden Healthcare & Welfare AB i Skellefteå 23