A Free and Open Source (FOSS) Android application for space exploration using official NASA APIs.
- Astronomy Picture of the Day (APOD) — daily NASA image with high-resolution support, explanations, video handling, and shareable content.
- Near-Earth Object (NEO) Tracking — real-time asteroid data with miss-distance and hazard classification.
- Space Launch Tracker — upcoming launch schedule via The Space Devs API with countdown animations.
- ISS Tracker — live International Space Station position using the Where The ISS At? API.
- APOD History Gallery — paged history of past astronomy pictures with a date picker.
- Home Screen Widget — configurable widget that updates daily with the current APOD.
- Offline Support — Room-powered local cache keeps content available when offline. An indicator shows when the app is running in cached mode.
- 100% telemetry-free — no analytics, no crash reporting to external services. Diagnostic logs stay local and are only exported on explicit user request.
- Clone the repository:
git clone https://github.com/O4bit/Project-Asteria.git
- Open the project in Android Studio (Ladybug or newer recommended).
- Sync Gradle and build the project.
- Run the
appmodule on a device or emulator running Android 12 (API 31) or higher.
F-Droid: The app is distributed on F-Droid. Reproducible builds are configured via
app/build.gradle.kts.
# Debug
./gradlew assembleDebug
# Release (requires signing config)
./gradlew assembleRelease
# Unit tests
./gradlew testDebugUnitTest
# Lint (with baseline — only new violations will fail the build)
./gradlew lintReleaseThe project maintains a app/lint-baseline.xml that captures all pre-existing lint warnings so that only new violations block the release build. When you fix existing warnings, regenerate the baseline with:
./gradlew updateLintBaselineContributions are welcome via GitHub Pull Requests.
- Open an issue first for major changes.
- Follow the Kotlin coding standards already in the project.
- Add or update unit tests in
app/src/test/for any business logic you change. - Run
./gradlew testDebugUnitTest lintReleasebefore submitting your PR. - Do not introduce new dependencies that require non-free network services without a discussion.
To report a security vulnerability, please use GitHub's private vulnerability reporting.
See SECURITY.md for the full disclosure policy.
This project is licensed under the MIT License. See the LICENSE file for details.




