Desarrollo de aplicaciones móviles después de PhoneGap y Cordova

Todd Anglin es vicepresidente de estrategia de producto y relaciones con desarrolladores de Progress.

Durante casi una década, PhoneGap ha ofrecido a los desarrolladores web un camino de baja fricción para crear aplicaciones móviles que tengan acceso a las capacidades nativas de los dispositivos. PhoneGap hace posible que muchos desarrolladores creen aplicaciones para iOS y Android (e incluso Windows Phone y BlackBerry, por un tiempo) utilizando habilidades y bibliotecas de JavaScript que ya conocen y aman. Esta combinación de habilidades web más acceso a dispositivos nativos (comúnmente conocido como "híbrido") se ha arraigado firmemente como uno de los enfoques principales para el desarrollo de aplicaciones móviles.

Ahora, a medida que se ralentiza el trabajo en la evolución de PhoneGap (y el proyecto de código abierto Apache Cordova relacionado), ¿qué sigue para el desarrollo móvil híbrido?

Obviamente, como proyecto de código abierto, Apache Cordova no desaparecerá pronto. Muchas empresas tienen grandes inversiones en Córdoba, y la comunidad de Córdoba continúa llenando los vacíos a medida que los compromisos corporativos fluyen y refluyen.

Pero PhoneGap fue un proyecto creado con la intención explícita de volverse obsoleto con el tiempo, y ese momento puede estar sobre nosotros.

En el transcurso de los últimos 10 años, han surgido dos opciones posiblemente superiores que están listas para tomar el lugar de PhoneGap y el "híbrido 1.0". Estas son aplicaciones web progresivas y aplicaciones nativas impulsadas por JavaScript.

Aplicaciones web progresivas

PhoneGap siempre estuvo destinado a ayudar a los desarrolladores web a hacer más en los dispositivos móviles cuando alcanzan los límites de los navegadores web móviles. PhoneGap reutiliza todo lo que se encuentra en la web (HTML, CSS, JavaScript) y se basa en complementos escritos en código nativo (Objective-C, Swift, Java) para acceder a funciones específicas del dispositivo nativo a través de JavaScript. Con el tiempo, esto ha demostrado ser tanto una bendición como una maldición. La curva de aprendizaje es muy baja, pero los navegadores web integrados en las aplicaciones PhoneGap a menudo tienen problemas con el rendimiento (no gracias a Apple y, durante mucho tiempo, a la vista web predeterminada de Android). Aún así, PhoneGap fue una solución funcional que produjo resultados "suficientemente buenos" para muchos.

Mientras tanto, los estándares web han seguido evolucionando y, durante los últimos tres o cuatro años, el impulso para mejorar los estándares web necesarios para crear aplicaciones móviles de mayor rendimiento y listas para usar sin conexión se ha catalizado bajo el término "aplicaciones web progresivas".

Con aplicaciones web progresivas, la plataforma web da un paso más hacia adelante. Ahora las aplicaciones web tienen control total sobre la pila de la red, lo que permite realizar operaciones avanzadas de almacenamiento en caché y sin conexión. También hay nuevas API que ayudan a que las aplicaciones web hagan otras cosas que a menudo se asocian con las aplicaciones móviles nativas, como iniciar con una pantalla de presentación, enviar notificaciones automáticas o solicitar a los usuarios información de pago. Agregue esto a todas las otras API "HTML5" que han aterrizado en los navegadores, como el acceso a acelerómetros, cámaras, etc., y tendrá una plataforma web muy capaz para muchos tipos de aplicaciones.

Todas estas capacidades habrían requerido una aplicación nativa cuando se creó PhoneGap, pero ahora los navegadores se han puesto al día. Podemos quitarnos las ruedas de entrenamiento híbridas.

Aún así, existen límites en la web. Es simplemente la naturaleza de la plataforma basada en estándares de movimiento lento. Las aplicaciones web progresivas son un gran paso adelante, pero no son un reemplazo perfecto para todas las aplicaciones. Entonces, ¿qué deben hacer los desarrolladores web después de híbrido si aún necesitan acceso completo a las API de dispositivos nativos? Ingrese aplicaciones nativas impulsadas por JavaScript.

Aplicaciones nativas impulsadas por JavaScript

Hace unos cinco años, varias empresas comenzaron a intentar encontrar una solución a los frecuentes problemas de rendimiento que afectaban a las aplicaciones móviles híbridas. El objetivo: crear marcos que puedan ofrecer un rendimiento y una interfaz de usuario "verdaderamente nativos" sin dejar de ser multiplataforma y familiar para los desarrolladores web. De este trabajo, surgieron dos opciones populares: React Native (de Facebook) y NativeScript (de Progress).

Estos nuevos marcos permiten a los desarrolladores continuar reutilizando sus habilidades web, pero en lugar de simplemente envolver un navegador web en un shell de aplicación nativo (como lo hace PhoneGap), estos nuevos enfoques producen una interfaz de usuario nativa. El resultado son aplicaciones móviles que se sienten y funcionan más como aplicaciones nativas de plataforma única “sin procesar”, mientras que aún obtienen productividad entre plataformas.

Ha habido algunos nombres para describir este enfoque: "híbrido 2.0", "híbrido nativo" y "nativo multiplataforma", entre otros. Forrester introdujo el término "aplicaciones nativas impulsadas por JavaScript" y, si bien no sale de la lengua, es, al menos, un nombre preciso y descriptivo.

Con los marcos de aplicaciones nativos impulsados ​​por JavaScript, los desarrolladores web tienen la mayor parte de lo que amaban de PhoneGap, pero con aún más potencia y rendimiento. Por ejemplo, NativeScript, que está profundamente integrado con Angular y Vue, brinda a los desarrolladores acceso completo a todas las API nativas a través de JavaScript. Cada uno de ellos. Si se puede hacer en una aplicación nativa, se puede hacer en NativeScript, y los módulos multiplataforma permiten que la mayoría de las cosas se codifiquen una vez y funcionen tanto en iOS como en Android. Es como los complementos de PhoneGap con esteroides.

React Native y NativeScript son proyectos prósperos de código abierto, y ambos están listos para ser la evolución natural del “híbrido 1.0” para los casos en los que las aplicaciones web progresivas no se ajustan a los requisitos.

¿Cuál eliges?

Si bien PhoneGap no se ha ido, es difícil imaginar por qué un nuevo proyecto comenzaría con PhoneGap hoy cuando existen opciones como aplicaciones web progresivas y aplicaciones nativas basadas en JavaScript. Ambas opciones representan caminos creados para el futuro y son relativamente triviales de adoptar para los desarrolladores web que ya están familiarizados con el desarrollo de aplicaciones híbridas.

La elección entre las opciones también debería ser simple:

  1. Si su aplicación no necesita mucho acceso a la API del dispositivo, no necesita estar en las tiendas de aplicaciones y puede vivir con algunos límites adicionales en iOS (por ahora), cree una aplicación web progresiva.
  2. Si los requisitos de su aplicación superan los límites de las aplicaciones web progresivas, elija una de las plataformas de aplicaciones nativas impulsadas por JavaScript:
    1. Si eres una tienda React, elige React Native.
    2. Si tiene una tienda Angular o Vue, elija NativeScript. 

Muchas de las empresas que conciben estos marcos de código abierto están muy dispuestas a ayudar y la mayoría ofrece orientación técnica para migrar de PhoneGap a su marco. Si está buscando un lugar para comenzar su viaje de migración, consultar con un experto siempre es una buena idea.

Y si se queda atascado, o simplemente prefiere hablar con un experto externo, hay una serie de excelentes recursos disponibles para la comunidad de desarrolladores; la opción obvia y más popular es GitHub. Sin embargo, se han creado muchos otros foros para ayudar a los desarrolladores a migrar de PhoneGap y de aplicaciones web híbridas a progresivas desde hace un tiempo, y ofrecen algunas sugerencias excelentes.

Al final, PhoneGap estuvo a la altura de su nombre. Ayudó a los desarrolladores web a superar la “brecha” del desarrollo de aplicaciones móviles durante casi una década. Esa es una carrera impresionante para cualquier estándar. Ahora es el momento de que las aplicaciones web progresivas y los marcos de aplicaciones nativos basados ​​en JavaScript tomen el relevo y lideren a los desarrolladores hacia el futuro.

Hybrid (1.0) está muerto. Larga vida al híbrido (2.0).

Todd Anglin es vicepresidente de estrategia de producto y relaciones con desarrolladores de Progress. 

-

New Tech Forum proporciona un lugar para explorar y discutir la tecnología empresarial emergente con una profundidad y amplitud sin precedentes. La selección es subjetiva, basada en nuestra selección de las tecnologías que creemos que son importantes y de mayor interés para los lectores. no acepta material de marketing para su publicación y se reserva el derecho de editar todo el contenido contribuido. Envíe todas sus consultas a  [email protected] .