# Ascently for Android

This is the native Android app for Ascently, built with Kotlin and Jetpack Compose.

## Project Structure

This is a standard Android Gradle project. The main code lives in `app/src/main/java/com/atridad/ascently/`.

-   `data/`: Handles all the app's data.
    -   `database/`: Room database setup (DAOs, entities).
    -   `model/`: Core data models (`Problem`, `Gym`, `ClimbSession`).
    -   `repository/`: Manages the data, providing a clean API for the rest of the app.
    -   `sync/`: Handles talking to the sync server.
-   `ui/`: All the Jetpack Compose UI code.
    -   `screens/`: The main screens of the app.
    -   `components/`: Reusable UI bits used across screens.
    -   `viewmodel/`: `ClimbViewModel` for managing UI state.
-   `navigation/`: Navigation graph and routes using Jetpack Navigation.
-   `service/`: Background service for tracking climbing sessions.
-   `utils/`: Helpers for things like date formatting and image handling.
