Saltar al contenido

Lección 5 de 20 · Lectura y práctica

Quiz: Fundamentos de React Native y Expo

Tipo de lección: QuizConcepto claveReact Native con Expo es un framework que permite desarrollar aplicaciones móviles nativas para iOS y Android utilizando JavaScript y React. A diferencia de las aplicaciones web, React Native.

Del concepto a la práctica

Taller de esta lección

Un quiz técnico debe comprobar decisiones, no definiciones memorizadas. Usa el caso de una ficha que muestra un nombre, una imagen local y un precio. La respuesta correcta depende de la responsabilidad de cada componente: View organiza, Text muestra texto, Image representa imágenes y StyleSheet agrupa estilos.

Ejemplo resuelto

  1. Pregunta qué componente puede contener la ficha completa: View.

  2. Pregunta dónde colocar el nombre: Text.

  3. Pregunta qué opción permite reutilizar el espaciado: una regla de StyleSheet.

  4. Pide justificar por qué un precio debe estar dentro de Text. Un error frecuente es aceptar como correcta una respuesta que mezcla React Native con etiquetas HTML. Corrígelo indicando que la interfaz usa componentes nativos de React Native, aunque el código siga siendo JSX.

Pruébalo

Escribe cuatro preguntas con tres opciones cada una sobre una tarjeta de producto, y marca una sola respuesta válida por pregunta.

Comprueba tu resultado

La clave debe ser inequívoca: View, Text, Image y StyleSheet aparecen una vez como respuesta correcta, y cada explicación relaciona componente con responsabilidad concreta.

Clave completa del cuestionario

  1. ¿Qué agrupa tarjeta: View, div o StyleSheet? View.

  2. ¿Dónde va el nombre: View directamente, Text o Image? Text.

  3. ¿Qué representa el recurso gráfico: Image, TextInput o useState? Image.

  4. ¿Qué agrupa reglas reutilizadas: StyleSheet, navegación o fetch? StyleSheet.

Esta clave cumple una aparición de cada responsabilidad, con tres opciones concretas por pregunta. Añade dos comprobaciones de entorno: los comandos actuales usan create-expo-app y npx expo start; Fast Refresh actualiza desarrollo y no publica una app. JSX de React Native describe sus componentes, y React Native Web puede adaptarlos a web; esa posibilidad no autoriza usar div en una pantalla destinada a iOS/Android.

No confundas agrupación visual con almacenamiento: View no guarda productos y StyleSheet no contiene estado. Si una imagen no se ve, revisa recurso, medidas, carga y errores; cambiar Text a Image no corrige una ruta inexistente. La aritmética del fixture de la lección3 es850centavos→8.50, no850unidades monetarias. Explica cada respuesta con lo que produce en pantalla. El cuestionario añadido puede evaluarse manualmente, sin afirmar que alteró el motor de XP o preguntas interactivas existentes.

Cuatro comprobaciones de accesibilidad: imagen con texto alternativo, foco de teclado, formulario etiquetado y estructura HTML semántica.
CursaloMapa de práctica
Accesibilidad: cuatro comprobaciones

El texto alternativo comunica el propósito de una imagen. La navegación por teclado necesita un foco visible; los campos necesitan etiquetas y la página una estructura semántica. Estas comprobaciones ayudan a detectar barreras y no sustituyen una auditoría completa.

Ver la infografía en tamaño completo ↗

Tipo de lección: Quiz

Concepto clave

React Native con Expo es un framework que permite desarrollar aplicaciones móviles nativas para iOS y Android utilizando JavaScript y React. A diferencia de las aplicaciones web, React Native compila componentes en elementos nativos de cada plataforma, lo que resulta en un rendimiento similar al de las aplicaciones desarrolladas con Swift o Kotlin. Expo actúa como una capa de abstracción que simplifica la configuración y el despliegue, proporcionando herramientas como Expo CLI y servicios en la nube para construir y distribuir aplicaciones sin necesidad de configurar entornos nativos complejos.

Una analogía útil es pensar en React Native como un traductor que convierte tus instrucciones en JavaScript a comandos que iOS y Android entienden nativamente, mientras que Expo es el asistente que maneja toda la logística de configuración y despliegue, permitiéndote enfocarte en la lógica de la aplicación. Esto es crucial para desarrolladores que buscan eficiencia y rapidez en el desarrollo multiplataforma, manteniendo la calidad y rendimiento de una app nativa.

Cómo funciona en la práctica

Para comenzar un proyecto con React Native y Expo, primero necesitas instalar Expo CLI globalmente usando npm o yarn. Luego, creas un nuevo proyecto con el comando expo init, que genera una estructura básica con archivos como App.js, package.json y una carpeta de assets. Expo maneja automáticamente la configuración de dependencias y entornos, permitiéndote ejecutar la aplicación en un emulador o dispositivo físico mediante Expo Go, una app que puedes descargar desde las tiendas oficiales.

Por ejemplo, al crear un proyecto, Expo configura un servidor de desarrollo que sincroniza los cambios en tiempo real, similar a como funciona Hot Reload en entornos web. Esto acelera el ciclo de desarrollo, ya que puedes ver modificaciones inmediatamente sin recompilar toda la aplicación. Además, Expo proporciona APIs preconstruidas para acceder a funcionalidades del dispositivo como la cámara o notificaciones push, reduciendo la necesidad de código nativo personalizado.

Codigo en accion

Aquí tienes un ejemplo básico de un componente en React Native con Expo que muestra un texto y un botón:

import React from 'react';
import { View, Text, Button, StyleSheet } from 'react-native';

export default function App() {
  const [count, setCount] = React.useState(0);

  return (
    
      Contador: {count}
      
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
  text: {
    fontSize: 20,
    marginBottom: 20,
  },
});

Refactorización para mejorar la legibilidad: en lugar de definir estilos inline, usa StyleSheet para un mejor rendimiento y mantenibilidad. Antes, podrías tener estilos directamente en el componente, pero después, como se muestra arriba, se extraen a un objeto StyleSheet.

Errores comunes

  • No cerrar el servidor de Expo al cambiar de proyecto: Esto puede causar conflictos de puertos. Siempre detén el servidor con Ctrl+C antes de iniciar uno nuevo.
  • Usar componentes web en lugar de nativos: Por ejemplo, intentar usar div en vez de View. React Native tiene su propio conjunto de componentes optimizados para móviles.
  • Ignorar el manejo de estados asíncronos: En operaciones como llamadas a APIs, no usar estados de carga o error puede llevar a interfaces bloqueadas. Implementa estados como loading y error para una mejor experiencia de usuario.
  • No probar en ambos dispositivos iOS y Android: Las diferencias en estilos y comportamientos pueden causar bugs. Usa emuladores o dispositivos reales para asegurar compatibilidad.
  • Olvidar actualizar dependencias de Expo: Las versiones desactualizadas pueden generar errores. Ejecuta expo upgrade regularmente para mantener el proyecto al día.

Checklist de dominio

  • Puedo crear y ejecutar un proyecto de React Native con Expo desde cero.
  • Comprendo la diferencia entre componentes de React Native y React web.
  • Sé cómo usar estados y efectos en componentes funcionales.
  • Puedo estilar componentes usando StyleSheet y Flexbox.
  • Sé cómo depurar errores comunes usando las herramientas de desarrollo de Expo.
  • Puedo integrar APIs de Expo, como Camera o Notifications, en una aplicación.
  • Comprendo el proceso de construcción y despliegue de una app con Expo EAS.

Crear una app de lista de tareas con React Native y Expo

En este ejercicio, desarrollarás una aplicación básica de lista de tareas para practicar los fundamentos de React Native con Expo. Sigue estos pasos:

  1. Crea un nuevo proyecto Expo usando el comando expo init TodoApp y selecciona la plantilla en blanco.
  2. En el archivo App.js, implementa un estado para manejar una lista de tareas, inicializado como un array vacío.
  3. Añade un componente TextInput para que los usuarios puedan escribir nuevas tareas y un Button para agregarlas a la lista.
  4. Muestra la lista de tareas usando FlatList, donde cada elemento tenga un texto y un botón para eliminarlo.
  5. Estiliza la interfaz con StyleSheet, asegurando que sea responsive y fácil de usar.
  6. Prueba la aplicación en un emulador o dispositivo físico usando Expo Go, verificando que las tareas se agreguen y eliminen correctamente.
Pistas
  • Usa useState para manejar el estado de la lista de tareas y el texto del input.
  • FlatList requiere una prop 'data' y una función 'renderItem' para mostrar los elementos.
  • Para eliminar una tarea, filtra el array de estado excluyendo el elemento por su índice o id.

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.

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.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.