DeHubAbrir DeHub

DeHub › Blog

Creación para todos: Reconstrucción de aplicaciones con React Native

Por DeHub Team — 2021-07-02

DeHub Q3 2021 update: Building for All: App Rebuild with React Native

En el tercer trimestre de 2021 comenzamos a reconstruir la aplicación DeHub desde cero en React Native.

Decidir reescribir una aplicación de trabajo no es una decisión que a nadie le guste. La versión beta estaba activa, tenía usuarios y cada semana que se dedicó a la reconstrucción fue una semana que no se dedicó a las funciones que esos usuarios estaban pidiendo. Lo hicimos de todos modos, y es una de las pocas llamadas grandes de ese período que nunca hemos vuelto a visitar.

Qué estaba mal con la primera aplicación

La versión beta se creó para responder a una pregunta (¿la gente usará esto?) y la respondió. Lo que no podía hacer era crecer. El envío a dos plataformas significaba mantener dos bases de código, lo que en la práctica significaba que una plataforma se quedaba atrás silenciosamente, y cada función costaba aproximadamente el doble de lo que debería.

Para un equipo de nuestro tamaño eso no es una inconveniencia técnica. Es un límite de cuán rápido el producto puede moverse.

Por qué React Native

La razón honesta es el apalancamiento del equipo. React Native permitió que un pequeño grupo enviara a iOS y Android desde una sola base de código sin pasar completamente a nativo dos veces, y sin los compromisos de una vista web envuelta — lo cual, para una aplicación construida alrededor de video y contenido en vivo, habría sido fatal.

También significaba que la aplicación móvil y la aplicación web podían compartir un modelo mental, un vocabulario de componentes y, en muchos casos, una lógica real. Cuatro años después, DeHub ejecuta una aplicación web de React y una aplicación móvil de React Native mantenidas en paralelo, y las características se cruzan entre ellas a un ritmo que no sería posible si la respuesta en 2021 hubiera sido dos reescrituras nativas.

Las partes que fueron más difíciles de lo esperado

Nadie debería leer esto como una elección sin fricciones:

Por qué aún era correcto

La reconstrucción es la razón por la que la aplicación sobrevivió a todo lo que vino después. Cuando el arcade se lanzó en el primer trimestre de 2022, cuando llegó la aplicación de transmisión ese verano, cuando todo el ecosistema se incorporó a una sola aplicación en 2023, ninguno de esos fue un caso de atornillarse a la versión beta. Aterrizaron sobre una base construida deliberadamente para soportar peso.

La lección que sacamos de ello no es “reescribir temprano”. Es que el momento en que puedes nombrar el techo específico que tu arquitectura impone al equipo, ya estás pagando por la reescritura, ya sea que la hayas iniciado o no.

Cómo sobrevivir a uno

Dos cosas hicieron que esta reescritura terminara en lugar de estancarse, y ambas valen la pena mencionar porque la mayoría de las reescrituras se estancan.

La antigua aplicación seguía funcionando. No dejamos de enviar actualizaciones a los usuarios existentes mientras se construía el reemplazo. Eso extiende la línea de tiempo y elimina la presión que produce una transición apresurada, donde los reescrituras suelen morir.

El alcance era la arquitectura, no el producto. Se rechazaron todas las solicitudes para mejorar también una función mientras se reconstruía. Una reescritura que es simultáneamente un rediseño tiene dos formas de fallar y no hay forma de saber cuál está sucediendo. El trabajo de la interfaz esperó hasta 2024, cuando se envió correctamente como una revisión completa junto con una mejora del backend del 200%.

Todos los artículos de DeHub · Inicio de dehub.io