Fehler 1: Ohne Datenmodell anfangen

Der teuerste Fehler: mit dem UI anfangen, ohne das Datenmodell in Supabase definiert zu haben. Das passiert weil FlutterFlow visuell verlockend ist — man will sofort Screens bauen.

Das Resultat: nach 3 Wochen Bauen stellst du fest, dass deine Tabellen die notwendige Daten nicht unterstützen. Du musst alles neu bauen.

**Die Lösung**: Schreibe alle Tabellen und ihre Beziehungen auf einem Blatt Papier auf, bevor du FlutterFlow öffnest. Definiere: Welche Entitäten hat die App? Welche Beziehungen? Welche Felder brauche jede Entität? Aktiviere Row-Level-Security von Tag eins. Erst danach baue das UI.

Ein gutes Datenmodell spart mehr Zeit als jede andere Optimierung.

Fehler 2: Row-Level-Security nicht aktivieren

RLS ist der Mechanismus, der sicherstellt, dass Nutzer nur ihre eigenen Daten sehen. Ohne RLS kann jeder authentifizierte Nutzer alle Daten aller anderen Nutzer sehen — ein kritisches Sicherheitsproblem.

Das passiert häufig: Entwickler deaktivieren RLS "temporär" für schnelles Debugging und vergessen, es wieder zu aktivieren. In der Produktion mit echten Nutzerdaten ist das ein DSGVO-Verstoß.

**Die Lösung**: Aktiviere RLS auf jeder Tabelle sofort bei der Erstellung: `ALTER TABLE your_table ENABLE ROW LEVEL SECURITY;`. Schreibe Policies für jeden Use Case: `CREATE POLICY "users_own_data" ON your_table USING (user_id = auth.uid());`. Teste immer mit einem Testnutzer, der keinen Zugriff auf bestimmte Daten haben sollte.

Fehler 3: API-Keys im Frontend exponieren

OpenAI API-Keys, externe Service-Keys (Stripe, SendGrid) oder andere Secrets direkt in WeWeb- oder FlutterFlow-Code einzubauen ist ein kritischer Sicherheitsfehler. Browser-Dev-Tools oder Reverse Engineering der App macht den Key sichtbar.

Das passiert oft aus Bequemlichkeit beim Prototypen — man trägt schnell einen Key ein und "vergisst" ihn dort.

**Die Lösung**: Alle externen API-Keys gehören in Supabase Edge Functions als Umgebungsgeheimnisse. Setze sie mit `supabase secrets set KEY_NAME=value`. Deine Supabase-Anon-Key und Public-Key (die du im Frontend brauchst) sind public by design — aber alle anderen Keys nie.

Fehler 4: Nur im Browser testen, nie auf echten Geräten

FlutterFlow hat einen integrierten Browser-Preview-Modus. Er ist praktisch, aber er simuliert das iOS/Android-Verhalten nicht vollständig — besonders für Animationen, Tastaturverhalten, native Navigation-Gesten und Hardware-Features.

Das Resultat: eine App, die im Preview perfekt aussieht, sich aber auf einem echten iPhone seltsam anfühlt.

**Die Lösung**: Teste auf echten Geräten ab Woche 2 des Projekts. Teste mindestens auf einem neueren iPhone (iPhone 15) und einem älteren iPhone (iPhone SE) und einem Android-Gerät (Samsung Galaxy Mittelklasse). iOS und Android haben unterschiedliche Safe Areas, Tastatur-Verhalten und Scroll-Physik — teste beides früh, nicht kurz vor dem Launch.

Fehler 5: Keine Fehlerbehandlung bauen

Apps ohne Fehlerbehandlung: wenn eine API-Anfrage fehlschlägt, friert die UI ein oder zeigt einen weißen Screen. Nutzer wissen nicht, was passiert ist. Sie schließen die App und kommen nicht zurück.

Das passiert weil Fehlerbehandlung langweilig zu bauen ist und man in der Excitement des Aufbauens darüber hinweggeht.

**Die Lösung**: Für jeden API-Aufruf in FlutterFlow: konfiguriere einen Error-State. Zeige eine klare Fehlermeldung auf Deutsch. Biete eine "Erneut versuchen"-Aktion an. Füge einen Lade-Spinner für alle asynchronen Operationen hinzu. Diese Details machen den Unterschied zwischen einer App, die professionell wirkt, und einer, die unfertig wirkt.

Fehler 6: Apple-Anforderungen nicht kennen

Apple hat spezifische Anforderungen für Apps, die viele No-Code-Entwickler erst bei der Einreichung entdecken:

- **Datenschutzrichtlinie**: Pflicht für alle Apps. Muss auf Deutsch verfügbar sein für Apps, die auf DE-Nutzer abzielen. - **Konto-Löschfunktion**: Seit 2022 Pflicht für alle Apps, die Kontoerstellung anbieten. Muss direkt in der App erreichbar sein. - **"Sign in with Apple"**: Pflicht wenn du andere Social-Login-Optionen (Google, Facebook) anbietest. - **Datenschutz-Labels**: Korrekte Deklaration welche Daten die App sammelt und warum.

**Die Lösung**: Baue diese von Tag eins ein, nicht als Nachgedanken vor dem Launch. Eine Ablehnung wegen fehlender Konto-Löschfunktion kann 1–2 Wochen zusätzliche Verzögerung bedeuten.

Fehler 7: Ohne DSGVO-Dokumentation starten

Für Apps, die personenbezogene Daten von EU-Nutzern verarbeiten — also alle Apps mit deutschen Nutzern — ist DSGVO-Dokumentation keine Option, sondern Pflicht.

Das passiert: Gründer launchen die App, gewinnen erste Nutzer, und stellen dann fest, dass sie kein Verarbeitungsverzeichnis, keine Datenschutzrichtlinie und keine Auftragsverarbeitungsverträge mit ihren Tools (Supabase, OpenAI, Analytics) haben.

**Die Lösung**: Erstelle das Verarbeitungsverzeichnis parallel zum ersten Sprint. Dokumentiere: was wird gesammelt, warum, wie lange gespeichert, welche Dienstleister Zugriff haben. Schließe AVVs mit Supabase, OpenAI und allen anderen Subunternehmern ab. Erstelle eine Datenschutzrichtlinie auf Deutsch. Wähle Supabase EU-Region von Tag eins — das vereinfacht die DSGVO-Dokumentation erheblich.