- Er der ondt blod mellem teknologierne?
T il ColdFront 2015 blev emnet “Web vs. Native” bragt på banen op til flere gange. Derfor er KonsulentNyt dykket dybere ned i emnet. Flere blogs tager problemstillinger op som: “Skal jeg have en native applikation, eller kan jeg nøjes med en webapplikation?”. Det er blogs, som er skrevet af enten native app-udviklere eller webudviklere, hvilket naturligt nok indebærer fordomme over for den modsatte teknologi. Derfor satte vi et møde op mellem native app-udvikler Ole Gammelgaard fra Shape og webapplikation-udvikler Peter Nielsen fra Nordlys for at få en snak om deres syn på fordele, ulemper og fordomme – og for at blive klogere på om en af teknologierne har potentiale til at udkonkurrere den anden.
En applikation er mange ting
Native applikationen er en applikation, som primært er udviklet til smartphone og tablets (iPhone, Android osv.). Kode og design er unikt for den pågældende platform. Native applikationen kan anvende platformens funktioner (kamera, GPS m.m.) fuldt ud.
En webapplikation (Eller web-app) er et website, som fungerer i en platforms browser. Webapplikationer designes til at emulere native applikationer så meget som muligt – specielt når webapplikationen er lavet til smartphones og tablets. Dog varierer muligheden for at anvende smartphone-specifikke funktioner fra platform til platform. Webapplikationen fungerer også i en browser på PC og Mac, hvor man har mus og tastatur til rådighed.
Shell- eller hybrid-applikationer er, når udviklingen er sket i et fælles sprog (f.eks. HTML og JavaScript som til webapplikationer), men bliver pakket sammen og installeret som en native applikation, og via et fælles bibliotek får adgang til native funktioner på hver platform – men hvis indpakningen og sproget er baseret på at køre i en indbygget browser, kan shell-applikationen have begrænsninger i f.eks. hastighed som en webapplikation.
Brugervenlighed kommer an på den enkelte user case
Man hører ofte, at native apps har et lækrere user interface (UI) i forhold til web-apps. Derfor er et af de første emner, der kommer på bordet sammen med kaffen denne formiddag, den store fordel ved native applikationens UI. Hos Shape er denne fordel et salgsargument. CTO Ole Gammelgaard forklarer:
“En native applikation giver en lækker fornemmelse, som engagerer brugeren meget mere i forhold til webapplikationen. Desuden kører native applikationen mere ubesværet end en webapplikation, hvor f.eks loading kan tage tid. På en native applikation har du allerede installeret de filer, du skal bruge, hvilket giver mindre loading-tid. Det er specielt vigtigt at en applikation, uanset om det er en native eller web-app, kører ubesværet, da den er et værktøj, man bruger flere gange på en uge.”
En native applikation har samme ”feel” og bygger på de samme UI-koncepter som de programmer, der kommer forudinstalleret på smartphones – derfor føles en native app mere naturlig og er lettere at bruge. Native applikationer er ofte hurtigere end mobile websites og shell-applikationer, og jo hurtigere brugeren kan udføre en opgave med en app, jo mere sandsynligt er det, at han vil bruge den igen og måske tilmed gemme den på hjemmeskærmen.
ush-beskeder er en af de bedste måder at engagere og fastholde brugere på.
Iværksætteren og webapplikation-udvikleren Peter Nielsen kommer på banen for at forsvare web-app’ens UI:
“I webapplikations-verdenen bestræber vi os på at få vores applikationer til at ligne native applikationer så meget som muligt,” siger iværksætteren Peter Nielsen og fortsætter:
”Det, der kan få en web-app til at føles klodset, er, når man f.eks. bruger animationer. Men vi optimerer blandt andet animationer og loading-tid, så applikationen kører lækkert og ubesværet – også på en smartphone.”
På spørgsmålet om, hvorvidt han mener at webteknologien kan udfordre native-teknologien, når det handler om at skabe et lækkert UI, svarer Peter Nielsen:
“Sagtens – dog er det meget baseret på den enkelte use case: har en kunde brug for en tung applikation med f.eks. meget drag and drop, en masse gestures eller gengivelse af tunge 3D-elementer, er det måske sjovere at gå native-vejen, da det ville give en dårlig brugeroplevelse i en webapplikation på en smartphone eller tablet. Men web-app’en fungerer helt fint på smartphones, når brugeren skal have vist lister af data, som f.eks. Facebooks webapplikation.”
CSS3 giver nye muligheder for web-apps
Årsagen til at animationer i webapplikationer kan blive klodsede, er dels de begrænsninger, det valgte JavaScript framework giver, dels begrænsninger i hvor hurtigt og glat JavaScript kan opdatere udseendet af siden. CSS3 giver mulighed for animationer og effekter, der kommer tættere på native grafik, alt efter hvor godt browseren udnytter enhedens hardware.
Der er sket meget med CSS-animation siden CSS2. CSS3-transitions bringer enkle og elegante animationer til CSS-klasser, både i form af glatte overgange mellem værdier og i form af keyframes til at beskrive en rækkefølge af effekter eller bevægelser. Fordelen ved at bruge CSS3-animation, frem for at animere med JavaScript, er, at browseren kan bruge native hardware-rendering for mere flydende animationer, samtidig med at JavaScript-biblioteker, især på mobile enheder kan være begrænset i, hvor ofte JavaScript tillades at køre – og dermed hvor ofte de kan ændre farver og placeringer. Med CSS3 er det blevet nemt at skabe flydende animationer og liv i en webapplikation.
Offline er ikke et problem
En anden fordom, om hvorfor native applikationen vinder over webapplikationen, er, at en native app fungerer, selv om brugeren er offline. Hvordan får man en webapplikation til at virke i browseren uden internet forbindelse? Peter Nielsen fortæller:
“Der er allerede mange gode løsninger til at lave offline synkronisering, hvor man arbejder med et såkaldt cache manifest. I cache manifestet gemmer man alle sine assets. Jeg har bl.a. brugt cache manifestet i nogle webapplikationer, hvilket betyder at de fungerer offline. Der hvor cache manifestet bliver vanskeligt, er når man som udvikler skal opdatere sin web-app, fordi cache manifestet er en meget hård cache-lagring: ændrer man i webapplikationen, opfanger browseren det ikke.”
Ole Gammelgaard spørger ind til, hvorvidt det er standard at lave cache manifester i webapplikationer, hvilket det ikke er, ifølge Peter Nielsen. Han laver kun løsningen, hvis en kunde efterspørger den.Ole Gammelgaard følger op:
“Men er løsningen ikke medvirkende til, at en webapplikation kan være langsom til at starte op? Når nu den skal hente hele det her cache manifest – og ved ændringer skal hente alle filerne igen?”
“Der er kommet teknologier, som løser problemet. F.eks. laver vi hos Nordlys Meteor-apps. Meteor er et fullstack javaScript framework, der fokuserer meget på hastighed, og som giver appen et meget hurtigt feel. Måden den bl.a. gør det på er ved at pakke alt ens kode i to filer, og det gør, at loadtider næsten ikke er eksisterende. Andre teknologier vi arbejder med er webpack, som kan splitte ens kode op, så den ikke skal loade alt ved start, men venter til applikationen skal bruge det. Den tilgang reducerer opstartstiden på webapplikationen yderligere,” uddyber Peter Nielsen.
Ud over at gemme selve webapplikationen offline, findes der open source-projekter såsom Hoodie, der tilbyder en API-løsning, som skjuler kompleksiteten med online/offline data ved altid at gemme og læse data lokalt, og derefter automatisk synkronisere med online data, når det er muligt.
Et spørgsmål om brugerens forventning
Ole Gammelgaard forklarer, at der er to aspekter af offline synkronisering; en ting er rent teknisk at implementere kode til offline sync – en anden er brugerens forventninger:
”Vi arbejder meget med brugerens forventning, når offline synkronisering er på agendaen. Et eksempel kan være en to-do liste, som virker mellem flere enheder: På en enhed er et punkt checket, af og på en anden er punktet slettet: Hvad forventer brugeren i denne situation? Det er typisk meget specifikke situationer, som vi gennemgår med kunden for at finde en løsning.”
Native features
Native features bliver også brugt som argumenter for, hvorfor en native app slår en web-app. Når en bruger vælger at installere en applikation på sin smartphone eller tablet, giver vedkommende applikationen lov til at anvende native features som kamera, gps, kamerarulle m.m. – noget man kun behøver at gøre én gang, hvilket giver en ubesværet fornemmelse af en applikation, der kan engagere brugeren. Peter Nielsen fortæller:
”Det største problem med at implementere native features i en browser er, at webudviklerne stadig skal optimere til gamle browsere for PC og Android-brugere. Specielt Internet Explorer har haltet meget de seneste år: det er som om intet virker i de ældre udgaver af browseren."
Hvis vi snakker hybridapplikationer til smartphones lavet i JavaScript, er der teknologier, som hjælper udvikleren med plugins, der giver adgang til enhedens oprindelige funktioner.”
I dag ser man i stigende grad at browsere kan gøre brug af et plug-ins der giver adgang til platformes native features, f.eks. kan man lave video og lyd opkald med web applikationen: GoToMeeting Free , som gør brug af en API løsning ved navn WebRTC, som står for ”Web Real-Time Communication”. Web applikationen virker dog ikke i en smartphones browser. Hvorfor kan en smartphone ikke kunne understøtte WebRTC?
”WebRTC er en forholdsvis ny webteknologi, så der er ikke mange mobile browsere, der understøtter det endnu – men jeg tror det kommer.” svarer Ole Gammelgaard.
Webteknologi giver redaktionel frihed og tidlige prototyper
Et af de områder, hvor webapplikationer har en klar fordel frem for native apps, er i forhold til opdatering af f.eks. kode: Brugeren kan se opdateringer med det samme, hvilket giver grafisk og redaktionel frihed, samt frihed i tilføjelse af nye funktioner. Med en native applikation skal hver opdatering af app’en godkendes af Apples App Review team inden den kan frigives på App Store. Android apps skal dog ikke godkendes af Google før de kan udgives på Play Store. Peter Nielsen fortæller om opsætning af prototyper:
“En af mine fordomme over for native app-udvikling er, at det tager længere tid at sætte en prototype op med native teknologi end med webteknologi. Jeg tænker, at sidstnævnte er hurtigere, da man har mange JavaScript-biblioteker og open source-projekter, som kan anvendes til opsætning af prototyper. Jeg har set eksempler på, at man i native prototyper viser kunden en række statiske screendumps, men det giver ikke kunden en fornemmelse af, hvad der sker, når brugeren f.eks. trykker på en knap eller skifter view.”
Ole Gammelgaard er enig i Peter Nielsens argumenter omkring udvikling af prototyper, men han tilføjer: “Det er rigtigt, at man kan sætte en prototype hurtigt op ved hjælp af webteknologi, men UI-mæssigt mener jeg stadig, at man lige mangler de sidste ti procent for at nå i mål med en applikation, der virker godt. De ti procent er svære at nå kun med webteknologi. Hos Shape mener vi, at hvis man ved, at målet er en native applikation, kan man lige så godt starte med native teknologi og workflow.”
Native apps får nye platforme
Ole Gammelgaard fortæller om nogle af de projekttyper, Shape står bag og forudser specielt én trend for 2016:
“Hos Shape har vi ikke kun udviklet mobilapplikationer i 2015 – vi har også udviklet apps til andre devices som f.eks. Apple Watch og Googles Wearables. Det helt nye er, at man også kan lave applikationer til Apple TV, hvilket vi også har kastet os over. Så jeg tror, at applikationer til andre enheder end smartphones og computere, er en trend, vi kommer til at se mere af.” Ole Gammelgaard supplerer:
“Da Apple lancerede den første iPhone forklarede de, at det var en mobiltelefon med en browser og email, som du kunne have i lommen. Men i dag bruger vi vores smartphones til så mange andre ting end hvad Apple havde forestillet sig. Jeg tror at det samme vil ske for de nye smarte platforme (TV og ur): først efter lidt tid bliver de applikationer som virkelig ændrer noget opfundet.”
Ingen ændringer i den nærmeste fremtid
Lige nu understøttes webapplikationer med en app til smartphones, og Peter Nielsen har svært ved at se, at der bliver ændret på den tilgang i den nærmeste fremtid:
”Men hvis problematikken omkring UI bliver løst, og man virkelig kan få brugerne til at føle, at de sidder i en native app i browseren på en telefon, så er vi kommet langt. Jeg tror dog ikke at webapplikationer vil udkonkurrere native apps fuldstændigt, da native altid vil have et lidt pænere feel, men set fra en kundes perspektiv er det stadig en kæmpe fordel ikke at skulle udvikle til 4 forskellige platforme (iOS, Andriod. Windows Phone og Web), da det altid vil være en bekostelig affære.”
Native eller web-apps til kunderne
Hvornår har kunderne så brug for en native applikation, og hvornår har de brug for en webapplikation?
“Det er stadig svært at sige, men jeg mener, at en kunde har brug for en native applikation, når applikationen bærer præg af at være et værktøj, som man skal bruge ofte,” siger Ole Gammelgaard og fortsætter:
”Facebook er et godt eksempel, fordi det sociale medie bare kører mere ubesværet på native applikationen, hvor man får push-beskeder ind i løbet af dagen. En anden fordel ved native apps er nemlig, at du kan åbne applikationen, gøre hvad du vil på 15 sekunder og så være ude af den igen. En native app virker derfor godt på farten”
“Men det kommer an på hvilket slags værktøj det er,” byder Peter Nielsen ind og uddyber:
”Hvis det er et værktøj med mange inputfelter, som f.eks. et regnskabsprogram, eller et hvor man skal skrive større tekstmængder, foretrækker jeg personligt at sidde ved en desktop i en browser-webapp. Hvis man ikke har brug for en app, der er super performance heavy, ville jeg til hver en tid anbefale min kunde en webapplikation. Når alt kommer til alt, er jeg helt enig med Ole. Det er svært at sige, da det altid kommer an på cases, kunden og økonomien.”

Navn:
Peter Nielsen
Titel:
Co-founder af
Nordlys (www.nordlys.io),
fortaler for web-applikationer
Alder:
31
Uddannelse:
Autodidakt web- og appudvikler
Baggrund:
Har programmeret i webteknologier i 15 år - både backend og frontend. Startede i 2007 på et reklamebureau som Art Director-elev og webudvikler, hvor passionen for kode hurtigt overgik interessen for design. 3 år senere startede Peter Nielsen op som freelance webudvikler, og han har drevet selvstændig virksomhed siden. I perioden 2012-2015 blev samarbejdet med et digitalbureau i Aarhus imidlertid til en fastansættelse, hvorefter friheden som selvstændig atter kaldte, og han endnu engang rev sig løs.
Efter et halvt år med freelanceopgaver og opbygning af kundeportefølje i foråret 2015, stiftede han Nordlys Studio ApS sammen med vennen Rasmus Hjulskov.
Lige nu:
Arbejder han på en desktop-webapp. Et dashboard til visualisering af kunde- og medarbejdermålinger.
Nordlys er et bureau der udelukkende beskæftiger sig med moderne webapp-teknologier som f.eks. ReactJS, Meteor.js og React Native.

Navn:
Ole Gammelgaard,
Titel:
CTO & Co-founder af
Shape (www.shape.dk),
fortaler for native applikationer
Alder:
30
Uddannelse:
Civilingeniør i elektroteknologi fra DTU (2010).
Baggrund:
I 2009, i slutningen af sin uddannelse, startede Ole Gammelgaard og nogle kammerater virksomheden Shape med det formål at udvikle mobile applikationer af højere kvalitet end de eksisterende. De ansætter bl.a. nyuddannede ingeniører of dataloger fra DTU, ITU og DIKU. I dag skaber Shape mobile native apps og nogle gange tilhørende backend-systemer til virksomheder som Fitness World, Red Bull og Bang & Olufsen.
Lige nu:
arbejder selv med programmering ved siden af sine CTO-forpligtelser
Shape er stor fortaler for native apps og teknologier, men anvender til tider web-teknologier for at løse problemstillinger for kunder.