Vad är skillnaden på en native-, webb- och hybridapp?

På Bedriva har vi sedan början av 2014 själva tagit fram, eller hjälpt att ta fram, ett flertal både kompletta smartphone-appar och app-prototyper. Vi började endast utifrån vår webbkompetens, men kunde oerhört snabbt komma igång med den första funktionella appen – som dessutom såg riktigt trevlig ut! Vad beror det på?

Det beror inte på att vi är smartare än apputvecklare, utan snarare vilken kompetens vi använder i utvecklingen. Bedriva har många års webberfarenhet, men när vi drog igång apputvecklingen hade vi ingen sådan erfarenhet alls – men ändå kom vi igång snabbt. Det beror på att vi i huvudsak utvecklar så kallade hybridappar. Detta låter oss använda och fortsätta utveckla vår webbkompetens medan vi bygger appar! Hur häftigt är inte det?

Tre val

När du ska ta fram en smartphone-app har du idag tre val gällande approach. Dessa är:

  1. Native
  2. Webb
  3. Hybrid

1. Native

En native-app är en app som utvecklas separat för respektive plattform, t.ex. iOS, Android eller Windows/Windows Phone. Denna typ av app är oftast (men behöver inte) vara byggd enbart med respektive plattforms egna verktyg och komponenter. Det gör att den t.ex. i grafiktunga appar som spel presterar bättre än efterföljande exempel.

Du kan också använda alla olika funktioner som finns tillgängliga på din smartphone, som t.ex. kamera eller GPS.

En app behöver utvecklas till varje plattform, och behöver gå igenom respektive plattforms granskningsprocess. Vid varje uppdatering behöver du vänta på granskningsprocessen som brukar vara runt 7 dagar.

Fördelar: Klarar av grafiskt tunga applikationer (om hårdvaran klarar av det), kan komma åt alla telefonens funktioner
Nackdelar: Måste utvecklas separat till alla plattformar, tar lång tid att uppdatera

2. Webb

En webb-app är precis som det låter – en app som körs som en webbplats i din webbläsare. För gemene användare kanske detta inte låter som en app i dess rätta benämning, men om den går att köra på en smartphone och har ett mer specifikt syfte än en vanlig webbsida så bör det ses som en app. Denna byggs med valfria verktyg och komponenter och publiceras sedan som en vanlig webbplats. Prestandan kan vara så bra att man inte märker någon skillnad förrän man börjar med avancerad 3D-grafik, som t.ex. den som finns i moderna spel.

Du kommer inte åt alla funktioner i din smartphone, men webben utvecklas hela tiden och i moderna webbläsare kan du idag både komma åt kamera och GPS – du kan t.o.m. skicka push-notiser, använda den offline eller få en ikon på skrivbordet.

Appen kan användas på nästan alla mobilplattformar och även datorer, och kräver ingen granskningsprocess. Du kan också löpande uppdatera den utan att den behöver granskas igen.

Fördelar: En gemensam kodbas (minskar risk för buggar, längre utvecklings- och underhållskostnad), kan uppdateras på en sekund över alla plattformar
Nackdelar: Passar inte för avancerade spel eller när du vill ha den exklusiva känslan av en app

1+2 = 3. Hybrid

Här kommer det mest spännande alternativet – en kombination av native och webb. Appen byggs som en webbplats som ligger i din telefon, men körs i en webbläsare som byggs i ett app-skal. Prestandan liknar webb (eftersom det är webb i ett app-skal).

Det som är så häftigt med hybrid-appar är att det inte bara är skalet som är ”native”. Det finns en uppsjö med olika plugins som man installerar i projektet, och vips har du tillgång till Bluetooth, kamera och push-notiser – via webbstandarder.

Via ett knapptryck kan du få ut en app till ett flertal olika plattformar, men du behöver gå igenom respektive plattforms granskningsprocess precis som vid en native-app. Bedriva använder dessutom ett etablerat ramverk som gör att appen ser ut som en native-app, oavsett vilken plattform du använder.

Fördelar: En gemensam kodbas (minskar risk för buggar, lägre utvecklings- och underhållskostnad), kan använda native-funktioner, webbstandarder, du kan också få en webbapp ”automagiskt”
Nackdelar: Passar inte för avancerade spel, men enkla plattformsspel fungerar utan problem.

Så hur väljer man?

Det är inte alltid lätt, men i och med att man kan göra så oerhört mycket med hybridappar idag så är vår rekommendation sällan att köra native. Det är dock viktigt att vara medveten om konsekvenserna av varje val, så använd gärna följande guide för att avgöra:

  • Är din app grafiktung (mycket 3D-animationer som i spel – mycket bilder är inget hinder) eller behöver använda avancerade smartphone-funktioner? Native
  • Kommer du bara presentera mycket enkel information? Webb
  • I andra fall: Hybrid

Viktigt att komma ihåg är att det inte finns några begränsningar alls vad gäller utseende, oavsett vilken approach du väljer. Du kan också använda alla varianter offline. Bedriva utvecklar för tillfället webb- och hybridappar, och enkla native-appar till Android. Kontakta oss gärna om du har några frågor eller är intresserad av hur du kan utveckla din app!