diff --git a/README.md b/README.md index 6ba5b81..0816211 100644 --- a/README.md +++ b/README.md @@ -1,72 +1,72 @@ # harbour-tide -Previsioni di marea **universali** per Sailfish OS — client nativo Silica con -motore armonico locale (nessuna API di maree: calcolo offline, per sempre). +**Universal tide predictions** for Sailfish OS — native Silica client with a +local harmonic engine (no tide API: offline computation, forever). -## Funzionalità +## Features -- **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, +- **7-constituent harmonic engine** (M2, S2, N2, K1, O1, P1, K2): + `h(t) = Z₀ + Σ Aᵢ·cos(ωᵢt + φᵢ)`, computed locally +- **16 known ports** with realistic constants (Italy + London, 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 +- **Free city search**: OpenStreetMap geocoding via Photon with offline + fallback on the local dataset; constants are taken from the known port + within 222 km, otherwise from a synthetic lat/lon estimate (labelled) +- **"Nearest port" card** highlighted when opening a searched city +- **24/48/72 h chart** with high/low tides marked with times, tap for the + height at a given point +- **Moon phase and sunrise/sunset** computed +- **Italian and English** (language selector in settings, applied on app + restart; `.qm` catalogue in the app data dir) +- **Saved preferences**: language, preferred port (opened at startup and + shown on the cover), unit (m/ft), chart range ## Build -Serve il [Sailfish SDK](https://sailfishos.org/wiki/Sailfish_SDK). +Requires the [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 install SailfishOS-5.0.0.62-aarch64 # or your device target sfdk target use SailfishOS-5.0.0.62-aarch64 -sfdk build # produce l'RPM in RPMS/ -sfdk deploy # installa sul dispositivo connesso +sfdk build # produces the RPM in RPMS/ +sfdk deploy # installs on the connected device ``` -Target consigliati: `aarch64` (Jolla Phone 2026, Xperia 10 II/III), -`armv7hl` (Xperia X, Jolla C), `x86_64` (emulatore). +Recommended targets: `aarch64` (Jolla Phone 2026, Xperia 10 II/III), +`armv7hl` (Xperia X, Jolla C), `x86_64` (emulator). -## Struttura +## Structure ``` -src/ C++: main.cpp (lingua + translator), settings +src/ C++: main.cpp (language + 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) +qml/js/tides.js harmonic engine (pure ES5, Qt 5.6 compatible): + constants, prediction, extrema, synthetic estimate, + local geocoding, moon, sun +qml/pages/ MainPage (ports + free city search), DetailPage + (canvas chart, events, nearest-port card, astro), + SettingsPage (language, unit, range, port) +qml/cover/ cover with preferred port and next tide +translations/ harbour-tide.ts (EN source), harbour-tide_it.ts +icons/ icons 86/108/128/172 (make_icons.py, harbour style) +rpm/ spec and desktop file (SailJail: Internet) ``` -## Configurazione +## Configuration -File: `~/.config/harbour/tide/tide.conf` (QSettings, zona persistente -della sandbox SailJail). Chiavi: `language` (system/en/it), `preferredPort`, +File: `~/.config/harbour/tide/tide.conf` (QSettings, persistent zone of the +SailJail sandbox). Keys: `language` (system/en/it), `preferredPort`, `unit` (m/ft), `days` (1/2/3). -## Limiti noti +## Known limitations -- 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. +- Port constants are synthetic but realistic; the lat/lon estimate does not + distinguish closed basins (Mediterranean) from open ocean. +- Accuracy of a real global model (FES2014/TPXO9): ~10–20 cm in open ocean; + the engine is ready to receive grid constants. +- Not for navigation. +- Language is applied on app restart. -## Licenza +## License MIT