# harbour-tide Previsioni di marea **universali** per Sailfish OS — client nativo Silica con motore armonico locale (nessuna API di maree: calcolo offline, per sempre). ## Funzionalità - **Motore armonico a 7 costituenti** (M2, S2, N2, K1, O1, P1, K2): `h(t) = Z₀ + Σ Aᵢ·cos(ωᵢt + φᵢ)`, calcolato localmente - **16 porti noti** con costanti realistiche (Italia + Londra, New York, San Francisco, Tokyo, Sydney, Honolulu) - **Ricerca libera delle città**: geocoding OpenStreetMap (Nominatim) con fallback su dataset locale offline; le costanti arrivano dal porto noto entro 222 km, altrimenti da una stima sintetica da lat/lon (etichettata) - **Card "porto più vicino"** in evidenza quando si apre una città cercata - **Grafico 24/48/72 h** con alte/basse maree marcate e orari, tap per altezza in un punto - **Fase lunare e alba/tramonto** calcolati - **Italiano e inglese** (selettore lingua nelle impostazioni, applicata al riavvio; catalogo `.qm` nel data dir dell'app) - **Preferenze salvate**: lingua, porto preferito (aperto all'avvio e mostrato sulla cover), unità (m/ft), intervallo del grafico ## Build Serve il [Sailfish SDK](https://sailfishos.org/wiki/Sailfish_SDK). ```sh sfdk target install SailfishOS-5.0.0.62-aarch64 # o il target del dispositivo sfdk target use SailfishOS-5.0.0.62-aarch64 sfdk build # produce l'RPM in RPMS/ sfdk deploy # installa sul dispositivo connesso ``` Target consigliati: `aarch64` (Jolla Phone 2026, Xperia 10 II/III), `armv7hl` (Xperia X, Jolla C), `x86_64` (emulatore). ## Struttura ``` src/ C++: main.cpp (lingua + translator), settings (QSettings: language, preferredPort, unit, days) qml/js/tides.js motore armonico (ES5 puro, compatibile Qt 5.6): costanti, predizione, estremi, stima sintetica, geocoding locale, luna, sole qml/pages/ MainPage (porti + ricerca libera), DetailPage (grafico canvas, eventi, card porto vicino, astro), SettingsPage (lingua, unità, intervallo, porto) qml/cover/ cover con porto preferito e prossima marea translations/ harbour-tide.ts (EN sorgente), harbour-tide_it.ts icons/ icone 86/108/128/172 (make_icons.py, stile harbour) rpm/ spec e desktop file (SailJail: Internet) ``` ## Configurazione File: `~/.config/harbour/tide/tide.conf` (QSettings, zona persistente della sandbox SailJail). Chiavi: `language` (system/en/it), `preferredPort`, `unit` (m/ft), `days` (1/2/3). ## Limiti noti - Le costanti dei porti sono sintetiche ma realistiche; la stima da lat/lon non distingue bacini chiusi (Mediterraneo) da oceano aperto. - Precisione di un vero modello globale (FES2014/TPXO9): ~10–20 cm in oceano aperto; il motore è predisposto a ricevere le costanti da griglia. - Non per navigazione. - La lingua si applica al riavvio dell'app. ## Licenza MIT