¿Cuáles son los inconvenientes de desarrollar aplicaciones móviles usando marcos híbridos?

Antes de responder, quiero definir híbrido. Hybrid usa un WebView pero adjunta complementos nativos personalizados para que pueda hacer más que un sitio web típico. Obtiene acceso directo al hardware de formas que las páginas web no pueden. Obtiene acceso al almacenamiento principal y no se borrarán los datos de su aplicación cuando un usuario borre su caché web.

Cordova / PhoneGap es realmente la única plataforma híbrida móvil que es relevante en este momento. Hay varios marcos construidos sobre Cordova. Personalmente estoy más familiarizado con Ionic Framework.

Construir la mayoría de las aplicaciones en un marco híbrido como Ionic no solo es posible, sino absolutamente razonable. Ionic 2, con Angular 2, le brindará un excelente rendimiento por defecto para la mayoría de las operaciones. He creado aplicaciones que usaban Ionic que eran “suaves como la mantequilla”.

Pero. No soy un desarrollador front end típico. Durante muchos años mi trabajo diario ha sido desarrollador de videojuegos. Sé cómo optimizar las cosas y aprendo compulsivamente nuevas técnicas de optimización.

A juzgar por la mayoría de las páginas web, muchos desarrolladores front-end no conocen la forma de crear aplicaciones web móviles de modo que no eliminen los navegadores móviles.

Entonces, si contrata a un desarrollador front-end económico para escribir su aplicación en Ionic, podría terminar con una aplicación que funcione terriblemente. Quería incluir esta advertencia para que no volvieran y se quejaran de que sus desarrolladores no pueden hacer que su aplicación funcione lo suficientemente bien.

Además, hay algunos dominios de aplicaciones para los que no recomendaría híbridos. Aplicaciones de audio donde realmente estás modificando los datos de sonido. Aplicaciones gráficas o de cámara donde manipulas imágenes. Sí, puede tomar fotografías básicas con los complementos de Cordova. Es la manipulación de imágenes lo que creo que es más difícil de una aplicación híbrida.

¿Entonces que puedes hacer? Bueno, hay dos soluciones que aún no he mencionado:

  • Reaccionar nativo
  • NativeScript

Ninguno de estos son híbridos . Ninguno tiene un WebView. Utilizan controles nativos controlados por React o Angular 2, respectivamente. Hacer que las animaciones funcionen correctamente es más fácil. Conseguir ese comportamiento suave y mantecoso es más fácil.

Pero la barrera de entrada es más alta, lo que puede funcionar a su favor: significa que el desarrollador mediano con experiencia en ambos será más hábil que el desarrollador web mediano.

Todavía podría ser cauteloso al implementar una aplicación de datos pesados ​​(gráficos o manipulación de sonido, como se indicó anteriormente). Pero parece que soy ambos marcos, la interfaz con la capa nativa es un poco más limpia que la interfaz del complemento Cordova. Lo que significa que si necesita una aplicación con muchos datos, es posible que necesite un código nativo personalizado para cada plataforma.

Que no es el fin del mundo. Sin duda, es mejor que tener que escribir toda la aplicación dos veces.

Una nota más: NativeScript tiene dos ventajas clave sobre React Native. NativeScript le permite llamar a las API de la plataforma directamente, sin escribir un complemento. Crea un puente de JavaScript a las API nativas automáticamente. NativeScript también está diseñado para que solo necesite crear los controles una vez y funcionen en todas las plataformas de destino. React Native está estructurado, por lo que debe escribir código personalizado para Android e iOS para cada control.

Ese es el estado de los marcos híbridos a partir de 2017, y los otros marcos de tecnología web que técnicamente no son híbridos, pero pensé que podría estar preguntando de todos modos. 🙂

mi respuesta demasiado simplificada es que el híbrido tiene un punto de congelación mucho más alto.

Cuando haces cosas, comenzarán a congelarse más rápido que las nativas.

Pero si su acción no alcanza el punto de congelación en primer lugar, no importa.