Armás el escenario tocando y arrastrando sobre una grilla, y la app calcula automáticamente todas las piezas necesarias para montarlo físicamente:
- Chapones de 2x1 y 1x1 (los paneles que forman la superficie).
- Patas (los apoyos en cada vértice de la estructura).
- Lados de 2m y 1m (los caños/rieles que conectan las patas).
Después de calcular, la grilla muestra el tiling: cómo se acomodan los chapones sobre el área seleccionada, para saber exactamente dónde va cada pieza.
- Tocá una celda para agregarla o quitarla de la selección.
- Arrastrá de una celda a otra para seleccionar un rectángulo completo.
- Tocá Calcular para obtener la lista de piezas y ver el armado sugerido en la grilla.
- Tocá Limpiar para empezar de nuevo.
La lógica de cálculo vive en src/logic/calcular-piezas.ts:
- Tiling: agrupa las celdas seleccionadas priorizando chapones 2x1 horizontales, después 2x1 verticales (casos de borde), y cubre el resto con 1x1.
- Patas y lados: a partir de los chapones, deduce los vértices (patas) y las aristas (lados) sin duplicados.
- Ajuste de lados: si un lado de 2m tiene una pata apoyada justo en su punto medio (por un chapón vecino), se parte en dos lados de 1m, porque no se puede apoyar una pata contra la mitad de un caño de 2m.
- Expo SDK 57 + Expo Router
- React Native 0.86 (New Architecture)
- TypeScript
- EAS Build para generar builds de desarrollo y APKs standalone
npm install
npx expo startDesde ahí podés abrir la app en:
- Expo Go, escaneando el QR (si el proyecto es compatible con la versión de Expo Go instalada).
- Un development build propio (
npx expo start --dev-client), necesario si Expo Go no soporta el SDK o algún módulo nativo del proyecto. - El navegador (
npx expo start --web).
Con eas.json ya configurado en el proyecto:
# Build de desarrollo (requiere expo start --dev-client corriendo)
eas build --profile development --platform android
# Build standalone, con el JS ya empaquetado adentro (no depende de Metro)
eas build --profile preview --platform androidsrc/
├── app/ # Rutas de Expo Router (tabs, layout)
├── components/ # Pantallas y componentes de UI
├── logic/ # Cálculo de piezas (independiente de la UI)
├── constants/ # Tema, colores de marca, espaciados
└── hooks/ # Hooks compartidos (tema, color scheme)
MIT — ver LICENSE.