ToDo ios-applikation Mikael Östman 201205 Mikael Östman - mo22ez Linnéuniversitetet mo222ez@student.lnu.se
Abstrakt Detta är en slutrapport för det projekt jag bedrivit inom ramen för kursen Individuellt Mjuvaruutvecklingsprojekt 1dv430 på Linnéuniversitetet. Projektet gick ut på att under dessa 10 veckor som kursen gått, sätta sig in i språket Objective-C tillsammans med utvecklingsmiljön för ios och Mac OS, Xcode, samt det ramverk som används för att utveckla applikationer till ios. Själva slutprodukten är en ToDo-applikation för ios, specifikt anpassad för iphone och ipod Touch-enheter med ios 5.1 och högre av den inbyggda programvaran. Under arbetets gång, så har jag fått en grundläggande förståelse för språket Objective-C och hur det används för att utveckla applikation för ios-plattformen. Här följer mina erfarenheter från denna arbetsprocess. Postmortem ToDo ios-applikation 1
Inledning/Bakgrund Jag har under en tid nu varit intresserad av att testa på att sätta mig in i Objective-C och utveckla för ios-plattformen, men har aldrig riktigt haft tiden som krävs för att kunna genomföra detta. Då såg jag denna kurs som ett perfekt tillfälle för mig att åtminstone lära mig grunderna i språket, få en försmak på hur det skulle vara att utveckla program för denna plattform. Första problemet, om man vill kalla det så, var att komma på en lämplig typ applikation att utveckla, baserat på den tid som fanns att tillgå, och min tidigare erfarenhet med språket, vilket är i stort sett obefintlig. Dock ska tilläggas, att jag tidigare arbetat med objektorienterade språk, så som C#. Så sättet att arbeta på i dessa två språk, Objective-C och C#, har vissa gemensamma drag. Efter lite funderande, kom jag fram till att göra en ToDo-applikation, då det kändes som en lämplig första applikation. När jag väl kommit fram till detta, så började jag att söka efter liknande program på App Store, det distributionssätt som Apple tillhandahåller för att införskaffa applikationer till ios-enheter. Det finns en hel del existerande applikationer som direkt konkurrerar med min egen, både gratis och som kostar. Det jag ville uppnå med min egen applikation, var att ha ett så enkelt och snabbt gränssnitt och bara de nödvändigaste funktionerna, då många av dom existerande applikationerna inom samma kategori även kan ha en hel del extra funktionalitet. Inte för att det inte kan tillföra något till användarupplevelsen, men i vissa fall kan det bli lite väl mycket extra funktionalitet, nästan så att det känns som en annan typ av applikation. Postmortem ToDo ios-applikation 2
Positiva erfarenheter Under projektets gång har jag fått en hel del ny kunskap, båda om utveckling till ios-plattformen, men även om Objective-C som språk, och även Apples utvecklingsmiljö Xcode. Jag känner så här i efterhand att jag ändå mot slutet, då det kändes lite segt och svårt att ta sig över första inlärningströskeln. Men när jag väl gjort det, så flöt det på bättre och bättre, mycket med hjälp av olika guider, både officiella och inofficiella. Att ha få arbeta på detta sätt, så pass fritt, är helt klart en annan känsla, ett annat sorts ansvar än vad jag själv är van vid. Detta kan jag definitivt tycka är bra, även om det ställer mycket krav och ansvar på en själv som individ. Att verkligen ta tag i saker och ting på en gång, och inte vänta med det in i sista sekund, bara för att man inte måste göra det nu. Men med det sagt, måste jag säga att det tog någon vecka innan jag själv började ta det ansvaret på riktigt. Men känner nu att jag ändå lärt mig att det inte bara är viktigt att planera, utan även att man följer den planeringen. Återigen till språket Objective-C, vilket var mitt huvudsakliga syfta med detta projekt. Där känner jag att även om jag lärt mig en hel del, sannerligen mycket mer än vad jag kunde innan jag startade detta projekt. så inser jag samtidigt att ju fler delar av språket jag utforskar, desto mer inser jag att det finns kvar att lära. Därför har jag fått begränsa mig en del på vissa områden, för att hinna med allt som jag planerat. Nu blev det dock ändå så att en del saker fick strykas från listan, men själv grundfunktionaliteten finns där, färdig att användas. Angående Xcode, så tycker jag att det, efter att ha tagit sig över den första inlärningströskeln, är ett väldigt bra och genomarbetat verktyg. Att det dessutom finns att tillgå utan kostnad är en oerhört stor fördel, speciellt vid ett tillfälle som detta, då jag under en kortare period vill prova på att utveckla i detta språk och denna miljö. Dock finns det ändå vissa saker som jag gärna skulle sätta varit annorlunda, och en av dessa saker är dom felmeddelanden dyker upp när ens kod inte fungerar som förväntat. Dessa kan minst sagt vara något kryptiska, speciellt för någon som mig, som inte direkt har någon tidigare erfarenhet av denna typ av utveckling. Postmortem ToDo ios-applikation 3
Negativa erfarenheter Angående mer Negativa erfarenheter, så kan nämnas att jag fick lära mig det här med eget ansvar, på den mer hårda vägen. Detta då jag, främst i början av projektet, slarvade en del med att hålla det egenkomponerade schemat. Detta är något som jag känner att jag skötte bättre senare under projektets gång. Inlärningströskeln för ett nytt språk, tillsammans med en ny plattform, är något som jag stundtals underskattade, men som jag överlag ändå tyckte inte var alltför hög. Jag känner ändå att det var en rätt lagom nivå att satsa på med denna typ av applikation. Bland mina första idéer fanns bland annat en Twitter-klient med i förslagen, men jag inser nu i efterhand att det nog hade varit lite väl högt satsat på 10 veckor. Överlag tycker jag ändå inte att jag fått så pass många negativa erfarenheter, då jag redan från början tänkte att jag skulle avgränsa mitt projekt, då jag av tidigare erfarenhet vet att jag kan ha en tendens att sikta lite väl högt ibland, på projekt jag tidigare tagit mig an. Men med detta projekt, så tycker jag ändå att jag lyckades begränsa omfånget rätt bra. Det finns en del smärre problem i applikation som jag gärna skulle sett att jag hunnit med att fixa innan det var dags för leverans. Dock så är dom flesta av dessa buggar av lite mer grafisk natur, och inte just något som påverkar funktionaliteten i sig. Ett problem som jag dock gärna skulle hunnit med att fixa, är ett relaterat till hanteringen av påminnelser som sätts. Som det är nu, så kan man utan problem sätta en påminnelse. Men problemet uppstår när/om man som användare antingen sätter den berörda ToDo n som gjord, eller helt enkelt raderar den. Problemet då är att påminnelsen ändå kommer ligga kvar i systemet, och aktiveras på utsatt tid. Detta är något som jag känner att jag skulle behöva se över. Men överlag skulle jag säga att dom flesta negativa erfarenheter jag fått efter detta projekt, är från planerings och dokumentationsdelen. Detta då det är något jag aldrig innan riktigt behövt ta så mycket eget ansvar för, men som jag mer och mer inser är en viktig del i utvecklingsprocessen. Så det är definitivt något som jag tar med mig till nästa projekt, att det viktigt med en plan över hur arbetet ska bli gjort, och nästan ännu viktigare att just följa planen. Postmortem ToDo ios-applikation 4
Sammanfattning Såhär efter projektets slut, så känner jag ändå, trots smärre motgångar, att jag i alla fall delvis uppnått mitt mål. Målet var då att få en inblick i hur det skulle vara att utveckla i Objective-C, och än mer specifikt att utveckla för mobila enheter med iosplattformen. Även om det i början gick lite segt, jag visste inte riktigt vart jag skulle börja leta för att få den bästa utgångspunkten för att relativt snabbt kunna sätta mig in i språket så passa mycket att jag skulle kunna utveckla min applikation. Även om jag mot slutet av projektet känner att jag fick bättre koll på språket, och då även fick upp utvecklingstempot en del, så är det fortfarande vissa delar av applikation som jag inte hann med att implementera. Ett av dessa var möjligheten att kunna redigera tillagda ToDo s. Detta var ett av funktionerna som jag från början tänkte implementera, dock ett som låg relativt långt ner i listan på funktionalitet. Möjligtvis att jag efter kursens slut fortsätter att utveckla applikationen på min fritid. Jag kan säga att även om jag inte riktigt hann med att implementera viss funktionalitet, beroende på delvis dålig planering/att följa utsatt planering, men även andra oförväntade saker som hänt utanför ramen för denna kurs, men som ändå tagit upp en del tid och på så sätt påverkat mängden arbeta jag ursprungligen tänkt lägga ner på detta projekt. Men det är återigen en lärdom att ta med sig till nästa projekt, att även planera för oförutsedda händelser som kan påverka arbetet. Dom erfarenheter som jag fått efter dessa 10 veckor, är överlag bara positiva. För även om vissa delar inte riktigt gått så bra som jag velat/planerat, så har jag ändå fått känna på hur det är att arbeta på ett mycket mer fritt arbetssätt. Något som jag definitivt ser som en bra erfarenhet inför framtida projekt, såväl egna projekt som dom där jag kommer samarbeta med andra för att utveckla en gemensam applikation eller tjänst. Så egentligen känns det inte som att jag just fått några negativa erfarenheter. Snarare det att jag fått inse vikten av en bra planering innan jag kastar mig rakt in i ett projekt, och även vikten av att faktiskt följa den planeringen. För känner jag mig själv, så vet jag att jag lätt kan snöa in lite väl mycket på olika delar av exempelvis ett språk, när jag ibland känner att jag egentligen borde lära mig lite mindre om varje del, och istället lär mig om flera delar. Postmortem ToDo ios-applikation 5