Lección 1 de 20 · Lectura y práctica
Instalación y configuración de Expo CLI y entorno de desarrollo
Concepto claveExpo CLI es el interfaz de línea de comandos que actúa como el control central para crear, desarrollar y desplegar aplicaciones React Native. Imagina que estás construyendo una casa: Expo CLI sería el arquitecto que.
Del concepto a la práctica
Taller de esta lección
La preparación del entorno debe dejar una ruta reproducible, no una colección de comandos recordados. Separa la creación del proyecto, su arranque y la conexión del dispositivo: si una fase falla, sabrás dónde buscar. En una carpeta vacía, una secuencia mínima puede ser:
npx create-expo-app@latest papelera --template blank
cd papelera
npx expo startEjemplo resuelto
Crea
papeleray conserva el nombre en el registro de pruebas.Ejecuta el servidor y anota si aparece el QR o una dirección local.
Abre el proyecto con el cliente disponible o un emulador autorizado.
Detén el proceso y vuelve a iniciarlo para comprobar que la carpeta es reutilizable. Un error frecuente es instalar un CLI global antiguo y atribuirle todos los fallos al proyecto. Corrígelo usando el comando del proyecto y leyendo el primer mensaje de error, sin borrar archivos al azar.
Pruébalo
Crea entorno-prueba, arráncalo y registra nombre de carpeta, comando ejecutado y pantalla inicial.
Comprueba tu resultado
El resultado esperado es un proyecto nuevo que inicia dos veces, con la misma carpeta y sin modificar dependencias manualmente.
Plantilla, versión y entrada verificables
Para los ejemplos App.js, usa npx create-expo-app@latest papelera --template blank. La plantilla por defecto puede contener Expo Router y su entrada está en archivos de rutas, no necesariamente en App.js. Registra versión de Node LTS compatible, SDK de Expo en package.json y lockfile; resuelve los requisitos de la plantilla actual en vez de asumir que Node16 o un SDK antiguo sirven para latest.
La instalación global expo-cli, expo init y los comandos expo build del material histórico ya no describen el flujo actual. La CLI local se ejecuta dentro del proyecto con npx expo. npx expo install elige dependencias compatibles con su SDK; no arregles un mensaje de incompatibilidad mezclando versiones al azar. Expo Go incluye determinadas capacidades y necesita un SDK compatible; módulos nativos que no contiene requieren un development build. El QR demuestra que el servidor ofreció una conexión, no que la app abrió. Registra dos arranques y el texto observado en cada uno. Detén solo tu proceso al terminar, conservando archivos para repetir la práctica. Plantillas.

Mapa de prácticaUna condición decide qué camino ejecuta el programa. Un bucle repite una operación mientras queden elementos, y termina cuando la lista se agota. Separar ambas ideas ayuda a seguir el flujo y comprobar casos límite.
Ver la infografía en tamaño completo ↗Concepto clave
Expo CLI es el interfaz de línea de comandos que actúa como el control central para crear, desarrollar y desplegar aplicaciones React Native. Imagina que estás construyendo una casa: Expo CLI sería el arquitecto que te proporciona los planos, las herramientas y los permisos necesarios, mientras que React Native es el material de construcción. Sin Expo, tendrías que configurar manualmente Xcode para iOS y Android Studio para Android, un proceso que puede llevar horas y es propenso a errores. Expo abstrae esta complejidad, permitiéndote escribir código JavaScript que se compila en aplicaciones nativas para ambas plataformas.
El entorno de desarrollo con Expo se basa en tres componentes principales: el CLI para comandos locales, el cliente Expo Go en tu dispositivo móvil para pruebas en tiempo real, y los servicios en la nube para builds de producción. Esto crea un flujo de trabajo donde puedes ver cambios instantáneamente sin recompilar la app, similar a cómo un diseñador web usa Live Reload en el navegador. Para desarrolladores intermedios, entender esta arquitectura es crucial porque afecta cómo depuras, pruebas y escalas tus proyectos.
Cómo funciona en la práctica
Vamos a configurar Expo CLI desde cero. Primero, necesitas Node.js instalado (versión 16 o superior). Abre tu terminal y ejecuta el siguiente comando para instalar Expo CLI globalmente:
npm install -g expo-cliUna vez instalado, crea un nuevo proyecto con:
expo init MiPrimeraAppSelecciona la plantilla "blank" para empezar con lo básico. Esto generará una estructura de carpetas con archivos clave como App.js (el punto de entrada), package.json (dependencias) y app.json (configuración de Expo). Luego, inicia el servidor de desarrollo:
cd MiPrimeraApp
expo startEsto abrirá una interfaz en tu navegador con un código QR. Escanéalo con la app Expo Go en tu teléfono (disponible en App Store o Google Play) para ver la app en vivo. Cualquier cambio en App.js se reflejará automáticamente en tu dispositivo, gracias al Hot Reloading de Expo.
Código en acción
Aquí tienes un ejemplo funcional de App.js que demuestra cómo Expo maneja componentes básicos. Antes de modificar, el código por defecto muestra solo un texto:
import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
Open up App.js to start working on your app!
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});Después de refactorizar, añadimos un botón interactivo y un estado simple:
import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View, Button } from 'react-native';
import { useState } from 'react';
export default function App() {
const [count, setCount] = useState(0);
return (
Contador: {count}
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#f0f0f0',
alignItems: 'center',
justifyContent: 'center',
},
text: {
fontSize: 24,
marginBottom: 20,
},
});Este código usa Hooks de React (useState) y componentes nativos de React Native. Al guardar, verás el cambio inmediato en tu dispositivo gracias a Expo.
Errores comunes
- Error de permisos en instalación: Al ejecutar
npm install -g expo-cli, si recibes un error de permisos, usasudoen macOS/Linux o ejecuta PowerShell como administrador en Windows. Mejor aún, configura npm para instalar globalmente sin sudo connpm config set prefix ~/.npm-global. - Problemas con Node.js versiones antiguas: Expo CLI requiere Node.js 16+. Verifica con
node -vy actualiza si es necesario usando un gestor como nvm. - QR no escaneable en Expo Go: Asegúrate de que tu teléfono y computadora estén en la misma red Wi-Fi. Si persiste, en la interfaz de Expo en el navegador, cambia a "Tunnel" en lugar de "LAN".
- Errores de dependencias tras crear proyecto: Si al iniciar con
expo starthay errores de módulos, ejecutanpm installoyarn installen la carpeta del proyecto para reinstalar dependencias. - Configuración incorrecta de app.json: No modifiques app.json sin entender las claves; un error común es cambiar "slug" a un nombre con espacios, lo que causa fallos en builds. Usa solo minúsculas y guiones.
Checklist de dominio
- He instalado Expo CLI globalmente y verificado con
expo --version. - He creado un proyecto nuevo usando
expo inity seleccionado una plantilla apropiada. - He iniciado el servidor de desarrollo con
expo starty escaneado el QR con Expo Go en mi dispositivo. - He modificado App.js para añadir un componente interactivo y visto los cambios en tiempo real.
- He revisado la estructura de carpetas y entendido el propósito de archivos como package.json y app.json.
- He solucionado al menos un error común (ej., permisos o red) durante la configuración.
- Puedo explicar la diferencia entre Expo CLI y React Native en términos de flujo de trabajo.
Configura un proyecto Expo con navegación básica
En este ejercicio, crearás una app Expo con dos pantallas y navegación entre ellas, simulando un caso real como una app de perfil y configuración.
- Crea un nuevo proyecto Expo llamado AppNavegacion usando el comando
expo inity selecciona la plantilla "blank". - Instala la librería de navegación más común para Expo:
npm install @react-navigation/native @react-navigation/stacky luegoexpo install react-native-screens react-native-safe-area-context. - Crea dos componentes en la carpeta del proyecto: PantallaPerfil.js y PantallaConfig.js, cada uno con un texto simple que identifique la pantalla.
- En App.js, configura un navegador de pila (Stack Navigator) que incluya ambas pantallas. Usa
createStackNavigatorde @react-navigation/stack. - Añade un botón en PantallaPerfil que navegue a PantallaConfig usando
navigation.navigate, y otro en PantallaConfig para volver. - Ejecuta
expo starty prueba la navegación en tu dispositivo con Expo Go. Verifica que puedas moverte entre pantallas sin errores.
Pistas
- Recuerda envolver tu app con
en App.js para que la navegación funcione. - Usa el hook useNavigation en los componentes para acceder a la prop navigation si no se pasa directamente.
- Si ves errores de módulos, reinicia el servidor Expo después de instalar dependencias.
Evalua tu comprension
Completa el quiz interactivo de arriba para ganar XP.
Práctica acompañada: Una app que cabe en tu día
Un proyecto pequeño con React Native y Expo. Usa este cuaderno como práctica complementaria de la ruta; el material original de la lección continúa siendo tu referencia.
Práctica: prueba en cuatro condiciones
Completa el flujo con una imagen vertical, una horizontal, cancelando el selector y negando el permiso. Comprueba que la aplicación conserva proporciones y que ningún control queda fuera de alcance. Repite al volver del fondo y al cambiar el tamaño del texto.
Si tu proyecto permite guardar la imagen, verifica por separado el permiso y el resultado de guardado. No muestres «Guardado» antes de que la operación termine. Usa archivos de prueba propios. Para comparar versiones, conserva capturas con el mismo dispositivo, orientación y tamaño de letra.
Comprueba tu entrega
Entrega el repositorio con instrucciones, la lista de versiones y la matriz de dispositivos. Incluye una captura de cada estado y un video propio breve que muestre el recorrido entero, incluida la cancelación. No hace falta publicar una app para demostrar este aprendizaje.
Sigue con React Native con Expo: Desarrollo de Apps Nativas para iOS y Android
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.