Programiranje

Razvoj mobilne aplikacije po PhoneGap in Cordova

Todd Anglin je podpredsednik oddelka za strategijo izdelkov in odnose z razvijalci pri podjetju Progress.

Skoraj desetletje je PhoneGap spletnim razvijalcem ponujal pot z nizkim trenjem za ustvarjanje mobilnih aplikacij, ki imajo dostop do zmogljivosti izvornih naprav. PhoneGap mnogim razvijalcem omogoča, da ustvarijo aplikacije za iOS in Android (in celo Windows Phone in BlackBerry, za nekaj časa) z uporabo knjižnic znanj in JavaScript, ki jih že poznajo in imajo radi. Ta kombinacija spletnih veščin in dostopa do izvornih naprav (splošno znana kot »hibridna«) je trdno zasidrana kot eden glavnih pristopov k razvoju mobilnih aplikacij.

Zdaj, ko se delo na razvoju PhoneGap (in s tem povezanega odprtokodnega projekta Apache Cordova) upočasnjuje, kaj je naslednje za hibridni mobilni razvoj?

Očitno Apache Cordova kot odprtokodni projekt ne bo kmalu odšel. Številna podjetja imajo velika vlaganja v Cordovo, skupnost Cordova pa še naprej zapolnjuje vrzeli, ko se podjetniki, ki se zavežejo, zmanjšujejo in prelivajo.

Toda PhoneGap je bil projekt, ki je bil ustvarjen z izrecnim namenom, da sčasoma zastare in ta trenutek bo morda že pred nami.

V zadnjih 10 letih sta se pojavili dve nedvomno boljši možnosti, ki sta pripravljeni nadomestiti PhoneGap in "hibrid 1.0". To so progresivne spletne aplikacije in izvorne aplikacije, ki jih poganja JavaScript.

Progresivne spletne aplikacije

PhoneGap je bil vedno namenjen spletnim razvijalcem, da naredijo več na mobilnih napravah, ko dosežejo omejitve mobilnih spletnih brskalnikov. PhoneGap znova uporablja vse iz spleta - HTML, CSS, JavaScript - in se za dostop do določenih funkcij izvorne naprave prek JavaScript-a opira na vtičnike, napisane v izvorni kodi (Objective-C, Swift, Java). Sčasoma se je to izkazalo za blagoslov in prekletstvo. Krivulja učenja je zelo nizka, vendar se vdelani spletni brskalniki v aplikacijah PhoneGap pogosto borijo z zmogljivostjo (ne zahvaljujoč se Appleu in dolgo privzetemu spletnemu pogledu Android). Kljub temu je bila PhoneGap delujoča rešitev, ki je mnogim prinesla "dovolj dobre" rezultate.

Medtem so se spletni standardi še naprej razvijali in v zadnjih treh do štirih letih se je prizadevanje za izboljšanje spletnih standardov, potrebnih za ustvarjanje zmogljivejših mobilnih aplikacij, pripravljenih za uporabo brez povezave, kataliziralo pod izrazom "progresivne spletne aplikacije".

S progresivnimi spletnimi aplikacijami spletna platforma naredi še en velik korak naprej. Zdaj imajo spletne aplikacije popoln nadzor nad omrežnim skladom, kar omogoča napredno predpomnjenje in operacije brez povezave. Obstajajo tudi novi API-ji, ki pomagajo, da spletne aplikacije naredijo tudi druge stvari, ki so pogosto povezane z izvornimi mobilnimi aplikacijami, na primer zagon z začetnim zaslonom, pošiljanje potisnih obvestil ali zahtevanje uporabnikov za podatke o plačilu. Dodajte to vsem ostalim API-jem »HTML5«, ki so se znašli v brskalnikih - na primer dostop do merilnikov pospeška, kamer itd. - in imate zelo zmogljivo spletno platformo za številne vrste aplikacij.

Vse te zmožnosti bi zahtevale izvorno aplikacijo, ko bi bil PhoneGap ustvarjen, zdaj pa so brskalniki dohiteli. Hibridna vadbena kolesa lahko snamemo.

Kljub temu v spletu ostajajo omejitve. To je samo narava počasne platforme, ki temelji na standardih. progresivne spletne aplikacije so velik korak naprej, vendar niso popolna zamenjava za vse aplikacije. Kaj morajo torej spletni razvijalci narediti po hibridu, če še vedno potrebujejo popoln dostop do API-jev izvornih naprav? Vnesite izvorne aplikacije, ki jih poganja JavaScript.

Izvorne aplikacije, ki jih poganja JavaScript

Pred približno petimi leti je več podjetij začelo poskušati najti rešitev za pogoste težave z zmogljivostjo, ki so pestile hibridne mobilne aplikacije. Cilj: Ustvariti ogrodja, ki bi lahko zagotavljala "resnično izvorno" zmogljivost in bogastvo uporabniškega vmesnika, hkrati pa bi bila spletna razvijalca še vedno večplastna in poznana. Iz tega dela sta nastali dve priljubljeni možnosti: React Native (iz Facebooka) in NativeScript (iz Progress).

Ti novi okviri omogočajo razvijalcem, da še naprej ponovno uporabljajo svoje spletne spretnosti, vendar namesto da preprosto zavijejo spletni brskalnik v lupino izvorne aplikacije (kot to počne PhoneGap), ti novi pristopi ustvarijo izvorni uporabniški vmesnik. Rezultat so mobilne aplikacije, ki se počutijo in delujejo bolj kot "surove" izvorne aplikacije z eno platformo, hkrati pa še vedno povečujejo produktivnost na več platformah.

Obstaja nekaj imen, ki opisujejo ta pristop: »hibrid 2.0«, »domači hibrid« in »domači med platformami«. Forrester je uvedel izraz »izvorne aplikacije, ki jih poganja JavaScript«, in čeprav se ne zvija ravno z jezika, je vsaj natančno in opisno ime.

Z izvornimi ogrodji aplikacij, ki jih poganja JavaScript, imajo spletni razvijalci večino tistega, kar jim je bilo všeč pri PhoneGap, vendar s še večjo močjo in zmogljivostjo. NativeScript, na primer globoko integriran z Angular in Vue, razvijalcem omogoča popoln dostop do vseh izvornih API-jev prek JavaScript-a. Vsak izmed njih. Če je to mogoče v domači aplikaciji, je to mogoče v NativeScriptu, moduli z več platformami pa omogočajo, da se večina stvari enkrat kodira in deluje tako v iOS-u kot v Androidu. To je kot vtičniki PhoneGap na steroidih.

React Native in NativeScript sta oba uspešna odprtokodna projekta in oba sta pripravljena na naravni razvoj "hibrida 1.0" za primere, ko napredne spletne aplikacije ne ustrezajo.

Katero izberete?

Čeprav PhoneGap ni izginil, si težko predstavljamo, zakaj bi se kakšen nov projekt danes začel s PhoneGap, ko obstajajo možnosti, kot so progresivne spletne aplikacije in izvorne aplikacije, ki jih poganja JavaScript. Obe možnosti predstavljata poti, zgrajene za prihodnost, in jih je relativno nepomembno uporabiti za spletne razvijalce, ki že poznajo razvoj hibridnih aplikacij.

Tudi izbira med možnostmi mora biti preprosta:

  1. Če vaša aplikacija ne potrebuje veliko dostopa do API-ja naprave, ji ni treba biti v trgovinah z aplikacijami in lahko živi z nekaterimi dodatnimi omejitvami za iOS (za zdaj), zgradite progresivno spletno aplikacijo.
  2. Če zahteve za vašo aplikacijo presegajo omejitve progresivnih spletnih aplikacij, izberite eno od platform izvornih aplikacij na osnovi JavaScript:
    1. Če ste React trgovina, izberite React Native.
    2. Če ste Angular ali Vue trgovina, izberite NativeScript.

Mnoga podjetja, ki so zasnovala te odprtokodne okvire, so zelo pripravljena pomagati in večina ponuja tehnične smernice za prehod iz PhoneGap v njihov okvir. Če iščete kraj za začetek migracijske poti, je vedno dobra ideja posvetovanje s strokovnjakom.

In če se vam zatakne ali bi se raje pogovorili s strokovnjakom, je za skupnost razvijalcev na voljo veliko odličnih virov - očitna in najbolj priljubljena izbira je GitHub. Obstaja pa že veliko drugih forumov, ki razvijalcem že nekaj časa pomagajo pri prehodu iz PhoneGap-a in hibrida v progresivne spletne aplikacije in ponujajo nekaj odličnih napotkov.

Na koncu je PhoneGap izpolnil svoje ime. Spletnim razvijalcem je skoraj desetletje pomagal preseči "vrzel" v razvoju mobilnih aplikacij. To je impresivna izvedba katerega koli standarda. Zdaj je čas, da progresivne spletne aplikacije in ogrodja izvornih aplikacij, ki jih poganja JavaScript, prevzamejo plašč in vodijo razvijalce v prihodnost.

Hibrid (1.0) je mrtev. Naj živi hibrid (2.0).

Todd Anglin je podpredsednik oddelka za strategijo izdelkov in odnose z razvijalci pri podjetju Progress.

Forum New Tech ponuja prizorišče za raziskovanje in razpravo o nastajajoči podjetniški tehnologiji v globini in širini brez primere. Izbor je subjektiven in temelji na našem izboru tehnologij, za katere menimo, da so pomembne in najbolj zanimajo bralce. ne sprejema tržnih zavarovanj za objavo in si pridržuje pravico do urejanja celotne prispevane vsebine. Vsa vprašanja pošljite na[email protected].