Eine mobile App für das tägliche Wort des Tages.
Android APK: Download from GitHub Releases
Die neueste APK findet ihr immer im neuesten Release. Einfach die
.apkDatei herunterladen und installieren.
# if you don't have eas-cli installed
npm install -g eas-cli# request access to our expo org and then run
eas login
eas env:pull# Install dependencies
npm install
# Start development server
npm startIm Dev-Modus wird die Device-ID beim Start in der Konsole geloggt. Um Premium zu aktivieren:
- App starten und Device-ID aus den Logs kopieren:
Device ID: abc123... - SQL Editor im Dev-Projekt im Supabase Dashboard öffnen
- Ausführen:
INSERT INTO entitlements (device_id, is_premium, premium_source) VALUES ('deine-device-id', true, 'dev');
✅ = Automatisch geprüft (ESLint/Prettier/TypeScript)
- Single Quotes (
') für Strings - Semicolons (
;) am Zeilenende - 2 Spaces für Einrückung
- Trailing Commas im ES5-Stil
- Zeilenlänge: 80 Zeichen
- Strict Mode aktiviert
- Explizite Typen für alle Funktionsparameter und Rückgabewerte
- Interfaces für Props und Datenstrukturen (
interface WordCardProps) - Type Aliases für Union Types (
type FrequencyRange = 'selten' | 'mittel' | 'haeufig') - Path Alias
@/*für Imports aus dem Root-Verzeichnis - Keine
anyTypes
- Variablen: camelCase, UPPER_CASE oder PascalCase
- Funktionen: camelCase oder PascalCase (für Komponenten)
- Typen & Interfaces: PascalCase
- React & React Native Imports
- Third-Party Libraries (Expo, etc.)
- Lokale Imports mit
@/Alias - Relative Imports (
./) - Leerzeile zwischen Gruppen
/app - Expo Router Screens & Layouts
/components - React-Komponenten
/services - Business-Logik & Datenbank-Zugriff
/hooks - Custom React Hooks
/constants - Konstanten (z.B. Colors)
/assets - Statische Ressourcen (Fonts, Images, Database)
/types - TypeScript Type Definitions
- Komponenten: PascalCase (
WordCard.tsx) - Services: camelCase (
wordService.ts) - Hooks: camelCase mit
usePrefix (useDailyRefresh.ts)
- Functional Components mit TypeScript
- Named Exports für Komponenten (
export function WordCard()) - Default Exports nur für Screens (
export default function HomeScreen()) - StyleSheet.create() für Styles am Ende der Datei
- Custom Hooks für wiederverwendbare Logik
- Props Destructuring in Funktionsparametern
- Singleton Pattern für Database Connection
- Async/Await für alle DB-Operationen
- Type-Safe Queries mit Generics (
db.getAllAsync<Wort>()) - Service-Funktionen sind
asyncund exportiert - Helper-Funktionen sind nicht exportiert
- Tests in
__tests__Ordnern neben dem Code - Testdateien:
*.test.tsoder*.test.tsx - Jest mit
jest-expoPreset describe()Blöcke für Gruppierungit()für einzelne Tests
- Services werfen typed
AppError(utils/appError.ts), UI fängt ab und zeigt Fallback/Meldung - Promises immer behandeln:
await+try/catchoder.catch()bei "fire-and-forget" - Render-Fehler: Expo Router
ErrorBoundaryinapp/_layout.tsx console.error()für Fehler-Logging
Siehe DEPLOYMENT.md für:
- Versionierung (SemVer)
- CI/CD Pipelines
- Artefakt-Verwaltung
- Release-Checkliste
Siehe REALISIERUNGSKONZEPT.md für:
- Ziele und Anforderungen
- Architektur und Komponenten
- Technologiestack
- Datenmodell (ERD, DSGVO)
- Sicherheit und Verschlüsselung
- Projektorganisation und Meilensteine
- Risiken und Wartungsplan
Siehe TESTKONZEPT.md für:
- Kritikalität der Funktionseinheiten
- Testfälle und Testdaten
- Testumgebung und Testinfrastruktur
- Testarten und Testverfahren
- Testzeitpunkte im CI/CD Prozess