Empezar tutorial interactivo

← Volver a Proyectos

Catálogo de Películas con Zustand

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías

📦 Estado global esperado (shape)

Para este proyecto ampliaremos el catálogo de películas usando Zustand para manejar estados globales sencillos: favoritos, filtro por categoría y búsqueda por título.

Requisitos previos

  • App base funcionando con React Native CLI + React Navigation.
  • movies.ts con datos locales.
  • Zustand ya instalado e integrado.

📦 Estado global esperado (shape)

El store debe exponer, como mínimo:

  • favorites: number[]
  • selectedCategory: string | null
  • search: string
  • Acciones: toggleFavorite(id), clearFavorites(), setCategory(cat), setSearch(q)

Usa selectores (y shallow cuando aplique) para evitar re-renders innecesarios.

📝 Instrucciones

  1. Crea la funcionalidad de Favoritos

    • En FavoritesScreen: listar solo películas cuyos IDs estén en favorites.
    • En MovieCard: mostrar badge/ícono cuando id sea favorito (lectura del store con selector).
  2. Filtro por categoría

    • En CategoryMoviesScreen: mostrar Category: <cat> y filtrar movies por la categoría del store.
  3. Búsqueda por título

    • Filtra la lista de Home por coincidencia parcial de title (case-insensitive).

💡 Tips

  • Suscríbete solo al slice que necesitas: useMoviesStore((s) => s.favorites).
  • Para filtros encadenados: aplica primero selectedCategory y luego search.
  • Si notas re-renders en listas, memoriza ítems (React.memo) y usa claves estables.

Regístrate para obtener acceso gratis a este proyecto

Lo usaremos para darte acceso a la comunidad.
¿Ya tienes una cuenta? Inicia sesión aquí.

Al registrarte estás aceptando nuestros Términos y condiciones y Política de privacidad.

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías

Regístrate para obtener acceso gratis a este proyecto

Lo usaremos para darte acceso a la comunidad.
¿Ya tienes una cuenta? Inicia sesión aquí.

Al registrarte estás aceptando nuestros Términos y condiciones y Política de privacidad.

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías

Dificultad

  • intermediate

Duración promedio

2 hrs

Tecnologías