No description
Find a file
Jan-Peter Dhalle 5bbace1a49 Initial commit: JP Focus Android app
Offline-first task management Android app with:
- Room database with background sync via WorkManager
- Jetpack Compose UI with retro styling (JetBrains Mono, no rounded corners)
- OIDC authentication support (Authentik)
- MVVM architecture with Hilt DI
- Projects, tasks, and focus session management
- Dark mode support

Tech stack: Kotlin, Jetpack Compose, Material 3, Hilt, Room, Retrofit, WorkManager
2026-02-09 20:51:56 +01:00
.idea Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
app Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
gradle Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
.gitignore Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
API_CONFIGURATION.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
ARCHITECTURE.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
AUTH_SETUP.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
AUTHENTIK_SETUP.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
build.gradle.kts Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
BUILD_SUMMARY.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
FEATURES_COMPLETE.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
gradle.properties Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
gradlew Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
gradlew.bat Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
LOGCAT_GUIDE.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
NETWORK_SETUP.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
QUICK_START.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
README.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
RETRO_STYLING.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
settings.gradle.kts Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00
STYLING_COMPLETE.md Initial commit: JP Focus Android app 2026-02-09 20:51:56 +01:00

JP Focus Android

Native Android client for JP Focus task management system.

Features

  • Offline-first: All data stored locally in Room database, synced in background
  • Retro UI: Monospace typography (JetBrains Mono), black borders, no rounded corners - matching web UI
  • Real-time sync: Background synchronization via WorkManager
  • Focus sessions: Track your focus time and see team activity
  • Project management: Create and manage projects with tasks
  • Task management: Create, update, and organize tasks by state
  • Dark mode: Full dark mode support with retro color scheme

Tech Stack

  • Language: Kotlin 2.0.21
  • UI: Jetpack Compose + Material 3
  • Architecture: MVVM with offline-first pattern
  • DI: Hilt
  • Networking: Retrofit + OkHttp + Moshi
  • Database: Room + DataStore
  • Async: Coroutines + Flow
  • Background: WorkManager

Project Structure

app/src/main/java/com/janpeterdhalle/focus/
├── core/               # Infrastructure (network, database, DI, sync)
├── data/               # Data layer (repositories, mappers, models)
└── ui/                 # UI layer (screens, components, navigation)

See ARCHITECTURE.md for detailed architecture documentation.

Build & Run

Prerequisites

  • Android Studio Ladybug or newer
  • JDK 17+
  • Android SDK 26+ (minimum), 35 (target)

Building

# Debug build
./gradlew assembleDebug

# Release build
./gradlew assembleRelease

# Run on connected device/emulator
./gradlew installDebug

Configuration

The app connects to:

  • Debug: http://10.0.2.2:8080/api/ (localhost via Android emulator)
  • Release: https://focus.janpeterdhalle.com/api/

OIDC authentication via Authentik:

  • Issuer: https://sso.janpeterdhalle.com/application/o/jp-focus/
  • Client ID: jp-focus-android

Development Status

BUILD SUCCESSFUL - All core features compile

Completed (Phase 1-3)

  • Core architecture setup
  • Offline-first repositories
  • Room database with sync tracking
  • WorkManager background sync
  • Material 3 UI components
  • Navigation structure
  • Projects and tasks screens
  • Focus mode

In Progress (Phase 4)

  • 🔄 OIDC authentication (infrastructure ready)
  • 🔄 Search functionality (repository ready, UI pending)
  • 🔄 Adaptive layouts for tablets

Planned (Phase 5)

  • Push notifications
  • Widgets
  • App shortcuts

See BUILD_SUMMARY.md for detailed implementation status.

Testing

# Run unit tests
./gradlew test

# Run instrumentation tests
./gradlew connectedAndroidTest

Contributing

This is a personal project, but suggestions and bug reports are welcome via issues.

License

Private project - All rights reserved