~/progetti/aplomb/README.md

COOKIES_ADVICE PRIVACY_POLICY.

~/progetti/aplomb/README.md

Aplomb

{ Datum: “2026-05-01”, Status: “live”, Stack_Module: 7 }

Eine plattformübergreifende digitale Wasserwaage, präzise und sorgfältig gestaltet, gebaut mit React Native und Expo

Aplomb ist eine voll ausgestattete digitale Wasserwaage-App, verfügbar auf iOS, Android und Web. Sie ersetzt die klassische Libelle durch eine schlanke, physikalisch akkurate UI, die in Echtzeit auf die Ausrichtung des Geräts reagiert. Ob beim Aufhängen eines Bildes, Ausrichten eines Regals oder Prüfen einer Oberfläche auf der Baustelle — Aplomb liefert präzise Neigungswerte mit sofortigem visuellem, akustischem und haptischem Feedback.

Der Name aplomb (vom französischen Wort für "Lotschnur") spiegelt sowohl den Zweck der App als auch die Sorgfalt ihrer Umsetzung wider: stabil, präzise und ausbalanciert.

## Zwei interaktive Ansichtsmodi

Die App bietet zwei komplementäre Visualisierungen, die sich an die Haltung des Geräts anpassen:

·Disc Level — klassische kreisförmige Libelle für flache/horizontale Oberflächen; ein weicher Indikator verfolgt die X/Y-Neigung auf beiden Achsen gleichzeitig
·Horizon Mode — eine bildschirmfüllende Horizontlinie, die in Echtzeit rotiert, um den Rollwinkel anzuzeigen, ideal wenn das Gerät vertikal gehalten wird (z. B. an einer Wand)
·Auto-Switching — die App erkennt die Geräteneigung aus den Beschleunigungsdaten und blendet flüssig zwischen beiden Modi über, mit Option zum manuellen Fixieren

## Echtzeit-Sensorverarbeitung

Die Beschleunigungsdaten werden mit 20 Hz abgetastet und in einem dedizierten Mathematik-Modul verarbeitet, das berechnet:

·Elevationswinkel — unterscheidet flache von vertikaler Geräteausrichtung
·Rollwinkel — steuert die Rotation der Horizontlinie
·X/Y-Neigung in Grad — numerisch auf dem Bildschirm angezeigt
·Nivellierungserkennung — konfigurierbare Toleranzschwellen für horizontale und vertikale Oberflächen

## Multisensorisches Feedback

Wenn die Oberfläche perfekt eben ist, bestätigt dies die App auf drei Arten: ein sauberer Audio-Ton über expo-audio, ein zufriedenstellendes Vibrationsmuster über expo-haptics und eine visuelle Hervorhebung des Indikators und der Anzeige. Der Benutzer kann mit einem einzigen Tippen zwischen Ton, Vibration oder stummem Modus wechseln.

## Kalibrierung und gespeicherte Messungen

Ein integriertes Kalibrierungsmodul erlaubt den Nutzern, einen benutzerdefinierten Null-Winkel-Offset festzulegen, der zwischen Sitzungen auf dem Gerät persistiert wird. Das ist wesentlich, um kleine Ungenauigkeiten älterer Geräte zu korrigieren oder Winkel relativ zu einer bestehenden Referenzoberfläche zu messen. Messungen können mit benutzerdefinierten Labels gespeichert und später als Kartenverlauf mit Zeitstempeln und Löschaktionen überprüft werden.

## Adaptives Design und Themes

Responsives Layout für Smartphones und Tablets (iPhone und iPad) inklusive Querformat auf allen Geräten. Dynamische Größenberechnungen auf Basis der Bildschirmdiagonale sorgen für korrekte Skalierung auf jedem Formfaktor. Helles, dunkles und automatisches System-Theme sind alle zur Laufzeit ohne Neustart umschaltbar.

## Internationalisierung

Die App wird mit 15 Sprachen ausgeliefert, mit automatischer Erkennung des Gerätespracheinstellung: Englisch, Italienisch, Deutsch, Französisch, Spanisch, Portugiesisch, Russisch, Chinesisch, Japanisch, Arabisch, Hindi, Urdu, Bengalisch, Indonesisch und Türkisch. Der App-Name selbst wird auf dem Home-Screen des Betriebssystems über ein benutzerdefiniertes Expo-Config-Plugin lokalisiert.

## Tech-Stack

Die technischen Entscheidungen spiegeln den Bedarf an einer flüssigen, reaktiven Erfahrung wider:

·React Native 0.83 mit React 19 und aktiviertem experimentellem React Compiler
·Expo ~55 im managed Workflow für Tooling und native Module
·TypeScript 5.9 für statische Typisierung der gesamten Codebasis
·Expo Router für dateibasierte Navigation mit typisierten Routen
·expo-sensors, expo-haptics und expo-audio für Hardwarezugriff
·React Native Reanimated 4 mit shared values für Feder-Physik-Animationen auf dem UI-Thread
·react-native-worklets und react-native-gesture-handler für Gesten-Interop und frame-synchrone Berechnungen
·TailwindCSS via Uniwind, tailwind-variants, heroui-native und react-native-svg für die UI
·expo-glass-effect und expo-symbols für Glasmorphismus und SF Symbols auf iOS
·i18next mit expo-localization für Laufzeit-Sprachwechsel
·AsyncStorage für lokale Persistenz von Kalibrierung und gespeicherten Messungen
·EAS Build für Cloud-Builds auf iOS und Android, mit expo-dev-client und expo-build-properties

## Architektur-Highlights

Fünf Prinzipien, die die Codebasis prägen:

·Trennung der Verantwortlichkeiten — die Sensormathematik lebt in einem dedizierten Modul, vollständig von der UI isoliert; das Rendering konsumiert saubere, typisierte Werte, die über einen dedizierten Hook bereitgestellt werden
·Performance — animierte Werte laufen über Reanimated auf dem nativen UI-Thread, ohne JS-Bridge-Round-Trips pro Frame
·Responsive Geometrie — die Layout-Konstanten werden dynamisch aus den Live-Bildschirmdimensionen neu berechnet und sorgen für korrekte Skalierung von einem 4" iPhone SE bis zu einem 13" iPad Pro
·Plattform-Splits — plattformspezifische Tab-Bar-Implementierungen werden beim Bundling für iOS, Android und Web ausgewählt, ohne Laufzeitverzweigungen im geteilten Code
·Multisensorische Zugänglichkeit — redundantes visuelles, akustisches und haptisches Feedback sichert die Nutzbarkeit auch in lauten oder lichtvariablen Umgebungen

Aplomb ist als App auf iOS, Android und Web verfügbar, mit Bundle-ID com.mariustrica.aplomb.

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