Aplicaciones Android

¿Qué mantiene a Airbnb alejado de React Native?

Airbnb ha estado usando React Native durante dos años, cuando Gabriel Peal anunció que abandonaría React Native para 2019 y en su lugar usaría herramientas de desarrollo móvil nativas.
React Native es un marco de código abierto desarrollado por Facebook. Permite a los desarrolladores de JS crear componentes React familiares que pueden funcionar en entornos de desarrollo web, Android e iOS.

Ahora, el movimiento clásico de Airbnb para elegir React Native es utilizar sus funciones multiplataforma para acelerar el desarrollo móvil a más ingenieros y entregar código más rápido.
Inicialmente, todas las reservas se realizaron a través del sitio web de Airbnb. Sin embargo, pronto se notó que los viajeros no llevarían computadoras portátiles durante las vacaciones. Por lo tanto, para mantener y proporcionar una buena experiencia de desarrollador con Airbnb, React Native eligió usar Airbnb en 2016.
Airbnb se basa en React y satisface las necesidades de una manera eficiente e inclusiva.

La razón para elegir React Native es:

Esto les permitirá actuar más rápidamente como organización. En segundo lugar, les ayudará a establecer los estándares de calidad proporcionados por Native. En tercer lugar, porque se necesita menos tiempo para escribir el código de producto una vez en lugar de dos. Cuarto, también promueve la experiencia del desarrollador.

La experiencia de Airbnb

Han construido integraciones increíblemente poderosas en sus aplicaciones para facilitar características locales complejas como la conversión de elementos compartidos, puente paralaje y geocercas a su infraestructura local, como redes, experimentación e internacionalización.

Con React Native, Airbnb pudo lanzar una experiencia: un negocio diferente y docenas de otras funciones, desde reseñas hasta tarjetas de regalo.

Aunque React es revolucionario en todos los aspectos, Airbnb todavía tiene que resolver muchos problemas al mismo tiempo.

Menos experiencia

No es tan maduro como Android o iOS. Al ser nuevo y rápido, React Native funciona bien en diversas situaciones. Sin embargo, a veces React Native es muy difícil porque detectará algunas cosas triviales, y es posible que la empresa solo necesite días y horas para resolver estos problemas.

La actualización requiere mucho tiempo y es dolorosa.

Por lo tanto, para tapar la inmadurez de React Native al usarlo, Airbnb tuvo que parchear la fuente RN. Además, deben mantener una sucursal en la que fusionen los cambios y las versiones de actualización. Por lo tanto, tuvieron que agregar alrededor de 50 confirmaciones además de React Native. Se vuelve laborioso y problemático.

JS es un lenguaje tecleado dinámicamente, por lo que es difícil para los ingenieros móviles que están acostumbrados a los lenguajes tecleados estimar la escala, que luego se convirtió en el foco de debate. El equipo de Airbnb incluso exploró el flujo. Sin embargo, fue una experiencia frustrante debido al misterioso mensaje de error. Incluso hay problemas con la integración de TypeScript en la infraestructura existente.

Refactorización

La refactorización es el proceso mediante el cual puede cambiar el código fuente de un programa sin cambiar el comportamiento de sus funciones externas. Ahora, cuando JS es un lenguaje sin tipo y la refactorización se vuelve extremadamente difícil y propensa a errores, surge el problema. Cuando los ingenieros móviles tienen que cambiar el nombre de los accesorios, se encuentran con dificultades, como onClick o accesorios que deben refactorizarse con precisión. Además, el refractor también falla durante el proceso de producción, por lo que es difícil agregar un análisis estático adecuado.

React Native es complicado

Debido a que se ejecutó en el entorno JavaScriptCore, causó varios problemas al mismo tiempo.
iOS lanza una versión de producción a través de su propio JS Core. Esto significa que iOS es compatible con Airbnb y no causará ningún problema.
Sin embargo, Android no lanzará una versión de producción en su propio JS Core. Como resultado, React Native incluyó el suyo. Ahora, lo que obtienen es uno desactualizado, y tienen que hacer uno nuevo por sí mismos.

depuración

El proceso de depuración también va acompañado de un pequeño problema, que puede provocar una gran pérdida de tiempo. Esto es simple, hasta que toLocalString solo funciona en iOS, pero solo funciona en Android cuando se produce la depuración. Esto puede hacer que se pierda mucho tiempo en una depuración dolorosa y se desconocen estos problemas técnicos.
Descargar .jpg

Biblioteca de código abierto React Native-

Ahora, las bibliotecas React Native con puentes nativos (como mapas, videos, etc.) requieren el mismo conocimiento de las tres plataformas para tener éxito. Sin embargo, la mayoría de las personas solo conocen una o dos plataformas, y React Native Open Source está escrito por personas que conocen la misma cantidad de plataformas. Por lo tanto, se producen más inconsistencias y problemas en iOS o Android.

Infraestructura paralela y trabajo funcional

Existe una infraestructura nativa en Android e iOS. Sin embargo, en React Native, los desarrolladores deben comenzar con una hoja de papel en blanco. Deben escribir o crear puentes entre la infraestructura existente. A veces carecen de características que no existen. Por lo tanto, terminan trabajando en una plataforma desconocida, o la construyen fuera del proyecto o la bloquean hasta que no obtienen la herramienta.

Monitoreo de colisiones

Dado que React Native es nuevo y en evolución, los desarrolladores deben crear una gran cantidad de infraestructura para cargar mapas de origen internamente para que se pueda usar con Bugsnag para que pueda filtrar los bloqueos que ocurren en React Native.
Dado que solo hay una infraestructura personalizada alrededor de React Native, Airbnb enfrentará muchos problemas cuando no informe un bloqueo o cargue el mapa de origen de manera incorrecta. Se vuelve confuso cuando la depuración de React Native se bloquea, porque el problema cruza React Native y el código nativo, porque el seguimiento de la pila no salta entre React Native y native.

Tiempo de inicialización

Antes de iniciarlo por primera vez, debe inicializar su tiempo de ejecución. Incluso en dispositivos de gama alta, una aplicación de este tamaño puede tardar unos segundos. Esta es una de las razones por las que React Native no se puede iniciar en la pantalla. Resuelven el problema de minimizar el primer tiempo de renderizado inicializando la aplicación cuando se inicia.

gesto-

Airbnb evita usar RN para gestos complejos, porque los sistemas táctiles Android e iOS funcionan de manera diferente. Proporcionar una API unificada es un desafío, y también es un desafío para toda la comunidad React Native. Sin embargo, react-native-gesto-handler acaba de llegar a 1.0.

Actualizar React Native

La actualización es un proceso doloroso: es casi imposible usar React Native 0.43 (abril de 2017) a 0.49 (octubre de 2017) porque React Native usa React 16 alpha y beta. Los problemas surgen cuando la biblioteca React no se puede ejecutar en la web y no es compatible con la versión preliminar de React. Este proceso se volvió arduo cuando se trató de la actualización de otros trabajos de infraestructura React Native a mediados de 2017.

Accidente problemático

Algunos choques son difíciles de reparar. Por ejemplo, Airbnb encontró un bloqueo en el comentario de @ReactProp. Es difícil de replicar en cualquier dispositivo, incluso en aquellos con el mismo hardware y software que el dispositivo que se estrelló en la naturaleza.

en conclusión-

Estos son algunos de los pocos problemas que experimentó la empresa y decidió dejar Airbnb. Debido a algunos desafíos técnicos y organizacionales, no pudieron lograr sus objetivos iniciales, lo que obstaculizó el desarrollo de la empresa. Se añadieron al proyecto retrasos y frustraciones inesperados. Los problemas técnicos, especialmente en la inicialización y la asincronía, dificultan mucho el cumplimiento de ciertos objetivos. La falta de recursos internos y externos plantea otro desafío aquí. Además, una pequeña parte de la aplicación es React Native. Además, los ingenieros deben tender puentes entre una gran cantidad de infraestructura para completar el trabajo. Además, la depuración es otra experiencia mixta para el equipo.

LEER  Revisión suave: lo mejor que puede obtener: ToeSoft Full Video Converter v9.0.2

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba