GRIT-app

GRIT - Neo-brutalist productivity and accountability Android app

Stars
7
Language
Kotlin
Updated

GRIT

A neo-brutalist productivity and accountability Android app built with Kotlin and Jetpack Compose.

Design Philosophy

GRIT embraces neo-brutalism as a core design principle:

  • High-contrast colors: black, white, red, yellow
  • Thick black borders (4-8dp) on all components
  • Bold, monospace typography
  • Raw, aggressive, intentionally unstyled UI
  • Large, rectangular, visually loud buttons

The app rejects polished, glassmorphic design in favor of bold, harsh aesthetics that feel rebellious and uncomfortable.

Tech Stack

  • Language: Kotlin
  • UI Framework: Jetpack Compose (100% Compose, no XML)
  • Architecture: MVVM with Clean Architecture
  • Database: Room for local persistence
  • State Management: ViewModel + StateFlow
  • Navigation: Jetpack Navigation Compose

Project Structure

app/src/main/java/com/grit/
├── domain/model/          # Domain models
│   ├── FocusSession.kt
│   ├── DistractionEvent.kt
│   ├── Stats.kt
│   └── SocialActivity.kt
├── data/
│   ├── local/
│   │   ├── GritDatabase.kt    # Room database
│   │   ├── dao/              # Data Access Objects
│   │   └── entity/           # Database entities
│   └── repository/           # Repository implementations
├── ui/
│   ├── Navigation.kt         # Navigation setup
│   ├── theme/               # Neo-brutalist theme
│   ├── components/         # Reusable composables
│   └── screens/           # App screens
├── GritApplication.kt
└── MainActivity.kt

Features

Focus Mode

  • Full-screen timer with selected task
  • Blocks navigation while active
  • Exit requires explicit confirmation
  • Displays aggressive messaging ("DO NOT QUIT")
  • Records failures when user exits early

Distraction Tracking

  • Logs when user leaves focus mode prematurely
  • Stores distraction events in Room database
  • Tracks duration before each distraction

Stats Dashboard

  • Total focus time (all-time)
  • Number of completed sessions
  • Daily focus time
  • Daily distraction count
  • Visual performance bar

Failure Log

  • List of all distraction events
  • Each entry shows as a "record of failure"
  • Timestamp and duration before failure

Community Feed

  • Mocked social activity showing user actions
  • Displays completed sessions and failures
  • Simulates community engagement

Building

Prerequisites

  • Android SDK 34
  • JDK 17+
  • Gradle 8.4+

Build Commands

# Debug build
./gradlew assembleDebug

# Release build
./gradlew assembleRelease

# Clean build
./gradlew clean assembleDebug

Output APK

Debug APK location: app/build/outputs/apk/debug/app-debug.apk

Dependencies

  • Jetpack Compose BOM 2023.10.01
  • Navigation Compose 2.7.5
  • Room 2.6.1
  • Lifecycle ViewModel Compose 2.6.2
  • Kotlin Coroutines 1.7.3

License

MIT License