Implementaciones móviles para desarrolladores web

Rate this content
Bookmark

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.

23 min
05 Jun, 2023

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.

Available in English

1. Introducción a las implementaciones móviles

Short description:

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

Short description:

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.

gran parte del proceso de implementación. Así que echemos un vistazo a ese proceso de implementación y las diferentes etapas y cómo las implementaciones web y móviles son diferentes en cada etapa. Comenzaremos con pruebas. Cuando pensamos en las pruebas para las aplicaciones web, por lo general, estamos probando en un entorno de desarrollo, pruebas o puesta en escena. También se pueden realizar pruebas en producción, pero nos centraremos en las pruebas previas a la producción por ahora. Cuando realizas pruebas en un entorno de desarrollo, pruebas o puesta en escena, puedes probar tu código real utilizando pruebas unitarias, pruebas de integración o pruebas de API. También puedes realizar pruebas de extremo a extremo donde lanzas tu aplicación en un navegador, generalmente de forma invisible, y ejecutas tus pruebas automatizadas. Idealmente, se realizarán pocas pruebas manuales para tu aplicación web. Idealmente, tienes muchas pruebas automatizadas lo que permite una integración continua automatizada. Esto significa que si realizas un cambio en tu código, todas tus pruebas se ejecutan automáticamente y si todo parece correcto, puedes integrar ese cambio en tu código sin necesidad de realizar muchas pruebas manuales. Es muy diferente en el lado móvil. Esto se debe a que necesitas tener una compilación binaria nativa para las pruebas de extremo a extremo. También necesitas poder probarlo en un dispositivo. No puedes simplemente lanzarlo en un navegador y hacerlo en tu entorno de pruebas. Esto significa que debes aprovechar tanto los dispositivos virtuales como los dispositivos reales para las pruebas. Y también se requiere un mayor número de pruebas manuales. Existen marcos de pruebas automatizadas para probar tanto en dispositivos virtuales como en dispositivos reales, pero lo que generalmente veremos es que habrá múltiples rondas de versiones de prueba y se utilizarán probadores manuales y seguimientos de pruebas para probar completamente tu aplicación antes de que se lance a los usuarios. Mencioné que hay varias opciones de dispositivos para las pruebas, por lo que tienes dispositivos virtuales. Estos serán emuladores para Android o simuladores para iOS. Hay algunas pequeñas diferencias técnicas entre los dos, pero en última instancia, lo que hacen es replicar un dispositivo real, pero se ejecuta en tu computadora. Es un dispositivo virtual. Estos pueden ser útiles para ver implementaciones rápidas de tu aplicación o mostrarla a las partes interesadas o realizar algunas pruebas de depuración, pero no replican completamente la experiencia de un dispositivo real. Por eso, generalmente debes realizar pruebas en dispositivos reales en algún momento. Puedes conectar un dispositivo real a tu máquina de desarrollo, conectar tu iPhone o tu dispositivo Android y ejecutar la aplicación que estás construyendo. También puedes instalar manualmente el binario en tu dispositivo. AppFlow, por ejemplo, tiene un código QR de Android donde después de compilar tu aplicación de Android puedes escanear el código QR y se instalará y abrirá en tu dispositivo de pruebas de Android. También puedes cargar el binario en lo que se llama una granja de dispositivos reales. Esto se puede hacer con pruebas automatizadas, por lo que cargas tu compilación de la aplicación que acabas de crear y puedes ejecutar pruebas automatizadas en dispositivos reales en la nube. Algunos de estos incluyen AWS Device Farm, Sauce Labs, hay bastantes opciones. Pero te permiten realizar algunas pruebas en dispositivos reales sin tener que aprovisionar esos dispositivos reales tú mismo.

3. Canales de Prueba y Proceso de Construcción Web

Short description:

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.

También existen canales de prueba. Entonces, cuando mencioné anteriormente que la plataforma establece las reglas, eso es de lo que estamos hablando en este ejemplo cuando hablamos de canales de prueba. Tanto Google Play como iOS tienen métodos específicos para lanzar tus aplicaciones a probadores.

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

Short description:

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

Short description:

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.

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 antes de que pueda ser implementada para los usuarios. Hay algunas formas de hacer que las aplicaciones lleguen a los usuarios, evitando las tiendas de aplicaciones, pero es muy, muy raro y, sinceramente, la mayoría de los usuarios no instalarán una aplicación que no provenga de la tienda, y con razón. Las tiendas de aplicaciones establecen políticas específicas de privacidad y seguridad para garantizar la calidad de las aplicaciones, por lo que también debes crear una lista en la tienda. Necesitarás tener todos los detalles y activos en esa lista, como el ícono de la aplicación, capturas de pantalla y vistas previas, y también deberás establecer tus acuerdos de privacidad y datos. Cuando usas una aplicación móvil y esta solicita acceso a tus fotos o ubicación, estas son solicitudes de acceso a datos que deben especificarse en la lista de la tienda, al igual que el código de tu aplicación y los permisos que necesitas, y esto puede hacer que tu aplicación sea rechazada si no se configuran correctamente. El proceso de aprobación puede llevar hasta una semana o más. No te dan un número específico y, si te rechazan, debes pasar por un proceso de reenvío que puede llevar aún más tiempo. Debido a esto, no tienes tanto control sobre el proceso de implementación y estás a merced de las tiendas de aplicaciones. Por eso es muy importante comprender las pautas de aprobación de la tienda y qué puede causar el rechazo de tu aplicación. Estas son las razones proporcionadas por Apple, las razones más comunes por las que se rechazan las aplicaciones. Incluyen cosas como no poder tener fallas o errores en tu aplicación, ni enlaces rotos ni información de marcador de posición. Mencioné específicamente el problema de la política de privacidad y las solicitudes de acceso a datos poco claras, eso definitivamente es un gran problema. Tampoco puedes tener una interfaz de usuario deficiente. La documentación de Apple proporciona algunos ejemplos de capturas de pantalla de lo que consideran una interfaz de usuario deficiente. Esto me hace reír un poco porque si no permitiéramos interfaces de usuario deficientes en las aplicaciones web, muchas de ellas no estarían en producción. El contenido web estático, esto no significa que no puedas usar contenido web en tu aplicación nativa, solo significa que la aplicación nativa debe tener una razón para ser nativa. Si tomas un blog existente, por ejemplo, y lo conviertes en una aplicación móvil nativa sin hacer cambios, eso es algo que podría ser rechazado porque no necesita existir como una aplicación. Además, tu aplicación puede ser rechazada por no tener suficiente valor duradero. Por eso es importante comprender cuáles son estos posibles obstáculos para que puedas implementar rápidamente. Esto se debe a que necesitarás poder mantener tu aplicación a medida que avanza, ¿verdad? Cuando hablamos de mantener aplicaciones web, como mencioné antes, tenemos control sobre nuestras propias implementaciones y todos los usuarios tienen la misma versión de la aplicación al mismo tiempo. A excepción de las banderas de funciones o las pruebas A-B, una vez que el usuario accede al servidor, obtiene la misma versión de tu aplicación. Con las aplicaciones web, es posible que debas mantener algunas dependencias. Pero en última instancia, puedes elegir qué dependencias necesitas y cuándo actualizarlas. Por lo tanto, tienes un control total sobre tus lanzamientos. Y puedes corregir errores críticos o actualizar cuando sea necesario. No es fácil corregir errores en dispositivos móviles. Tampoco es fácil actualizar y mantener tu aplicación en dispositivos móviles. Esto se debe a la larga lista de versiones de aplicaciones que se deben admitir.

6. Versionado y Actualizaciones de Aplicaciones Móviles

Short description:

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.

En Web, todos tienen la misma versión de tu aplicación, pero en móvil, eso no es así, ¿verdad? Puede que tengas tu aplicación configurada para actualizarse automáticamente en la tienda de aplicaciones, o puede que tengas una versión muy antigua de una aplicación en tu teléfono porque nunca la has actualizado manualmente. Si realizas cambios en tu API, tal vez agregues nuevas características, debes asegurarte de que tu aplicación siga funcionando incluso en las versiones más antiguas que están en uso. También debes cumplir con los requisitos de la tienda de aplicaciones. Tanto iOS como Android actualizan sus requisitos de seguridad y el SDK mínimo necesario para construir tu aplicación. Si no cumples con estos requisitos, puedes ser eliminado de la tienda de aplicaciones. También debes pensar en cuál será tu estrategia de actualización, ya que las correcciones de errores y las actualizaciones son difíciles de implementar. Si estás construyendo una aplicación multiplataforma o una aplicación que utiliza contenido web, una opción para las correcciones de errores es utilizar implementaciones en vivo, o lo que llamamos implementaciones por aire. Esto te permite actualizar el contenido web de tu aplicación sin lanzar una nueva versión de la tienda de aplicaciones. No puedes utilizar esto para cambios nativos y tu aplicación debe estar preconfigurada. Pero existen diversas herramientas disponibles que te permiten enviar nuevos cambios a ese contenido web y evitar una nueva versión nativa. Tenlo en cuenta como una posible estrategia de actualización. Hay beneficios al automatizar este proceso, ¿verdad? Automatizar el proceso de implementación. Y serán similares a los beneficios de la automatización en la web. Tienes una reducción de los silos de conocimiento y varias personas en el equipo pueden implementar. También puedes gestionar las credenciales compartidas, por lo que no necesitas generar individualmente los certificados de inicio de sesión y los perfiles de aprovisionamiento. Obviamente, tienes una mayor velocidad de lanzamiento si puedes automatizar algunos de estos pasos y poner tu aplicación en manos de los probadores más rápidamente. También tienes una mejor visibilidad del proceso de implementación. Puedes ver quién generó una compilación, a qué confirmación de código correspondió, qué versión corresponde en la tienda de aplicaciones tanto para iOS como para Android, todo en un mismo lugar. Tienes algunas opciones de herramientas cuando se trata de automatizar tus compilaciones. Algunas de ellas serán específicas de la plataforma, es decir, solo para iOS o Android. Algunas de ellas serán específicas del marco de trabajo, es decir, solo para React Native o solo para Capacitor. O algunas de ellas serán generales, en el sentido de que se pueden utilizar para varias plataformas y varios marcos de trabajo. También hay herramientas para integrarse con tu plataforma CICD existente, o utilizar algo específico para móvil, pero dedicado a tus implementaciones móviles. Cuando hablamos de herramientas CICD, hay algunas que tienen una sola función, es decir, solo realizan la compilación, solo la distribución, solo la configuración, pero lo más probable es que veas herramientas multifunción. Estas son cosas como Fastlane, que es desarrollado por Google, que te permite gestionar la versión, la compilación, la carga y la publicación de diferentes fases de tus implementaciones CICD. También hay interfaces de línea de comandos y APIs de servicios en la nube, como AppFlow, CodeMagic, Bitrise y AppCircle, que ofrecen múltiples funcionalidades relacionadas con las implementaciones móviles. Si no tienes una plataforma CICD existente o no quieres utilizarla para móvil, también puedes obtener una plataforma CICD específica para móvil. Por lo general, estas tienen una interfaz gráfica de usuario que te permite crear flujos de trabajo y gestionar tus certificados de inicio de sesión y tus entornos en un entorno en la nube. Nuevamente, estas pueden ser específicas de la plataforma, como Xcode Cloud, específicas del marco de trabajo, como EIS para aplicaciones Expo de React Native, o de múltiple soporte, como AppFlow y Bitrise. Al decidir qué tipo de herramientas utilizar, debes tener en cuenta la experiencia en DevOps de tu equipo. También debes pensar en la infraestructura existente que tienes. Por ejemplo, si ya tienes un equipo de DevOps dedicado con una infraestructura CICD tradicional sólida, entonces es posible que desees utilizar herramientas de manera fragmentada para integrar la funcionalidad móvil. Sin embargo, si no tienes un equipo de DevOps dedicado y alguien del equipo móvil será responsable de sus propias implementaciones, y no tienes esa infraestructura existente, es posible que desees utilizar algo que sea un servicio completo, una herramienta multifunción. También debes pensar en las plataformas que admites y los marcos de trabajo que utilizas para construir, y debes pensar en cómo protegerlos en el futuro. Ahora mismo, es posible que solo estés construyendo para una plataforma, por lo que una solución para una sola plataforma puede ser una buena opción, pero ¿tienes planes de expandirte en el futuro? Debes tener en cuenta todas estas cosas al decidir qué herramientas quieres utilizar para tus implementaciones móviles. Y si deseas obtener más información, tenemos un libro electrónico gratuito llamado Solving Mobile CICD with AppFlow, puedes escanear el código QR o visitar el enlace para recibirlo y obtener más información sobre CICD e implementaciones móviles en general. O siempre puedes comunicarte conmigo si tienes alguna pregunta. Nuevamente, me encuentro en ceciliacreates en Twitter, en GitHub. O también puedes enviarnos un correo electrónico a appflow.io. Muchas gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Advanced Conference 2023React Advanced Conference 2023
29 min
Raising the Bar: Our Journey Making React Native a Preferred Choice
At Microsoft, we're committed to providing our teams with the best tools and technologies to build high-quality mobile applications. React Native has long been a preferred choice for its high performance and great user experience, but getting stakeholders on board can be a challenge. In this talk, we will share our journey of making React Native a preferred choice for stakeholders who prioritize ease of integration and developer experience. We'll discuss the specific strategies we used to achieve our goal and the results we achieved.
React Finland 2021React Finland 2021
27 min
Opensource Documentation—Tales from React and React Native
Documentation is often your community's first point of contact with your project and their daily companion at work. So why is documentation the last thing that gets done, and how can we do it better? This talk shares how important documentation is for React and React Native and how you can invest in or contribute to making your favourite project's docs to build a thriving community
React Day Berlin 2023React Day Berlin 2023
29 min
Bringing React Server Components to React Native
Top Content
React Server Components are new topic in community, bunch of frameworks are implementing them, people are discussing around this topic. But what if we could use React Server Components in React Native? And bring all optimisation features that RSC allows to mobile apps? In this talk I would present what we are able to do with RSC in React Native!
React Advanced Conference 2021React Advanced Conference 2021
21 min
Building Cross-Platform Component Libraries for Web and Native with React
Top Content
Building products for multiple platforms such as web and mobile often requires separate code-based despite most of the components being identical in look and feel. Is there a way where we could use shared React component library on different platforms and save time? In this presentation I'll demonstrate one way to build truly cross-platform component library with a unique approach of using React & React Native in combination.

Workshops on related topic

React Advanced Conference 2022React Advanced Conference 2022
81 min
Introducing FlashList: Let's build a performant React Native list all together
Top Content
WorkshopFree
In this workshop you’ll learn why we created FlashList at Shopify and how you can use it in your code today. We will show you how to take a list that is not performant in FlatList and make it performant using FlashList with minimum effort. We will use tools like Flipper, our own benchmarking code, and teach you how the FlashList API can cover more complex use cases and still keep a top-notch performance.You will know:- Quick presentation about what FlashList, why we built, etc.- Migrating from FlatList to FlashList- Teaching how to write a performant list- Utilizing the tools provided by FlashList library (mainly the useBenchmark hook)- Using the Flipper plugins (flame graph, our lists profiler, UI & JS FPS profiler, etc.)- Optimizing performance of FlashList by using more advanced props like `getType`- 5-6 sample tasks where we’ll uncover and fix issues together- Q&A with Shopify team
React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
WorkshopFree
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
React Summit Remote Edition 2021React Summit Remote Edition 2021
60 min
How to Build an Interactive “Wheel of Fortune” Animation with React Native
Top Content
Workshop
- Intro - Cleo & our mission- What we want to build, how it fits into our product & purpose, run through designs- Getting started with environment set up & “hello world”- Intro to React Native Animation- Step 1: Spinning the wheel on a button press- Step 2: Dragging the wheel to give it velocity- Step 3: Adding friction to the wheel to slow it down- Step 4 (stretch): Adding haptics for an immersive feel
React Advanced Conference 2023React Advanced Conference 2023
159 min
Effective Detox Testing
Workshop
So you’ve gotten Detox set up to test your React Native application. Good work! But you aren’t done yet: there are still a lot of questions you need to answer. How many tests do you write? When and where do you run them? How do you ensure there is test data available? What do you do about parts of your app that use mobile APIs that are difficult to automate? You could sink a lot of effort into these things—is the payoff worth it?
In this three-hour workshop we’ll address these questions by discussing how to integrate Detox into your development workflow. You’ll walk away with the skills and information you need to make Detox testing a natural and productive part of day-to-day development.
Table of contents:
- Deciding what to test with Detox vs React Native Testing Library vs manual testing- Setting up a fake API layer for testing- Getting Detox running on CI on GitHub Actions for free- Deciding how much of your app to test with Detox: a sliding scale- Fitting Detox into you local development workflow
Prerequisites
- Familiarity with building applications with React Native- Basic experience with Detox- Machine setup: a working React Native CLI development environment including either Xcode or Android Studio
React Summit 2023React Summit 2023
88 min
Deploying React Native Apps in the Cloud
WorkshopFree
Deploying React Native apps manually on a local machine can be complex. The differences between Android and iOS require developers to use specific tools and processes for each platform, including hardware requirements for iOS. Manual deployments also make it difficult to manage signing credentials, environment configurations, track releases, and to collaborate as a team.
Appflow is the cloud mobile DevOps platform built by Ionic. Using a service like Appflow to build React Native apps not only provides access to powerful computing resources, it can simplify the deployment process by providing a centralized environment for managing and distributing your app to multiple platforms. This can save time and resources, enable collaboration, as well as improve the overall reliability and scalability of an app.
In this workshop, you’ll deploy a React Native application for delivery to Android and iOS test devices using Appflow. You’ll also learn the steps for publishing to Google Play and Apple App Stores. No previous experience with deploying native applications is required, and you’ll come away with a deeper understanding of the mobile deployment process and best practices for how to use a cloud mobile DevOps platform to ship quickly at scale.
JSNation 2023JSNation 2023
111 min
Bringing Your Web App to Native With Capacitor
WorkshopFree
So, you have a killer web app you've built and want to take it from your web browser to the App Store. Sure, there are a lot of options here, but most will require you to maintain separate apps for each platform. You want your codebase to be as close as possible across Web, Android, and iOS. Thankfully, with Capacitor, you can take your existing web app and quickly create native iOS and Android apps for distribution on your favorite App Store!
Contents: This workshop is aimed at beginner developers that have an existing web application, or are interested in mobile development. We will go over:- What is Capacitor- How does it compare to other cross-platform solutions- Using Capacitor to build a native application using your existing web code- Tidying up our application for distribution on mobile app stores with naming conventions, icons, splash screens and more