Разработка на мобилни приложения след PhoneGap и Cordova

Тод Англин е вицепрезидент по продуктовата стратегия и връзките с разработчиците в Progress.

В продължение на почти десетилетие PhoneGap предлага на уеб разработчиците пътека с ниско триене за създаване на мобилни приложения, които имат достъп до възможностите на собственото устройство. PhoneGap дава възможност на много разработчици да създават приложения за iOS и Android (и дори Windows Phone и BlackBerry за известно време), използвайки умения и JavaScript библиотеки, които вече познават и обичат. Тази комбинация от уеб умения плюс достъп до местни устройства (известен като „хибриден“) се утвърди като един от основните подходи към разработването на мобилни приложения.

Сега, тъй като работата по развиващия се PhoneGap (и свързания с него проект с отворен код Apache Cordova) се забавя, какво следва за хибридното мобилно развитие?

Очевидно като проект с отворен код Apache Cordova няма да си отиде скоро. Много компании имат големи инвестиции в Кордова, а общността в Кордова продължава да попълва празнини, докато корпоративните ангажименти намаляват и текат.

Но PhoneGap беше проект, създаден с изричното намерение в крайна сметка да остарее и този момент може да е пред нас.

През последните 10 години се появиха две безспорно превъзходни опции, които са готови да заемат мястото на PhoneGap и „хибрид 1.0“. Това са прогресивни уеб приложения и ръководени от JavaScript приложения.

Прогресивни уеб приложения

PhoneGap винаги е имал за цел да помогне на уеб разработчиците да правят повече на мобилни устройства, когато достигнат границите на мобилните уеб браузъри. PhoneGap използва повторно всичко от мрежата - HTML, CSS, JavaScript - и разчита на приставки, написани в собствен код (Objective-C, Swift, Java), за достъп до специфични функции на собственото устройство чрез JavaScript. С течение на времето това се оказа едновременно благословия и проклятие. Кривата на обучение е много ниска, но вградените уеб браузъри в приложенията на PhoneGap често се борят с производителността (не благодарение на Apple и дълго време уеб изгледа на Android по подразбиране). И все пак PhoneGap беше работещо решение, което доведе до „достатъчно добри“ резултати за мнозина.

Междувременно уеб стандартите продължават да се развиват и през последните три до четири години усилията за подобряване на уеб стандартите, необходими за създаването на мобилни приложения с по-висока производителност, готови за работа офлайн, се катализират под термина „прогресивни уеб приложения“.

С прогресивните уеб приложения уеб платформата прави още една гигантска стъпка напред. Сега уеб приложенията имат пълен контрол над мрежовия стек, което прави възможно извършването на разширени кеширане и офлайн операции. Има и нови приложни програмни интерфейси (API), които помагат на уеб приложенията да правят други неща, често свързани с естествени мобилни приложения, като стартиране с начален екран, изпращане на известия за изпращане или искане от потребителите на информация за плащане. Добавете това към всички останали приложни програмни интерфейси (API) на HTML5, които са попаднали в браузъри - като достъп до акселерометри, камери и т.н. - и имате много способна уеб платформа за много видове приложения.

Всички тези възможности биха изисквали собствено приложение, когато беше създаден PhoneGap, но сега браузърите наваксаха. Можем да свалим хибридните тренировъчни колела.

И все пак в мрежата остават ограничения. Това е само естеството на бавно движещата се, базирана на стандарти платформа. прогресивните уеб приложения са гигантска стъпка напред, но не са идеален заместител за всички приложения. И така, какво трябва да правят уеб разработчиците след хибрид, ако те все още се нуждаят от пълен достъп до API на собственото устройство? Въведете задвижвани от JavaScript приложения.

Природни приложения, управлявани от JavaScript

Преди около пет години няколко компании започнаха да се опитват да намерят решение на честите проблеми с производителността, които тормозеха хибридните мобилни приложения. Целта: Създайте рамки, които биха могли да осигурят „истински естествена“ производителност и богатство на потребителския интерфейс, като същевременно са междуплатформени и познати на уеб разработчиците. От тази работа възникнаха две популярни опции: React Native (от Facebook) и NativeScript (от Progress).

Тези нови рамки позволяват на разработчиците да продължат да използват повторно своите уеб умения, но вместо просто да обвиват уеб браузър в черупка на собствено приложение (както прави PhoneGap), тези нови подходи създават естествен потребителски интерфейс. Резултатът е мобилни приложения, които се чувстват и се представят по-скоро като „сурови“ естествени приложения с една платформа, като същевременно печелят производителност на различни платформи.

Има няколко имена, които описват този подход: „хибрид 2.0“, „естествен хибрид“ и „местен платформа“, наред с други. Forrester въведе термина „задвижвани от JavaScript приложения“ и макар да не се отклонява точно от езика, това е поне точно и описателно име.

С управляваните от JavaScript рамки за приложения, уеб разработчиците имат повечето от това, което им харесва в PhoneGap, но с още повече мощност и производителност. Например NativeScript, който е дълбоко интегриран както с Angular, така и с Vue, дава на разработчиците пълен достъп до всички собствени API чрез JavaScript. Всеки един от тях. Ако това може да се направи в собствено приложение, това може да се направи в NativeScript, а междуплатформените модули позволяват повечето неща да бъдат кодирани веднъж и да работят както на iOS, така и на Android. Това е като приставки за PhoneGap на стероиди.

React Native и NativeScript са процъфтяващи проекти с отворен код и и двата са готови да бъдат естествената еволюция на „хибрид 1.0“ за случаите, когато прогресивните уеб приложения не отговарят на сметката.

Коя избираш?

Докато PhoneGap не е изчезнал, е трудно да си представим защо всеки нов проект би започнал с PhoneGap днес, когато съществуват опции като прогресивни уеб приложения и задвижвани от JavaScript приложения. И двете опции представляват пътища, изградени за в бъдеще, и са сравнително тривиални за възприемане от уеб разработчиците, които вече са запознати с разработването на хибридни приложения.

Изборът между опциите също трябва да е лесен:

  1. Ако приложението ви не се нуждае от много достъп до API на устройството, не е необходимо да е в магазините за приложения и може да живее с някои допълнителни ограничения за iOS (засега), изградете прогресивно уеб приложение.
  2. Ако изискванията на вашето приложение надвишават ограниченията на прогресивните уеб приложения, изберете една от управляваните от JavaScript платформи за собствени приложения:
    1. Ако сте магазин на React, изберете React Native.
    2. Ако сте Angular или Vue магазин, изберете NativeScript. 

Много от компаниите, които създават тези рамки с отворен код, са много склонни да помогнат и повечето предлагат технически насоки за мигриране от PhoneGap към тяхната рамка. Ако търсите място за започване на миграционното си пътуване, консултацията с експерт винаги е добра идея.

И ако закъсате или просто предпочитате да говорите с експерт от трета страна, има редица страхотни ресурси на разположение за общността на разработчиците - очевидният и най-популярен избор е GitHub. Има обаче много други форуми, създадени, за да помогнат на разработчиците да мигрират от PhoneGap и хибридни към прогресивни уеб приложения за известно време и те предлагат някои страхотни насоки.

В крайна сметка PhoneGap оправда името си. Помогна на уеб разработчиците да преодолеят „пропастта“ в разработването на мобилни приложения за почти десетилетие. Това е впечатляващо изпълнение от всеки стандарт. Сега е време прогресивните уеб приложения и задвижваните от JavaScript рамки на приложения да вземат мантията и да доведат разработчиците в бъдещето.

Хибридът (1.0) е мъртъв. Да живее хибрид (2.0).

Тод Англин е вицепрезидент по продуктовата стратегия и връзките с разработчиците в Progress. 

-

Форумът New Tech предоставя място за изследване и обсъждане на нововъзникващите корпоративни технологии в безпрецедентна дълбочина и широчина. Изборът е субективен, базиран на нашия избор на технологиите, които смятаме, че са важни и представляват най-голям интерес за читателите. не приема маркетингово обезпечение за публикуване и си запазва правото да редактира цялото съдържание. Изпращайте всички запитвания на  [email protected] .