Hvad er hybrid appudvikling?

Posted on February 6, 2020

Hvad er hybrid appudvikling?

Når du først går i gang med at udvikle en ny mobil app, står du ofte over for en bred vifte af muligheder, men er usikker på, hvor du skal begynde. Er det rigtige valg at opbygge din applikation udelukkende med native løsninger? Bør dit team kun se på at udvikle med webteknologier? Hvad med nogle af de mange hybridløsninger? Dette er blandt de mange spørgsmål, der opstår, når man overvejer, hvilken vej der er bedst for ens virksomhed.

Når du starter processen, er det vigtigt at huske, at det at vælge den rigtige løsning til din næste (eller første) applikation afhænger af flere faktorer: Dit budget, tidslinjen, dit teams erfaring med teknologien og endelig din målgruppe.

Med det sagt, lad os så udforske de tre primære genrer inden for mobil appudvikling og diskutere nogle af fordelene og ulemperne ved hver af disse løsninger. I slutningen af artiklen skulle du gerne have en bedre forståelse af valgene og være i stand til at finde den rigtige løsning til dine mobile appudviklingsmål. Lad os først definere, hvad vores genrer er.

Hvad er en native mobilapp?

Når folk taler om en native mobilapp, henviser de normalt til et program, der er skrevet med det oprindelige udviklingssprog og værktøjer, der er specifikke for den platform. For eksempel: En oprindelig iOS-applikation ville blive skrevet i enten Swift eller Objekt-C og kompileret ved hjælp af Xcode, mens et oprindeligt Android program ville være blevet udviklet ved hjælp af Kotlin eller Java og kompileret ved hjælp af Android Studio.

Da disse applikationer er udviklet ved hjælp af platformens standardløsninger, har udviklere fuld og lettere adgang til enhedens funktioner; som alle enhedens sensorer, brugerens adressebog og al den nyeste og bedste teknologi, telefonen tilbyder. Native apps har også en tendens til at kunne præstere mere, da deres kode er tættere på ‘metallet’. Ud over at være hurtigere har du også adgang til hele native brugergrænsefladen (UI), kontrollerne og layoutsne. Mens du sandsynligvis vil style dem, så de passer til din apps tema, vil du også have dem til at opføre sig og interagere som ethvert andet UI-element på denne platform.

Et program, der er skrevet til iOS ved hjælp af Swift, kan dog ikke køre på Android, og omvendt. Det betyder, at du er nødt til at udvikle specifikt til hver platform, hvilket kan føre til et større budget og hold, hvis du antager, at du ønsker at udgive din app på både iOS og Android. Derudover er din applikation kun tilgængelig via hver platforms app-butikker, og derved underlagt deres respektive regler og begrænsninger. Dette betyder at den samme godkendelsesproces skal ske for hver udgivelse, uanset om det er en ny funktion eller en lille fejlrettelse. Dette kan tage mellem en dag og to uger for Apple App Store.

Hvad er en webapplikation?

For nogle er denne usikkerhed omkring at få din app godkendt af vagter for appbutikkerne for risikabel. Der findes også historier om nogle af de mest kendte apps, der kører efter alle reglerne, der fjernes fra app-butikken, hvilket kan medføre tab af indtægter. På grund af dette er nogle udviklere gået over til at opbygge apps, der kun er web, hvilket giver dem friheden til at eksistere uden for appbutikkerne og tilbyde deres applikation til andre mobile og desktop-brugere. Dette er bare traditionelle webapplikationer skrevet i HTML, CSS og JavaScript, hvor du kan udnytte en lang række rammer og biblioteker, såsom Angular, React, Vue eller endda almindelig vanilje JavaScript.

Når du tager denne tilgang til udvikling, er din mobilapp begrænset til mulighederne i brugerens mobilbrowser (og dens fejl). Dette betyder, at den ikke har fuld adgang til brugerenheden, til ting som deres adressebog og mere. Selvom dette er blevet forbedret gennem årene med adgang til funktioner som GPS og kameraet, kan dette også blive et problem afhængigt af de funktioner, din app kræver.

En af de større udfordringer når det kommer til at udvikle apps der bruger webteknologier, er, at mange af de almindelige applikations UI-kontroller, f.eks. fane navigatør, ikke findes oprindeligt og skal genskabes, hvilket kan føre til, at din applikation ikke fungerer helt rigtigt. Når det er sagt, har mange af UI-bibliotekerne taget stor omhu med at replikere de mest normale UI-komponenter, der er nødvendige for din app, så denne risiko reduceres.

I 2017 introducerede Google konceptet med progressive webapplikationer (PWA’er), der tillader disse typer applikationer at anvende flere applignende funktioner, såsom standard app-ikoner, push-meddelelser, offline-kapaciteter og mere. Microsoft har også for nylig vedtaget denne løsning, hvilket gjorde disse typer applikationer til førsteklasses borgere i deres app store.

For nogle udviklingshold er denne løsning tiltalende, da de let kan oprette en applikation fra en enkelt kodebase, som derefter kan bruges på en række forskellige platforme og hurtigt opdateres med en ny funktion eller fejlrettelse ved blot at distribuere til din server.

Hvad er en hybrid mobilapp?

Denne løsning er en blanding, deraf navnet hybrid, af både native og webløsninger. Hvor kernen i applikationen er skrevet ved hjælp af webteknologier (HTML, CSS og JavaScript), som derefter er indkapslet i en native applikation. Gennem brug af plugins kan disse applikationer have fuld adgang til den mobile enheds funktioner. For bedre at forstå denne tilgang, lad os så se på, hvordan det hele passer sammen.

Hjertet i en hybrid mobilapp er stadig blot et program, der er skrevet med HTML, CSS og JavaScript. I stedet for at appen vises i brugerens browser, kører den dog fra en native applikation med sin egen indbyggede browser, som i essentielt set er usynlig for brugeren. For eksempel vil en iOS-applikation bruge WKWebView til at vise den type applikation, mens Android bruger WebView-elementet til at udføre den samme funktion.

Denne kode integreres derefter i en indbygget applikationsindpakning ved hjælp af en løsning som Apache Cordova (også kendt som PhoneGap) eller Ionic’s Capacitor. Disse løsninger skaber en skal af at native program, der blot er platformens webvisningskomponent, hvori det indlæser din webapp. Dette giver dig muligheden for at oprette og offentliggøre ægte native applikationer, der kan sendes til hver af platformens app-butikker for at blive solgt.

Derudover har både Cordova og Capacitor et plugin-system, der giver dig mulighed for at udvide ud over begrænsningerne i ‘browseren’ og få adgang til den fulde pakke muligheder for en brugers mobile enhed. Så hvis du ønsker at bruge TouchID for at logge ind på en iOS-enhed, eller ville oprette forbindelse til en Bluetooth-enhed, kan dette let gøres ved at installere et plugin. Disse plugins oprettes af en lang række udviklere, og mange understøttes aktivt. Ionic tilbyder endda et komplet økosystem af understøttede plugins som en del af Enterprise Engine-løsningen. Du overvinder derfor let begrænsningerne for en applikation, der kun er på nettet, så din app kan have lige så gode funktioner som native apps.

Der er dog nogle ulemper ved denne mulighed. På samme måde som webløsningen, web, skal UI-biblioteket genskabes. Det er her løsninger som Ionic, NativeScript, Xamarin, React Native og andre kommer ind i billedet. Disse løsninger giver alle robuste brugergrænseflade komponenter, der ligner og føles som deres native kolleger, hvilket giver dig en komplet pakke med byggesten til din applikation.

Den eneste anden overvejelse, du skal gøre dig, er, om din applikation stadig skal køre i enhedens native browser. Hvis dette er tilfældet, kan du støde på ydelsesproblemer eller andre særlige spørgsmål, der er specifikke for hver platform eller enhed.

Nøglefunktioner: Native, Web, & Hybrid

Funktion Native Web Hybrid
Enhedsadgang Fuld Begrænset Fuld (med plugins)
Ydeevne Høj Medium til høj Medium til høj
Udviklingssprog Platformspecifik HTML, CSS, Javascript HTML, CSS, Javascript
Cross-Platform Støtte Nej Ja Ja
Brugeroplevelse Høj Medium til høj Medium til høj
Kode genbrug Nej Ja Ja

Konklusion

Hvad er så det rigtige valg til din app? Medmindre du vil lave et spil eller anden lignende applikation der kræver meget af enheden, er hybrid appudvikling muligvis det rigtige valg, fordi det tilbyder en lettere udviklingsmetode, omkostningsbesparelser og kompatibilitet på tværs af forskellige platforme. Selvom de kræver en smule mere forståelse for at sammensætte løsningen, såvel som brugen af et UI-bibliotek til at hjælpe med den rigtige præsentation af din brugergrænseflade, er disse udfordringer kendte og kan let løses med de rigtige rammer, som Ionic.

 


No Replies to "Hvad er hybrid appudvikling?"