Programmering

Udvikling af mobilapps efter PhoneGap og Cordova

Todd Anglin er vicepræsident for produktstrategi og udviklerforhold hos Progress.

I næsten et årti har PhoneGap tilbudt webudviklere en sti med lav friktion til oprettelse af mobilapps, der har adgang til indbyggede enhedsfunktioner. PhoneGap gør det muligt for mange udviklere at oprette apps til iOS og Android (og endda Windows Phone og BlackBerry på et stykke tid) ved hjælp af færdigheder og JavaScript-biblioteker, som de allerede kender og elsker. Denne kombination af webfærdigheder plus indfødt enhedsadgang (almindeligvis kendt som "hybrid") er blevet solidt rodfæstet som en af ​​de primære tilgange til udvikling af mobilapps.

Nu, når arbejdet med at udvikle PhoneGap (og det relaterede Apache Cordova open source-projekt) aftager, hvad er det næste for hybrid mobiludvikling?

Som et open source-projekt forsvinder Apache Cordova naturligvis ikke snart. Mange virksomheder har store investeringer i Cordova, og Cordova-samfundet fortsætter med at udfylde huller, når virksomhedens forpligtelser ebber og strømmer.

Men PhoneGap var et projekt oprettet med den eksplicitte hensigt at til sidst blive forældet, og det øjeblik kan være over os.

I løbet af de sidste 10 år er der kommet to uden tvivl overlegne muligheder, der er klar til at overtage PhoneGap og "hybrid 1.0". Disse er progressive webapps og JavaScript-drevne native apps.

Progressive webapps

PhoneGap var altid beregnet til at hjælpe webudviklere med at gøre mere på mobile enheder, når de rammer grænserne for mobile webbrowsere. PhoneGap genbruger alt fra internettet - HTML, CSS, JavaScript - og er afhængige af plugins skrevet i native kode (Objective-C, Swift, Java) for at få adgang til specifikke native-enhedsfunktioner via JavaScript. Over tid har dette vist sig at være både en velsignelse og en forbandelse. Læringskurven er meget lav, men de indlejrede webbrowsere i PhoneGap-apps kæmper ofte med ydeevne (nej tak til Apple og i lang tid standard Android-webvisning). Alligevel var PhoneGap en fungerende løsning, der producerede “gode nok” resultater for mange.

I mellemtiden har webstandarder fortsat udviklet sig, og i løbet af de sidste tre til fire år har presset på at forbedre de webstandarder, der er nødvendige for at skabe højere ydeevne, offline-klar mobilapps katalyseret under udtrykket "progressive webapps."

Med progressive webapps tager webplatformen endnu et kæmpe skridt fremad. Nu har webapps fuld kontrol over netværksstakken, hvilket gør det muligt at udføre avancerede caching og offline-operationer. Der er også nye API'er, der hjælper med at få webapps til at gøre andre ting, der ofte er forbundet med native mobilapps, som at starte med en stænkskærm, sende push-underretninger eller bede brugerne om betalingsoplysninger. Føj dette til alle de andre "HTML5" API'er, der er landet i browsere - som adgang til accelerometre, kameraer osv. - og du har en meget kapabel webplatform til mange slags apps.

Alle disse funktioner ville have krævet en indbygget app, da PhoneGap blev oprettet, men nu er browserne kommet ind. Vi kan tage hybrid-træningshjulene af.

Der er stadig grænser på nettet. Det er bare karakteren af ​​den langsomt, standardbaserede platform. progressive webapps er et kæmpe skridt fremad, men de er ikke en perfekt erstatning for alle apps. Så hvad skal webudviklere gøre efter hybrid, hvis de stadig har brug for fuld adgang til native enheds API'er? Indtast JavaScript-drevne native apps.

JavaScript-drevne native apps

For omkring fem år siden begyndte flere virksomheder at forsøge at finde en løsning på de hyppige ydeevneproblemer, der plagede hybrid-mobilapps. Målet: Opret rammer, der kan levere "virkelig indfødt" ydeevne og UI-rigdom, mens de stadig er platformoverskridende og velkendte for webudviklere. Fra dette arbejde opstod to populære muligheder: React Native (fra Facebook) og NativeScript (fra Progress).

Disse nye rammer tillader udviklere at fortsætte med at genbruge deres webfærdigheder, men i stedet for blot at indpakke en webbrowser i en indbygget app-shell (som PhoneGap gør), producerer disse nye tilgange et oprindeligt brugergrænseflade. Resultatet er mobile applikationer, der føles og fungerer mere som "rå" native-apps til enkeltplatform, mens de stadig får produktivitet på tværs af platforme.

Der har været et par navne til at beskrive denne tilgang: "hybrid 2.0", "native hybrid" og "cross-platform native" blandt andre. Forrester introducerede udtrykket "JavaScript-drevne native apps", og selvom det ikke ligefrem ruller af tungen, er det i det mindste et nøjagtigt og beskrivende navn.

Med JavaScript-drevne indbyggede app-rammer har webudviklere det meste af det, de elskede ved PhoneGap, men med endnu mere kraft og ydeevne. For eksempel giver NativeScript, som er dybt integreret med både Angular og Vue, udviklere fuld adgang til alle native API'er via JavaScript. Hver eneste af dem. Hvis det kan gøres i en native app, kan det gøres i NativeScript, og moduler på tværs af platforme gør det muligt at kode de fleste ting en gang og arbejde på både iOS og Android. Det er som PhoneGap-plugins på steroider.

React Native og NativeScript er begge blomstrende open source-projekter, og begge er klar til at være den naturlige udvikling af "hybrid 1.0" i tilfælde, hvor progressive webapps ikke passer til regningen.

Hvilket vælger du?

Mens PhoneGap ikke er væk, er det svært at forestille sig, hvorfor ethvert nyt projekt ville starte med PhoneGap i dag, når der findes muligheder som progressive webapps og JavaScript-drevne native apps. Begge muligheder repræsenterer stier, der er bygget til fremtiden og er relativt trivielle at anvende for webudviklere, der allerede er bekendt med udvikling af hybridapps.

At vælge mellem indstillingerne skal også være enkelt:

  1. Hvis din app ikke har brug for meget API-adgang til enheden, ikke behøver at være i appbutikkerne og kan leve med nogle ekstra begrænsninger på iOS (indtil videre), skal du oprette en progressiv webapp.
  2. Hvis din apps krav overstiger grænserne for progressive webapps, skal du vælge en af ​​de JavaScript-drevne native app-platforme:
    1. Hvis du er en React-butik, skal du vælge React Native.
    2. Hvis du er en Angular- eller Vue-butik, skal du vælge NativeScript.

Mange af de virksomheder, der opfatter disse open source-rammer, er meget villige til at hjælpe, og de fleste tilbyder teknisk vejledning til at migrere fra PhoneGap til deres rammer. Hvis du leder efter et sted at starte din migrationsrejse, er det altid en god idé at konsultere en ekspert.

Og hvis du sidder fast, eller hvis du bare foretrækker at tale med en tredjepartsekspert, er der en række gode ressourcer til rådighed for udviklerfællesskabet - det åbenlyse og mest populære valg er GitHub. Der har dog været mange andre fora oprettet for at hjælpe udviklere med at migrere fra PhoneGap og hybrid til progressive webapps i et stykke tid nu, og de tilbyder nogle gode råd.

I sidste ende levede PhoneGap op til sit navn. Det hjalp webudviklere med at spænde udviklingen af ​​mobilappen "hul" i næsten et årti. Det er en imponerende løb af enhver standard. Nu er det tid for progressive webapps og JavaScript-drevne native app-rammer at samle kappen op og lede udviklere ind i fremtiden.

Hybrid (1.0) er død. Længe leve hybrid (2.0).

Todd Anglin er vicepræsident for produktstrategi og udviklerforhold hos Progress.

New Tech Forum giver et sted at udforske og diskutere nye virksomhedsteknologier i hidtil uset dybde og bredde. Valget er subjektivt baseret på vores valg af de teknologier, som vi mener er vigtige og af største interesse for læserne. accepterer ikke markedsføringssikkerhed til offentliggørelse og forbeholder sig retten til at redigere alt bidraget indhold. Send alle henvendelser tilnewtechforum[email protected].