Blog

Babyphone Timmy mit GitHub Copilot entwickelt

Wie KI-Pair-Programming geholfen hat, ein datenschutzfreundliches Babyphone zu entwickeln.

Von Babyphone Timmy · April 2025

Babyphone Timmy begann mit einer einfachen Idee: ein Babyphone, das deine Privatsphäre respektiert. Keine Cloud-Aufnahmen, keine Abogebühren, keine Daten, die unnötig dein Zuhause verlassen. Was dieses Projekt besonders macht, ist die Art der Entwicklung — von der allerersten Zeile Code an diente GitHub Copilot als KI-Pair-Programmer und verwandelte ein Konzept in eine voll funktionsfähige App in einem Bruchteil der Zeit, die eine herkömmliche Entwicklung erfordern würde.

Der Mensch-KI-Workflow

Der Entwicklungsprozess folgt einer klaren Aufgabenteilung: Der Mensch agiert als CTO — definiert Features, setzt Prioritäten und trifft Architekturentscheidungen. GitHub Copilot übernimmt die Umsetzung: Code schreiben, Tests ausführen, Fehler beheben und sogar Releases an Tester verteilen.

Ein typischer Sprint sieht so aus:

  1. Feature-Beschreibung: Der Entwickler beschreibt, was das nächste Feature tun soll, inklusive Grenzfälle und Einschränkungen.
  2. Implementierung: Copilot schreibt den Code und folgt dabei den bestehenden Konventionen und der Architektur des Projekts.
  3. Testen: Automatisierte End-to-End-Tests laufen auf zwei Emulatoren, um die korrekte Funktion zu überprüfen.
  4. Verteilung: Sobald die Tests bestanden sind, wird ein Release-APK erstellt und über Firebase App Distribution an Tester verteilt.

Dieser Zyklus — beschreiben, implementieren, testen, verteilen — wiederholt sich für jedes Feature und jeden Bugfix. Der Mensch muss nie manuell Code schreiben, behält aber die volle Kontrolle darüber, was gebaut wird und warum.

Vom Konzept zu WebRTC

Das Projekt begann mit der zentralen Herausforderung: Echtzeit-Audio und -Video zwischen zwei Handys. WebRTC war die offensichtliche Wahl, aber die Integration mit Flutter — ICE-Kandidaten, SDP-Verhandlung, TURN-Fallback und DataChannels — bringt erhebliche Komplexität mit sich.

Copilot navigierte diese Komplexität Schritt für Schritt: Aufbau der Peer-Verbindung, Implementierung der korrekten Reihenfolge (DataChannel vor Offer, onTrack vor setRemoteDescription) und Aufbau der Signalisierungsschicht auf Firebase Firestore. Jedes Teilstück wurde auf zwei Emulatoren getestet, bevor es weiterging.

Sichere Kopplung mit ECDH

Eines der kritischsten Features war das sichere Kopplungssystem. Zwei Geräte müssen gegenseitiges Vertrauen aufbauen, ohne sich auf einen zentralen Server verlassen zu können. Die Lösung: ein ECDH-P-256-Schlüsselaustausch über Firebase, kombiniert mit einer visuellen Verifikationszahl (SAS), die Man-in-the-Middle-Angriffe erkennt.

Copilot implementierte die gesamte kryptografische Kette — Schlüsselgenerierung, Public-Key-Austausch, Ableitung des gemeinsamen Geheimnisses, SAS-Berechnung und AES-256-GCM-Verschlüsselung für alle nachfolgenden Signalisierungsdaten. Der Pairing-Key berührt nie das Backend; nur sein SHA-256-Hash wird als Firestore-Dokumentkennung verwendet.

Sicherheitsaudit: Schwachstellen finden und beheben

KI-gestützte Entwicklung bedeutet nicht nur schnelleres Codeschreiben — sie hilft auch, Fehler zu finden. Während eines gezielten Sicherheitsaudit-Sprints analysierte Copilot die gesamte Codebasis auf Schwachstellen und fand sechs Probleme, die behoben werden mussten:

Alle sechs wurden im selben Sprint behoben. Diese Art systematischer Code-Review — jede Datei auf Sicherheitsimplikationen prüfen — ist genau das, worin KI-Unterstützung glänzt.

Iterative Sprints: Wie die App entstand

Die App entwickelte sich durch schnelle Iteration. Jede Version brachte bedeutende Verbesserungen:

Jeder Sprint folgte dem gleichen Muster: Ziel beschreiben, Copilot implementieren lassen, mit automatisierten Tests verifizieren und an Tester ausliefern.

E2E-Tests mit zwei Emulatoren

Das Testen eines Babyphones erfordert zwei Geräte: eines im Baby-Modus, eines im Eltern-Modus. Das Projekt nutzt zwei gleichzeitig laufende Android-Emulatoren mit einem automatisierten Testskript, das:

  1. Die App auf beiden Emulatoren installiert
  2. Die Kopplung auf beiden Geräten durchführt
  3. Überprüft, dass Audio- und Videoverbindungen hergestellt werden
  4. Push-to-Talk, Kamerasteuerung und weitere Features testet

Da beide Emulatoren dieselbe IP-Adresse teilen (10.0.2.15), ist eine direkte Peer-to-Peer-Verbindung über STUN nicht möglich. Das erzwingt, dass jeder Testlauf über das Cloudflare-TURN-Relay läuft — was tatsächlich eine bessere Testabdeckung bietet, da der komplexeste Verbindungspfad ausgeübt wird.

Was wir gelernt haben

Eine komplette App mit einem KI-Pair-Programmer zu bauen hat uns einiges gelehrt:

Ausblick

Babyphone Timmy entwickelt sich weiter. Nächste Meilensteine sind die iOS-Version (Phase 3), zusätzliche Sensorfunktionen und kontinuierliches Security-Hardening. Der Entwicklungsworkflow bleibt derselbe: ein Mensch mit einer Vision und eine KI, die sie Wirklichkeit werden lässt.

Die sicherheitsrelevanten Bausteine liegen unter klaren Grenzen jetzt im öffentlichen Repository baby-monitor-timmy-core — inklusive der Architekturentscheidungen rund um Pairing, Signaling und Backend-Schnittstellen.


Weitere Artikel