GYMKEEPER ANDREAS SÖDERSTRÖM



Relevanta dokument
Slutrapport för JMDB.COM. Johan Wibjer

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

Slutrapport för Pacman

Slutrapport YUNSIT.se Portfolio/blogg

6-stegsguide för hur du tänker positivt och förblir positiv.

Post Mortem för Get The Treasure!

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

Roligaste Sommarjobbet 2014

Verktyg för Achievers

Betyg E (med tvekan) : (= Eleven beskriver mest med egna ord hur man upplevt träningen)

Stina Inga. Ur antologin nio, utgiven av Black Island Books och Norrbottens länsbibliotek, 2002 ISBN Intervju: Andreas B Nuottaniemi

Planeringsspelets mysterier, del 1

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

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?

Studieresa till James B. Hunt Jr. Library, North Carolina State University

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 14

SÄKERHETSVISAREN 1. LEDNING OCH PRIORITERINGAR

TITTSKÅP APALBYSKOLAN 2011

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

Kursrapport Datorlingvistisk grammatik (första skiss)

Kristet Sällskapande Stefan Forsbäck 2007

Brott, straff och normer 3

Kapitel 1 - Hej Hej jag heter Lisa och går på Hästskolan. Min bästa vän heter Wilma. Jag tycker att vår rektor är lite läskig. Hon heter Svea och hon

Kapitel 1 - Hej Hej, jag heter Lisa och är 9 år. Jag har en vän som heter Julia. Vi går på samma skola, den heter Bokskolan. Det finns någon som jag

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

-Ja, tack. -Är du rädd för något? -Nej! -Känns det bättre nu? -Ja. -Hejdå!

Valet 2010 på facebook!

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

Projektarbete 2: Interaktiv prototyp

För dem som är på behandling Detta är en översättning av en publikation godkänd av NA-gemenskapen.

Det bästa som hänt under min tid som boklånare

På jakt med geocaching

Vad roligt att ni har valt att bjuda varandra på den här timmen.

5. Skill # 2 Inviting Prospects to Understand Your Product or Opportunity. Många posers och amatörer gör dessa fel i början när dom ska bjuda in

Appar eller mobilwebb? Vad är bäst för bibliotekets tjänster?

En annan mycket roligare del i arbetet var att jag ofta fick följa med min handledare ut på

Utskrift av inspelat samtal hos Arbetsförmedlingen

Evaluation Summary - CD5570 DoA, distans VT 2004 Dan Levin

40-årskris helt klart!

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

KiVa Skola situationskartläggningen 2016 sidan 1/31. KiVa Skola situationskartläggningen 2016 sidan 2/31

Att komma igång med FirstClass (FC)!

Mobilapplikationen - det perfekta verktyget för beteendeförändring i organisationer

Endless shooter neon - Post mortem

Utvärdering 2015 deltagare Voice Camp

Enkätsvar Fler kvinnor. Enkätsvar 2013 Kyrkans Familjerådgivning Stockholm

Sammanställning av studentenkät arbetsterapeuter 2009

Fjäderns Bokslut 2015

Kapitel 2 Brevet Nästa dag gick Lisa och jag ner i källaren igen. Då såg vi ett brev. Lisa öppnade brevet. På brevet stod det: Hej, vi bor i ett

Case: Kundservice. Vad är det som idag kan kallas service? Madeleine Lindqvist

Kulturell vistelse i BERLIN Presentation och utvärdering

Övningar till avsnitt 3 - Leva inifrån och ut

Min kompis heter Sofie och har ljust kort hår. Hon älskar marsvin. Min ärkefiende Lisa, läraren Lisa, utan hår är läskig. Det känns som att hon

Pedagogisk dokumentation i förskolan hur kan vi vidareutveckla detta med hjälp av digitala verktyg? Vecka 44 Pedagogiskt Center

ELEVHJÄLP. Diskussion s. 2 Åsikter s. 3. Källkritik s. 11. Fördelar och nackdelar s. 4. Samarbete s. 10. Slutsatser s. 9. Konsekvenser s.

Likabehandlingsplanen = Plan mot kränkande behandling

Av: Martina Gustafsson

Hur upplevde eleverna sin Prao?

7 steg från lagom till världsklass - 7 tips som berikar Ditt liv

Praktikrapport Strandberghaage

Kom Med projektet. Samordningsförbundet Skellefteå

Innehållsförteckning

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Resultat av enkät nr 2 Testresenären

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Fotbollsfinter Fotbollsmaskinen: väldigt Mått på maskinen:

Alla får ligga. strategier i förförelsekonst för den moderna gentlemannen och kvinnan

Det finns inget rätt från början! Intervju med Staffan Sjöström Årets Projektledare 2005

Komma igång med Eventor

Vore intressant att veta vad ni använder för telefoner. Är den bra? Funktioner ni gillar eller saknar?

Så får du maximal nytta av Evernote

Språkäventyret. Mål. Verktyg. Inledande arbete

Om mig. Manual för genomförande. Ungdomsenkät för elever i Östergötland - grundskolan år 8 och gymnasieskolan åk 2

Jonatan Nilsson Industriell Ekonomi, inriktning Energiteknik University of Illinois våren 2014 Urbana Champaign, Illinois, USA Mail:

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Tekniskt system för Lean Startup

Så får du bättre. självkänsla. Experter Frågor och svar Intervjuer Steg för steg-guider Praktiska tips SIDOR

Hur har ni informerat om stödet från Leader Bergslagen? Bifoga affisch eller liknande!

Hitta kunder som frilansare

Förslag på lektionsupplägg: Dag 1- en lektionstimme

Dethär tycker vi är viktigt! De ungas röst Ann Backman

Analys av Gruppintag 2 Arbetsmarknadsintroduktion för nyanlända

Idag släppte H&M sina försäljningssiffror för februari månad, och dessa landade något under förvänatn med +10,0 % (väntat 11,1 %).

Antal svarande i kommunen 32 Andel svarande i kommunen, procent 43 Kategorier ångest? Mycket dåligt Totalt Nej. Någorlunda. Mycket gott.

Chefens sju dödssynder - undvik dem och lyckas som ledare!

Redovisning av uppföljning av utbildning och informationsdag kring gemensam informationsstruktur. Datum:

Sammanställning av studentutvärderingen för kursen Estetiska lärprocesser 15 hp, ht 2007

med det konstnärliga uttrycket som plattform letar vi efter

Asylboende Malmö Enkätnamn: Asylboende Malmö Antal respondenter: 66

Kursutvärdering Ämne: SO Lärare: Esa Seppälä/Cecilia Enoksson Läsåret Klass: SPR2

Mitt liv som mobbad. Wiveca Wendin

Valet 2010 på facebook!

21 december Vittnesbörd efter undervisning och praktik i Inre bönen :

Utvärdering av 5B1117 Matematik 3

Nära smågrupp JAKOBS BREV ETT BIBEL OCH SAMTALSMATERIAL FÖR SMÅGRUPPER

Resultat brukarundersökning inom Bergs kommuns hemvård och särskilt boende... 2

Storyline Familjen Bilgren

Tentamen IE1204 Digital design

Innehållsförteckning Sida 3 Om IT-Högskolan Sida 4-5.NET-utvecklare Sida 6-7 Applikationsutvecklare till iphone och Android Sida 8-9 Mjukvarutestare

PDA-applikationer med.net

Transkript:

GYMKEEPER ANDREAS SÖDERSTRÖM 20120529

ABSTRAKT En post mortem på mitt ios-projekt. Utmaningen låg i att under 10 veckors tid sätta sig in i en plattform och programspråk jag aldrig använt förut. Jag har kommit fram till flera do s and don ts i generell mjukvaruutveckling men även specifika problem som går att undvika i Objective-C och Apple s utvecklingsmiljö Xcode. Här följer mina erfarenheter i utvecklingen av en verktygsapplikation med temat träning/hälsa.

FÖRORD Alla någorlunda teknik intresserade som har skaffat sig en smartphone och även köpt någon utav superhit-appsen har nog någon idé liggandes som de önskar realisera. Så har det varit för mig i alla fall. Jag tror att den genomsnittsliga smartphone användaren är oförlåtande och har ett väldigt kort fönster öppet där man som utvecklare kan skapa intresse och behålla det. Att ta en användarupplevelse och destillera den till det absolut nödvändigaste är fascinerande. Det är vad som drev mig till att välja just detta projekt. TEKNISKA TERMER: Xcode Är Apple s utvecklingsmiljö för att skriva MacOSX / ios applikationer Core Data Framework Ett ramverk utvecklat av Apple för att spara data permanent i applikationer på användarens iphone. Objective-C Programspråket som används för att skriva MaxOSX / ios applikationer

INLEDNING / BAKGRUND Första idén till projektet var ett mindre spel, men då jag aldrig öppnat Xcode förut och aldrig sett Objective-C kod förut så kände jag att skriva spelmekanik och lära sig tillräckligt om språket på 10 veckor var alldeles för snävt. Jag bestämde mig då för att istället producera någon slags verktygs-applikation. Tanken var enkel, identifiera ett formulär av något slag och bygg en applikation runt det. Jag valde att ersätta pappret gymbesökare använder för att logga sina träningsresultat på. Då redan många gymbesökare använder sina smartphones som musikspelare så är det en mottaglig målgrupp för en ny applikation. Efter att ha utfört en konkurrensundersökning på Apple AppStore så drog jag slutsatsen att just denna niche var fortfarande ganska öppen för nya applikationer. De få applikationer jag hittade som utförde just detta låg antingen väldigt högt i pris eller hade ett otroligt stökigt användargränssnitt. Så målsättningen blev att skapa ett verktyg för träningen som hade ett konkret och snabbt gränssnitt. Nästa steg blev att prototypa applikationen med papper och penna och bestämma funktionalitet. Applikationen skulle ha tre delar : Träning [ Lägga till träningspass och logga övningar ] Statistik[ Se hur träningsprestationen ökat under användandet av applikationen ] BMI [ Ett enkelt Body Mass Index analysverktyg ] När idén var formulerad till en skiss av applikationen så var det svårt att sätta igång när plattformen och programmeringsspråket var så okänt för mig. Så jag gjorde vad vilken annan programmeringskurs skulle be mig göra, Jag började utföra mindre laborationer av typen Hello World, Gissa Talet och så vidare för att få grepp om syntax och struktur. Denna typ av arbetssätt återkom flera gånger under projektet när nya tekniker, eller delar av applikationen skulle produceras och jag behövde lära mig hur. Då släppte jag huvudapplikationen och skrev en mindre riktad applikation enbart för att testa viss kod eller teknik.

POSITIVA ERFARENHETER Det var ett viktigt mål för mig att känna på att kastas rätt in i ett programmeringsspråk jag aldrig sett förut och framförallt utan en kursplanering och lärarstöd för att hålla en i handen. Det har givit mig mycket användbar erfarenhet som har fått mig att växa som programmerare. Att inte stångas direkt med produktionen av applikationen utan ta sig tid att göra mindre applikationer med endast syftet att lära sig arbetsverktygen var ett bra tillvägagångssätt för att komma igång och undvika en hel del problem. Jag tycker att min riskanalys var ganska bra och de moment som jag identifierade som högriskdelar visade sig mycket riktigt ta mycket utav tiden. Att jobba på ett agilt arbetssätt har verkligen givit en aha-upplevelse, dels i att få upp ögonen för vad som kan verka trivialt kan ta stora resurser och att försöka anpassa nästa sprint efter det. Det känns framförallt som ett måste att vara väldigt anpassningsbar och snabb på att attackera nya problem när man utvecklar något till en okänd plattform. Apple Developer Library var en väldigt bra resurs för att ta reda på information när man kört fast och rekommenderas varmt till den som vill testa ios-utveckling. Jag valde tidigt att investera i en Apple Developer License med rättigheter att publicera applikationer på AppStore så målet har alltid varit där att släppa applikationen kommersiellt. Detta gav en verklighetsankytning till projektet som fungerande som en extra drivkraft.

NEGATIVA ERFARENHETER Att utveckla en applikation i Objective-C / Xcode är väldigt annorlunda och har en snäv inlärningskurva. En ny version av Xcode och ios har precis släppts och en hel del förändringar i Xcode samt hur ios behandlar koden har ändrats vilket har gjort att material man hittade sällan var aktuellt och krävde en hel del trial&error på egen hand. Mycket av minneshanteringen har till exempel förändrats i ios. Jag såg det som ett naturligt steg att försöka skapa någon slags navigation i applikationen då det känns som ett bra steg för en nybörjare. Så här i efterhand kan jag säga att den lättaste och minst problemfyllda vägen hade varit att börja med funktionaliteten och byggt ett gränssnitt kring detta. Mycket av problemen man stöter på under ios-utveckling förebygger man snarare än löser senare. Framförallt blir det väldigt svårt att lösa senare. Ett exempel är det absolut största hindret och risken under projektet: Core Data Framework. Core Data Framework var omständigt och rent av dåligt att försöka implementera i efterhand i en existerande applikation. Det rätta arbetssättet hade snarare varit att skapa databasen och bygga appen med Core Data Framework i grunden som binder ihop allt. När man öppnar Xcode och ser dess grafiska gränssnitt Storyboard där man kan dra ut och släppa färdiga kontroller luras man lätt att tro att det är lätt. Vad man senare har insett är att det krävs en hel del jobb och kunskap för att få det mest grundläggande funktioner att fungera som det ska. Några exempel är att man behöver skriva en fix för att se till att ios tangentbordet försvinner när det ska, eller hur objekt sparas i minnet för att uppdatera en tabell. Vad man lätt glömmer är att med en ny plattform följer även ett nytt operativsystem. Jag underskattade helt klart att man är tvungen att öppna huven och faktiskt veta vad som sker och hur ios behandlar koden. Xcode som verktyg har väldigt starka sidor, ett oerhört bra hjälpverktyg och ett stort bibliotek av information och även källkod att titta på. Men jag känner att man blivit lite bortskämd med Visual Studio s felmeddelanden när något går snett. Det var omständigare och klumpigare att leta fel, detta har dock absolut också att göra med att bristande kunskap om hur ios fungerar.

SAMMANFATTNING En utav anledningarna att jag valde ett okänt språk för mig och plattform är att jag har en misstanke om att denna typ av situation kan lätt uppstå i arbetslivet där kund efterfrågar en tjänst och det är faktiskt upp till utvecklaren att hitta rätt verktyg för jobbet och sätta sig in i det. Jag känner att jag har ännu ett verktyg som programmerare och bredare kunskap. I det här fallet så känns det som att det är inte det programmeringstekniska som har varit viktigt för mig utan snarare att kasta mig in i ett projekt utan laborations-instruktioner och, åtminstone simulerad brist på skyddsnät. Jag har fått större självförtroende som programmerare och är definitivt mer orädd för att testa för mig okänd teknologi. Jag kan säga att min åsikt om Objective-C är blandad, det är ett rätt klumpigt språk på sina ställen och smidigt på andra. Man märker definitivt åldern på språket med så enkla saker som en string-deklaration. Applikationen tappade ett av sina tre baskrav och fick ett annat utav dem nedbantat. Planen var trots allt att kunna gruppera sina övningar i olika gympass och se övergripande statistik. När jag väl stångats färdigt med Core Data Framework var jag rädd att inte hinna ha någon applikation alls att visa så jag valde att inte ge mig in i flera relationsobject i SQLite databasen som driver det utan nöjde mig med ett till att börja med, Applikationen utför sitt syfte visserligen men mycket av användarupplevelsen tappades med det beslutet. Statistiken hade involverat ännu ett ramverk att sätta sig in i i kombination med Core Data Framework, den risken kunde jag inte ta med tanke på var jag befann mig i projektet när datalagringen fungerande. Jag är trots allt inte besviken över att min applikationen inte träffade mitt i prick på utsatt mål, jag visste om risken när jag valde Objective-C och ios, även om jag hoppades att lyckas implementera allt. Applikationen bör byggas om från grunden för att vara i ett skick att accepteras av Apple. Frågan återstår nu om jag kommer göra det, Det verkar för mig som att nyckeln till att behärska Objective-C är att ta några steg tillbaka och producera mindre applikationer som endast är beroende av en dataklass och har endast ett mindre syfte att fylla. Jag är snarare inspirerade att gå tillbaka, lära mig mer, och återkomma och göra en kraftfullare applikationen än vad denna skulle bli.