¿Qué hay detrás de una App?

¿Qué hay detrás de una App?

Por Fernando Rodríguez

Es un hecho que todos manejamos Apps a diario: Snapchat, Facebook, Whatsapp, Strava y una infinidad de otras más. También es un hecho que la programación de Apps es una opción muy interesante para cada vez más profesionales técnicos.

Como programador y educador, he logrado una visión de ambos lados de este escenario. A lo largo de los últimos años, he impartido clases de desarrollo iOS por Europa, EEUU y LATAM. A pequeños grupos y a gigantes como Facebook en Menlo Park.

En casi todos los casos, me llevé la misma sorpresa: cuando los desarrolladores miran a la pantalla, pocos son los que se dan cuenta de que hay todo un mundo detrás de la misma.

Una App, ya sea para iOS o Android, no es más que la punta de un iceberg. Bajo la superficie existe todo un ecosistema muy complejo, y a menudo son los componentes menos visibles los que determinan el valor del producto.

Por ejemplo ¿si Whatsapp no tuviese un backend capaz de gestionar millones de mensajes por segundo, habría sido comprado por 16 mil millones? Poco probable.

Arquitectura Concéntrica

Todos los productos mencionados al principio del artículo tienen una cosa en común: una arquitectura concéntrica.

En el centro, nos encontramos con un backend, que puede estar implementado en RoR, Node, Django, Go, Elixir, etc y a menudo con una arquitectura de microservicios que lo hace mantenible y escalable. Dicho backend puede delegar ciertas tareas a un Backend as a Service, como pueden ser las push notifications y más.

Rodeando dicho backend se encuentra un API REST (o GraphQL) que lo aísla de sus clientes. Dichos clientes, ya sea web implementado con Angular o React, iOS con Swift u Objective-C y Android en Java, consumen dicha API y sirven de “vitrina” para el producto.

Estos clientes son importantes para captar y fidelizar a los usuarios, pero a menudo el modelo de negocio se haya escondido en el backend.

Entender cómo estos diferentes componentes funcionan y se relacionan es lo que marca la diferencia entre un buen programador y un Full Stack Developer. La buena noticia es que no es complicado llegar a ese nivel, sólo hace falta prepararse como es debido.

La fábula del arquitecto

Dicen que cuando se estaban construyendo las pirámides de Egipto, un anciano se acercó a la obra. Le preguntó a uno de los obreros qué estaba haciendo.

 -Es evidente que estoy poniendo ladrillos contestó sin prestarle mucha atención.

No satisfecho con esa respuesta, le preguntó a otro lo mismo.

 -Estoy construyendo una pared le dijo.

En ese momento, vió que el primero había puesto mal un ladrillo y que éste iba a sobresalir de la pared. De inmediato se enzarzó en una discusión con el primero.

Aún no satisfecho, le preguntó a un tercer hombre lo que estaban haciendo. Éste, que resultó ser el arquitecto, le contestó:

-Estamos creando un monumento tan espectacular, que dentro de 4 mil años, los hombres aun lo mirarán con admiración y asombro”.

El arquitecto se percató de la discusión de los otros dos, y les explicó que la pared que estaban haciendo era interior y nadie iba a ver ese ladrillo sobresaliente. No tenía sentido perder más tiempo con él.

Esto deja claro la importancia de tener una visión de conjunto de lo que estamos creando. Es vital, no sólo para nuestra capacidad como profesionales, sino también para nuestra seguridad.

Un desarrollador que tiene clara la estructura concéntrica, los papeles de cada componente y las tecnologías que se usan, aportará más valor a la empresa y podrá adaptarse mejor a los cambios, al verlos venir de lejos.

KeepCoding Mobile Bootcamp

El desconocimiento de esta arquitectura, o en el mejor de los casos, la falta de práctica en implementarla integrando todas las partes, es lo que me llevó en su día a diseñar el Mobile Startup Engineering Bootcamp de KeepCoding.

En dicho bootcamp, intenso y extenso, los alumnos implementan cada uno de los componentes y los integran creando un MVP para un producto real (un eBay híper local). Los resultados han sido inmejorables y todos nuestros alumnos han rápidamente alcanzado puestos de lead developers o CTOs. Por ello nos enorgullecemos de poder decir que en KeepCoding formamos desarrolladores de élite.

Si deseas saber más, dirígete a este enlace y conoce cómo el Mobile Startup Engineering Bootcamp puede ayudarte a competir por los pixamejores puestos de trabajo en América, Europa ¡incluso en el Silicon Valley!

Conoce el Mobile Startup Engineering Bootcamp