Razvoj mobilne aplikacije nakon PhoneGapa i Cordove

Todd Anglin potpredsjednik je strategije proizvoda i odnosa s programerima u tvrtki Progress.

Gotovo desetljeće PhoneGap nudi web programerima put s malim trenjem za stvaranje mobilnih aplikacija koje imaju pristup mogućnostima izvornih uređaja. PhoneGap mnogim programerima omogućuje stvaranje aplikacija za iOS i Android (pa čak i Windows Phone i BlackBerry, jedno vrijeme) koristeći vještine i JavaScript biblioteke koje već poznaju i vole. Ova kombinacija web vještina i pristupa matičnim uređajima (obično poznat kao „hibrid“) čvrsto je utemeljena kao jedan od primarnih pristupa razvoju mobilnih aplikacija.

Sada, dok se rad na razvoju PhoneGap-a (i povezanog projekta otvorenog koda Apache Cordova) usporava, što je sljedeće za hibridni mobilni razvoj?

Očito, kao projekt otvorenog koda, Apache Cordova neće uskoro otići. Mnoge tvrtke imaju velika ulaganja u Cordovu, a zajednica Cordova nastavlja popunjavati praznine dok se korporativni obveznici smanjuju i slijevaju.

No, PhoneGap je bio projekt stvoren s izričitom namjerom da na kraju zastarije, a taj trenutak možda je pred nama.

Tijekom posljednjih 10 godina pojavile su se dvije vjerojatno superiorne opcije koje su spremne zauzeti mjesto PhoneGap-a i “hibridnog 1.0”. To su progresivne web aplikacije i izvorne aplikacije koje pokreću JavaScript.

Progresivne web aplikacije

PhoneGap je uvijek trebao pomoći web programerima da učine više na mobilnim uređajima kad dođu do ograničenja mobilnih web preglednika. PhoneGap ponovno koristi sve s weba - HTML, CSS, JavaScript - i oslanja se na dodatke napisane u izvornom kodu (Objective-C, Swift, Java) za pristup određenim značajkama izvornog uređaja putem JavaScripta. Vremenom se to pokazalo i blagoslovom i prokletstvom. Krivulja učenja je vrlo niska, ali ugrađeni web preglednici u aplikacijama PhoneGap često se muče s performansama (ne zahvaljujući Appleu i, dugo, zadanom Android web prikazu). Ipak, PhoneGap je bilo djelotvorno rješenje koje je za mnoge dalo "dovoljno dobre" rezultate.

U međuvremenu, web standardi nastavili su se razvijati, a tijekom posljednje tri do četiri godine poticaj za poboljšanje web standarda neophodnih za stvaranje mobilnih aplikacija s izvanrednim performansama, izvan mreže, katalizirao se pod pojmom "progresivne web aplikacije".

S progresivnim web aplikacijama, web platforma čini još jedan ogroman korak naprijed. Sada web aplikacije imaju potpunu kontrolu nad mrežnim stogom, što omogućuje napredno predmemoriranje i izvanmrežne operacije. Postoje i novi API-ji koji pomažu web-aplikacijama da rade i druge stvari koje su često povezane s izvornim mobilnim aplikacijama, poput pokretanja s početnim zaslonom, slanja push obavijesti ili traženja podataka od korisnika. Dodajte to svim ostalim API-ima “HTML5” koji su se našli u preglednicima - poput pristupa mjeračima ubrzanja, kamerama itd. - i imate vrlo sposobnu web platformu za mnoge vrste aplikacija.

Sve ove mogućnosti trebale bi izvornu aplikaciju kad bi se kreirao PhoneGap, ali sada su preglednici to sustigli. Možemo skinuti hibridne kotačiće za trening.

Ipak, i dalje postoje ograničenja na webu. To je samo priroda usporene platforme koja se temelji na standardima. progresivne web aplikacije ogroman su korak naprijed, ali nisu savršena zamjena za sve aplikacije. Pa što web programeri trebaju učiniti nakon hibrida ako im još uvijek treba puni pristup API-ima matičnih uređaja? Unesite izvorne aplikacije koje pokreću JavaScript.

Izvorne aplikacije vođene JavaScriptom

Prije otprilike pet godina nekoliko je tvrtki počelo pokušavati pronaći rješenje za česte probleme s performansama koji su mučili hibridne mobilne aplikacije. Cilj: Stvoriti okvire koji bi mogli pružiti „istinski izvorne“ performanse i bogatstvo korisničkog sučelja, a istovremeno biti višeplatformi i poznati web programerima. Iz ovog su rada nastale dvije popularne opcije: React Native (s Facebooka) i NativeScript (s Progress).

Ti novi okviri omogućavaju programerima da nastave ponovno upotrebljavati svoje web vještine, ali umjesto da jednostavno omotaju web preglednik u matičnu ljusku aplikacije (kao što to čini PhoneGap), ovi novi pristupi stvaraju izvorno korisničko sučelje. Rezultat su mobilne aplikacije koje se osjećaju i izvode više poput "sirovih" matičnih aplikacija s jednom platformom, a istovremeno postižu produktivnost na više platformi.

Postoji nekoliko imena koja opisuju ovaj pristup: „hibrid 2.0“, „izvorni hibrid“ i „izvorni uređaj s više platformi“. Forrester je predstavio izraz "izvorne aplikacije koje pokreću JavaScript", i premda se to baš ne skida s jezika, to je, barem, točan i opisan naziv.

S izvornim okvirima aplikacija koji pokreću JavaScript, web programeri imaju većinu onoga što im se svidjelo u PhoneGap-u, ali s još više snage i performansi. Na primjer, NativeScript, koji je duboko integriran s Angulom i Vueom, pruža programerima puni pristup svim izvornim API-ima putem JavaScript-a. Svaka od njih. Ako se to može učiniti u nativnoj aplikaciji, to se može učiniti u NativeScriptu, a moduli s više platformi omogućuju većinu stvari da se jednom kodiraju i rade na iOS-u i Androidu. To je poput dodataka PhoneGap na steroidima.

React Native i NativeScript su uspješni projekti otvorenog koda i obojica su spremni biti prirodna evolucija "hibrida 1.0" za slučajeve u kojima progresivne web aplikacije ne odgovaraju računu.

Koju odabirete?

Iako PhoneGap nije nestao, teško je zamisliti zašto bi bilo koji novi projekt započeo s PhoneGapom danas kada postoje opcije poput progresivnih web aplikacija i izvornih aplikacija koje pokreću JavaScript. Obje opcije predstavljaju putove izgrađene za budućnost i relativno su trivijalne za usvajanje za web programere koji su već upoznati s razvojem hibridnih aplikacija.

I odabir između opcija trebao bi biti jednostavan:

  1. Ako vašoj aplikaciji nije potrebno puno pristupa API-ju uređaja, ne mora biti u trgovinama aplikacija i ako može živjeti s nekim dodatnim ograničenjima na iOS-u (za sada), izradite progresivnu web-aplikaciju.
  2. Ako zahtjevi vaše aplikacije premašuju ograničenja progresivnih web aplikacija, odaberite jednu od platformi izvornih aplikacija koje pokreću JavaScript:
    1. Ako ste React trgovina, odaberite React Native.
    2. Ako ste Angular ili Vue trgovina, odaberite NativeScript. 

Mnoge tvrtke koje osmisle ove open-source okvire vrlo su spremne pomoći, a većina nudi tehničke smjernice za prelazak s PhoneGapa na njihov okvir. Ako tražite mjesto za početak migracijskog putovanja, savjetovanje sa stručnjakom uvijek je dobra ideja.

A ako zapnete ili biste više voljeli razgovarati sa stručnjakom treće strane, za razvojnu zajednicu dostupni su brojni izvrsni resursi - očiti i najpopularniji izbor je GitHub. Međutim, postoje mnogi drugi forumi stvoreni da pomognu programerima da već neko vrijeme migriraju s PhoneGap-a i hibridnih na progresivne web-aplikacije i nude neke sjajne upute.

U konačnici, PhoneGap je opravdao svoje ime. Pomogao je web programerima da pređu "prazninu" u razvoju mobilnih aplikacija gotovo desetljeće. To je impresivna serija prema bilo kojem standardu. Sada je vrijeme da progresivne web-aplikacije i okviri izvornih aplikacija koje pokreću JavaScript-i pokupe plašt i odvedu programere u budućnost.

Hibrid (1.0) je mrtav. Živio hibrid (2.0).

Todd Anglin potpredsjednik je strategije proizvoda i odnosa s programerima u tvrtki Progress. 

-

New Tech Forum pruža mjesto za istraživanje i raspravu o novonastaloj tehnologiji poduzeća u neviđenoj dubini i širini. Izbor je subjektivan, zasnovan na našem odabiru tehnologija za koje vjerujemo da su važne i da najviše zanimaju čitatelje. ne prihvaća marketinške kolaterale za objavljivanje i zadržava pravo uređivanja cjelokupnog sadržaja. Pošaljite sve upite na  [email protected] .