Cómo migrar una app nativa de 13 años a React Native
(ridicorp.com)Una historia sobre la experiencia que vivió RIDIBOOKS durante su transición de una app nativa a React Native
- Por qué eligieron React Native
-
Antes, el contenido se exploraba y compraba en la web, mientras que la app se usaba como visor. Luego decidieron incorporar también en la app las funciones de exploración y pago. Para responder rápido a los cambios y alcanzar la meta dentro del plazo establecido, decidieron adoptar una tecnología que permitiera desarrollo cross-platform.
-
Estuvieron evaluando Flutter y React Native, pero eligieron React Native porque su comunidad les pareció un poco más estable y activa.
- Base nativa vs base React Native
-
Evaluaron si montar React Native sobre la app nativa existente o, al contrario, montar lo nativo sobre React Native.
-
Si se monta React Native sobre lo nativo, los endpoints cambian por pantalla y la gestión del ciclo de vida de la app se vuelve más compleja.
-
Si se monta lo nativo sobre React Native, primero hay que modificar el código nativo existente para que sea compatible con React Native. A futuro, además, habría que reescribirlo por completo en React Native.
-
Como de todos modos planeaban trasladar la mayoría de las funciones a React Native, decidieron avanzar con una estructura donde lo nativo se monta sobre React Native.
- Reutilización de pantallas nativas
- Para adaptarse rápido a los cambios dentro del tiempo disponible, decidieron crear las nuevas pantallas en React Native y mantener las pantallas existentes en nativo. (Las pantallas nativas se irán migrando gradualmente a React Native).
- Reutilización de código nativo
-
¿Sería posible llevar a React Native toda la esencia del código nativo acumulado por RIDIBOOKS tras 13 años de mantenimiento? Ya usaban Swift y Kotlin en la app nativa existente, así que validaron si podían reutilizarlos tal cual en React Native.
-
Creando un bridge, fue posible seguir usándolos de la misma manera.
- Dificultades durante la implementación
-
Aumentaron el tamaño del bundle y el uso de memoria.
-
El tamaño del bundle estuvo dentro de lo esperado, pero el uso de memoria fue muy problemático. Tuvieron que prestar mucha atención a la optimización.
-
Es difícil confiar en las librerías de terceros.
-
No se puede descuidar ni el lado nativo ni el front-end. Los desarrolladores nativos tienen que aprender front-end, y los de front-end tienen que aprender desarrollo nativo. El intercambio entre ambos equipos es la clave del éxito.
- Por qué React Native les parece una buena opción
-
Alta productividad
-
Una plataforma favorable para colaborar
Gracias a React Native, lograron cumplir la hoja de ruta del producto dentro del plazo establecido y obtuvieron un entorno que les permite responder rápido a los cambios con buena productividad. A partir de ahora, planean migrar de lleno el área nativa a React Native. Sin embargo, el visor seguirá manteniéndose, ya que concentra el know-how acumulado durante 13 años y permitirá seguir ofreciendo la mejor experiencia de usuario.
11 comentarios
No sé si alguna vez han buscado palabras clave en Google Trends, pero el ecosistema de RN está prácticamente muriendo. En cambio, Flutter está creciendo de forma explosiva. Como referencia, yo soy desarrollador nativo.
Desde la perspectiva del usuario, parece que la app de escritorio rinde peor que la versión anterior. Antes no se notaba retraso al pasar de página, pero últimamente se traba todo el tiempo.
Ojalá destacaran un poco esto en la versión de escritorio... no sé si no se puede por temas de derechos de autor o algo así, mmm.
Ojalá también le prestaran un poco de atención a las apps de escritorio, no solo a las móviles.. T_T
Como alguien que ha usado la app de escritorio de Ridibooks durante mucho tiempo, me deja con la sensación de que esta decisión se tomó pensando exclusivamente en móvil. Y no solo me pasa a mí: todos los que conozco que usan la app de escritorio sufren bugs constantes... (peor que la antigua app basada en Qt)
He escuchado muchísimas quejas sobre los problemas de las apps de escritorio a mi alrededor..
Yo tampoco estoy en el lado de desarrollar directamente, pero al ver tanto entusiasmo por Flutter en las comunidades que sigo, se lo comenté al desarrollador de la app de la empresa y me dijo que le gusta más React. También decía que la base de usuarios y el mercado de contratación son mejores. Me gustaría escuchar qué piensan los demás.
Lo clave será si RN logra seguirle el ritmo, ya que el desarrollo nativo está avanzando a una velocidad enorme.
¿Qué tal se compara Flutter en relación con esto?
Probablemente Android esté bien igual, pero no sé si podrá seguirle el ritmo a iOS.
Creo que no se debe pasar por alto el costo de la entropía que trae la unificación.
React Native se desarrolló y lanzó hace 2~3 años...
Personalmente, pensé que tenía más desventajas que ventajas...
https://m.blog.naver.com/PostView.naver/…
Así que había perdido bastante el interés... pero su popularidad sigue intacta.