Vi använder appar varje dag till allt från att betala för bussresor och hantera bankärenden till att spela spel och lyssna på musik. Apparna har blivit en så naturlig del av våra liv att det är lätt hänt att man tar dem för givna. Med vad är egentligen en app, hur fungerar en app och hur gör man en app? I det här inlägget kommer vi att ta en närmare titt på det.

Olika slags appar för olika plattformar

Till att börja med är det värt att nämna att det finns olika slags appar för olika plattformar. Innan appar till mobiler började utvecklas kallades de i huvudsak för program. Det spelar ingen roll om man kallar det en app eller ett program då man i princip menar samma sak, även om utvecklingen av datorprogram och mobilappar ser helt annorlunda ut. I det här inlägget kommer vi att fokusera på mobilappar och även här har vi några olika kategorier:

Native

En Native-app är en app som är byggd för en specifik plattform, antingen iOS eller Android. De flesta appar du hittar på App Store eller Google Play Store är Native-appar, helt enkelt eftersom Native-appar ger bäst prestanda och kan interagera med enheten (komma åt kontakter, kamera och så vidare). En nackdel är att Native-appar är dyra att utveckla då det inte går att konvertera en app från iOS till Android eller vice versa, de måste byggas från grunden.

Web

En web-app är en app som inte laddas ner på användarens enhet utan öppnas i användarens webbläsare. Om du exempelvis öppnar upp YouTube på din mobil utan att ladda ner appen har du öppnat upp en web-app.

Hybrid

Hybrid-appar tar både det bästa och sämsta ur båda världar. Å ena sidan kostar en Hybrid-app mindre än en Native-app samtidigt som appen kan interagera med användarens enhet. Å andra sidan får du inte lika bra prestanda som en Native-app och gränssnittet blir svårare att optimera. När man ska ta fram en MVP-produkt är det vanligast att man utvecklar en hybrid-app.

Cross-platform

I likhet med Hybrid utvecklar man både IOS och Android med en kodbas. Utvecklingsprocessen sig däremot åt. En hybrid app består till största del av HTML sidor som kapslas in i en native app för iOS respektive Android. För cross-platform har man ett JavaScript ramverk där man genuint bygger native kod som passar för båda plattformarna, och som har en underliggande Native renderingsmotor. Det gör att cross-platform apparna är i stort sett lika native som Native appar. Men till halva kostnaden. Underhållsarbetet underlättas mycket i cross-platform-utveckling jämfört med Native, eftersom man har en kodbas istället för två.

När man ska ta fram en MVP-produkt är det vanligast att man utvecklar en hybrid-app eller en cross-platform app. Hybrid appen blir i regel något billigare än cross-platform men å andra sidan är en cross-platform app ett mer långsiktigt val. Native appar har vissa små fördelar jämfört med Cross-platform i form av något bättre prestanda och mer optimalt anpassat UI/UX. I de flesta appar märks inte detta alls medan det får viss betydelse i vissa typer av appar. Cross-platform är sammantaget ofta det bästa alternativet. I synnerhet för en startup.

Läs mer om hur du skapar en mobilapp här.

Hur fungerar appar?

Back-end

Det användaren ser i appen är inte samma sak som utvecklaren ser. Det som kallas back-end är ett samlingsbegrepp för de bakomliggande system som får appen att fungera. I princip handlar det om tre saker:

  • Server
  • Applikation
  • Databas

För att få dessa tre delar att samarbeta används ett programmeringsspråk som PHP, Ruby, Python, Java, .Net och så vidare för att bygga applikationen, samt verktyg som MySQL, MongoDB eller Oracle för att hitta, spara och förändra data i databasen.

Det som sker i back-end sker helt utan att användaren ser det, bland annat rör det sig processer som att:

  • Bearbeta förfrågningar i en app eller hemsida
  • Köra skript (som PHP, ASP, JSP osv)
  • Hämta data från en databas, exempelvis en artikel eller en video
  • Spara och kategorisera användaruppgifter
  • Kryptera och avkryptera uppgifter
  • Hantera uppladdningar och nedladdningar

Vi har nu tagit upp saker som endast utvecklaren ser. Så vad är det då användaren ser? Vi kommer nu gå igenom det som app-utvecklare kallar front-end.

Front-end

Kortfattat är front-end allt det användaren ser. Olika utvecklare fokuserar ofta på olika saker, vilket innebär att utvecklare ofta inriktar sig helt på back-end eller front-end. Front-end-utvecklare använder:

  • HTML

HTML är hemsidans kärna och är det som skapar den övergripande funktionaliteten och designen.

  • JavaScript

JavaScript används för att skapa dynamiska beståndsdelar på statiska HTML-sidor. Det innebär att utvecklaren kan använda sig av beståndsdelar som är separata från HTML-sidan.

  • CSS

CSS används ofta för att skapa snygg och interaktiv design.

En av de största utmaningarna med front-end är att de verktyg som används för att forma användarupplevelsen förändras betydligt oftare än de som används för back-end. Det är front-end-utvecklaren som designar själva användarupplevelsen inklusive knappar, menyer, länkar, grafik och så vidare. Den som beställer en app har ofta inte mycket att säga om hur back-end ser ut, men om användarupplevelsen inte är som kunden har tänkt sig märks det omedelbart. Därför är kommunikationen mellan front-end-utvecklaren och kunden oftast viktigare än kommunikationen mellan back-end-utvecklaren och kunden.

Vad är Full-stack-utveckling?

Som vi tidigare pratade om väljer utvecklare oftast att fokusera antingen på back-end eller front-end, helt enkelt eftersom de fokuserar på så olika saker. Det är ovanligt att en och samma utvecklare har de färdigheter som krävs för att göra båda dessa uppgifter samtidigt, men det innebär inte att det är omöjligt. Full-Stack-utvecklare används ofta i en roll där de har full översyn över projektet och vägleder utvecklare.

När vi pratar om Full-Stack-utveckling är det dock minst lika vanligt att man pratar om ett team beståendes av både back-end- och front-end-utvecklare. Den som beställer en sådan app får en app som både har en robust back-end och en användarvänlig front-end.

Behöver du hjälp med att utveckla en app?

Vi på SlimCat utvecklar appar för allt från startups till etablerade företag. Om du har en idé som du vill förverkliga behöver du en app som inte kostar allt för mycket att utveckla, men som ändå får jobbet gjort och som ser bra ut. Kontakta oss så pratar vi mer om din app!