Programmering

Utvikling av mobilapper etter PhoneGap og Cordova

Todd Anglin er visepresident for produktstrategi og utviklerforhold i Progress.

I nesten et tiår har PhoneGap tilbudt webutviklere en bane med lav friksjon for å lage mobilapper som har tilgang til innebygde enhetsfunksjoner. PhoneGap gjør det mulig for mange utviklere å lage apper for iOS og Android (og til og med Windows Phone og BlackBerry, en stund) ved hjelp av ferdigheter og JavaScript-biblioteker de allerede kjenner og elsker. Denne kombinasjonen av nettferdigheter pluss tilgang til innfødte enheter (ofte kjent som “hybrid”) har blitt solid forankret som en av de viktigste tilnærmingene til utvikling av mobilapper.

Nå som arbeidet med utviklende PhoneGap (og det relaterte Apache Cordova open source-prosjektet) avtar, hva er det neste for hybrid mobilutvikling?

Åpenbart, som et open source-prosjekt, vil ikke Apache Cordova forsvinne når som helst snart. Mange selskaper har store investeringer i Cordova, og Cordova-samfunnet fortsetter å fylle hull når bedriftens forpliktelser avtar og flyter.

Men PhoneGap var et prosjekt som ble opprettet med den eksplisitte hensikten å til slutt bli foreldet, og det øyeblikket kan være over oss.

I løpet av de siste 10 årene har det dukket opp to uten tvil overlegne alternativer som er klare til å ta plass til PhoneGap og "hybrid 1.0." Dette er progressive webapper og JavaScript-drevne native apps.

Progressive nettapper

PhoneGap var alltid ment å hjelpe webutviklere å gjøre mer på mobile enheter når de nådde grensene for mobile nettlesere. PhoneGap gjenbruker alt fra nettet - HTML, CSS, JavaScript - og er avhengig av plugins skrevet i innfødt kode (Objective-C, Swift, Java) for å få tilgang til spesifikke innfødte enhetsfunksjoner via JavaScript. Over tid har dette vist seg å være både en velsignelse og en forbannelse. Læringskurven er veldig lav, men de innebygde nettleserne i PhoneGap-appene sliter ofte med ytelsen (nei takk til Apple og i lang tid standard Android-nettvisning). Likevel var PhoneGap en fungerende løsning som ga “gode nok” resultater for mange.

I mellomtiden har nettstandarder fortsatt å utvikle seg, og i løpet av de siste tre til fire årene har presset for å forbedre nettstandardene som er nødvendige for å skape høyere ytelse, offline-klare mobilapper, katalysert under begrepet "progressive webapps."

Med progressive webapper tar webplattformen et nytt gigantisk skritt fremover. Nå har webapper full kontroll over nettverksstakken, noe som gjør det mulig å gjøre avanserte hurtigbufring og offline-operasjoner. Det er også nye API-er som hjelper med å få webapper til å gjøre andre ting som ofte er knyttet til innfødte mobilapper, som å starte med en sprutskjerm, sende push-varsler eller be brukerne om betalingsinformasjon. Legg dette til alle de andre "HTML5" API-ene som har kommet i nettlesere - som tilgang til akselerometre, kameraer osv. - og du har en veldig dyktig webplattform for mange slags apper.

Alle disse funksjonene ville ha krevd en innfødt app da PhoneGap ble opprettet, men nå har nettleserne tatt igjen. Vi kan ta av hybrid treningshjulene.

Det er fortsatt begrensninger på nettet. Det er bare naturen til den langsomt, standardbaserte plattformen. progressive webapps er et stort skritt fremover, men de er ikke en perfekt erstatning for alle apper. Så hva skal nettutviklere gjøre etter hybrid hvis de fremdeles trenger full tilgang til native API-er for enheter? Skriv inn JavaScript-drevne native apps.

JavaScript-drevne native apps

For rundt fem år siden begynte flere selskaper å prøve å finne en løsning på de hyppige ytelsesproblemene som plaget hybrid-mobilapper. Målet: Lag rammer som kan levere "virkelig innfødt" ytelse og UI-rikdom mens du fremdeles er plattform og kjent for webutviklere. Fra dette arbeidet dukket det opp to populære alternativer: React Native (fra Facebook) og NativeScript (fra Progress).

Disse nye rammene tillater utviklere å fortsette å gjenbruke sine nettferdigheter, men i stedet for bare å pakke en nettleser i et eget app-skall (som PhoneGap gjør), produserer disse nye tilnærmingene et eget brukergrensesnitt. Resultatet er mobilapplikasjoner som føles og fungerer mer som “rå” innfødte apper med én plattform, mens de fremdeles får produktivitet på tvers av plattformer.

Det har vært noen få navn som beskriver denne tilnærmingen: "hybrid 2.0", "native hybrid" og "cross-platform native", blant andre. Forrester introduserte begrepet "JavaScript-drevne native apps", og selv om det ikke akkurat ruller av tungen, er det i det minste et nøyaktig og beskrivende navn.

Med JavaScript-drevne app-rammer har webutviklere det meste av det de elsket med PhoneGap, men med enda mer kraft og ytelse. For eksempel gir NativeScript, som er dypt integrert med både Angular og Vue, utviklere full tilgang til alle native API-er via JavaScript. Hver og en av dem. Hvis det kan gjøres i en innfødt app, kan det gjøres i NativeScript, og moduler på tvers av plattformer gjør det mulig å kode det meste en gang og fungere på både iOS og Android. Det er som PhoneGap-plugins på steroider.

React Native og NativeScript er begge blomstrende open source-prosjekter, og begge er klare til å være den naturlige utviklingen av "hybrid 1.0" i tilfeller der progressive webapper ikke passer.

Hva velger du?

Selv om PhoneGap ikke er borte, er det vanskelig å forestille seg hvorfor noe nytt prosjekt vil begynne med PhoneGap i dag når det finnes alternativer som progressive webapper og JavaScript-drevne native apps. Begge alternativene representerer stier bygget for fremtiden og er relativt trivielle å ta i bruk for webutviklere som allerede er kjent med hybrid apputvikling.

Å velge mellom alternativene bør også være enkelt:

  1. Hvis appen din ikke trenger mye tilgang til enhets-API, ikke trenger å være i appbutikkene, og kan leve med noen ekstra begrensninger på iOS (foreløpig), kan du bygge en progressiv webapp.
  2. Hvis appens krav overstiger grensene for progressive nettapper, velger du en av JavaScript-drevne native app-plattformer:
    1. Hvis du er en React-butikk, velger du React Native.
    2. Hvis du er en Angular- eller Vue-butikk, velger du NativeScript.

Mange av selskapene som oppfatter disse open source-rammene, er veldig villige til å hjelpe, og de fleste tilbyr teknisk veiledning for å migrere fra PhoneGap til deres rammeverk. Hvis du leter etter et sted å starte migrasjonsreisen din, er det alltid en god ide å konsultere en ekspert.

Og hvis du setter deg fast, eller bare foretrekker å snakke med en tredjepartsekspert, er det en rekke gode ressurser tilgjengelig for utviklermiljøet - det åpenbare og mest populære valget er GitHub. Imidlertid har det vært mange andre fora opprettet for å hjelpe utviklere med å migrere fra PhoneGap og hybrid til progressive webapper en stund nå, og de gir noen gode tips.

Til slutt levde PhoneGap opp til navnet sitt. Det hjalp nettutviklere å spenne utviklingen av mobilappene i nesten et tiår. Det er et imponerende løp av alle standarder. Nå er det på tide at progressive webapper og JavaScript-drevne app-rammer henter kappen og leder utviklere inn i fremtiden.

Hybrid (1.0) er død. Lenge leve hybrid (2.0).

Todd Anglin er visepresident for produktstrategi og utviklerforhold i Progress.

New Tech Forum er et sted for å utforske og diskutere ny teknologi i enestående dybde og bredde. Valget er subjektivt, basert på vårt valg av teknologiene vi mener er viktige og av størst interesse for leserne. godtar ikke markedsføringssikkerhet for publisering og forbeholder seg retten til å redigere alt bidratt innhold. Send alle henvendelser til[email protected].

$config[zx-auto] not found$config[zx-overlay] not found