Este proyecto es una aplicación web progresiva (PWA) construida con Next.js 15, TypeScript y TailwindCSS, diseñada para funcionar como una app móvil y de escritorio moderna, rápida y confiable.
- Next.js 15: Framework React para aplicaciones modernas, soportando rutas tipo App Router.
- PWA (Progressive Web App): Instalación en dispositivos móviles, funcionamiento offline, y experiencia similar a una app nativa.
- next-pwa: Integración automática de Service Worker y caché para recursos estáticos y rutas.
- TailwindCSS: Utilidad para estilos rápidos y responsivos.
- Componentes UI: Uso de Radix UI, react-day-picker, y otros componentes modernos.
-
Clona el repositorio:
git clone https://github.com/MarTryxz/arduino-mobile-app.git cd arduino-mobile-app
-
Instala las dependencias:
npm install
-
Desarrolla localmente:
npm run dev
Accede a
http://localhost:3000
en tu navegador.
-
Configura la exportación estática: El archivo
next.config.js
ya incluye:output: 'export',
Esto habilita la exportación estática compatible con Firebase Hosting y otros proveedores de archivos estáticos.
-
Construye la aplicación:
npm run build
Esto generará la carpeta
out/
con los archivos listos para producción.
-
Instala Firebase CLI:
npm install -g firebase-tools
-
Inicializa Firebase en tu proyecto:
firebase login firebase init
- Elige Hosting.
- Selecciona tu proyecto.
- Carpeta pública:
out
- No sobrescribas
index.html
si te pregunta.
-
Despliega:
firebase deploy
- Accede a la app desde el navegador móvil.
- El navegador mostrará la opción "Agregar a la pantalla de inicio".
- Una vez agregada, funcionará como una app nativa, incluso offline.
/app
— Rutas y páginas principales (App Router)/components/ui
— Componentes reutilizables de UI/public
— Archivos públicos, imágenes, manifest.json, sw.js/styles
— Estilos globalesnext.config.js
— Configuración de Next.js y next-pwapackage.json
— Dependencias y scripts
- next: 15.2.4
- next-pwa: ^5.6.0
- react: ^18
- react-dom: ^18
- tailwindcss: ^3.4.17
- react-day-picker: ^9.6.7
- radix-ui: Varios paquetes para UI accesible
Si quieres empaquetar la aplicación como app móvil (Android/iOS) usando Capacitor, asegúrate de que la configuración apunte a la carpeta correcta donde Next.js exporta los archivos estáticos.
-
Crea o edita el archivo
capacitor.config.ts
en la raíz del proyecto:export default { webDir: "out", appId: "com.tuempresa.arduinomobile", appName: "Arduino Mobile App" };
Nota:
webDir
debe serout
, ya que es la carpeta generada pornpm run build
. -
Después de construir el proyecto (
npm run build
), ejecuta los comandos de Capacitor para sincronizar y abrir la app en la plataforma deseada:npx cap sync npx cap open android # o ios
- Si usas funcionalidades dinámicas (SSR, API routes), necesitarás un entorno con Node.js (Vercel, etc). Para sitios puramente estáticos, Firebase Hosting es suficiente.
- El Service Worker (
sw.js
) es generado y gestionado automáticamente pornext-pwa
en producción. - Consulta la documentación oficial de Next.js y next-pwa para personalizaciones avanzadas.
MIT