Det här är inget kundcase. Det här är en historia om hur ett inlägg på sociala medier ledde till att jag skapade en receptapp i programmeringsspråket Kotlin för Android.

I början av januari 2020 ondgjorde sig en vän till mig i ett inlägg på Facebook över att det saknades receptappar som lät dig skapa och anpassa din egna recept, inköpslistor och menyer. Hon frågade skämtsamt om någon kunde skapa en sådan app, och jag svarade ja – jag hade redan funderat på att lära mig hur man skapar appar som ett självutvecklingsprojekt. Så jag gjorde det!

En bild av förstasidan för Receptappen.

Hur strukturerar du ett utvecklingsprojekt, om du vill göra allt rätt? Jag ville simulera ett riktigt utvecklingsprojekt – jag tog mig an rollen som utvecklare, UX, QA och projektledare. För att vara tydlig, jag har noll timmars erfarenhet av att vara en QA eller UX:are och jag försöker inte låtsas om att jag kan kan utföra dessa resurser jobb – jag gjorde som jag gjorde för att förstå dessa roller bättre, och för att förstå hela apputvecklingsprocessen.

Steg 0 – att lära sig programmera

Låt oss inleda med brasklappen att jag haft ett inslag av programmering i mina studier på KTH – jag har lekt med och utvecklat i Python och SQL, och genomfört en hel del beräkningar i MATLAB. Min första kodningsupplevelse skedde redan i gymnasiet, där jag tog en inledande programmeringskurs och lärde mig konceptet algoritmteori (den teoretiska grunden i att lära sig hur man löser programmeringsrelaterade problem). Det var alltså inte så att jag startade helt som ett tomt ark vad gäller programmering – men jag behövde lära mig ett nytt språk, och ett helt nytt sätt att tänka på i termer av hur man utvecklar appar (v.s exekverbara program för traditionella datorer).

Jag gick en Udemykurs i apputveckling och programmeringsspråket Kotlin, vilket fick mig att börja jobba med utvecklingsverktyget IntelliJ och Androids ramverk för att utveckla appar. 59 timmar senare var jag färdig med kursen, och redo att börja utveckla appar.

Livscykeln för en aktivitet i Android.

Steg 1 – brainstorming och att förstå kundens behov

Jag tog min kompis inlägg och använde den som en ”behovslista”. De tre primära behoven och funktioner som hon efterfrågade var:

  1. En funktion för recept, för att lägga till sina egna recept i en lista/bibliotek av recept.
  2. En funktion för meny, för att skapa veckovisa planer för recept att laga mat utefter under veckan.
  3. En funktion för inköpslista, som ska kopplas till recepten för ökad effektivitet.

Jag översatte de primära behoven till en story board och strukturkarta. Story board hjälpte mig att teckna bilder (det var innan jag lärde mig att använda design- och testverktyget Figma) som visade användbarhetssidan (UX) av appen. Hur ska användaren navigera mellan meny, receptlistan och inköpslistan? Hur ska recept och menyn uppdateras, ändras eller raderas? Efter en del revideringar, fastnade jag för designen som syns nedan (de initiala teckningarna var dock inte lika fina som det färdiga resultaet nedan får jag erkänna):

Steg 2 – översätta story board och strukturkartan till kod

Designstrukturen visade vilka funktioner, klasser, bibliotek och databaser att använda. Ett viktigt tillägg till funktions- och klasslistan var Room-biblioteket, en SQL-baserad databas som sparar data lokalt i appen. För att spara recept,- meny- och inköpslistdata behövde jag en databas som inte krävde inloggning och som inte var molnbaserat (vilket annars hade krävt att jag tänkte länge och hårt kring frågan om GDPR och säkerhet vilket hade varit … lite väl mycket för ett hobbyprojekt).

Jag hade skapat appen innan jag hann dyka in i ämnet om programmeringsramverk såsom MVVM – vi skippar delen om god programmeringspraxis. En viktig process som jag följde var den om att använda versionshantering, testning och ”debugging” (hitta fel i koden och ta bort dem). Jag använde Github för versionshantering och för att skapa separata ”grenar” (versioner av grundkoden) för testning av nya funktionaliteter och för att kunna gå tillbaka till tidigare versioner av koden om jag råkar ha sönder något (vilket erkännelsevis hände ett par gånger). Debugging och testning skedde i utvecklingsverktyget först i simulator och sedan i en riktig mobil genom att aktivera utvecklarinställningen i mobilen.

Jag såg till att genomföra tester flera gånger för att ha en funktionell version av appen innan jag lade till nya funktionaliteter. Jag skapade receptstrukturen först, sedan meny, sedan inköpslistan och till sist lade jag till databasen för att spara data.

Steg 3 – lansera appen i Play Store

Det är en relativt enkel process att lansera en app på Play Store, men det var inte som jag hade inbillat mig att det skulle gå till – det finns ett lager av säkerhetskontroller från Googles sida för att förhindra att skadliga appar läggs till (vilket är bra).

Jag skapade ett konto via Google Play Console och betalade en utvecklarkostnad på 25 USD, laddade upp appen och lade till information om den och voila. Appen finns nu uppe, för de som är intresserade av att använda den. Jag lärde mig att på grund av mängden appar som finns tillgängliga (ca 2.7 miljoner vid Q2 2020) är sannolikheten att hitta min app via en enkel sökning i princip obefintlig. För att komma åt min app måste du söka på det exakta appnamnet eller använda en direktlänk, eller att appen blir så pass populär att den rankar högt i Play Search Engine.

Populär eller inte, min första app finns nu uppe på molnet. Och allt började med ett inlägg på Facebook och ett nyfiket sinne.

Du kan ladda ner appen via denna länk.