Informativa sulla privacy
Questa informativa descrive l'app mobile BikeOtter e il sito web bikeotter.app. È stata scritta leggendo cosa fa davvero il software — quali campi contiene un punto di tracciamento live, quale pulizia lo elimina e quando, quali host vengono contattati — e non partendo da un modello. Dove un limite è indicato con un numero, quel numero è quello presente nel codice.
Versione 1.3 · ultimo aggiornamento 24 settembre 2026 · vale per l'app e per questo sito
La versione breve
- Non ci sono analytics né crash reporting. Niente Google Analytics, niente Firebase, niente Sentry, nessun SDK pubblicitario o di attribuzione — né nell'app né su questo sito. Qui niente ti conteggia.
- La maggior parte dell'app non richiede alcun account. La pianificazione dei percorsi, l'invio dei percorsi, lo scaricamento delle uscite, le regole e gli avvisi funzionano tutti senza accesso. Un account esiste solo per il tracciamento live, le e-mail di notifica delle uscite e il collegamento a Strava.
- I tuoi percorsi, i file delle tue uscite e la tua voce restano sul telefono. Il riconoscimento vocale avviene sul dispositivo; per scelta non esiste alcun livello vocale in cloud.
- Il tracciamento live è l'unica funzione che pubblica la tua posizione, a chiunque abbia il link, per la durata dell'uscita. Frequenza cardiaca, potenza e cadenza sono disattivate per impostazione predefinita. I tuoi punti di posizione e il record della sessione vengono eliminati insieme, 7 giorni dopo che l'uscita termina o scade.
- Una cosa che l'app fa senza chiedere: all'avvio controlla se c'è una patch del codice, tramite Shorebird, e quel controllo non può essere disattivato. Non porta con sé alcuna identità fornita da noi — ma raggiunge comunque un server. Il §10.1 spiega esattamente cosa sappiamo e cosa no.
- Niente viene venduto, affittato o condiviso a fini pubblicitari. Mai.
1. Chi è il responsabile
Il titolare del trattamento qui descritto, ai sensi dell'Art. 4(7) GDPR, è:
OpenBikeControl UG (haftungsbeschränkt)Ulrichstraße 24
71636 Ludwigsburg, Germany
E-mail: support@bikeotter.app
I dati completi dell'azienda sono nella pagina delle note legali. Non c'è un responsabile della protezione dei dati richiesto per legge; per qualsiasi cosa su questa pagina scrivi all'indirizzo qui sopra.
2. Cosa non lascia mai il tuo telefono
Quanto segue è conservato nella memoria propria dell'app sul tuo dispositivo e non viene caricato da BikeOtter da nessuna parte. Lascia il telefono solo se sei tu a esportarlo o condividerlo.
- La tua libreria di percorsi. I percorsi sono file sul telefono — geometria più un indice. Condividere un percorso produce un link autonomo che porta il percorso al proprio interno; nessun percorso viene caricato su un server per essere condiviso.
- Le tue uscite. Le uscite scaricate dal ciclocomputer e quelle registrate dal telefono sono salvate come file FIT e GPX sul dispositivo. Lasciano il telefono solo quando le condividi o quando hai attivato il caricamento su Strava.
- Controllo vocale. Il riconoscimento vocale è configurato per funzionare sul dispositivo, e i comandi vengono interpretati prima da una grammatica offline e poi, se serve, da un modello sul dispositivo (Apple Foundation Models o Gemini Nano). Per scelta non esiste alcun livello vocale o linguistico in cloud — nessun audio e nessuna trascrizione viene inviata ad alcun server.
- Le tue impostazioni, regole, località salvate e la configurazione dell'inoltro delle notifiche.
- Le notifiche inoltrate al ciclocomputer (solo Android). Se concedi l'accesso alle notifiche, l'app legge le notifiche del telefono per mostrarle sul ciclocomputer e le passa direttamente via Bluetooth. I loro contenuti non vengono memorizzati dall'app e non raggiungono mai un server.
- Tutto ciò che l'app fa con il ciclocomputer stesso — associazione, invio dei percorsi, scaricamento delle uscite, avvisi sullo schermo — avviene su un collegamento Bluetooth diretto tra il tuo telefono e il tuo dispositivo. In mezzo non c'è alcun cloud del produttore né alcun server BikeOtter.
3. Il tuo account
Un account è richiesto solo per il tracciamento live, le e-mail di notifica delle uscite e il collegamento a Strava. Tutto il resto funziona senza accesso.
Puoi accedere in uno di due modi: un magic link inviato al tuo indirizzo e-mail, oppure l'accesso con Strava. Non c'è password e non c'è profilo. Ciò che viene memorizzato è un record utente conservato dal nostro fornitore di backend (Supabase) contenente il tuo indirizzo e-mail e i timestamp di accesso, più — per l'accesso con Strava — l'id atleta e il nome visualizzato di Strava.
Il tuo indirizzo e-mail serve a identificarti, e la sua parte locale (il pezzo prima della
@) diventa il nome da ciclista mostrato a chi guarda un link live. Se il tuo
indirizzo è jane.doe@example.com, chi guarda vede jane.doe. Tienilo a mente
quando scegli con quale indirizzo accedere.
Per eliminare il tuo account e tutto ciò che vi è collegato, scrivi a support@bikeotter.app dall'indirizzo con cui accedi. L'eliminazione dell'account è a cascata: le sessioni di tracciamento live e i loro punti di posizione, le uscite di gruppo, i messaggi che chi guardava ti ha inviato, i tuoi contatti salvati e i loro gruppi, i record di notifica e il collegamento a Strava se ne vanno con esso. Nell'app non c'è ancora un pulsante self-service — la pagina di eliminazione indica i passaggi, l'elenco completo di ciò che viene eliminato e ciò che viene conservato dopo.
4. Tracciamento live
Questa è l'unica funzione che pubblica dove ti trovi. È disattivata finché non la avvii tu, e termina quando termina l'uscita.
Cos'è un link condiviso
Avviare un'uscita live crea una sessione con un token di condivisione: 20 caratteri estratti da una sorgente casuale crittografica, che dà un link nella forma bikeotter.app/r/<token>. Chiunque abbia quel link può guardare, senza account e senza accesso. Il link è la credenziale, quindi trattalo come tale — passalo alle persone che vuoi davvero che guardino. A chi guarda viene mostrato solo quanto elencato qui sotto; non riceve mai il tuo indirizzo e-mail, l'id del tuo account né il token di un'altra sessione.
Il browser di chi guarda riceve un token di accesso di breve durata limitato a quella sola sessione e con un massimo di sei ore. Il database lo impone colonna per colonna: il proprietario della sessione e il suo token di condivisione non sono affatto leggibili da chi guarda.
L'app ti mostra in tempo reale quante persone stanno guardando. Non ti dice chi sono — nessuna identità di chi guarda viene raccolta.
Cosa contiene un punto live
I punti vengono inviati mentre pedali, limitati per tempo e distanza. Ognuno contiene:
| Campo | Inviato | Note |
|---|---|---|
| Latitudine, longitudine | Sempre | Lo scopo della funzione. |
| Altitudine, tempo trascorso, pendenza, stato dell'uscita | Sempre | L'altitudine è quanto ti trovi sopra il livello del mare — la terza coordinata di
una posizione che stai già condividendo, e la stessa lettura da cui viene calcolata
la pendenza accanto, quindi le due non vengono inviate separatamente. Lo stato
dell'uscita è active, paused, auto_paused o
not_started, così la pagina può mostrare IN PAUSA invece di un
badge LIVE che mente. Tutti e quattro vengono inviati indipendentemente dai
due interruttori qui sotto, di proposito. |
| Batteria scarica | Solo se scarica — nessun interruttore | Un indicatore, non una percentuale — questa pagina non scopre mai quanta batteria ti rimane, solo che è scarica. Viene inviato solo mentre la batteria del telefono è scarica e non è in carica, così chi guarda può distinguere un telefono che sta per spegnersi da un segnale perso. Mentre questo accade, l'app invia anche la tua posizione meno spesso. |
| Velocità, distanza percorsa, dislivello salito finora, distanza e salita rimanenti, ETA | Solo con «condividi velocità» attivo — attivo per impostazione predefinita | Disattivalo e nessuno di questi sei valori viene caricato. Il «dislivello salito finora» è il totale dei metri che hai scalato in questa uscita, un dato diverso dall'altitudine qui sopra: uno è un totale progressivo, l'altra è dove ti trovi in questo momento. |
| Frequenza cardiaca, potenza, cadenza | Solo con «condividi frequenza cardiaca e potenza» attivo — disattivo per impostazione predefinita | La frequenza cardiaca è un dato sanitario. Viene caricata solo se attivi questo interruttore, che parte disattivato. La cadenza — quanto velocemente pedali, in pedalate al minuto — è governata dallo stesso interruttore anche se l'interruttore non porta il suo nome: è una lettura di sensore dello stesso tipo, e dice sul tuo sforzo quanto la potenza. Nell'app, sotto l'interruttore, c'è scritto proprio questo. |
Cosa contiene la sessione stessa
Oltre ai punti: il tuo nome da ciclista (vedi §3), il nome del percorso, la linea del percorso pianificato, la sua distanza totale, le coordinate da cui il percorso parte, i due interruttori di condivisione qui sopra, se i messaggi sono abilitati, lo stato della sessione e i suoi timestamp, e — per un'uscita di gruppo — a quale gruppo appartiene.
Quando termina e quando viene eliminata
Una sessione scade al primo di questi eventi, e la scadenza viene verificata ogni minuto:
- l'orario di scadenza impostato quando l'hai avviata — sei ore per impostazione predefinita;
- 45 minuti dopo l'ultimo punto o keep-alive dall'app, così un'uscita dimenticata non resta «live» per tutta la sera;
- 60 minuti dopo la sua creazione, se non è mai arrivata alcuna posizione.
L'eliminazione segue poi automaticamente:
- Il record della sessione viene eliminato 7 giorni dopo che è terminata o scaduta, portando con sé tutto ciò che vi è ancora collegato.
- I tuoi punti di posizione vengono eliminati con esso — gli stessi 7 giorni, non un attimo di più. Prima venivano ripuliti dopo 24 ore, in anticipo sulla sessione; ora vengono conservati per l'intera vita della sessione stessa, così un'uscita la cui registrazione sul ciclocomputer è andata persa può ancora essere ricostruita dalla traccia live dentro l'app. Nient'altro della pulizia è cambiato, e il limite massimo di conservazione di un'uscita condivisa resta invariato a 7 giorni.
Le uscite di gruppo funzionano allo stesso modo una volta che l'uscita è partita: un link di gruppo è valido per 12 ore da quando parte, contiene al massimo 10 ciclisti, e il record del gruppo viene eliminato 7 giorni dopo la sua fine. Un'uscita pianificata in anticipo è diversa: il link — con i nomi di chi ha già detto che verrà — resta aperto all'adesione fino a 30 giorni prima che qualcuno parta davvero; il conto alla rovescia di 12 ore parte solo quando il primo ciclista va in diretta. Terminare una condivisione dall'app ferma immediatamente il caricamento; le pulizie eliminano poi i dati memorizzati secondo il calendario qui sopra.
5. Messaggi da chi guarda
Se abiliti i messaggi, chi ha raggiunto il tuo link tramite una delle tue e-mail di notifica può inviarti brevi messaggi, che compaiono sul tuo ciclocomputer. Un osservatore qualsiasi che ha soltanto il link non può — l'invio richiede un token per contatto che solo il link ricevuto per e-mail contiene.
Un messaggio memorizza il suo testo, il contatto mittente e un timestamp. I mittenti sono limitati a tre messaggi all'ora. I messaggi sono collegati alla sessione e vengono eliminati con essa — quindi entro la stessa finestra di 7 giorni del §4. I messaggi sono memorizzati in forma leggibile sul server; non sono cifrati end-to-end.
6. E-mail di notifica delle uscite
Puoi salvare contatti in modo che l'avvio di un'uscita live invii loro il link per e-mail. Non viene inviato nulla a meno che tu non scelga un gruppo quando vai live; scegliendo «nessuno per questa uscita» non parte niente.
Cosa viene memorizzato per contatto: l'indirizzo e-mail (in minuscolo), un nome facoltativo, un token di annullamento dell'iscrizione, un token per i messaggi e — se applicabile — quando ha annullato l'iscrizione o quando la posta verso quell'indirizzo è stata respinta definitivamente. I contatti sono visibili solo a te; il database nega del tutto l'accesso anonimo a essi.
Cosa contiene e rivela l'e-mail: il tuo nome da ciclista, il nome e la distanza del
percorso, il link per guardare, quando il link scade, e un link di annullamento
dell'iscrizione. Viene inviata da rides@bikeotter.app da un Cloudflare Worker
per nostro conto, e il suo Reply-To è impostato sul tuo indirizzo e-mail,
così che un destinatario possa risponderti direttamente — il che significa che i tuoi
destinatari possono vedere l'indirizzo con cui hai effettuato l'accesso.
L'e-mail di arrivo (facoltativa e disattivata finché non la chiedi): se attivi «Avvisali quando torni» per un gruppo di contatti, le persone a cui è stato inviato il link di quella uscita — solo quelle, e solo se l'e-mail con il link è davvero arrivata — ricevono un breve avviso quando l'uscita finisce: che hai finito, la distanza e il tempo in movimento che l'uscita ha pubblicato, l'ora in cui sei rientrato e lo stesso link per guardare. In un'uscita con un percorso caricato puoi anche ricevere un preavviso facoltativo circa quindici minuti prima dell'arrivo stimato. La distanza è inclusa solo se la condivisione «Velocità e distanza» era attiva per quell'uscita: i valori sono riletti da ciò che l'uscita ha davvero pubblicato, mai ricostruiti dal percorso che avevi pianificato. Una sessione che si limita a scadere o a chiudersi per inattività non invia nulla — una scadenza non è un arrivo. Nessuno dei due avvisi porta con sé il token per i messaggi, perché l'uscita è finita.
Limiti: al massimo una e-mail di ciascun tipo per contatto per uscita — il link, il preavviso facoltativo e l'avviso di arrivo (un contatto non può ricevere due volte lo stesso tipo per la stessa sessione), al massimo 50 membri in un gruppo, e al massimo 200 e-mail di notifica per ciclista nelle 24 ore mobili.
Annullare l'iscrizione: ogni e-mail contiene un link di annullamento nel piè di pagina e le intestazioni standard di annullamento con un clic, quindi funziona anche il pulsante «annulla iscrizione» del client di posta. L'annullamento non richiede alcun account e ferma ogni ulteriore notifica di uscita verso quell'indirizzo.
La tua responsabilità: quando aggiungi l'indirizzo e-mail di qualcun altro ci stai chiedendo di scrivere a una persona che non ha mai avuto a che fare con noi. Aggiungi solo persone che si aspettano di ricevere tue notizie. I contatti non hanno scadenza automatica — vengono conservati finché non elimini il contatto o il tuo account.
7. Strava
Collegare Strava è facoltativo. L'autorizzazione avviene nel browser di sistema sulle pagine di Strava; BikeOtter non vede mai la tua password di Strava.
- Permessi richiesti:
read,read_all,activity:read_alleactivity:write— quanto basta per elencare e importare i tuoi percorsi e le tue attività e per caricare le uscite. - Dove vivono i token: i tuoi token di accesso e di aggiornamento di Strava sono memorizzati solo lato server, nel nostro backend, e sono leggibili soltanto dalla funzione server che li usa. Il telefono conserva solo un valore di breve durata tenuto in memoria durante l'handshake di accesso, mai scritto su disco.
- Cosa sale: il file dell'uscita stesso (un FIT compresso), più un nome e una descrizione facoltativi, quando carichi un'uscita.
- Cosa scende: i tuoi percorsi e le tue attività di Strava, le esportazioni GPX dei percorsi, e gli stream di posizione/altitudine/tempo di un'attività quando la importi come percorso. Le risposte vengono messe in cache legate al tuo account ed eliminate dopo 48 ore.
- Scollegare revoca il token presso Strava e rimuove il collegamento memorizzato. Finché non ti scolleghi, il record del collegamento persiste — non ha scadenza automatica.
Ciò che Strava fa poi con i tuoi dati è regolato dall'informativa sulla privacy di Strava. Strava è un'azienda statunitense e usarla comporta un trasferimento di dati negli Stati Uniti.
8. Meteo, POI, geocodifica, routing e mappe
Diverse funzioni devono interrogare un servizio esterno riguardo a un luogo. C'è una distinzione significativa nel modo in cui vengono interrogati:
- Tramite il nostro backend — previsioni meteo, ricerca di POI lungo un percorso, geocodifica e tutto ciò che riguarda Strava. Il tuo telefono interroga la nostra funzione server; la funzione server interroga il servizio esterno. Quel servizio vede quindi le coordinate o i termini di ricerca, ma non il tuo indirizzo IP.
- Direttamente dal tuo telefono — il calcolo dei percorsi (BRouter) e le tessere della mappa (il server di tessere di OpenStreetMap). Quei servizi ricevono la richiesta dal tuo dispositivo, quindi vedono il tuo indirizzo IP insieme alle coordinate o all'area della mappa che stai guardando, e possono registrarlo secondo le loro politiche.
Le risposte di meteo, POI e geocodifica vengono messe in cache dal nostro lato, così le ricerche ripetute non re-interrogano: i risultati POI per 24 ore, il meteo per 2 ore, la geocodifica per circa una settimana. Le cache sono indicizzate per luogo, non per ciclista.
Un dettaglio che vale la pena dire chiaramente: la ricerca di POI usa la Overpass API
pubblica su overpass-api.de, e se questa non è disponibile ripiega su un
mirror pubblico ospitato su maps.mail.ru, gestito in Russia. Vengono inviate
solo l'area di ricerca e le categorie cercate, e la richiesta parte dal nostro server e non
dal tuo telefono.
9. Il log diagnostico
L'app tiene un log tecnico per rendere segnalabili i problemi Bluetooth e di assistenza.
- È attivo per impostazione predefinita. Un ciclista che incontra un problema ha così un log da allegare senza aver avuto la lungimiranza di attivare prima la registrazione. Disattivalo in qualsiasi momento in Impostazioni → Diagnostica.
- Password, token e chiavi API vengono rimossi prima che qualcosa venga scritto — un bearer token, una chiave API, un token di magic link o un codice OAuth che compare in qualsiasi punto del log diventa un contrassegno unidirezionale, non la credenziale stessa.
- Resta sul telefono finché non lo alleghi a una richiesta di assistenza. Due file a rotazione nella memoria propria dell'app; niente lascia il telefono prima di allora. Non c'è alcun passaggio di composizione di un'e-mail — una richiesta di assistenza viene inviata dall'interno dell'app stessa, come messaggio in una conversazione di assistenza in corso (vedi il punto successivo). Allegare lì il log lo carica in un bucket di archiviazione privato, e quella copia caricata viene eliminata dopo 180 giorni. Puoi cancellare la copia sul telefono, o disattivare il log, in qualsiasi momento in Impostazioni → Diagnostica.
- Una richiesta di assistenza è una conversazione, non un'e-mail una tantum. Qualunque cosa tu scriva — con o senza log allegato — viene memorizzata come parte di una conversazione di assistenza in corso legata al tuo account e al tuo indirizzo e-mail di accesso. È leggibile dal personale BikeOtter che risponde alle richieste di assistenza, e da nessun altro. La conversazione stessa viene conservata finché non elimini il tuo account, momento in cui viene eliminata con esso (vedi la pagina di eliminazione); un log caricato segue comunque il suo orologio di 180 giorni, indipendente dall'account.
- Il feedback lasciato senza account è davvero anonimo. La scorciatoia Lascia un feedback nella schermata iniziale non ti chiede di accedere. Ciò che viene memorizzato è quello che hai scritto, la versione dell'app e la piattaforma, un identificatore casuale generato sul tuo telefono che esiste solo per permetterci di limitare gli abusi, e — solo se scegli di inserirne uno — un indirizzo e-mail così che possiamo risponderti. Lascia vuoto quel campo e non abbiamo alcun modo di collegare il messaggio a te: né a un account, né a un nome, né a un dispositivo che potremmo identificare. È leggibile dal personale BikeOtter e da nessun altro.
- La conseguenza onesta di questo anonimato: se non hai lasciato un indirizzo, non possiamo riconoscere un messaggio di feedback come tuo, il che significa che non possiamo nemmeno eliminarlo su richiesta — non c'è nulla con cui confrontarti. Se vuoi avere questa possibilità, lascia un indirizzo oppure usa invece la conversazione di assistenza, che è legata al tuo account e se ne va quando se ne va l'account.
- Cosa contiene: versione e build dell'app, modello del telefono, versione del sistema operativo, lingua e fuso orario, più una traccia tecnica delle connessioni ai dispositivi e degli eventi dell'app. I token di condivisione live vengono troncati prima di essere scritti. Può contenere coordinate di posizione — almeno una funzione dei dispositivi registra latitudine e longitudine del ciclista — più coordinate dei percorsi, luoghi salvati e numeri di serie dei dispositivi. Questo non viene oscurato, quindi tratta un log diagnostico come dati che ti riguardano, e invialo solo a qualcuno di cui ti fidi.
10. Terze parti che usiamo
L'elenco completo dei servizi esterni contattati dall'app, dal backend e da questo sito. Non ce ne sono altri, e in particolare non c'è alcun servizio di analytics, attribuzione, pubblicità o crash reporting in nessuna parte del prodotto.
| Servizio | Usato per | Cosa riceve |
|---|---|---|
| Supabase | Database, accesso, funzioni server e il feed in tempo reale dietro il tracciamento live | Tutto ciò descritto nei §3–§8 che viene effettivamente memorizzato, più i metadati di connessione che qualsiasi host vede. Ospitato nell'UE — il progetto gira nella regione West EU (Ireland) di Supabase, quindi questi dati sono conservati all'interno del SEE. |
| Cloudflare | Hosting di bikeotter.app e delle pagine di visualizzazione; il Worker che invia le e-mail di notifica delle uscite | Le richieste a questo sito e all'endpoint di posta, indirizzo IP incluso, nell'ambito del servirle e proteggerle. I log delle richieste del Worker sono conservati secondo i valori predefiniti di Cloudflare. |
| Open-Meteo | Previsioni meteo | Coordinate e orari, inviati dal nostro server, non dal tuo telefono. |
Overpass API (overpass-api.de, mirror di riserva su
maps.mail.ru) | Ricerca di POI lungo un percorso | L'area di ricerca e le categorie, inviate dal nostro server. |
Photon (photon.komoot.io) e Nominatim
(nominatim.openstreetmap.org) | Trasformare i nomi dei luoghi in coordinate e viceversa | Il termine di ricerca o le coordinate, inviati dal nostro server. |
BRouter (brouter.de) | Calcolare un percorso tra i tuoi punti intermedi | Le coordinate dei tuoi punti intermedi e il profilo scelto — inviati direttamente dal tuo telefono, quindi vede il tuo indirizzo IP. |
| Server di tessere di OpenStreetMap | Le immagini della mappa nell'app e sulla pagina di visualizzazione | Quali tessere della mappa stai guardando — richieste direttamente, quindi vede il tuo indirizzo IP. |
| Strava | Importazione facoltativa di percorsi/attività e caricamento delle uscite | Vedi §7. Stati Uniti. |
| Shorebird | Consegna over-the-air di correzioni al codice dell'app installata | Un controllo di aggiornamento all'avvio. Vedi §10.1 — non è facoltativo. |
| YouTube (Google Ireland Limited) | La riproduzione dei due video nella home page di questo sito — e solo quando premi play | Il tuo indirizzo IP, la pagina su cui hai premuto play e i consueti dati del browser — richiesto direttamente dal tuo browser a youtube-nocookie.com, quindi Google vede il tuo indirizzo IP. Vedi §15. |
Gli store delle app sono una cosa a parte: se installi BikeOtter dall'App Store di Apple o da Google Play, tra te e loro valgono le regole di quello store su account, acquisti e crash reporting, che sono fuori dal nostro controllo.
10.1 Shorebird, e perché contatta un server senza chiedere
BikeOtter viene rilasciato tramite Shorebird, che ci permette di consegnare una correzione al codice Dart dell'app over-the-air, tra una release dello store e l'altra. È il meccanismo dietro una patch che arriva senza un aggiornamento dello store.
La parte che dovresti sapere: l'app controlla se c'è una patch all'avvio, automaticamente, e non esiste un'impostazione per disattivarlo. La nostra configurazione non disabilita il controllo automatico, e l'app non offre alcuna possibilità di rinuncia — l'unico modo per fermarlo è non avviare l'app. Preferiamo dirlo chiaramente piuttosto che nasconderlo.
Non gestiamo i server di Shorebird e non possiamo osservare cosa invia il suo updater, perché l'updater è integrato nel runtime dell'app e non in codice che scriviamo noi. Ciò che un controllo del genere comporta necessariamente, però, non è questione di opinioni: per ricevere risposta deve identificare quale app sta chiedendo (il nostro id app di Shorebird, che non è segreto ed è lo stesso per ogni installazione) e quale versione e livello di patch è già installato, e — come ogni richiesta di rete — raggiunge i server di Shorebird dal tuo indirizzo IP. Presumi che Shorebird possa vedere almeno questo, e che possa registrarlo come qualsiasi host registra le richieste.
Due cose che non siamo riusciti ad accertare e su cui non tireremo a indovinare: il contenuto esatto di quella richiesta oltre a quanto sopra, e il paese in cui si trovano i suoi server. Se ti serve una delle due prima di installare, chiedicelo e otterremo la risposta di Shorebird per iscritto invece di speculare qui.
Cosa possiamo escludere: il controllo non è legato al tuo account, e BikeOtter funziona senza accesso, quindi la richiesta non porta con sé alcuna identità che le abbiamo dato noi. Una patch cambia il codice dell'app — mai i tuoi dati, le tue uscite o i tuoi percorsi.
11. Permessi del telefono
L'app chiede il minimo possibile, e ogni permesso serve esattamente a una cosa.
| Permesso | Perché |
|---|---|
| Bluetooth | Per trovare e comunicare con il tuo ciclocomputer e i tuoi sensori. Su Android il permesso di scansione è dichiarato come mai usato per ricavare la posizione. |
| Posizione | Posizione approssimativa su Android, «mentre usi l'app» su iOS: per cercare POI vicino a te e per avviare un ricalcolo del percorso da dove ti trovi. La posizione in background non viene richiesta su nessuna delle due piattaforme. Durante un'uscita la posizione che viene condivisa arriva dal ciclocomputer via Bluetooth. |
| Microfono e riconoscimento vocale | Comandi vocali. Il riconoscimento avviene sul dispositivo; l'audio non viene inviato da nessuna parte. |
| Notifiche | Per mostrare la notifica persistente dell'uscita e gli avvisi. |
| Accesso alle notifiche (solo Android) | Facoltativo. Permette all'app di leggere le notifiche in arrivo sul telefono per poterle mostrare sul tuo ciclocomputer. Lo concedi tu nelle impostazioni di sistema, e i loro contenuti non vengono mai memorizzati né caricati. |
| Avvio automatico / esenzione batteria (solo Android) | Perché un'uscita interrotta possa riprendere dopo un riavvio e non venga terminata a metà uscita. |
L'app non chiede foto, fotocamera, la rubrica del telefono, il calendario né alcun identificatore pubblicitario, e non usa il permesso di tracciamento di Apple perché non traccia.
12. Conservazione in sintesi
| Dati | Conservati per |
|---|---|
| Punti di posizione live | 7 giorni dopo che l'uscita termina o scade — eliminati con la loro sessione |
| Record della sessione live | 7 giorni dopo che termina o scade |
| Record dell'uscita di gruppo | 7 giorni dopo che termina o scade |
| Messaggi da chi guarda | Eliminati con la loro sessione — quindi entro gli stessi 7 giorni |
| Cache del meteo | 2 ore |
| Cache dei POI | 24 ore |
| Cache della geocodifica | 8 giorni |
| Cache delle risposte di Strava | 48 ore |
| Contatti e i loro record di notifica | Finché non elimini il contatto o il tuo account — nessuna scadenza automatica |
| Collegamento a Strava | Finché non ti scolleghi o elimini il tuo account |
| Record dell'account | Finché non ci chiedi di eliminarlo — vedi come eliminare il tuo account |
| Conversazione di assistenza (thread e messaggi) | Finché non elimini il tuo account — vedi come eliminare il tuo account |
| Feedback anonimo (scorciatoia nella schermata iniziale) | Conservato finché non gli abbiamo dato seguito — nessuna scadenza automatica. Se non hai lasciato un indirizzo per la risposta non può essere riconosciuto come tuo, quindi non può essere eliminato su richiesta |
| Log diagnostico | Sul tuo telefono per impostazione predefinita, ruotato automaticamente, eliminabile da te in qualsiasi momento; se allegato a una richiesta di assistenza, la copia caricata viene conservata 180 giorni con il proprio orologio, indipendente dall'account |
I log di server e piattaforma tenuti dai nostri fornitori di hosting (Supabase, Cloudflare) seguono i valori di conservazione predefiniti di quei fornitori e possono contenere brevemente indirizzi IP come parte inevitabile del servire una richiesta.
13. Basi giuridiche
- Art. 6(1)(b) GDPR — eseguire ciò che hai chiesto. Farti accedere, gestire una condivisione live che hai avviato, inviare le e-mail di notifica che hai richiesto, caricare un'uscita su un account Strava che hai collegato, calcolare un percorso che hai disegnato, e inviare una richiesta di assistenza con il log diagnostico allegato.
- Art. 9(2)(a) GDPR — consenso esplicito per i dati sanitari. Frequenza cardiaca e potenza sono dati sanitari. Vengono caricate solo quando attivi «condividi frequenza cardiaca e potenza»; l'interruttore è disattivato per impostazione predefinita e disattivarlo ferma il caricamento. La cadenza viene caricata sotto lo stesso interruttore. Non sosteniamo che la cadenza sia un dato sanitario nel senso dell'Art. 9 — è una lettura da un sensore sulla pedivella, non dal tuo corpo — ma appartiene alla stessa famiglia e riceve la stessa protezione invece di una più debole.
- Art. 6(1)(a) GDPR (e, per ciò che il player salva nel tuo browser, § 25(1) TDDDG) — consenso, per i video nella home page. Premere play su un video è la richiesta di caricare il player di YouTube, e prima non si carica nulla da YouTube. Lo revochi semplicemente non premendo più play: lasciare o ricaricare la pagina rimuove il player.
- § 25(2) No. 2 TDDDG — memorizzazione strettamente necessaria nel tuo browser, per le poche voci che questo sito conserva nel local storage del tuo browser: la lingua e il tema che hai scelto, ciò che la demo lascia dietro di sé e un accesso alla wishlist. Il §15 le elenca una per una. Per queste non serve alcun consenso, e non ne viene chiesto nessuno.
- Art. 6(1)(f) GDPR — interessi legittimi a mantenere il servizio funzionante e al riparo dagli abusi: limiti di frequenza, protezioni una-e-mail-per-contatto-per-uscita, gestione dei bounce, la registrazione minima delle richieste eseguita dai nostri host, e il log diagnostico sul dispositivo attivo per impostazione predefinita così che una richiesta di assistenza possa includerne uno — puoi disattivarlo in Impostazioni → Diagnostica in qualsiasi momento.
Revocare il consenso è sempre possibile e ha effetto da quel momento in poi: termina la condivisione, disattiva l'interruttore frequenza cardiaca/potenza, disattiva il log, scollega Strava, elimina il contatto.
14. I tuoi diritti
Secondo il GDPR hai il diritto di accedere ai tuoi dati (Art. 15), di farli rettificare (Art. 16) o cancellare (Art. 17), di limitare il trattamento (Art. 18), di riceverli in forma portabile (Art. 20), e di opporti al trattamento basato su interessi legittimi (Art. 21). Dove il trattamento si basa sul consenso, puoi revocarlo in qualsiasi momento.
Scrivi a support@bikeotter.app e ce ne occuperemo. Molto puoi anche farlo da te nell'app: terminare una condivisione, eliminare un contatto, scollegare Strava, cancellare il log diagnostico.
La cancellazione (Art. 17) ha una pagina tutta sua, perché merita il dettaglio: come eliminare il tuo account — i passaggi, cosa viene cancellato con esso, cosa viene conservato dopo e per quanto tempo.
Se pensi che abbiamo sbagliato, puoi presentare reclamo a un'autorità di controllo per la protezione dei dati — nell'UE, quella del luogo in cui vivi, in cui lavori o in cui è avvenuta la presunta violazione (Art. 77 GDPR).
15. Questo sito web
bikeotter.app è un insieme di pagine statiche ospitate su Cloudflare. Non imposta nessun cookie e non esegue nessuna analytics. Conserva invece alcune piccole voci nel local storage del tuo browser, ognuna scritta per via di qualcosa che hai scelto o di una funzione che hai usato. Tutte tranne una non lasciano mai il tuo browser: vengono lette dalla pagina stessa e da nient'altro — non da noi, non da nessuno. Quella che lo lascia esiste solo se accedi sulla pagina della wishlist: viene inviata al nostro backend, perché è così che funziona l'accesso. L'elenco completo:
| Voce (chiave) | Cosa contiene, e perché | Inviata da qualche parte? |
|---|---|---|
bikeotter:lang | Un codice di lingua, per esempio de. Viene scritta quando scegli una lingua in fondo a una pagina — oppure alla tua prima visita a una pagina in inglese, se il tuo browser chiede tedesco, spagnolo, francese, italiano o polacco: il sito allora ti porta a quella lingua una volta sola, e ricorda di averlo fatto, così non ti cambia mai più lingua contro una scelta che hai fatto tu. | No |
bikeotter-site-theme | light o dark. Viene scritta solo quando premi il pulsante chiaro/scuro nell'intestazione, così che la pagina successiva si apra nel tema che hai scelto. Finché non lo premi non viene memorizzato nulla, e le pagine seguono l'impostazione del tuo sistema. | No |
FlutterSecureStorage e FlutterSecureStorage.plus_device_key | Solo dalla demo su /it/demo/, e solo dopo che vi hai avviato un'uscita di gruppo: un identificatore casuale, cifrato con una chiave conservata accanto. La demo è la vera app, che crea questo identificatore quando avvii un'uscita di gruppo; nella demo quell'uscita è simulata dentro il tuo browser, quindi l'identificatore non serve a nulla e semplicemente resta lì. | No |
sb-ccskijubebzhwpknjkpl-auth-token | Solo se accedi sulla pagina della wishlist: la tua sessione di accesso — un token di accesso, un token di aggiornamento, e l'id utente e l'indirizzo e-mail del tuo account — così che tu risulti ancora connesso quando torni. | Sì, al nostro backend (Supabase, vedi §10), con ogni richiesta che la pagina della wishlist fa mentre sei connesso — è così che sa che un voto o un suggerimento è tuo |
Per rimuoverle, cancella i dati di questo sito nel tuo browser — nella maggior parte dei browser tramite l'icona a sinistra della barra degli indirizzi, oppure nelle impostazioni per cookie e dati dei siti. Una finestra privata parte senza nessuna di esse e le dimentica quando la chiudi. Se il tuo browser blocca i dati dei siti, le pagine funzionano comunque: seguono la lingua e il tema del tuo sistema, e semplicemente non possono ricordare una scelta.
Perché non ti viene chiesto prima. Memorizzare e leggere queste voci non richiede alcun consenso ai sensi del § 25(2) No. 2 TDDDG, perché ognuna è strettamente necessaria per qualcosa che hai chiesto a questo sito: pagine nella tua lingua e nel tema che hai scelto, la demo che hai aperto, e restare connesso alla wishlist. La sessione di accesso è un dato personale, e per essa la base giuridica è l'Art. 6(1)(b) GDPR (§13). Qui non c'è nient'altro a cui acconsentire, ed è per questo che non ti viene chiesto. L'unica eccezione è un video nella home page, descritto più sotto: premere il suo pulsante play equivale al consenso.
Ogni risorsa di cui una pagina qui ha bisogno viene servita da questo sito. I caratteri (Geist e Geist Mono) sono ospitati da noi invece che scaricati da un CDN di font, proprio perché leggere una pagina non consegni il tuo indirizzo IP a una terza parte. Non c'è alcun tag manager, alcun widget di condivisione, alcun servizio di web font, né alcun player video finché non ne chiedi uno. L'unica parte che vede necessariamente la tua richiesta è Cloudflare, che ospita le pagine — inevitabile, visto che qualcosa deve pur servirle.
I video nella home page sono l'unica eccezione, e solo quando premi play. La home page mostra due video di BikeOtter ospitati su YouTube. Con la pagina si caricano solo un'immagine di anteprima e un pulsante play, entrambi serviti da questo sito; nessuna richiesta parte verso YouTube o Google finché non premi play. Premere play sostituisce l'anteprima con il player di YouTube, caricato da youtube-nocookie.com — la modalità di privacy avanzata di YouTube, gestita da Google Ireland Limited, Gordon House, Barrow Street, Dublino 4, Irlanda. Da quel momento il tuo browser parla direttamente con Google: Google riceve il tuo indirizzo IP, l'indirizzo della pagina e i consueti dati del browser, e mentre il video è in riproduzione il player può salvare identificativi nel tuo browser e inviare a Google informazioni sulla riproduzione, che Google può trattare anche negli Stati Uniti (Google LLC è certificata nell'ambito del Data Privacy Framework UE-USA). La modalità di privacy avanzata significa che YouTube non usa la visione di un video incorporato per personalizzare ciò che ti mostra altrove su YouTube — ma non è anonima. Noi non riceviamo nulla di tutto ciò. Si applica l'informativa sulla privacy di Google: policies.google.com/privacy. Se non premi play, non succede nulla di tutto questo. Il link «Guarda su YouTube» sotto ogni video lo apre invece su youtube.com, dove valgono le normali condizioni di YouTube.
Il visualizzatore di tracciamento live su bikeotter.app/r/… e il visualizzatore di gruppo su /g/… caricano in aggiunta i dati dell'uscita condivisa dal nostro backend e le tessere della mappa da OpenStreetMap. Aprire un link di visualizzazione, deliberatamente, non lascia alcuna sessione nel tuo browser: il token di accesso che usa è tenuto in memoria solo per quella visita e non viene salvato. Chi guarda viene contato, non identificato.
I link di visualizzazione sono esclusi dai motori di ricerca tramite
robots.txt, e ognuno porta un'istruzione noindex, quindi un'uscita
condivisa non è pensata per comparire nei risultati di ricerca.
16. Minori
BikeOtter non è rivolta ai minori e non è destinata all'uso da parte di chi ha meno di 16 anni. Non raccogliamo consapevolmente dati di minori. Se ritieni che un minore abbia usato l'app con un account, scrivici e lo elimineremo.
17. Modifiche
L'app è giovane e sta ancora cambiando. Se cambia ciò che raccoglie, questa pagina cambia con essa, e la versione e la data in alto si aggiornano. Le modifiche sostanziali verranno segnalate nell'app invece di essere introdotte in sordina.
18. Contatti
Domande, richieste o una correzione a qualcosa su questa pagina: support@bikeotter.app.
Vedi anche i termini d'uso e l'avvertenza sulla sicurezza e le note legali.