~/referenzen/id-call-app

id-call: EUDI Verified Call als App für iOS und Android

KI-generiert, menschlich reviewt

Kunde
Kontrollfeld (Eigenprodukt)
Branche
Digitale Identität
Tech-Stack
Capacitor · TypeScript · WebRTC · iOS · Android

Ausgangslage

EUDI Verified Call funktioniert im Browser: zwei Personen weisen sich per EUDI-Wallet aus und sehen vor dem Verbinden, welche Identitätsdaten ausgetauscht werden. Wer sich aber ausweisen will, hat seine Wallet auf dem Telefon — und dort erwartet man eine App, kein Lesezeichen. Also braucht der Dienst eine Fassung für iOS und Android, ohne dass daraus eine dritte und vierte Codebasis wird.

Lösung

Ein Capacitor-Shell, das den Web-Client als native App verpackt. Bewusst ein Repository für beide Plattformen: ios/ und android/ werden aus derselben Konfiguration erzeugt, und das, was tatsächlich gepflegt wird — Konfiguration, Sync-Skript, Icons, Store-Metadaten — liegt gemeinsam. Zwei Repositories würden das duplizieren und beim ersten vergessenen Abgleich auseinanderlaufen.

Das Shell enthält keine Anwendungslogik. Alles, was der Nutzer sieht, kommt aus dem Web-Client; das Shell liefert den nativen Rahmen, Deep Links und die Store-Metadaten. Geht im Anruf etwas schief, gehört die Korrektur in das Web-Repository — eine Grenze, die man einmal zieht und die danach jede Fehlersuche abkürzt.

Zwei Entscheidungen, die im Alltag zählen:

  • Nachvollziehbare Store-Builds. Für Releases hängt der Web-Client als Git-Submodul auf einem festen Commit. Wenn der App Store Monate später fragt, was genau ausgeliefert wurde, existiert diese Antwort — bei einem Checkout daneben existiert sie nicht.
  • Sicherer Kontext für Kamera und Mikrofon. Die WebViews laufen unter https-Schema, weil getUserMedia sonst nichts freigibt. Eine Kleinigkeit, die einen Videoanruf sonst schlicht nicht zustande kommen lässt.

Ergebnis

Derselbe verifizierte Anruf, den es im Browser gibt, als App auf beiden Plattformen — aus einer gepflegten Quelle, mit einem Build, der belegen kann, was in ihm steckt.

id-call ausprobieren →