~/progetti/aplomb/README.md

COOKIES_ADVICE PRIVACY_POLICY.

~/progetti/aplomb/README.md

Aplomb

{ data: “2026-05-01”, stato: “live”, moduli_stack: 7 }

Una livella digitale multipiattaforma, precisa e curata, costruita con React Native ed Expo

Aplomb è una livella digitale completa disponibile su iOS, Android e Web. Sostituisce la classica bolla con un'interfaccia fisicamente accurata che reagisce in tempo reale all'orientamento del dispositivo. Che si tratti di appendere un quadro, livellare una mensola o controllare una superficie in cantiere, Aplomb fornisce letture precise dell'inclinazione con feedback visivo, sonoro e tattile istantaneo.

Il nome aplomb (dal francese per "filo a piombo") riflette lo scopo dell'app e la cura con cui è stata costruita: stabile, precisa, ben bilanciata.

## Due modalità interattive

L'app offre due visualizzazioni complementari che si adattano al modo in cui impugni il dispositivo:

·Disc Level — livella circolare classica per superfici piane/orizzontali. Un indicatore fluido traccia simultaneamente l'inclinazione su entrambi gli assi X/Y
·Horizon Mode — linea d'orizzonte a tutto schermo che ruota in tempo reale per mostrare l'angolo di rollio, ideale quando il dispositivo è tenuto verticalmente (es. contro un muro)
·Auto-switching — l'app rileva l'elevazione del dispositivo dai dati dell'accelerometro e dissolve fluidamente tra le due modalità, con possibilità di bloccarne una manualmente

## Elaborazione sensoriale in tempo reale

I dati dell'accelerometro sono campionati a 20 Hz e processati da un modulo matematico dedicato che calcola:

·Angolo di elevazione — distingue tra orientamento piano e verticale
·Angolo di rollio — guida la rotazione dell'orizzonte
·Inclinazione X/Y in gradi — visualizzata numericamente
·Rilevamento del livello — soglie di tolleranza configurabili per superfici orizzontali e verticali

## Feedback multi-sensoriale

Quando la superficie è perfettamente in bolla, l'app lo conferma in tre modi: un tono audio pulito via expo-audio, una vibrazione soddisfacente via expo-haptics e un evidenziamento visivo dell'indicatore e del valore. L'utente può scegliere tra suono, vibrazione o modalità silenziosa con un solo tap.

## Calibrazione e misurazioni salvate

Un modulo di calibrazione integrato permette all'utente di impostare un offset di zero personalizzato, persistito tra sessioni sul dispositivo. Fondamentale per correggere piccole imprecisioni dei dispositivi più vecchi o misurare angoli rispetto a una superficie di riferimento esistente. Le misurazioni possono essere salvate con etichetta personalizzata e consultate nella schermata dello storico.

## Design adattivo e temi

Layout responsive per telefoni e tablet (iPhone e iPad) con supporto a tutti gli orientamenti, incluso landscape. Calcoli dinamici basati sulla diagonale dello schermo garantiscono un riempimento corretto su ogni form factor. Tema chiaro, scuro e automatico di sistema, tutti commutabili a runtime senza riavvii.

## Internazionalizzazione

Supporto nativo per 15 lingue con rilevamento automatico del locale del dispositivo: inglese, italiano, tedesco, francese, spagnolo, portoghese, russo, cinese, giapponese, arabo, hindi, urdu, bengalese, indonesiano e turco. Il nome dell'app stesso viene localizzato sulla home screen del sistema operativo tramite un plugin Expo custom.

## Stack tecnologico

Le scelte tecniche riflettono la necessità di un'esperienza fluida e reattiva:

·React Native 0.83 con React 19 e React Compiler sperimentale
·Expo ~55 in managed workflow per tooling e moduli nativi
·TypeScript 5.9 per tipizzazione statica su tutta la codebase
·Expo Router per navigazione file-based con route tipizzate
·expo-sensors, expo-haptics ed expo-audio per accesso all'hardware
·React Native Reanimated 4 con shared values per animazioni a molla sul thread UI
·react-native-worklets e react-native-gesture-handler per interop gesti e sincronia frame
·TailwindCSS con Uniwind, tailwind-variants, heroui-native e react-native-svg per la UI
·expo-glass-effect ed expo-symbols per effetti vetro e SF Symbols su iOS
·i18next con expo-localization per runtime language switching
·AsyncStorage per persistenza locale di calibrazione e misurazioni
·EAS Build per build cloud iOS e Android, con expo-dev-client ed expo-build-properties

## Architettura

Cinque principi che caratterizzano la codebase:

·Separazione delle responsabilità — la matematica dei sensori è isolata dalla UI in un modulo dedicato; il rendering consuma valori puliti e tipizzati esposti da un hook dedicato
·Performance — i valori animati girano direttamente sul thread nativo via Reanimated, senza passare dal bridge JS ad ogni frame
·Geometria responsive — le costanti di layout sono ricalcolate dinamicamente dalle dimensioni live dello schermo, garantendo scaling corretto da un iPhone SE a un iPad Pro 13"
·Split di piattaforma — implementazioni specifiche della tab bar per iOS, Android e Web sono selezionate automaticamente al bundling, senza branching a runtime
·Accessibilità multisensoriale — feedback ridondante (visivo, sonoro, tattile) per garantire usabilità anche in contesti di rumore o luce variabile

Aplomb è disponibile come app su iOS, Android e Web con bundle id com.mariustrica.aplomb.

// stack
[react-native”, expo”, typescript”, ios”, android”, mobile”, sensors”, ]