Insights
Article

El gran salto móvil - Cómo garantizar que tu app escale con éxito

Scott Campagna
/
Emerging and Immersive Technology Sr. Director
<Read time>
/
Sep 25, 2024

“Esto debería ser fácil”, dice, mientras se embarca para llevar sus soluciones de la web al móvil. Comienza el trabajo, ¡y se ha demostrado que tienes razón! “¡Mi equipo es increíble!” exclama, hinchando su pecho.

Y entonces el fondo comienza a caerse.

Eso se debe a que la escala en una aplicación móvil viene con matices que no existen en la web. De repente, el último 10% de tu proyecto deja a tu equipo corriendo un 10K en arenas movedizas.

En lugar de caer en las arenas movedizas, quieres evitarlo por completo, ¿verdad? Así que vamos a discutir algunos de los puntos débiles más pegajosos y, lo que es más importante, cómo evitarlos.

1. Distribución de aplicaciones

Los sitios web son sencillos: cuando publica contenido, está disponible instantáneamente y cuando lo desactiva, ya no está disponible.

Sin embargo, las aplicaciones móviles no funcionan de esa manera porque tienen un modelo de distribución completamente diferente, uno que está controlado por tus canales de distribución, Apple y Google. Además de mantener actualizado tu código, debes asegurarte de cumplir con todos los requisitos de Google/Apple.

Si bien mantener felices a Apple y Google es importante, no puede ser el fin de todo para su estrategia de distribución.

La automatización es imprescindible. La carga manual está desactualizada y es propensa a errores, así que use una herramienta CICD que automatice los procesos de compilación y carga. Ya sea que reúna varias tecnologías o utilice una herramienta como Bitrise para automatizar el flujo CICD móvil depende de usted, pero cualquiera de las dos conducirá a una mejor experiencia para su equipo y sus clientes.

Pero recuerde, incluso con la automatización más suave, las tiendas de aplicaciones siguen siendo los guardianes. Piense en los cuellos de botella comunes en el proceso de revisión con anticipación, como tener accidentalmente un problema regulatorio o una vulnerabilidad, y tenga un plan para tratar cualquier retroalimentación lo antes posible.

2. Control de versiones

Como dijimos, los sitios web son sencillos; lo que ves es lo que obtienes. ¿Aplicaciones móviles? Son como cebollas. ¡Tienen capas! El control de versiones es un problema porque las personas están instalando código compilado en sus dispositivos, por lo que podría haber cualquier cantidad de versiones en uso. Alerta de spoiler: las tiendas de aplicaciones no tienen ganas de administrar esto por ti, ¡así que tienes que gestionarlo tú mismo!

Aquí hay un ejemplo que ilustra cómo hacerlo:

Publicaste la versión 2.0 de tu app en enero. En marzo, publicó una nueva versión para cumplir con todos los requerimientos de OWASP y encontrar dos vulnerabilidades principales que estaban presentes en la v2.0 que necesitan ser abordadas. Entonces, publicaste v2.1 con esas correcciones, pero v2.0 todavía está en la naturaleza porque no hay opción en las tiendas de aplicaciones para no permitir que versiones específicas se ejecuten en los dispositivos de las personas.

¿Quieres una solución fácil? Haz que tu app llame a una API específica al inicio que te dé dos valores:

  1. Versión mínima de la aplicación
  2. Versión actual de la aplicación

A partir de estos dos valores, puede determinar:

<ul>
<li>¿Esta aplicación es inferior a la versión mínima de la aplicación?
<ul>
<li>En caso afirmativo, tenga un cuadro de diálogo que solo permita al usuario ir a la lista de la tienda de aplicaciones para actualizar pero no continuar con la aplicación.</li>
<li>Si no, no hagas nada.</li>
</ul>
</li>
<li>¿Esta aplicación es superior a la versión mínima de la aplicación pero inferior a la versión actual de la aplicación?
<ul>
<li>En caso afirmativo, tenga un cuadro de diálogo que permita al usuario ir a la lista de la tienda de aplicaciones para actualizar O continuar con la aplicación.</li>
<li>Si no, no hagas nada.</li>
</ul>
</li>
</ul>

De esta manera, puede controlar si un usuario está usando una versión adecuada de su aplicación y asegurarse de que su aplicación y su cliente estén protegidos contra código inseguro o no compatible.

3. Integraciones/SDK

El uso de integraciones/SDK afecta su escalabilidad. Para profundizar, dividiremos esto en dos variedades: integraciones de terceros e internas/SDK.

Cuando envía código a la naturaleza, debe ser consciente de cómo el control de versiones de sus integraciones/SDK de terceros afectará el ciclo de vida de su aplicación y esa funcionalidad específica.

Por ejemplo, si está trabajando con un proveedor y no tiene compatibilidad con versiones anteriores en sus integraciones, o si publica una nueva API que reemplaza una API existente sin que ambas estén disponibles, podrían romper su aplicación con su propia implementación. Cuando se asocia con un tercero, comprenda cómo es su control de versiones y asegúrese de que puede soportarlo desde su parte.

Esto no es un problema en las aplicaciones web porque puedes cronotear el lanzamiento de una nueva API para alinearla con un nuevo front-end, pero no hay forma de sincronizar esas implementaciones en aplicaciones móviles. ¿Por qué? ¡Porque no eres el dueño de tu método de distribución! (Sí, hay opciones para evitar esto, pero son caras y no proporcionan ningún valor a su cliente. Así que omídelos.)

Otra pregunta que debes hacerte: ¿Cómo vas a consumir las últimas versiones de tus integraciones/SDK de terceros? Digamos que están en una cadencia de implementación de dos semanas, pero solo actualizas tu app una vez por trimestre. ¿Cómo decide qué versión usar? O si lanzas cada dos semanas y solo lanzan una vez al trimestre, ¿qué sucede si lanzas su nueva versión y se encuentra un error inaceptable en producción? Estas son todas las preguntas a las que necesitas respuestas desde el primer día.

Recuerde, la calidad del código de las integraciones/SDK de terceros se refleja en su marca. Por lo tanto, realice pruebas de regresión sólida una vez que se haya integrado. Además, tenga en cuenta el largo camino de mantenimiento que viene con ellos. Puede que solo le cueste $X integrarlo, pero seguirá costando $Y cada año a medida que realice actualizaciones.

Su socio dirá que es realmente fácil y no le llevará tiempo actualizar estas integraciones/SDK para que no tenga que preocuparse. Son muy bien intencionados al decir eso, pero como has aprendido, nunca es tan fácil como suena.

¿Qué pasa con las integraciones/SDK internas? La parte divertida es que todo lo anterior también aplica aquí. Pero también hay oportunidades adicionales.

Primero, debido a que todo es interno, puede usar una plataforma común, que es crítica para las empresas que necesitan aprovechar el trabajo de múltiples unidades de negocios para crear una aplicación cohesiva. Es como construir un Lego: todo encaja perfectamente.

No trabajar con la misma aplicación base es como pisar un Lego — ridículamente doloroso. Estás creando todo el retrabajo que viene de trabajar con un proveedor, pero sin el beneficio de que sean responsables del código.

Ahí lo tienes. Todo sucede en tres, incluyendo consejos de escalado de aplicaciones móviles. Toma este trío de ideas, lléalas de vuelta a tu equipo y correr por las arenas movedizas se convertirá en un recuerdo distante y blando.

No items found.
0:00
0:00
Show insight details
Episode hosts and guests
No items found.
Written by 
Scott Campagna
Emerging and Immersive Technology Sr. Director

Episode transcript
Sources
No items found.
Hablemos.

Transform insights into action and ideas into outcomes.