Uno de los mayores referentes en cuanto a estrategia e implementación de nuevas tecnologías en el mundo del desarrollo de apps móviles ha dado un paso que nos ha sorprendido a todos.
Descarga gratis tu guía para elegir solución de conectividad
Airbnb, el que probablementes es el mayor benefactor de React Native, la librería de Facebook para desarrollo híbrido de aplicaciones móviles, ha decidido abandonarlo después de dos años como el pilar fundamental de todo lo que ha pasado por sus oficinas.
Airbnb fue uno de los primeros en llevar a React Native a producción y, muy especialmente, a una escala tan importante como la suya. Muy probablemente se trate de la aplicación desarrollada en React Native más utilizada del mundo. Por este motivo, al tratarse de una tecnología tan reciente, han invertido gran cantidad de recursos en su depuración y puesta a punto.
¿En qué ha fallado React Native?
Los motivos que les han llevado a dar este paso son precisamente los que eran previsibles y ya muchos apuntaban desde sus inicios. React Native es todavía una librería inmadura; muchas de sus actualizaciones rompían partes del código e, incluso, su acceso a los recursos nativos de los dispositivos era inconsistente entre entornos Android e iOS. Por lo tanto, mientras que la idea que sustentaba React Native era poder escribir las aplicaciones una sola vez y poder ser utilizadas en ambos sistemas, la cruda realidad varios años después es que los ingenieros de Airbnb se veían obligados a mantener tres bases de código: una en React.js, otra con las implementaciones concretas para iOS y otra para Android. Por supuesto, cada actualización llevaba a volver a repetir este proceso por triplicado con sus diferencias entre versiones.
JavaScript es un lenguaje con asignación dinámica de tipos de datos. Esto quiere decir que no existe un control sobre qué tipo de datos contiene una variable, recibe o devuelve una función, lo cual conduce a problemas de inconsistencia en aplicaciones tan grandes como ocurre en este caso. La alternativa a esto es utilizar TypeScript, un súper conjunto de JavaScript que incluye el tipado estático de datos. No obstante, de nuevo, se trata de añadir un elemento de fallo más a tener en cuenta, complicar la depuración de bugs y, especialmente, llevar a cabo una migración de tecnologías de proporciones poco apetecibles.
A nivel visual y de representación de datos, React Native es más restrictivo en cuanto a la libertad que brindan las aplicaciones nativas, ya que no siempre es factible llegar hasta el punto visual requerido y la experiencia de usuario es, a día de hoy, algo primordial en el triunfo de una app.
Es por todo esto que el equipo de ingenieros encargados de desarrollar las aplicaciones móviles de Airbnb ha decidido dar un volantazo y emplear el tiempo que dedicaban a homogeneizar el desarrollo híbrido en ambas plataformas a todo lo contrario: optimizar la experiencia de desarrollo nativo.
Un varapalo para las tecnologías de desarrollo híbridas
Desde luego se trata de un mazazo para este tipo de tecnologías híbridas, ya que Airbnb, además de servir de referencia para muchos grupos de desarrollo, ha aportado innumerables horas de contribución a la comunidad de React Native.
Ha empezado a cundir el pánico cuando no tiene por qué. A grandes rasgos, la mejor recomendación que se puede hacer ante una decisión de este tipo se basa en, básicamente, dos parámetros: presupuesto y complejidad. Si se cuenta con un presupuesto bastante holgado y/o la aplicación requiere de funcionalidades muy personalizadas y poco frecuentes, sin lugar a dudas el camino a seguir es el del desarrollo nativo. Aquí la homogeneidad entre las versiones iOS y Android dependerá necesariamente del buen hacer de los ingenieros a su cargo.
Si por el contrario el presupuesto es bajo y no se requiere de ninguna funcionalidad atípica, las plataformas de desarrollo híbridas siguen siendo una muy buena opción para reducir los costes derivados de desarrollar y mantener dos apps con dos grupos de desarrollo diferentes. Al fin y al cabo, no todos somos Airbnb y, especialmente, las necesidades de cada empresa dadas sus circunstancias no tienen por qué ser las correctas para nosotros.
Consigue tu e-book para acertar con tu proveedor de conectividad
2 Comentarios
Puedes enviar comentarios en este post.
Typescript es una mierda.
aa 6 años ago
Buen post. En mi opinión otro factor importante a tener en cuenta además del presupuesto y la complejidad es el futuro como equipo. Las tecnologías nativas atraen al talento, mientras que las híbridas lo espantan. Los/las mejores developers se desinteresan por ofertas que usen tecnologías como React Native, y por trabajar en equipos que lo usen. Si en tu equipo se trabaja con Android en Kotlin y con iOS en Swift, tu empresa aspirará a atraer buenos desarrolladores; Por el contrario si trabaja con React native, sabes que los senior directamente rechazarán tu oferta o no estarán interesados en trabajar en tu equipo, quedando como unica opción los juniors, o los menos aptos. A esto hay que sumar que si tu equipo cuenta con seniors y tu empresa usa React native, estos seniors no tardarán en irse a empresas que trabajen nativo, por lo que es mas que probable una fuga de talento. Esto a algunas empresas no les importa (como las consultoras con mindset de 1990), pero quienes cuidan a su equipo de desarrollo si deben tenerlo en cuenta
friendlytroll 5 años ago
Enviar una respuesta
No hay comentarios