"Breathe, breathe in the air. Don't be afraid to care." - Pink Floyd, The Dark Side of the Moon
Breathe is a modern, MD3 Android application designed to monitor real-time Air Quality Index (AQI) levels across Jammu & Kashmir. Built with Kotlin and Jetpack Compose, it provides a clean, fluid interface to track pollution levels using the Indian National Air Quality Index (NAQI) standards.
- Check the breathe api repo to know how the AQI is calculated.
- Material Design 3 Expressive
- AMOLED Dark Theme Support
- Supports devices running Android 8.1 and above
- Fluid Animations and interactive UI
- Advanced animation options
- AQI Spectrum
- Real-time Monitoring
- US and Indian AQI standards
- Detailed Breakdown
- Cigarette equivalence
- A map with data laid across
- 24 Hour graph of AQI Data
- Widget Support
- Language: Kotlin
- UI Framework: Jetpack Compose (Material3)
- Architecture: MVVM (Model-View-ViewModel)
- Networking: Retrofit & Gson
- Concurrency: Kotlin Coroutines & Flow
- Theme: Dynamic Material You (Monet)
The project follows a standard but modularized android app structure.
├── data/
│ ├── AnimationSettings.kt
│ ├── BreatheApi.kt
│ └── Models.kt
├── navigation/
│ └── Navigation.kt
├── ui/ # All UI related code
│ ├── components/ # Reusable UI elements (Cards, Graphs, Dashboards)
│ │ ├── CardComponents.kt
│ │ ├── DashboardComponents.kt
│ │ └── GraphComponents.kt
│ │ └── MorphingPill.kt
│ └── screens/ # Full-page screen composables
│ ├── ExploreScreen.kt
│ ├── HomeScreen.kt
│ ├── MapScreen.kt
│ └── SettingsScreen.kt
├── util/ # Helper functions and extensions
│ └── Utils.kt
│ └── IndiaBoundaryOverlay.kt
├── viewmodel/ # Caching and loading
│ └── BreatheViewModel.kt
├── widgets/ # Widget logic
│ ├── BreatheWidget.kt
│ ├── BreatheWidgetWorker.kt
│ └── WidgetActions.kt
└── MainActivity.kt # Application Entry Point
- Android Studio Hedgehog or newer.
- JDK 17.
- A running instance of the Breathe Backend (Python/FastAPI).
-
Clone the repository:
git clone https://github.com/breathe-OSS/breathe && cd breathe -
Open in Android Studio.
- Alternatively, if you have the command line launcher configured:
studio .
- Configure the API Endpoint:
- Open
app/src/main/java/com/sidharthify/breathe/data/BreatheApi.kt. - Update
BASE_URLto point to your backend server (e.g., your local IP if running locally).
- Build and Run:
- GUI: Sync Gradle files, select your device, and click Run.
- Terminal: Ensure your device is connected (
adb devices) and run:./gradlew installDebug
Publicly available AQI data for the Jammu & Kashmir region is currently unreliable. Most standardized sources rely on sparse sensor networks or algorithmic modeling that does not accurately reflect ground-level realities. This results in widely varying values across different platforms. Google, for example, shows values that are insanely low, but they are usually off by a huge margin.
Breathe aims to solve this by strictly curating sources and building a ground-truth network.
The method that we use to convert the raw data in our API (please do read the documentation) was laid out by scanning past concentration trends from 2025-2022 of the J&K regions.
Used for all pollutant values for most regions in Jammu & Kashmir (excluding Srinagar, Jammu and Rajouri). Open-Meteo's satellite-based air quality model provides stable and consistent values that generally fall within the expected range of nearby ground measurements.
-
Air quality & pollutant data: Open-Meteo Air Quality API
-
Weather forecasts & historical data: Open-Meteo
Used for the Srinagar, Jammu and Rajouri regions, where the sensors are deployed in real time.
- Their website: AirGradient
This provides accurate values of PM10 and PM2.5. Other values are fetched from Open-Meteo (like O₃ and NO₂)
The limitations of our current project is that we do not have ground sensors in every region and are mostly relying on satellite data, so the data is not 100% accurate.
We are actively working to deploy custom physical sensors to improve data density in Jammu. If you are interested in hosting a sensor node, please contact us at: contact@breatheoss.app
We have deployed two AirGradient sensors in Jammu, Srinagar and Rajouri which provide an accurate measurement of PM10 and PM2.5 values. We are working to deploy them in three other regions.
This project is fully Free & Open Source Software (FOSS).
- sidharthify (Lead Dev)
- Flashwreck (Lead dev and devops maintainer)
- SleeperOfSaturn (iOS app co-lead)
- Lostless1907 (Contributor and developer)
- suveshmoza (Contributor and developer)
- empirea9 (Contributor)




