Construyendo una aplicación móvil con Expo, EAS y React Native

Rate this content
Bookmark

Nunca ha sido tan fácil para los desarrolladores de React construir aplicaciones nativas para iOS y Android. En esta charla, veremos lo rápido que puedes lanzar tu aplicación con las herramientas de código abierto de Expo, Expo Application Services (EAS) y React Native. También discutiremos algunas de las mejoras recientes que hemos realizado y lo que viene a continuación.

This talk has been presented at React Summit Remote Edition 2021, check out the latest edition of this React Conference.

FAQ

React Native es una opción recomendada para construir aplicaciones para Android y iOS utilizando React para la web, ya que permite usar la misma API de componentes de React, integrar bibliotecas de gestión de estado y otras herramientas de desarrollo de React.

Es necesario tener familiaridad con herramientas y código nativos, como Xcode, Cocoapods, Android Studio y Gradle, y posiblemente escribir código nativo dependiendo del proyecto.

Xcode actúa como un puente en el desarrollo de React Native, permitiendo escribir aplicaciones solo en TypeScript o JavaScript y configurarlas en JSON, facilitando la gestión de la complejidad del desarrollo multiplataforma.

Turtle es una herramienta de compilación que toma la aplicación y la empaqueta en un binario independiente, copiando el código JavaScript y los activos en los recursos de una aplicación shell, y luego firma la aplicación con las credenciales del desarrollador.

EAS Build es un servicio que permite construir y firmar cualquier proyecto React Native, configurando una máquina virtual para compilar el proyecto, lo que facilita una experiencia de desarrollo personalizada y profundamente integrada con Expo y React Native.

Las actualizaciones se manejan a través de Expo publish, permitiendo actualizar el código JavaScript de la aplicación a través del aire, similar a cómo se actualizaría un sitio web.

El Cliente de Desarrollo de Expo es una biblioteca de React Native que ofrece la misma experiencia que Expo Go pero con un tiempo de ejecución personalizado, permitiendo a los desarrolladores construir y probar código nativo dentro del flujo de trabajo de Expo.

Expo es un conjunto de proyectos de código abierto y servicios alojados que simplifican el desarrollo de aplicaciones React Native, ofreciendo un tiempo de ejecución con APIs integradas para funcionalidades como notificaciones y hápticos.

El tiempo de ejecución en Expo incluye una biblioteca estándar y APIs que se pueden modificar mediante solicitudes de extracción al repositorio de XO en GitHub, permitiendo personalizar el funcionamiento según las necesidades del proyecto.

Brent Vatne
Brent Vatne
35 min
14 May, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla proporciona una visión general de la construcción de aplicaciones React Native con Expo y Xcode. Cubre proyectos gestionados por Expo, XO, Turtle, personalización de tiempo de ejecución, Expo Development Client y EAS. La charla también menciona las ventajas de Expo Updates, el enfoque en un tiempo de ejecución personalizable y la adición de bibliotecas nativas. Se recomiendan aplicaciones y bibliotecas favoritas de React Native, y los objetivos futuros incluyen mejorar el rendimiento y mejorar la experiencia de desarrollo a través de EAS.

1. Introducción a React Native y Xcode

Short description:

Esta charla proporciona una descripción general de la construcción de aplicaciones React Native con Expo y EAS. React Native es una buena opción para construir aplicaciones Android, iOS y web. Es necesario tener familiaridad con el código y las herramientas nativas, y Xcode puede ayudar con eso. Exploraremos lo que Xcode puede hacer, sus abstracciones y cómo resuelve las limitaciones.

Hola a todos. Mi nombre es Brent. Soy un Gerente de Ingeniería en Expo. Esta charla es una descripción general de alto nivel de la construcción de aplicaciones React Native con Expo y EAS. No vamos a hablar de cómo manejar gestos y animaciones, navegación, ni siquiera vamos a hablar de una sola línea de código React Native. Hay excelentes recursos sobre estos temas a los que enlazaré al final. Esta charla trata más sobre el proceso. Si quieres construir una aplicación para Android y iOS y usar React en la web, React Native probablemente sea una buena opción. Gran parte del conocimiento será aplicable a React Native. La API de componentes es la misma, puedes seguir usando tu biblioteca de gestión de estado favorita, las herramientas de desarrollo de React y muchas otras cosas. Otra cosa que React Native tiene en común con React DOM es que hay un núcleo pequeño y sin opiniones. Gran parte del trabajo que necesitas hacer para construir una aplicación web existe fuera de React DOM y en mayor medida con React Native. React Native no pretende proporcionar una abstracción de todo lo que necesitas hacer para construir una aplicación. Esto significa que necesitarás tener cierta familiaridad con el código y las herramientas nativas. Tendrás que aprender algunas cosas sobre Xcode, Cocoapods, Android Studio y Gradle. Tendrás que poder distinguir entre una clave de almacén y un certificado de distribución. Dependiendo de lo que estés construyendo, es posible que incluso necesites familiarizarte con la escritura de código nativo. Puedes manejar esto de varias formas. Puedes ampliar el conjunto de habilidades nativas en tu equipo de desarrolladores de React. Puedes traer expertos nativos para gestionar el lado nativo, y puedes usar las herramientas de Xcode. Xcode continúa donde React Native termina y te ayuda a ser productivo en React. Xcode es un conjunto de proyectos de código abierto y servicios alojados para ayudarte a manejar la complejidad accidental del desarrollo de aplicaciones multiplataforma.

En el resto de esta charla, veremos lo que Xcode puede hacer, cómo funcionan sus abstracciones, cómo estas abstracciones a veces pueden quedarse cortas y lo que estamos haciendo para resolver estas limitaciones. Entonces, he dicho que Xcode continúa donde React Native termina. Permíteme explicarlo. Xcode hace posible escribir tu aplicación solo en TypeScript o JavaScript y configurarla en JSON. Observa los directorios de Android e iOS en la terminal a la izquierda. Para ejecutar este proyecto, abriríamos los directorios de proyecto de Android e iOS en Android Studio y Xcode, luego compilaríamos y ejecutaríamos los proyectos. Pero no tenemos ningún proyecto nativo en la terminal a la derecha.

2. Proyectos gestionados de Expo y XO

Short description:

Esta es una descripción general de cómo funciona un proyecto gestionado de Expo. Implica abrir el proyecto en Android o iOS, descargar Xcode e instalarlo como un navegador web para el desarrollo de React Native. El tiempo de ejecución, proporcionado por Expo, incluye APIs para notificaciones y hápticos. El tiempo de ejecución es similar a la biblioteca estándar de ECMAScript en los navegadores web y se puede ampliar con extensiones nativas. Los proyectos gestionados de XO permiten cambiar el tiempo de ejecución enviando solicitudes de extracción al repositorio de XO. Otras aplicaciones de React Native requieren módulos nativos y recompilación. La instalación de XO permite instalar bibliotecas sin recompilar el código nativo. XO Go y XO publish proporcionan capacidades de vista previa y uso compartido. Snack es un entorno de sandbox para editar y ejecutar código. XpoBuild Android o iOS empaqueta la aplicación en un binario independiente para enviarlo a una tienda.

Esto se parece mucho a un proyecto de React DOM. Así es como se ve un proyecto gestionado de Expo. Lo abres en Android o iOS, descargas una aplicación de la App Store llamada Xcode e instalas. Esto es como un navegador web para desarrollar aplicaciones React Native. Incluye el tiempo de ejecución con un amplio conjunto de APIs construidas por el equipo de Expo para agregar capacidades como notificaciones y hápticos. Y el propio React Native.

Permítanme aclarar lo que quiero decir con un tiempo de ejecución. En un navegador web, el tiempo de ejecución incluye la biblioteca estándar de ECMAScript junto con las APIs web estándar. Como desarrollador que ejecuta un sitio web, no puedes cambiarlo sin enviar una solicitud de extracción al motor del navegador. El tiempo de ejecución está controlado por los proveedores de navegadores. Incluye todas las APIs que puedes usar desde JavaScript. Puedes reconocer estas como las funciones que se convierten en código nativo entre corchetes cuadrados cuando las registras constantemente. Exponen el acceso al DOM, la red y otras cosas como la ubicación del dispositivo. En Node.js, tienes la biblioteca estándar de Node en lugar de las APIs web y puedes ampliar el tiempo de ejecución mediante la creación de extensiones nativas en lenguajes como C++ o RAS. En un navegador web, el tiempo de ejecución es proporcionado por los proveedores de navegadores. En proyectos gestionados de XO, el tiempo de ejecución es proporcionado por XO. Puedes cambiarlo enviando una solicitud de extracción al repositorio de XO en GitHub. En otras aplicaciones de React Native, para cualquier cosa más allá de las APIs principales, necesitas crear o instalar módulos nativos escritos en lenguajes como Swift o Kotlin y recompilar la aplicación para poder usarlos con JavaScript. Para instalar una biblioteca en un proyecto gestionado de XO, ejecuta XO install. XO install toma una versión de la biblioteca que coincida con la versión del tiempo de ejecución utilizada por el proyecto. Llamamos a la versión del tiempo de ejecución la versión del SDK de XO. Podemos usar la biblioteca desde JavaScript sin recompilar ningún código nativo. Todos estos pueden previsualizar tu trabajo en progreso en XO Go. Para hacer esto, agrega a tu colega a tu equipo en el sitio web de XO y publica tu aplicación con XO publish. Luego, comparte la URL. Puedes configurar esto para que se ejecute automáticamente en las solicitudes de extracción y obtener un flujo de trabajo de vista previa similar a lo que puedes hacer en la web con servicios como Netlify y Vercel. También puedes compartir código en Snack. Es un tipo de entorno de sandbox que te permite editar y ejecutar código directamente en un navegador web. Cuando estés listo para enviar tu aplicación, ejecuta XpoBuild Android o iOS. Llamamos a esta herramienta de compilación Turtle porque toma tu aplicación y la empaqueta en un binario precompilado.

QnA

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

Compilador React Forget - Entendiendo React Idiomático
React Advanced 2023React Advanced 2023
33 min
Compilador React Forget - Entendiendo React Idiomático
Top Content
Joe Savona
Mofei Zhang
2 authors
The Talk discusses React Forget, a compiler built at Meta that aims to optimize client-side React development. It explores the use of memoization to improve performance and the vision of Forget to automatically determine dependencies at build time. Forget is named with an F-word pun and has the potential to optimize server builds and enable dead code elimination. The team plans to make Forget open-source and is focused on ensuring its quality before release.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
This Talk introduces the Epic Stack, a project starter and reference for modern web development. It emphasizes that the choice of tools is not as important as we think and that any tool can be fine. The Epic Stack aims to provide a limited set of services and common use cases, with a focus on adaptability and ease of swapping out tools. It incorporates technologies like Remix, React, Fly to I.O, Grafana, and Sentry. The Epic Web Dev offers free materials and workshops to gain a solid understanding of the Epic Stack.

Workshops on related topic

Presentando FlashList: Construyamos juntos una lista performante en React Native
React Advanced 2022React Advanced 2022
81 min
Presentando FlashList: Construyamos juntos una lista performante en React Native
Top Content
WorkshopFree
David Cortés Fulla
Marek Fořt
Talha Naqvi
3 authors
En esta masterclass aprenderás por qué creamos FlashList en Shopify y cómo puedes usarlo en tu código hoy. Te mostraremos cómo tomar una lista que no es performante en FlatList y hacerla performante usando FlashList con mínimo esfuerzo. Usaremos herramientas como Flipper, nuestro propio código de benchmarking, y te enseñaremos cómo la API de FlashList puede cubrir casos de uso más complejos y aún así mantener un rendimiento de primera categoría.Sabrás:- Breve presentación sobre qué es FlashList, por qué lo construimos, etc.- Migrando de FlatList a FlashList- Enseñando cómo escribir una lista performante- Utilizando las herramientas proporcionadas por la biblioteca FlashList (principalmente el hook useBenchmark)- Usando los plugins de Flipper (gráfico de llamas, nuestro perfilador de listas, perfilador de UI & JS FPS, etc.)- Optimizando el rendimiento de FlashList utilizando props más avanzados como `getType`- 5-6 tareas de muestra donde descubriremos y solucionaremos problemas juntos- Preguntas y respuestas con el equipo de Shopify
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Cómo construir una animación interactiva de “Rueda de la Fortuna” con React Native
React Summit Remote Edition 2021React Summit Remote Edition 2021
60 min
Cómo construir una animación interactiva de “Rueda de la Fortuna” con React Native
Top Content
Workshop
Oli Bates
Oli Bates
- Introducción - Cleo & nuestra misión- Lo que queremos construir, cómo encaja en nuestro producto & propósito, revisar los diseños- Comenzando con la configuración del entorno & “hola mundo”- Introducción a la animación de React Native- Paso 1: Hacer girar la rueda al presionar un botón- Paso 2: Arrastrar la rueda para darle velocidad- Paso 3: Agregar fricción a la rueda para frenarla- Paso 4 (extra): Agregar hápticos para una sensación inmersiva
Despliegue de aplicaciones React Native en la nube
React Summit 2023React Summit 2023
88 min
Despliegue de aplicaciones React Native en la nube
WorkshopFree
Cecelia Martinez
Cecelia Martinez
Desplegar aplicaciones React Native manualmente en una máquina local puede ser complejo. Las diferencias entre Android e iOS requieren que los desarrolladores utilicen herramientas y procesos específicos para cada plataforma, incluidos los requisitos de hardware para iOS. Los despliegues manuales también dificultan la gestión de las credenciales de firma, las configuraciones de entorno, el seguimiento de las versiones y la colaboración en equipo.
Appflow es la plataforma de DevOps móvil en la nube creada por Ionic. Utilizar un servicio como Appflow para construir aplicaciones React Native no solo proporciona acceso a potentes recursos informáticos, sino que también simplifica el proceso de despliegue al proporcionar un entorno centralizado para gestionar y distribuir tu aplicación en múltiples plataformas. Esto puede ahorrar tiempo y recursos, permitir la colaboración, así como mejorar la confiabilidad y escalabilidad general de una aplicación.
En este masterclass, desplegarás una aplicación React Native para su entrega en dispositivos de prueba Android e iOS utilizando Appflow. También aprenderás los pasos para publicar en Google Play y Apple App Stores. No se requiere experiencia previa en el despliegue de aplicaciones nativas, y obtendrás una comprensión más profunda del proceso de despliegue móvil y las mejores prácticas para utilizar una plataforma de DevOps móvil en la nube para enviar rápidamente a gran escala.
Pruebas Efectivas con Detox
React Advanced 2023React Advanced 2023
159 min
Pruebas Efectivas con Detox
Workshop
Josh Justice
Josh Justice
Así que has configurado Detox para probar tu aplicación React Native. ¡Buen trabajo! Pero aún no has terminado: todavía hay muchas preguntas que necesitas responder. ¿Cuántas pruebas escribes? ¿Cuándo y dónde las ejecutas? ¿Cómo te aseguras de que hay datos de prueba disponibles? ¿Qué haces con partes de tu aplicación que utilizan APIs móviles que son difíciles de automatizar? Podrías invertir mucho esfuerzo en estas cosas, ¿vale la pena?
En esta masterclass de tres horas abordaremos estas preguntas discutiendo cómo integrar Detox en tu flujo de trabajo de desarrollo. Saldrás con las habilidades e información que necesitas para hacer de las pruebas Detox una parte natural y productiva del desarrollo diario.
Tabla de contenidos:
- Decidir qué probar con Detox vs React Native Testing Library vs pruebas manuales- Configuración de una capa de API falsa para pruebas- Cómo hacer que Detox funcione en CI en GitHub Actions de forma gratuita- Decidir cuánto de tu aplicación probar con Detox: una escala móvil- Integración de Detox en tu flujo de trabajo de desarrollo local
Prerrequisitos
- Familiaridad con la construcción de aplicaciones con React Native- Experiencia básica con Detox- Configuración de la máquina: un entorno de desarrollo CLI de React Native en funcionamiento que incluye Xcode o Android Studio
Llevando tu aplicación web a nativa con Capacitor
JSNation 2023JSNation 2023
111 min
Llevando tu aplicación web a nativa con Capacitor
WorkshopFree
Mike Hartington
Mike Hartington
Entonces, tienes una increíble aplicación web que has construido y quieres llevarla de tu navegador web a la App Store. Seguro, hay muchas opciones aquí, pero la mayoría requerirá que mantengas aplicaciones separadas para cada plataforma. Quieres que tu código base sea lo más cercano posible en la Web, Android e iOS. Afortunadamente, con Capacitor, puedes tomar tu aplicación web existente y crear rápidamente aplicaciones nativas para iOS y Android para distribuir en tu App Store favorita.
Contenido: Este masterclass está dirigido a desarrolladores principiantes que tienen una aplicación web existente o están interesados en el desarrollo móvil. Repasaremos:- ¿Qué es Capacitor?- ¿Cómo se compara con otras soluciones multiplataforma?- Usando Capacitor para construir una aplicación nativa utilizando tu código web existente- Organizando nuestra aplicación para su distribución en tiendas de aplicaciones móviles con convenciones de nombres, iconos, pantallas de inicio y más