Es más fácil que nunca usar JavaScript para construir aplicaciones móviles nativas. Pero para los desarrolladores web que construyen en el ecosistema móvil por primera vez, desplegar aplicaciones multiplataforma construidas con herramientas como Capacitor o React Native puede ser complejo. Aprenda sobre las consideraciones específicas de implementación móvil a través de la perspectiva de un desarrollador web, incluyendo las diferencias clave entre móvil y web, cómo desarrollar una estrategia de implementación y cómo evaluar las opciones de herramientas.
Implementaciones móviles para desarrolladores web
Video Summary and Transcription
Las implementaciones móviles son cruciales para los desarrolladores web debido al creciente número de usuarios en dispositivos móviles. El desarrollo multiplataforma y las migraciones de web a móvil están en aumento con herramientas como React Native, Ionic, Capacitor y Native Script. Las pruebas móviles requieren compilación binaria nativa y pruebas en dispositivos reales. Google Play y iOS tienen métodos específicos para lanzar aplicaciones a probadores, mientras que el desarrollo web permite actualizaciones dinámicas y despliegue rápido. La construcción y despliegue de aplicaciones móviles requieren una infraestructura específica y procesos de firma de código. Las pautas de aprobación de las tiendas de aplicaciones y las actualizaciones de versiones plantean desafíos en la implementación de aplicaciones móviles.
1. Introducción a las implementaciones móviles
Bienvenido a las implementaciones móviles para desarrolladores web. Como desarrollador web, es importante comprender la importancia de las implementaciones móviles. Los usuarios cada vez utilizan más dispositivos móviles, por lo que es crucial construir para la plataforma móvil. El desarrollo multiplataforma y las migraciones de web a móvil están en aumento, con herramientas como React Native, Ionic, Capacitor y Native Script. La plataforma móvil difiere de la web en términos de hardware y compilación de un binario nativo. La plataforma establece las reglas en las implementaciones móviles.
Hola, bienvenido. Esto es Implementaciones Móviles para Desarrolladores Web. Soy Cecilia Martinez. Soy una defensora del desarrollo para aplicaciones móviles en AppFlow, la plataforma de CI/CD móvil desarrollada por Ionic. No dudes en conectarte conmigo. Estoy en Cecilia Creates en Twitter y GitHub, o también puedes conectarte conmigo en LinkedIn. Búscame por mi nombre, es n slash Cecilia Martinez. Estoy encantada de hablar contigo sobre las implementaciones móviles si tienes alguna pregunta.
La primera pregunta que puedes tener es por qué, como desarrollador web, deberías preocuparte por las implementaciones móviles. Bueno, cada vez más vemos que los usuarios utilizan dispositivos móviles. Esto significa que, como desarrollador web, estás construyendo para la plataforma móvil en términos de una aplicación web móvil o, en algunos casos, aplicaciones nativas reales también. Estamos viendo un aumento en el desarrollo multiplataforma, lo que significa construir desde una única base de código para la web móvil, iOS y Android utilizando herramientas como React Native o Ionic. Y también estamos viendo un aumento en las migraciones de web a móvil. Esto significa utilizar contenido web existente o construir una aplicación web y luego convertirla en una aplicación móvil. Puedes hacer esto con herramientas como Capacitor, que también es desarrollada por Ionic, Native Script o cualquier cosa donde básicamente agregas funcionalidad nativa y luego construyes para la plataforma Android o iOS. También puedes hacer esto utilizando lo que llamamos micro frontends móviles, donde estás incrustando contenido web en una aplicación móvil nativa. Por lo tanto, es posible que llegues a un punto en el que te pidan crear contenido web para una aplicación móvil y también necesites comprender cómo implementarlo. Por lo tanto, comprender lo que hace que el móvil sea diferente es realmente importante cuando se trata de tomar una aplicación web y convertirla en una aplicación móvil. En última instancia, lo que hace que el móvil sea diferente es la plataforma para la que estás construyendo. Cuando construyes una aplicación web, estás construyendo para software o estás construyendo para un navegador. Tu aplicación web interactuará en última instancia con otra pieza de software y se ejecutará en ese navegador. Para una aplicación móvil, estás construyendo para hardware. Estás construyendo para un dispositivo nativo real. Y debido a eso, estás compilando un binario nativo que luego se ejecutará en ese dispositivo en un momento posterior una vez que se haya instalado. Esto es diferente a una aplicación web donde tenemos código interpretado que es realmente dinámico y que se ejecuta en el navegador en tiempo de ejecución. Estas son las diferencias que ocurren entre la web y el móvil que deben tenerse en cuenta. Pero en general, la gran diferencia es que con el móvil, la plataforma establece las reglas. Con una aplicación web, tienes control total sobre cuándo implementas tu aplicación, qué herramientas utilizas para construirla, qué dependencias utilizas. Con el móvil, eso no es así. Ya sea que estés construyendo para iOS, Android o ambos, esas plataformas van a dictar
2. Pruebas de implementación web y móvil
Vamos a explorar las diferencias entre las implementaciones web y móviles. Las pruebas web generalmente se realizan en un entorno de desarrollo, pruebas o puesta en escena, con pruebas automatizadas para la integración continua. Las pruebas móviles requieren compilación binaria nativa y pruebas en dispositivos reales. Se pueden utilizar dispositivos virtuales para implementaciones rápidas, pero es necesario realizar pruebas en dispositivos reales. Puedes conectar un dispositivo real a tu máquina de desarrollo o utilizar una granja de dispositivos reales para pruebas automatizadas. También están disponibles los canales de prueba.
3. Canales de Prueba y Proceso de Construcción Web
Tanto Google Play como iOS tienen métodos específicos para lanzar aplicaciones a probadores. Google Play tiene pistas de prueba internas, alfa y beta, mientras que iOS tiene lanzamientos ad hoc y Apple TestFlight. TestFlight te permite invitar hasta 10,000 probadores y proporciona herramientas integradas para recopilar comentarios. Al construir para la web, no es necesario realizar una compilación real, ya que el desarrollo web moderno permite actualizaciones dinámicas y una implementación rápida.
En el lado de Google Play, tienes tres pistas de prueba. Tienes la interna, que se utiliza para implementaciones rápidas de hasta 100 usuarios. Puedes implementar aplicaciones que aún no se hayan configurado completamente en pistas de prueba internas. Es bueno para tus probadores de control de calidad, partes interesadas, cualquier cosa que sea interna para tu organización. Debes autorizar a todos en esta lista manualmente con una dirección de correo electrónico. Por lo tanto, no se debe utilizar para lanzar tu aplicación de manera más amplia.
Luego tienes la pista de prueba alfa, que también se llama pista de prueba cerrada. Esto permite implementaciones en una lista más amplia de probadores autorizados. Entonces, si necesitas más de los 100 para la interna, entonces deberás pasar a la pista de prueba beta, que también se llama pista de prueba abierta. Cuando estás en beta, cualquier persona puede instalar y probar tu aplicación. Por lo tanto, debe estar lista para aparecer en la tienda de Google Play y lista para ser visible. Esta es realmente la última etapa de las pruebas antes de lanzar tu aplicación por completo.
En el lado de iOS, tienes lo que se llaman lanzamientos ad hoc. Los lanzamientos ad hoc se pueden utilizar para implementar aplicaciones en hasta 100 dispositivos al año. Entonces, Google Play se basa en usuarios. Apple ad hoc se basa en dispositivos. Cada dispositivo de prueba debe agregarse manualmente a tu perfil de aprovisionamiento y tú construyes tu aplicación. Por lo tanto, nuevamente, es útil para las pruebas internas, tus pruebas de control de calidad, solo tus partes interesadas. Si necesitas implementar en más dispositivos de prueba, o si estás listo para compartirlo de manera más amplia, entonces está Apple TestFlight. Apple TestFlight es un programa proporcionado por la App Store de Apple que te permite invitar hasta 10,000 probadores utilizando direcciones de correo electrónico o también puedes compartir un enlace público. Lo bueno de TestFlight es que tiene herramientas integradas para recopilar comentarios, como informes de errores, envío de capturas de pantalla, cosas que facilitan la obtención de comentarios de tus probadores mientras está en el programa. Debes tener una compilación de la tienda de aplicaciones para implementar en TestFlight, por lo que tu aplicación debe estar configurada y lista para eso.
Hablando de compilaciones de la tienda de aplicaciones, hablemos del proceso de compilación a continuación. Cuando estás construyendo para la web, técnicamente no necesitas una compilación real. Esto es un requisito del desarrollo web moderno, donde estamos utilizando cosas como frameworks y transpiladores en paquetes para optimizar o minimizar HTML, CSS, JavaScript y nuestros activos estáticos para la web. Es muy fácil realizar actualizaciones de forma dinámica en la web. Las compilaciones web no deberían llevar mucho tiempo. Podemos implementar actualizaciones muy rápidamente cuando hablamos de construir nuestras aplicaciones web.
4. Mobile App Building and Deployment
En el lado móvil, estás creando un binario ejecutable para tu plataforma nativa. Necesitas requisitos de infraestructura específicos, como hardware Mac para compilaciones de iOS y versiones específicas de Xcode y Android SDK. Los tipos de compilación y la versión son importantes, y el proceso de firma de código garantiza la integridad de la aplicación. Android tiene tipos de compilación de depuración y lanzamiento, mientras que iOS tiene simulador, desarrollo, ad hoc, App Store y empresa. Se necesitan credenciales como la clave de carga y la clave de firma de la aplicación para la firma de aplicaciones de Android. Para iOS, hay certificados de firma y perfiles de aprovisionamiento. Una vez que la aplicación se ha construido y firmado, está lista para su implementación. La implementación web implica colocar los archivos en el servidor.
En el lado móvil, como mencioné anteriormente, estás creando un binario ejecutable para tu plataforma nativa. Esto también significa que debes tener requisitos de infraestructura muy específicos en el entorno en el que vas a construir. Ya sea que lo hagas localmente, manualmente en tu computadora Mac, o en un entorno de CI/CD, necesitarás hardware Mac para las compilaciones de iOS. También necesitarás tener instaladas versiones específicas de Xcode y Android SDK en tu entorno para poder construir tu aplicación móvil.
Hay tipos de compilación muy específicos entre los que debes seleccionar, y debes asegurarte de versionar cada compilación correctamente, porque se requieren diferentes versiones a medida que actualizas tu aplicación. Y querrás poder hacer un seguimiento de qué versión de la aplicación estás construyendo y cómo se relaciona con la versión de tu base de código. La mayor diferencia, sin embargo, cuando se trata de construir tu aplicación móvil, será el proceso de firma de código. Mencioné los tipos de compilación. Para Android, hay tipos de compilación de depuración y lanzamiento. Para iOS, hay simulador, desarrollo, ad hoc, App Store y empresa. En última instancia, necesitarás una compilación de la App Store para poder lanzarla en TestFlight o en la App Store. En Android, necesitarás una compilación de lanzamiento si quieres lanzarla en las pistas de prueba beta o producción, y luego también lanzarla. De lo contrario, los otros tipos de compilación son útiles para varios tipos de pruebas y desarrollo.
Mencioné la firma de código. Lo que hace es validar la identidad del firmante, así como en qué dispositivos puede ejecutarse, y desde una perspectiva de seguridad, garantiza que el binario de la aplicación no se haya modificado desde el momento en que se firmó. La firma de tu aplicación de Android implica dos credenciales. Tienes una clave de carga que se genera localmente en tu máquina, y lo que hace es utilizarse durante el proceso de compilación para generar lo que se llama un paquete firmado. Este es un archivo .keystore o .jks. También hay una clave de firma de la aplicación, y esta suele generarse por Google y se utiliza para firmar tu aplicación después de haberla subido a la tienda de aplicaciones, pero antes de que se entregue a los usuarios. No necesitas esto en tu entorno de compilación, por lo que no es necesario si estás utilizando un pipeline de CI/CD para tu compilación. Esto es algo que ocurre dentro del proceso de Google Play. Lo menciono porque se llama clave de firma de la aplicación, por lo que algunas personas piensan que necesitas tenerla durante el proceso de compilación. Para iOS, tienes dos credenciales, un certificado de firma, que valida la identidad de quien generó esa compilación autorizada, y también un perfil de aprovisionamiento que indica en qué dispositivos puede ejecutarse un paquete firmado. Si estás haciendo una compilación para la App Store y tienes lo que se llama un perfil de aprovisionamiento de distribución, lo que significa que la aplicación puede ejecutarse en cualquier dispositivo, pero como mencioné, para esas compilaciones ad hoc, debes especificar en qué dispositivos puede ejecutarse, y es entonces cuando necesitarás tener un perfil de aprovisionamiento específico que enumere todos esos dispositivos. Todas estas credenciales, en realidad todas estas credenciales, deben estar en tu entorno cuando vayas a construir tu aplicación.
Una vez que tu aplicación se ha construido y firmado, está lista para su implementación. Cuando hablamos de implementación, hablamos del proceso de llevar realmente la aplicación a los usuarios, ¿verdad? Para la web, lo único que tienes que hacer es colocar los archivos en el servidor. Eso es todo. Recuerdo que solía usar FTPZilla en el pasado y simplemente arrastraba la nueva carpeta de archivos de compilación y la reemplazaba por la anterior, y una vez que eso se completaba, todos tus usuarios
5. Desafíos en la Implementación de Aplicaciones Móviles
Tienes control sobre cuándo se implementa tu aplicación. La plataforma establece las reglas. Debes enviar tu aplicación para su aprobación en la tienda de aplicaciones antes de que pueda ser implementada para los usuarios. Es importante comprender las pautas de aprobación de la tienda y qué puede causar el rechazo de tu aplicación. No puedes tener fallas o errores en tu aplicación, ni enlaces rotos ni información de marcador de posición. Tampoco puedes tener una interfaz de usuario deficiente. Tu aplicación puede ser rechazada por no tener suficiente valor duradero. Al mantener aplicaciones web, tenemos control sobre nuestras propias implementaciones y todos los usuarios tienen la misma versión de la aplicación al mismo tiempo. Con las aplicaciones web, puedes elegir qué dependencias necesitas y cuándo actualizarlas. No es fácil corregir errores o actualizar la aplicación en dispositivos móviles debido a la larga lista de versiones de aplicaciones que se deben admitir.
6. Versionado y Actualizaciones de Aplicaciones Móviles
En móvil, no todos tienen la misma versión de la aplicación. Se deben seguir los requisitos y actualizaciones de la tienda de aplicaciones para evitar ser eliminado. Las correcciones de errores para aplicaciones multiplataforma se pueden hacer a través de implementaciones por aire, actualizando el contenido web sin una nueva versión de la tienda de aplicaciones.