Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.



Relevanta dokument
ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Priskamp. En prisjämförelsesite Björn Larsson

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

hannalabom.se Alexandra Jonasson Aj222im

SLUTRAPPORT. Sebastianlund.com. Individuellt mjukvaruutveckingsprojekt, 1DV430. Författare: Sebastian Lund WP11 Datum:

Slutrapport för JMDB.COM. Johan Wibjer

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

LNU INDIVIDUELLT MJUKVARUUTVECKLINGSPROJEKT. Honey Hunter. Androidspel. Martin Karlsson 1/17/2014

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

Tepz klon. - Projektrapport. Linnéuniversitetet, Individuellt mjukvaruutvecklingsprojekt Janina Bergström, WP12 Distans

Skissa och gissa. Individuellt Mjukvaruutvecklingsprojekt, 1DV430. Christian Nilsson, cn222gc, WP

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) Slutrapport

SEGLAISOLEN.SE En Wordpres Webbsajt

Slutrapport YUNSIT.se Portfolio/blogg

Erik Holmström Projektrapport- KalmarKendo Erik Holmström UD12 Individuellt mjukvaruutvecklingsprojekt

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

Slutrapport för Pacman

Slutrapport Thunderbug

Har du läst kursen på Campus eller distans Campus 8 53% Distans 7 47%

KAi SENSEMAKING SYSTEM

Någonting står i vägen

HejKalmar app. Projektrapport. Webbprojekt I

GYMKEEPER ANDREAS SÖDERSTRÖM

Elevernas uppfattningar om alltmer digitaliserad undervisning

Individuellt Mjukvaruutvecklingsprojekt. Slutrapport. Projekt: ASP.NET Applikation: Clustery Gaming Datum: Författare: Adam Gustafsson UD11

Slutrapport Get it going contracts

Individuellt Mjukvaruutvecklingsprojekt

Erik Lundgren GarageLoppisen.se. Projekt i kursen Individuellt Mjukvaruutvecklingsprojekt, 1dv430

1:5 SLUTRAPPORT - POST MORTEN LARS EHRMAN WP

Haris Kljajic Individuellt mjukvaruprojekt. Projekt Rapport. Insatsplutonen. Haris Kljajic UD11

Vad tror du att du håller på med egentligen? eller Vad händer med inlärda beteenden när du tävlar?

QR-kodernas intåg för nytta och nöje!

Mjukvaruprojekt Onlinebooks

Projektrapport. Till Projektet Bluetoothstyrd bil

Evaluation Summary - CDT104 Grundläggande Webbdesign HT07 Dan Levin

Laboration i datateknik

Kays måndagstips Nr 24 Den 26 nov. 2012

Evaluation Summary - CD5570 DoA, distans VT 2004 Dan Levin

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 11. Svarsfrekvens i procent = 14.

Slutrapport. Interaktiv Mjukvaruutvecklingsprojekt. HIF-Spelet. Ett XNA-spel. Christian Ulf

Kursvärdering 1DV433 Strukturerad programmering med C++ LP Lärare: Tommy Löfqvist 17 svar

Självhjälpsprogram för ADHD. Del 1 Att hitta din väg

DD

Hej! Min uppdaterade portfolio finns online på

SLUTRAPPORT WEBBPROJEKT 1

Utvärdering av föräldrakurs hösten 2013

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC

Enkätresultat. Kursenkät, Flervariabelanalys. Datum: :47:04. Aktiverade deltagare (MMGF20, V10, Flervariabelanalys) Grupp:

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 13. Svarsfrekvens i procent = 27.

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

Slutrapport. Super Mario klon. Tomas Wallin tw222bv WP

Ett spel skapat av Albin Wahlstrand

Slutrapport för Internetfonden

Mental träning termin 2 HT-10 Sida 1 av 1

Hej. Niklas heter jag, och detta är min oberoendeförklaring från Scientologikyrkan.

Reseberättelse Rangsit Campus, Thammasat Universitet, Thailand

Det handlar inte om att bli någon annan än den du är utan att våga vara mer av dig själv.

Din RelationsBlueprint - Källan till smärta eller framgång i din intima relation

Gillakampen. av Merkur Hoxha WP

Killen i baren - okodad

STRESS ÄR ETT VAL! { ledarskap }

Laboration i datateknik

Samtal 1, Leila (kodat) Målbeteende: Skydda sig mot sexuellt överförbara sjukdomar och oönskad graviditet

Labbrapport - LEGO NXT Robot

Kort om World Wide Web (webben)

Solvändan slutrapport Daniel Hallqvist, Therese Samuelsson & Emil Carlsson

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

SOUNDGATE. Uppkopplad med SoundGate

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

MYCKET BRA (19/51) BRA (29/51) GANSKA BRA (2/51) INTE BRA

Sammanställning av kursutvärdering Samlad bedömning

MT127A 3D CAD. Antal svar: 8 (58) 1. Flervalsfråga Andel. Allmänt. Hur tycker du kursen har varit? 1. Dålig 25% 2. Ganska bra 50% 3.

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Kevin Lane Kungliga Tekniska Högskolan Introduktionskurs i Datateknik (II1310) TIEDB0. [NXT Legorobot] [Programmering och felsökning]

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Eventuella kommentarer: Under kursens gång har 4 studenter hoppat av utbildningen.

RESULTAT - MÅLUPPFYLLELSE

Pustervik. LIA- rapport. Kulturverkstan Joel Lind

Tre saker du behöver. Susanne Jönsson.

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)

Positiv Ridning Systemet Negativ eller positiv? Av Henrik Johansen

Äventyrskväll hos Scouterna är skoj, ska vi gå tillsammans?

QR-kodernas intåg för nytta och nöje!

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Välkomna till DIT012 IPGO

Utvärdering efter deltagande i gruppvägledning vid Ungdomslotsen

ATT ARBETA MED VEKTORGRAFIK

Utvärdering deltagare

Innehållsförteckning

Årsberättelse

Endless shooter neon - Post mortem

Dagbok Mikael Lyck

En Single-Page Application för små barn, barnens föräldrar samt en och annan mormor

sida 1 Grupp 6 co-browsing 1DV411 - Webbprojekt I Markus Axelsson Stavros Gemitzoglou Axel Hernborg Joakim Jonsson Rickard Karlsson Peter Magnusson

Hur upplevde eleverna sin Prao?

kan kämpa ett helt liv i ständig uppförsbacke utan att uppnå de resultat som de önskar. Man försöker ofta förklara den här skillnaden med att vissa

Transkript:

Mina listor En Android-applikation Rickard Karlsson 2013-06-09 Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.se

Innehållsförteckning 2. Innehållsförteckning 3. Abstrakt 4. Inledning/bakgrund 5. Positiva erfarenheter 6. Negativa erfarenheter 7. Sammanfattning 2

Abstrakt Detta är en slutrapport för det projekt jag bedrivit inom ramen för kursen Individuellt Mjukvaruutvecklingsprojekt 1dv430 på Linnéuniversitetet. Kursen går ut på att under 10 veckor utveckla någon slags applikation inom valfritt språk och plattform. Jag valde att utveckla en Androidapplikation med hjälp av HTML, CSS, JavaScript och ramverket PhoneGap. För mig innebar det att sätta mig in i hur PhoneGap fungerar, hur utvecklingsmiljön för Android är och generellt hur det går till att utveckla en Android-applikation. Den slutprodukt jag kom fram till i slutet av kursen är en applikation för att skapa checklistor utvecklad med Android Jelly Bean i åtanke. Under utvecklingen så har jag fått en betydligt större förståelse för hur man utvecklar en smartphone-applikation med hjälp av att använda en WebView och mer specifikt hur man gör det med hjälp av PhoneGap. Här är mina erfarenheter av denna utvecklingsprocess. 3

Inledning/bakgrund Att utveckla applikationer till mobiltelefoner är något jag alltid varit intresserad av men det har inte varit något jag har haft kunskapen till att göra. Just på grund av det intresset så blev det också mitt syfte med detta projekt att lära sig mer om hur det är att utveckla smartphone-applikationer. Det finns många olika sätt att utveckla applikationer till dagens mobiltelefoner och alla olika smartphones kör olika operativsystem (ios, Android etc.) och de olika operativsystemen använder i sin tur olika programmeringsspråk men något som finns gemensamt för alla är att man kan använda något som kalls WebView. WebView kan man kort beskriva som en komponent man kan använda i en applikation för att visa en webbsida och detta är något som finns i alla mobila operativsystem. Så genom att kombinera komponenten WebView med ett ramverk som PhoneGap så kan man använda tekniker vi alla är vana vid: HTML, CSS och JavaScript för att skapa en applikation som ser ut och som känns som en native smartphone-app. Det är spännande att man kan kombinera webbteknikerna med PhoneGap för att skapa något för mobilen och med hjälp av API:er som PhoneGap erbjuder kan man göra saker utöver det vanliga man är van vid med JavaScript som till exempel komma åt kontakter, arbeta med telefonens kamera eller spara data i telefonens minne. Sedan, med tanke på den tiden vi hade och min begränsade kunskap, så valde jag att göra en typ av to-do applikation. Det är en applikation där man kan skapa sina egna checklistor som är väldigt simpelt utformad och utan krångel. Det finns en hel del sådana applikationer ute på marknaden men alla konkurrenter är lite för avancerade och svåra att använda medan min fokus har legat på användarvänlighet och enkel utformning. 4

Positiva erfarenheter Under dessa tio veckor som kursen gått har jag lärt mig en hel del. Jag valde visserligen att programmera i språk jag är väldigt van vid och som jag kan ganska väl men trots det har det ändå varit en hel del nytt. Först och främst så gäller det ramverket PhoneGap. Ramverket har väldigt mycket att erbjuda och jag har lärt mig mycket. Det jag kan säga är att även om det är ett kraftfullt ramverk så tog det ändå inte lång tid att sätta sig in i hur det fungerar. PhoneGap har en bra dokumentation som tar upp hur alla olika API:er fungerar och har bra exempel. Genom att ständigt gå tillbaka till dokumentationen och läsa väldigt noggrant hur saker och ting fungerar så har det inte tagit lång tid alls för mig att förstå de olika komponenterna. Därför har det för mig varit en väldigt bidragande del till hur jag har lärt mig det under så pass kort tid. Just när det gäller PhoneGap så finns det en väldigt bra dokumentation men så är nog inte fallet för alla ramverk och API:er som finns där ute och är tillgängliga för oss utvecklare och när så är fallet så kommer ramlar jag in den andra punkten jag vill ta upp; Google. Alla problem jag stött på som jag inte har kunnat lösa har jag googlat fram en lösning. Det är förvånansvärt ofta man stöter på nästintill samma problem som någon annan gjort och det är också förvånansvärt ofta det finns en bra lösning också. För mig är Google det bästa verktyget man har som utvecklare och det är förmodligen nästan en klyscha att säga det men det är också således sant. Man ska aldrig någonsin underskatta förmågan att kunna googla effektivt och bra. En annan väldigt positiv sak som jag upplevt under dessa 10 veckor är att jag är ganska bra på tidsuppskattning. Eftersom tidsuppskattning och att arbeta från vecka till vecka var ett av kriterierna till projektet så blev jag mer eller mindre tvingad att inför varje vecka lägga upp en veckoplanering tillsammans med en tidsuppskattning av hur lång tid varje uppgift skulle ta. Detta är verkligen inget jag normalt sätt skulle ha gjort men eftersom jag mer eller mindre blev tvingad så gjorde jag det. Något jag märkte ganska snabbt med mina planeringar var att jag var väldigt nära, om inte exakt, på när det kom till att uppskatta tiderna. Det var väldigt sällan jag arbetade över tiden jag uppskattade och om något så var jag under tiden. Detta ledde naturligtvis till att jag fick ett väldigt bra arbetsflöde och jag kunde ganska snabbt identifiera punkter i min product backlog som jag inte skulle hinna med och på samma sätt kunde jag också göra snabba beräkningar på om jag skulle hinna lägga till nya funktioner eller inte. Detta är något som verkligen hjälpte mig i min utvecklingsfas genom att jag väldigt lätt kunde planera min vecka och aldrig behövde stressa. Jag har som sagt lärt mig en hel del under denna kurs gång och det finns säkert mer jag skulle kunna ta upp här men för att sammanfatta denna sida så vill jag säga det att: 1. Läs igenom dokumentationen. 2. Om 1 misslyckas; Googla. 3. Använd din tidsplanering väl. 5

Negativa erfarenheter Dessa tio veckor har verkligen inte varit enbart positiva erfarenheter. Något jag lärde mig väldigt tidigt var att man förlorar väldigt mycket tid om man inte gör ett riktigt förarbete. Det var något jag missade att göra och när jag den första veckan planerade att sätta upp min utvecklingsmiljö och sedan också hinna med en hel del programmering så misslyckades jag ganska så rejält med tidsuppskattningen eftersom jag inte hade utfört mitt förarbete tillräckligt väl och tagit reda på hur man sätter upp sin utvecklingsmiljö för Android. Detta problem var ingenting jag stötte på senare i projektet och när jag väl hade fått upp min utvecklingsmiljö så gick det rätt smidigt efter det men det är definitivt något jag kommer ta med i framtida projekt. En sak som gick ganska dåligt under utvecklingsprocessen var min testning. Testning är en sådan viktig del i utveckling och det var därför väldigt frustrerande att det var så segt och trögt att testa. Det var två problem jag hade med testning: 1. emulatorn och 2. felsökning. Problemet med emulatorn var att det var väldigt omständligt att använda den. Det var segt och trögt att arbeta med och generellt sätt en väldigt dålig upplevelse. Mitt alternativ var att installera om applikationen på min telefon varje gång jag hade gjort en ändring som jag ville testa och även om upplevelsen var bättre på telefonen och även om den verkligen inte är lika seg som emulatorn så var det istället frustrerande att jag var tvungen att spara.apk-filen (det är alltså applikationen som blivit exporterad från programvaran) på ett ställe som mobilen kom åt, gå in i mobilen och installera den. Detta var speciellt i början ett ganska stort problem men allt eftersom jag kom längre in i utvecklingsprocessen så kom jag på smartare lösningar för att hantera detta problem men ändå nu i slutet känner jag mig inte helt nöjd med det. Jag har tyvärr inte kommit på en lösning som jag är 100% nöjd med och det är också tyvärr något jag får ta med mig till nästa projekt och fortsätta fundera på. Det andra problemet jag hade med testning var felsökning. Problemet låg i att JavaScript i sig inte är det lättaste programmeringsspråket att testa och om man dessutom tar bort möjligheten till konsol som man normalt sätt kan använda sig av om man skriver JavaScript för webben så blir det ännu svårare. I början var det oerhört svårt för mig men ju mer jag höll på med det ju vanare blev jag och jag lärde mig på något sätt hur man ska gå till väga för att felsöka. Om man bortser från de två punkterna testning och dåligt förarbete så vill jag ändå påstå att jag inte tar med mig så många negativa erfarenheter från detta projekt. Det finns fortfarande lite saker i själva applikationen som jag önskat att jag hade gjort bättre men i det stora hela så gick det ändå bra. De saker jag önskar jag hade gjort bättre hade jag kunnat fixa om jag bara hade haft mer tid och det är inget jag egentligen inte hann med eller så heller. Överlag så gick det bra. 6

Sammanfattning Ja, vad kan man säga? Dessa tio veckor har förmodligen varit de bästa tio veckor jag någonsin spenderat med ett skolarbete. Det har varit underbart att få välja helt fritt vad man vill göra och dessutom få friheten att lägga upp sitt eget schema har också varit en jättetrevlig upplevelse. Att jag dessutom lyckades producera en fullt fungerande applikation är också ett plus. Jag har lärt mig en hel del om det går till att utveckla applikationer för smartphones och eftersom målet med mitt projekt var att skapa en Androidapp som man kan skapa egna listor som sparas och som man kan bocka av sina listpunkter en och en i så säger jag definitivt att jag nådde mitt mål. Det var stundtals en klurig resa men generellt sätt så gick det väldigt smidigt och snabbt. Något som jag kan ta med mig till nästa stora projekt jag ger mig in på är att det är jätteviktigt att planera framåt, att följa sin planering och att alltid försöka vara ett steg före. Dessa punkter går naturligtvis hand i hand. Det är genom att tänka framåt som man kan planera bra och om man dessutom gör bra tidsuppskattningar och aldrig fastnar på något allt för länge som man kan hålla sin planering. Det är på så sätt som jag lyckats slutföra mitt projekt och ganska stolt kan visa upp min slutprodukt för andra människor. Men allting är naturligtvis inte helt perfekt. Så här i efterhand så ser jag definitivt förbättringspunkter i min applikation. Om projekttiden hade varit längre hade jag förmodligen strukturerat om all min kod för att optimera och få ett rent och mer lättläst kod. Jag hade också arbetat mer på mitt gränssnitt men med brist på testpersoner, bristande testmiljö och naturligtvis brist på tid så får jag tyvärr nöja mig med något jag enbart är nöjd med till 70 procent. Det finns en hel del mer punkter jag också skulle vilja ha gjort annorlunda men än är jag nog inte helt klar med denna applikation heller. Kursen är visserligen slut men för min personliga utveckling så kommer jag ändå fortsätta förbättra applikationen. Det finns funktioner som jag skulle vilja lägga till, som till exempel att kunna dela med sig av sina listor på Facebook/mejl/ etc. eller att kunna synka sina listor mellan två olika enheter. Jag ser fortfarande framtida möjligheter och om jag väljer att fortsätta arbeta på den så tror jag att jag i slutändan kan ha en applikation som är värdig nog att publicera på Google Play och dela med mig av till resten av Sveriges Androidanvändare. Överlag känner jag mig väldigt nöjd med hur projektet gått. Det finns funktioner som jag skulle velat ha med och saker jag gärna hade gjort annorlunda men jag är nöjd med det jag åstadkommit. Detta var mitt absolut första försök att göra en applikation för smartphones och jag tror ingen kan säga att jag inte gjort ett bra jobb. Den är egentligen bara en i mängden om man ser på hur den enorma mängden applikationer som utgör samma syfte och förmodligen är den också nästan för simpel i jämförelse med de andra men för att vara den försöka applikationen så är den bra. I mina slutord såhär i slutet av rapporten vill jag påpeka att det var ett jättekul projekt att utföra och att jag verkligen nu i slutet inser vikten av bra planering. Det hade aldrig gått om jag hade chansat mig fram som jag normalt sätt gör. 7