Case Study Callvent
Wie aus Anrufen Kalendereinträge werden

Eine native iOS- und Android-App aus eigener Entwicklung: die technische Umsetzung, die Entscheidungen dahinter und was Kundenprojekte daraus mitnehmen können

Redaktion: mittl medien · Ansprechpartner: Robert Mittl

Aktualisiert:

Callvent ist eine App aus unserer eigenen Entwicklung: Mit ihr lassen sich Telefonate als Kalendereinträge festhalten. Nutzerinnen und Nutzer können einen Kontakt zuordnen, bei Bedarf eine Notiz oder Rückruf-Erinnerung ergänzen und den Eintrag speichern. Die App ist für iOS und Android mit Begleit-Apps für Apple Watch und Wear OS verfügbar. Funktionsumfang und Bedienung beschreibt callvent.app. Diese Case Study zeigt die technischen Entscheidungen dahinter.

Warum wir Callvent nativ entwickelt haben

Callvent ist vollständig nativ gebaut: Swift und SwiftUI auf iOS, Kotlin und Jetpack Compose auf Android. Anruferkennung, Kalenderzugriff und Hintergrundarbeit hängen von den jeweiligen Betriebssystem-Schnittstellen ab. Auf iOS arbeitet die Anrufbeobachtung mit CallKit; auf Android nutzt Callvent die System-Anrufliste und einen Foreground Service. Für dieses Projekt haben wir die Abläufe deshalb direkt für jede Plattform umgesetzt. So können wir Berechtigungen und Bedienung an deren Möglichkeiten anpassen.

Die iOS-Grenze, die zum Datenschutz-Feature wurde

Für die Anrufbeobachtung bietet CallKit den CXCallObserver. Die zugehörigen CXCall-Objekte enthalten Richtung und Zustandsmerkmale, etwa ob ein Anruf verbunden oder beendet wurde. Eine Rufnummer oder ein fertiger Wert für die Gesprächsdauer gehört nicht dazu. Callvent kann auf dem iPhone Anrufe erkennen, solange die App aktiv ist; fehlende Anrufe lassen sich manuell festhalten.

Daraus ergibt sich ein eigener Ablauf auf iOS: Nach dem Anruf wählen Nutzerinnen und Nutzer den Kontakt selbst über den System-Kontaktdialog aus. Apples Kontakt-Picker gibt nur die getroffene Auswahl an die App weiter und benötigt dafür keinen allgemeinen Zugriff auf das Adressbuch. Die bewusste Auswahl begrenzt, welche Kontaktdaten bei diesem Schritt an Callvent gelangen.

Anrufliste und Hintergrundarbeit auf Android

Auf Android kann die System-Anrufliste Rufnummer, Zeitpunkt und Dauer eines Anrufs sowie Kontaktinformationen enthalten. Callvent nutzt verfügbare Angaben für die automatische Zuordnung. Der Zugriff auf die Anrufliste setzt die eingeschränkte Berechtigung READ_CALL_LOG voraus. Für die Veröffentlichung gelten außerdem die zugelassenen Einsatzfälle von Google Play. Rufnummer und passender Kontakt sind auch mit Berechtigung nicht für jeden Anruf verfügbar.

Für die Erkennung im Hintergrund nutzt Callvent einen Foreground Service mit Benachrichtigung. Dieser macht die laufende Aufgabe für die Nutzerin oder den Nutzer nachvollziehbar. Die Umsetzung muss die Startbeschränkungen von Android und die Geräteeinstellungen berücksichtigen. Ein solcher Dienst garantiert keine ununterbrochene Erkennung: Nutzerinnen und Nutzer können die App über die Systemoberfläche beenden.

Der eigene Kalender als Ablage

Callvent schreibt ausgewählte Anrufe als Termine über die Kalender-Schnittstellen der Systeme: EventKit auf iOS und CalendarContract auf Android. Der direkte Zugriff benötigt die passenden Kalenderberechtigungen. Als Ziel dient ein beschreibbarer, auf dem Gerät eingerichteter Kalender. Ob und wohin er synchronisiert wird, bestimmen der Kalenderdienst und dessen Kontoeinstellungen, etwa bei iCloud, Google Kalender, Outlook oder CalDAV.

Für die gespeicherten Termine nutzt Callvent damit die vorhandene Kalender-Infrastruktur. Eine eigene Cloud zur Speicherung dieser Einträge ist dafür nicht nötig. Die lokale Anrufliste innerhalb der App ist davon getrennt: Wird Callvent gelöscht, wird diese Liste entfernt; bereits gespeicherte Kalendereinträge bleiben im Kalender erhalten. Diese Unterscheidung beschreibt auch die Callvent-Produktseite.

Bis ans Handgelenk

Apple Watch und Wear OS werden über WatchConnectivity beziehungsweise die Wearable Data Layer angebunden. Damit lassen sich Informationen zwischen Telefon und Uhr übertragen. Wann sie ankommen, hängt vom Verbindungs- und App-Zustand ab: WatchConnectivity benötigt für Sofortnachrichten ein erreichbares Gegenüber und kann Hintergrundübertragungen verzögern. Die Wearable Data Layer überträgt je nach Verbindung über Bluetooth oder über Google-Infrastruktur. Diese Bedingungen gehören zur Gestaltung der Bedienung auf der Uhr; eine sofortige Synchronisierung lässt sich daraus nicht ableiten.

Von der App zur Sichtbarkeit

Eine App zu bauen ist die halbe Arbeit, gefunden werden die andere. Für Callvent haben wir die Website in acht Sprachen aufgebaut, mit Ratgebern wie Telefonat aufnehmen auf iPhone und Android und kostenlosen Arbeitsvorlagen wie der Gesprächsprotokoll-Vorlage, jeweils mit strukturierten Daten und sauberem hreflang-Aufbau. Dieselbe Kombination aus Entwicklung und Vermarktung setzen wir auch für Kundenprojekte um.

Was Sie daraus mitnehmen können

Callvent zeigt, warum wir bei Funktionen wie Anruferkennung und Hintergrundarbeit zuerst die Möglichkeiten der Plattform prüfen. Für dieses Projekt passen native Oberflächen und die vorhandene Kalender-Infrastruktur: Sie ermöglichen die jeweiligen Abläufe und reduzieren den Aufwand für eine eigene Speicherung von Terminen. Welche Architektur zu Ihrer App passt, hängt von den benötigten Funktionen, Berechtigungen und Datenflüssen ab. Wie wir KI-Funktionen in eine App bringen, zeigt unsere zweite Case Study: Inkward, aus Handschrift wird ein Spiegel. Für die eigene Website als App in den Stores gibt es unser Festpreis-Angebot: App erstellen lassen.