Aplicación móvil en React Native + TypeScript para la gestión integral de compañías, tareas personales y recordatorios fiscales. Gesaccol centraliza la información crítica, sincroniza notificaciones locales y ofrece herramientas visuales para priorizar vencimientos y compromisos.
- Paneles de compañías con métricas clave (pendientes, vencidas, próximas) y filtros avanzados.
- Gestión de recordatorios con integración a canales de notificaciones locales usando
@notifee/react-native. - Calendarios empresariales configurables y sincronización automática de eventos.
- Módulo de tareas personales con recurrencias, prioridades, estados y alertas minuto a minuto.
- Experiencia adaptativa gracias al hook
useResponsivey soporte total para modo claro/oscuro. - Flujo de autenticación listo para Google Sign-In mediante
GOOGLE_WEB_CLIENT_ID.
- React Native 0.82 · React 19 usando componentes funcionales y hooks.
- TypeScript con tipados compartidos en
src/types. - React Navigation (stack + bottom tabs) para flujos multi-módulo.
- NativeWind/TailwindCSS para estilos responsivos declarativos.
- Context API (
AuthContext,ThemeContext) para estado global. - Servicios HTTP organizados en
src/servicespara empresas, recordatorios, tareas y paneles.
- Node.js >= 20 y npm (o pnpm/yarn) actualizados.
- JDK 17, Android Studio + Android SDK Platform 34.
- Xcode 15.4+ y CocoaPods (solo macOS/iOS).
- Dispositivo o emulador configurado, así como Watchman y Ruby Bundler opcionalmente.
- Instala dependencias
npm install # ó pnpm install - Configura variables de entorno
- Duplica
.env.example(si aplica) o crea.env. - Define
GOOGLE_WEB_CLIENT_ID(se usa ensrc/config/env.ts).
- Duplica
- Inicia Metro
npm start
- Ejecuta la app
npm run android npm run ios # recuerda `bundle install && bundle exec pod install` la primera vez
npm start· Inicia Metro.npm run android/npm run ios· Compila y despliega en el emulador/dispositivo.npm run lint· Ejecuta ESLint.npm test· Corre Jest.npm run generate-icons· Genera íconos adaptativos desdescripts/generate-icons.js.npm run build:apk· Empaqueta y copia unGesaccol-debug.apkdentro dereleases/.
src/
├─ components/ # Animaciones, botones y modales reutilizables
├─ config/ # Env vars, tipos de calendario
├─ context/ # Tema y autenticación
├─ hooks/ # Hook de diseño responsivo
├─ navigation/ # Stack + tabs
├─ screens/ # Companies, Reminders, PersonalTasks, Dashboard…
├─ services/ # Llamadas HTTP y lógica de sincronización
└─ types/ # Tipados compartidos
notificationsServicecrea canales en Android, solicita permisos y agenda recordatorios/tareas.CompaniesScreenyPersonalTasksScreenprograman alertas al refrescar datos para mantener sincronía incluso fuera de la app.- Ajusta los tiempos y textos de las notificaciones directamente en
src/services/notificationsService.ts.
npm testLas pruebas actuales utilizan Jest y @testing-library/react-native. Agrega specs en __tests__/ o co-localizados según el módulo.
- Android:
npm run build:apkproducereleases/Gesaccol-debug.apk. - iOS: abre
ios/AppRecordatoriosMobile.xcworkspacey genera el esquemaAppRecordatoriosMobiledesde Xcode (usar el mismoGOOGLE_WEB_CLIENT_IDen los entitlements correspondientes).
Seguimos SemVer (MAJOR.MINOR.PATCH):
VERSIONypackage.jsonmarcan la versión vigente (actualmente1.0.0).- Documenta cambios en
CHANGELOG.mdbajo el bloqueUnreleasedy muévelos al crear una etiqueta. - Flujo sugerido:
- Actualiza código y documentación.
- Edita
CHANGELOG.mdyVERSION/package.json. - Commit
release: vX.Y.Zy crea el taggit tag vX.Y.Z. - Ejecuta los scripts de build (
npm run build:apk, archivado iOS) y adjunta binarios en GitHub Releases.
- Reserva incrementos
MAJORpara cambios incompatibles,MINORpara features visibles yPATCHpara fixes sin breaking changes. - El workflow
Mobile Releaseen.github/workflows/release.ymlse ejecuta al crear tagsv*.*.*: corre lint/tests, genera el APK debug, el build iOS para simulador y adjunta ambos como artefactos en GitHub Releases automáticamente.
¿Preguntas o nuevas ideas? Abre un issue o empieza un PR. 👋