App Android per la ricerca di distributori di carburante in Italia, basata sui dati ufficiali MIMIT (Ministero delle Imprese e del Made in Italy).
- Download automatico dei dati MIMIT (prezzi e anagrafica impianti)
- Ricerca per carburante: Benzina, Diesel, GPL, Metano
- Ricerca per posizione o per indirizzo con raggio configurabile (1–25 km)
- Mappa OpenStreetMap con marker colorati
- Risultati ordinati per prezzo crescente
- Navigazione verso il distributore via Google Maps
- Material Design 3 / Material You con colori dinamici
- Tema selezionabile: Sistema / Chiaro / Scuro (persistito)
| Componente | Tecnologia |
|---|---|
| Linguaggio | Kotlin |
| UI | Jetpack Compose + Material Design 3 |
| Architettura | MVVM (ViewModel + StateFlow) |
| Database | Room (SQLite) con KSP |
| Mappe | osmdroid (OpenStreetMap, tile Thunderforest) |
| Download | OkHttp |
| Posizione | Google Play Services Location |
| Preferenze | DataStore (tema e ultimo download) |
- Android Studio (o una recente distribuzione di Android SDK)
- JDK 17
- Android SDK con API 35
- Una chiave API Thunderforest gratuita (vedi sezione Configurazione)
La mappa usa i tile di Thunderforest (basati su OpenStreetMap), che richiedono una chiave API personale. La chiave non è inclusa nel repository per motivi di sicurezza.
Per ottenere una chiave gratuita:
- Registrati su https://thunderforest.com/maps/apis/
- Crea una chiave per il prodotto landscape
Per configurarla, aggiungi la seguente riga al file local.properties (non versionato),
nel percorso radice del progetto:
FUEL_THUNDERFOREST_API_KEY=la_tua_chiaveIn alternativa, la chiave può essere fornita anche tramite:
- una proprietà di progetto in
gradle.properties(FUEL_THUNDERFOREST_API_KEY=...) - una variabile d'ambiente
FUEL_THUNDERFOREST_API_KEY
La precedenza è: gradle.properties -> local.properties -> variabile d'ambiente.
Senza la chiave l'app compila correttamente ma la mappa resta vuota (nessun tile scaricato).
Dal terminale, nella radice del progetto:
# Esegue l'APK di debug su un dispositivo/emulatore collegato
./gradlew :app:installDebug
# Oppure genera solo l'APK di debug
./gradlew :app:assembleDebug
# Output: app/build/outputs/apk/debug/app-debug.apk
# Build release
./gradlew :app:assembleReleaseDopo ogni modifica al codice o alle risorse, ricompila con lo stesso comando.
Nota: la firma della build
releaseè configurabile viagradle.properties(FUEL_KEYSTORE_PATH,FUEL_KEYSTORE_PASSWORD,FUEL_KEY_ALIAS,FUEL_KEY_PASSWORD) e viene applicata solo se il file keystore esiste. In assenza di keystore la build release viene generata non firmata.
app/src/main/java/com/example/fuel/
├── data/ # Room (entity, DAO, database) e repository
├── service/ # Download e parsing dei CSV MIMIT
├── ui/ # Compose (screens, viewmodel, theme)
└── util/ # Preferenze (DataStore) e posizione
I dati provengono dal Ministero delle Imprese e del Made in Italy (MIMIT):
I dati vengono aggiornati quotidianamente (pubblicazione dopo le 8:00).
MIT © 2026 ravem
MIT License
Copyright (c) 2026 ravem
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- Jetpack Compose / Room / OkHttp — Apache License 2.0
- osmdroid — Apache License 2.0
- Google Play Services — Apache License 2.0
- OpenStreetMap — © OpenStreetMap contributors (ODbL)
- Dati MIMIT — CC BY 4.0