2026 · ANDROID · AI

Claudio for Android

A personal productivity app for Android. Supabase holds the data, Room keeps it working offline, and Claudio is the mobile interface that makes it usable day-to-day — with Claude on top for daily briefs, task summaries, and a conversational assistant that can act.

Stack
  • Kotlin
  • Jetpack Compose
  • Room
  • WorkManager
  • Supabase
  • Claude API

What it does

  • Home screen with today's tasks, filterable by priority and status, with a Claude-generated daily brief
  • Full task management synced to Supabase — priority, status, due dates, notes, linked project, snooze
  • Initiative tracking with description, status, target date, progress bar, and check-in history sparkline
  • Conversational AI assistant (Ask Claudio) with full context of tasks and initiatives for natural language queries
  • 15 agentic tools callable straight from conversation — create, update, snooze, and delete tasks and initiatives; `create_calendar_event` with attendees; `get_calendar_events`; `draft_email` via Gmail OAuth2; and `generate_work_plan`
  • Voice input through the system speech recognizer and image attachment via Claude multimodal — capture a task by speaking or by photographing a whiteboard
  • Morning report (Mon–Fri 08:00) and evening check-in (23:00) push notifications via WorkManager
  • Glance home screen widget showing open and overdue task counts
  • Offline-first with optimistic writes — changes sync to Supabase in the background

Why it matters

  • Native Android UX purpose-built for this workflow — task capture takes under 15 seconds vs. ~45 seconds navigating a general task management app to the right database
  • Agentic tools collapse what was a 3–4 app workflow — task, calendar, email — into a single conversation turn
  • Morning brief (08:00 Mon–Fri) and evening check-in (23:00) compress daily context-loading from ~15 minutes to a 30-second read

Architecture

  • MVI pattern with Hilt dependency injection and Room as the offline-first local database
  • Kotlin Coroutines + StateFlow for unidirectional state; SharedFlow for one-shot UI events
  • Supabase (PostgREST client) is the remote backend; Retrofit handles the Anthropic and Gmail APIs; EncryptedSharedPreferences (AES-256-GCM) stores keys on-device
  • Model routing: Haiku 4.5 parses natural-language task input; Sonnet 4.6 handles agentic tool use and writes the check-in summaries and daily briefs
  • SyncEngine reconciles local Room state against Supabase; a MigrationWorker carried the full locally-cached dataset across when the backend was replaced, then cleaned up after itself
  • Gmail OAuth2 integration for the `draft_email` tool — token exchange and refresh handled on-device
  • WorkManager schedules the morning report (Mon–Fri 08:00) and evening check-in (23:00) reliably across OEMs
  • GitHub Actions CI/CD: lint + unit tests → signed AAB → Google Play internal track on every push to main

Philosophy

  • Claude proposes, I confirm — every agentic tool follows a propose-then-confirm pattern, and nothing writes to the record without an explicit tap
  • Offline-first because connectivity should never block a task capture
  • Claude runs on explicit actions only — task parsing, check-in summaries — never ambient or on keystrokes