Claudio para Android
Una app de productividad personal para Android. Supabase guarda los datos, Room los mantiene disponibles sin conexión, y Claudio es la interfaz móvil que lo hace usable en el día a día — con Claude encima para briefings diarios, resúmenes de tareas y un asistente conversacional que además ejecuta.
Stack
- Kotlin
- Jetpack Compose
- Room
- WorkManager
- Supabase
- Claude API
Qué hace
- Pantalla principal con las tareas del día, filtrables por prioridad y estado, con briefing diario generado por Claude
- Gestión completa de tareas sincronizadas con Supabase — prioridad, estado, fechas, notas, proyecto vinculado, snooze
- Seguimiento de iniciativas con descripción, estado, fecha objetivo, barra de progreso y sparkline de check-ins
- Asistente de IA conversacional (Ask Claudio) con contexto completo de tareas e iniciativas para consultas en lenguaje natural
- 15 herramientas agénticas ejecutables desde la conversación — crear, actualizar, posponer y borrar tareas e iniciativas; `create_calendar_event` (con asistentes); `get_calendar_events`; `draft_email` vía Gmail OAuth2; y `generate_work_plan`
- Entrada por voz con el reconocedor del sistema e imágenes adjuntas vía Claude multimodal — capturar una tarea hablando o fotografiando una pizarra
- Notificaciones de reporte matutino (lun–vie 08:00) y check-in nocturno (23:00) vía WorkManager
- Widget de pantalla de inicio (Glance) con conteo de tareas abiertas y vencidas
- Offline-first con escrituras optimistas — los cambios sincronizan a Supabase en segundo plano
Por qué importa
- UX nativa para Android diseñada específicamente para este flujo — capturar una tarea toma menos de 15 segundos vs. ~45 segundos navegando una app de gestión de tareas genérica hasta la base de datos correcta
- Las herramientas agénticas colapsan lo que antes era un flujo de 3–4 apps — tarea, calendario, email — en un solo turno de conversación
- El briefing matutino (lun–vie 08:00) y el check-in nocturno (23:00) comprimen la carga de contexto diaria de ~15 minutos a una lectura de 30 segundos
Arquitectura
- Patrón MVI con inyección de dependencias Hilt y Room como base de datos local offline-first
- Kotlin Coroutines + StateFlow para flujo de estado unidireccional; SharedFlow para eventos de UI puntuales
- Supabase (cliente PostgREST) es el backend remoto; Retrofit gestiona las APIs de Anthropic y Gmail; EncryptedSharedPreferences (AES-256-GCM) almacena claves en el dispositivo
- Enrutamiento de modelos: Haiku 4.5 parsea entradas en lenguaje natural; Sonnet 4.6 gestiona el uso agéntico de herramientas y escribe los resúmenes de check-in y los briefings diarios
- SyncEngine reconcilia el estado local de Room contra Supabase; un MigrationWorker trasladó todo el dataset cacheado localmente cuando se reemplazó el backend, y luego se limpió a sí mismo
- Integración Gmail OAuth2 para la herramienta `draft_email` — intercambio y refresco de tokens gestionados en el dispositivo
- WorkManager programa el reporte matutino (lun–vie 08:00) y el check-in nocturno (23:00) de forma fiable en distintos fabricantes
- CI/CD con GitHub Actions: lint + tests → AAB firmado → Google Play internal track en cada push a main
Filosofía
- Claude propone, yo confirmo — toda herramienta agéntica sigue un patrón de proponer-y-confirmar, y nada se escribe en el registro sin un toque explícito
- Offline-first porque la conectividad no debe bloquear nunca una captura de tarea
- Claude actúa solo en acciones explícitas — parsing de tareas, resúmenes de check-in — nunca de forma ambiental