Skip to content

Commit f0986c7

Browse files
committed
docs: add local store badges, update README distribution sections, and add CREDITS.md
1 parent 84429d5 commit f0986c7

5 files changed

Lines changed: 118 additions & 13 deletions

File tree

CREDITS.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Project Credits & Third-Party Attributions
2+
3+
BoxViewer is built on open data platforms, open-source software, and creative community artwork. This document provides a complete inventory of credits and attributions for datasets, geocoding backends, libraries, and graphics used both in the application and across project documentation.
4+
5+
---
6+
7+
## 🌍 Data Services
8+
9+
* **openSenseMap API**
10+
* **Operator:** openSenseLab gGmbH (Münster, Germany)
11+
* **Description:** Open environmental sensor data platform providing telemetry measurements and station metadata.
12+
* **License:** GPL v2 / Open Database License (ODbL) — [opensensemap.org](https://opensensemap.org)
13+
14+
---
15+
16+
## 📍 Geocoding Backends
17+
18+
* **Photon Geocoder**
19+
* **Operator:** komoot GmbH (Berlin, Germany)
20+
* **Description:** OpenStreetMap-powered search and reverse-geocoding service.
21+
* **License:** Data © OpenStreetMap contributors ([CC-BY-SA](https://creativecommons.org/licenses/by-sa/2.0/)) — [photon.komoot.io](https://photon.komoot.io)
22+
23+
* **Nominatim Geocoder**
24+
* **Operator:** OpenStreetMap Foundation
25+
* **Description:** Open-source search and reverse-geocoding engine.
26+
* **License:** Open Database License (ODbL) — [nominatim.org](https://nominatim.org)
27+
28+
---
29+
30+
## 📦 Libraries & Frameworks
31+
32+
### Core UI & Framework
33+
* **Jetpack Compose & AndroidX**
34+
* **Author:** Google LLC
35+
* **Description:** Declarative UI toolkit, architecture components, and lifecycle systems.
36+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
37+
* **AndroidX Navigation Compose, Core KTX, SplashScreen, Lifecycle & Activity Compose, AppCompat**
38+
* **Author:** Google LLC
39+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
40+
* **Compose Material Icons Extended**
41+
* **Author:** Google LLC
42+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
43+
44+
### Networking & Serialization
45+
* **Retrofit**
46+
* **Author:** Square, Inc.
47+
* **Description:** Type-safe HTTP client for Android used for openSenseMap REST API queries.
48+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
49+
* **OkHttp Engine & Interceptor**
50+
* **Author:** Square, Inc.
51+
* **Description:** HTTP client infrastructure and logging interceptor.
52+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
53+
* **Moshi Core & Codegen**
54+
* **Author:** Square, Inc.
55+
* **Description:** JSON library for Android and Kotlin.
56+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
57+
58+
### Database & Concurrency
59+
* **Kotlinx Coroutines & Flow**
60+
* **Author:** JetBrains s.r.o.
61+
* **Description:** Asynchronous programming and reactive state flows.
62+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
63+
* **Room Persistence Database**
64+
* **Author:** Google LLC
65+
* **Description:** SQLite abstraction layer for local caching of environmental sensor boxes.
66+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
67+
68+
### Utilities & Testing
69+
* **ZXing Core**
70+
* **Author:** ZXing Authors
71+
* **Description:** Barcode and QR code processing library used for senseBox deep link sharing.
72+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
73+
* **Robolectric**
74+
* **Author:** Robolectric Authors
75+
* **Description:** Android unit testing framework running framework code on the JVM.
76+
* **License:** [MIT License](https://opensource.org/licenses/MIT)
77+
* **Roborazzi**
78+
* **Author:** Takahiro Menju and Contributors
79+
* **Description:** Screenshot testing toolkit for Compose visual regression tests.
80+
* **License:** [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
81+
82+
---
83+
84+
## 🎨 Graphics & Artwork
85+
86+
* **"Get it on GitHub" Badge (`metadata/badges/badge_github.png`)**
87+
* **Original Creator:** `@flocke` for [F-Droid Artwork](https://gitlab.com/fdroid/artwork/-/tree/master/badge/src) / [Kunzisoft/Github-badge](https://github.com/Kunzisoft/Github-badge)
88+
* **License:** [Creative Commons Attribution-ShareAlike 3.0 Unported (CC-BY-SA 3.0)](https://creativecommons.org/licenses/by-sa/3.0/)
89+
90+
* **"Get it on Obtainium" Badge (`metadata/badges/badge_obtainium.png`)**
91+
* **Original Creator:** ImranR98 ([Obtainium](https://github.com/ImranR98/Obtainium))
92+
* **License:** MIT License / Open Source
93+
94+
* **"Get it on Google Play" Badge (`metadata/badges/badge_google_play.png`)**
95+
* **Original Creator:** Google LLC
96+
* **License:** Google Brand Guidelines / Google Play Badge Usage

README.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@
99
</p>
1010

1111
<p align="center">
12-
<a href="https://play.google.com/store/apps/details?id=de.nichu42.boxviewer"><img src="https://img.shields.io/badge/Google%20Play-Official%20Release-412991?style=for-the-badge&logo=google-play&logoColor=white" alt="Google Play Official Release" /></a>
13-
<a href="https://play.google.com/store/apps/details?id=de.nichu42.boxviewer"><img src="https://img.shields.io/badge/Google%20Play-Open%20Testing-3DDC84?style=for-the-badge&logo=google-play&logoColor=white" alt="Google Play Open Testing" /></a>
14-
<a href="https://github.com/nichu42/boxviewer/releases"><img src="https://img.shields.io/badge/Download-Stable%20APK-success?style=for-the-badge&logo=android&logoColor=white" alt="Download Stable APK" /></a>
15-
<a href="https://obtainium.imranr.dev/"><img src="https://img.shields.io/badge/Obtainium-Compatible-purple?style=for-the-badge&logo=android&logoColor=white" alt="Obtainium Compatible" /></a>
12+
<a href="https://play.google.com/store/apps/details?id=de.nichu42.boxviewer"><img src="https://img.shields.io/badge/Google_Play-Get_it_on-412991?style=for-the-badge&logo=google-play&logoColor=white" alt="Google Play" /></a>
13+
<a href="https://github.com/nichu42/boxviewer/releases"><img src="https://img.shields.io/badge/GitHub-Download_APK-181717?style=for-the-badge&logo=github&logoColor=white" alt="GitHub Download APK" /></a>
14+
<a href="https://obtainium.imranr.dev/"><img src="https://img.shields.io/badge/Obtainium-Compatible-purple?style=for-the-badge&logo=obtainium&logoColor=white" alt="Obtainium Compatible" /></a>
1615
</p>
1716

1817
<p align="center">
@@ -38,30 +37,38 @@ Crafted with **Kotlin** and **Jetpack Compose** following Material Design 3 guid
3837
* **🌐 Multi-Language Support**: BoxViewer supports 8 languages (English, German, Czech, Spanish, French, Hungarian, Italian, Dutch, Polish) with POEditor translation integration.
3938
* **🔗 Quick Sharing & Deep Linking**: Generate local QR codes to share senseBox stations. Recipients scan the code or open a sharing web link to view the station directly inside the BoxViewer app.
4039
* **🔋 Battery & API-Friendly**: Seamless local SQLite caching (`SensorCacheEntity`) and awake-on-unlock widget refresh logic ensure you get fresh data without draining your battery or hammering openSenseMap servers.
41-
* **🔒 Privacy-First & De-Googled Friendly**: 100% free of Google Play Services (GMS) dependencies in the app code. Core functionality relies on the native Android `LocationManager` and direct openSenseMap APIs. Address search and location labels may use the device’s native geocoder (ROM-dependent backend) or an OpenStreetMap-based fallback; see the Privacy Policy for details. Zero telemetry, analytics, or third-party trackers.
40+
* **🛡️ Privacy-First & De-Googled Friendly**: 100% free of Google Play Services (GMS) dependencies in the app code. Core functionality relies on the native Android `LocationManager` and direct openSenseMap APIs. Address search and location labels may use the device’s native geocoder (ROM-dependent backend) or an OpenStreetMap-based fallback; see the Privacy Policy for details. Zero telemetry, analytics, or third-party trackers.
4241
* **🛠️ Local API Debug Logging**: Opt-in to capture raw API requests, responses, and Moshi parsing results in a JSON Lines (`.jsonl`) file stored locally. Copy or share logs via native sheets to diagnose errors easily.
4342
* **🔤 App-Wide Text Scaling**: A dedicated Settings slider lets you scale text throughout the UI (60%–200%) independently of the system font size, making BoxViewer comfortable on tablets, foldables, and Android Automotive displays.
4443

4544
---
4645

47-
## ⬇️ Download & Install
46+
## 📥 Download & Install
4847

49-
BoxViewer is compatible with Android 7.0 (API 24) and above and is distributed via Google Play as well as direct APK downloads.
48+
BoxViewer is compatible with Android 7.0 (API 24) and above and is distributed via Google Play, GitHub Releases, and Obtainium.
5049

51-
### 🛍️ Google Play Store
50+
### ️ Google Play Store
5251
<a href="https://play.google.com/store/apps/details?id=de.nichu42.boxviewer">
53-
<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" height="80" />
52+
<img alt="Get it on Google Play" src="metadata/badges/badge_google_play.png" height="80" />
5453
</a>
5554

56-
* **Official Release**: Download stable production releases directly from the [Google Play Store](https://play.google.com/store/apps/details?id=de.nichu42.boxviewer).
55+
* **Official Release**: Download stable production releases directly from the **[Google Play Store](https://play.google.com/store/apps/details?id=de.nichu42.boxviewer)**.
5756
* **Open Testing (Beta)**: Opt-in directly on Google Play to test upcoming pre-release builds and new features ahead of general release.
5857

59-
### 🚀 Direct Download & GitHub Releases
58+
### 📦 Direct Download & GitHub Releases
59+
<a href="https://github.com/nichu42/boxviewer/releases">
60+
<img alt="Get it on GitHub" src="metadata/badges/badge_github.png" height="80" />
61+
</a>
62+
6063
You can download APK packages directly from the **[GitHub Releases](https://github.com/nichu42/boxviewer/releases)** page:
6164
* **Latest Releases**: Official stable releases, tested and recommended for general use.
6265
* **Pre-Releases**: Early test builds (Open Beta) published in parallel with the Google Play Open Testing track for users who prefer to try the newest features immediately.
6366

6467
### 🔄 Automatic Updates with Obtainium
68+
<a href="https://github.com/ImranR98/Obtainium">
69+
<img alt="Get it on Obtainium" src="metadata/badges/badge_obtainium.png" height="80" />
70+
</a>
71+
6572
To receive automatic updates on de-googled ROMs or without Google Play Services, we recommend using **[Obtainium](https://obtainium.imranr.dev/)**:
6673
1. Copy the repository URL: `https://github.com/nichu42/boxviewer`
6774
2. Open Obtainium, tap **Add App**, and paste the URL.
@@ -82,7 +89,7 @@ BoxViewer is developed with love as an open-source project. If you are happy wit
8289

8390
## 🌍 Data, Geocoding & Attribution
8491

85-
### openSenseMap API
92+
### 📡 openSenseMap API
8693
This app utilizes the open API provided by **openSenseMap**, an open-source platform dedicated to collecting and exploring environmental sensor data from around the globe.
8794

8895
* **What is openSenseMap?**: Originally emerged from a research project at the University of Münster (Germany), openSenseMap has grown into one of the largest citizen-operated sensor networks in the world. It provides a free platform for schools, universities, scientists, and citizen enthusiasts to publish real-time environmental measurements—such as air quality, temperature, and humidity—and share them as Open Data.
@@ -93,13 +100,15 @@ This app utilizes the open API provided by **openSenseMap**, an open-source plat
93100
* **Source code**: [sensebox/openSenseMap](https://github.com/sensebox/openSenseMap) · [sensebox/openSenseMap-API](https://github.com/sensebox/openSenseMap-API)
94101
* **Donate**: [Donate via Betterplace](https://www.betterplace.org/en/projects/89947-opensensemap-org-the-free-map-for-environmental-data)
95102

96-
### Geocoding & Address Lookup
103+
### 📍 Geocoding & Address Lookup
97104
To resolve coordinates to readable address labels (e.g., city/country) and enable searching for locations without relying on proprietary Google Play Services, BoxViewer integrates open-source OpenStreetMap (OSM) data backends:
98105
* **Photon Geocoder**: An open, privacy-friendly search and reverse-geocoding service powered by OpenStreetMap data, operated by **[komoot GmbH](https://www.komoot.com)**, Berlin, Germany.
99106
* **Nominatim Geocoder**: An open-source search and reverse-geocoding engine for OpenStreetMap data, operated by the **[OpenStreetMap Foundation](https://osmfoundation.org)**.
100107

101108
We are extremely grateful to the **OpenStreetMap contributors** for providing the underlying open map data that powers the geo features of this app.
102109

110+
📄 **Full Attributions & Licenses**: For a complete inventory of third-party libraries, data sources, and graphic artwork credits, see **[CREDITS.md](CREDITS.md)**.
111+
103112
---
104113

105114
## 🍃 Air Quality Index (AQI) Integration

metadata/badges/badge_github.png

6.29 KB
Loading
4.79 KB
Loading
23.2 KB
Loading

0 commit comments

Comments
 (0)