CodeForge

Angular 21 de Cero a Experto / Estado a gran escala

Reto: un SignalStore de features para Mi Bolsillo

Reto40 min100 XP

Este reto integra todo el módulo: vas a construir un SignalStore completo para "Mi Bolsillo" —con estado, derivados, acciones y helpers de entidades— usando el patrón de composición with* que aprendiste, y probándolo en vivo. Cuando funcione, entenderás por dentro cómo NgRx SignalStore organiza el estado de una feature, y tendrás el store definitivo de tu app.

Reto

Un mini-SignalStore componible con entidades

Difícil40 min100 XP(×2 sin mirar la solución)

Qué debes construir

Un signalStore mínimo (el motor) y con él, un BolsilloStore que tenga:

  1. withState: gastos (colección de entidades por id), filtro (categoría activa), presupuesto.
  2. withComputed: total, saldo, gastosVisibles (según filtro) y porCategoria.
  3. withMethods: agregar, eliminar, filtrarPor, fijarPresupuesto, todos con patchState.
  4. withEntities (tu propio bloque): un helper reutilizable que maneje la colección por id con addEntity/removeEntity, para no repetir el filter/spread.

Reglas

  • El motor signalStore debe COMPONER bloques with* (cada uno añade al store).
  • patchState actualiza solo las claves que recibe, inmutablemente.
  • Los derivados deben reaccionar solos a los cambios de estado.

40:00

Cuando estés listo, arranca el reloj.

Qué sigue

Terminaste el módulo de estado a gran escala: sabes clasificar el estado, estructurarlo con SignalStore, organizar la app por features y usar facades con criterio. Tu app tiene una columna vertebral de estado sólida. El próximo módulo la lleva a la última frontera: el tiempo real —WebSockets, Socket.io, streams en vivo— para que "Mi Bolsillo" se actualice al instante cuando algo cambia, incluso desde otro dispositivo. La antesala del proyecto final.