App Extensions und Systemintegrationen in der mobilen Entwicklung: was sie sind, welche Typen es gibt und wie sie funktionieren

Autor: IT Sectr Veröffentlicht: 2026-06-22 Lesezeit: 11 Min.

App Extensions sind separate ausführbare Module, die die Möglichkeiten einer mobilen App über ihre Hauptoberfläche hinaus erweitern: Today Widget auf dem Startbildschirm, VoIP-Anrufverarbeitung über CallKit und Reaktion auf Systemereignisse über BroadcastReceiver. Systemintegrationen ermöglichen einer App die Interaktion mit dem Betriebssystem auf einer tiefen Ebene und schalten Funktionen frei, die normalen Bildschirmen nicht zur Verfügung stehen. Laut der Apple Developer Documentation läuft jede Erweiterung in einem isolierten Prozess und wird vom System unabhängig von der Haupt-App verwaltet. App Extensions in einer mobilen App ermöglichen die Implementierung von Funktionen, die im Hauptprozess nicht verfügbar sind.

Wichtigste Punkte

  • App Extensions — separate Binärdateien innerhalb einer App, die ihre Funktionalität über den Hauptprozess hinaus erweitern
  • CallKit — ein Framework zur Integration von VoIP-Anrufen in die Systemanrufschnittstelle des iPhone
  • BroadcastReceiver — eine Android-Komponente, die auf System-Broadcast-Nachrichten reagiert
  • AppWidgetProvider — eine Basisklasse zum Erstellen von Widgets auf Android mit RemoteViews-Unterstützung
  • Content Provider — eine Android-Komponente zum Teilen von Daten zwischen Apps über ContentResolver

App Extensions auf iOS: Widgets und Erweiterungen zum Teilen von Inhalten

App Extensions auf iOS erschienen mit iOS 8 und wurden zur Grundlage für Systemintegrationen in der mobilen Entwicklung. Dies sind separate Binärdateien, die mit der Haupt-App gebündelt, aber in einem isolierten Prozess gestartet werden. Jede Erweiterung hat ihre eigene Info.plist und einen über NSExtensionPrincipalClass definierten Einstiegspunkt. Das System verwaltet den Lebenszyklus von App Extensions — sie können nach Abschluss einer Aufgabe nicht im Hintergrund bleiben.

WidgetKit und Today Widget

WidgetKit (iOS 14+) ist ein modernes Framework zum Erstellen von Widgets auf dem Startbildschirm. WidgetKit verwendet SwiftUI zur Beschreibung der Oberfläche und TimelineProvider zur Festlegung von Aktualisierungsplänen. Widgets gibt es in drei Größen: klein (2×2 Zellen), mittel (4×2) und groß (4×4). Das alte Today Widget basierend auf UICollectionViewController wird weiterhin unterstützt, aber Apple empfiehlt die Migration zu WidgetKit. App Extensions auf WidgetKit unterstützen keine Animationen, Tastatureingaben oder Gesten — es sind statische oder pseudo-animierte Elemente mit periodischen Aktualisierungen.

Share Extension und Action Extension

Share Extension ermöglicht das Senden von Inhalten aus jeder App in Ihre App über das System-Share-Blatt. Share Extension empfängt Daten über NSExtensionItem und verwendet SLComposeServiceViewController für die Benutzeroberfläche. Action Extension verarbeitet Inhalte direkt vor Ort — zum Beispiel übersetzt sie Text im Browser, ohne zu einer anderen App zu wechseln. Beide Typen müssen ihre Arbeit in einer begrenzten Zeit abschließen, sonst „tötet" das System die Erweiterung. Dies ist eine wichtige Einschränkung von App Extensions in einer mobilen App — Hintergrundaufgaben sind auf Erweiterungsebene nicht verfügbar.

CallKit, PushKit und SiriKit — Systemintegrationen für Sprache und Benachrichtigungen

Die Systemintegrationen auf iOS gehen weit über Widgets hinaus: CallKit, PushKit und SiriKit ermöglichen einer mobilen App die Arbeit auf Systemebene. Diese Frameworks erfordern spezielle Berechtigungen, bieten dem Benutzer aber ein nahtloses Erlebnis — Anrufe über CallKit sehen wie normale Telefonanrufe aus, und Siri verarbeitet Anfragen ohne Öffnen der App.

CallKit — VoIP-Anrufe in der Systemoberfläche

CallKit integriert Anrufe von Drittanbieter-Apps in den System-Anrufbildschirm, einschließlich des gesperrten Bildschirms. Der CXProvider registriert die App als VoIP-Dienst, und CXCallController verwaltet Anrufe. CallKit blockiert automatisch doppelte Anrufe und unterstützt Call Directory Extension zum Blockieren unerwünschter Nummern. Systemintegrationen in der mobilen Entwicklung mit CallKit sind für Sprachkommunikations-Apps kritisch — WhatsApp, Skype und Zoom verwenden es zur Anzeige eingehender Anrufe.

PushKit — Hintergrund-Push-Benachrichtigungen

PushKit liefert Push-Benachrichtigungen direkt an die mobile App, ohne sie dem Benutzer anzuzeigen. PushKit weckt die App aus einem „beendeten" Zustand und übergibt Daten über den PKPushRegistryDelegate. Dies ist der primäre Mechanismus für VoIP-Apps: PushKit liefert Anrufinformationen, und CallKit zeigt sie an. PushKit hat eine höhere Zustellungspriorität als normale Push-Benachrichtigungen und erfordert keine Banneranzeige. App Extensions in mobilen Apps kombinieren oft PushKit mit CallKit für die Sprachkommunikation.

SiriKit und Intents Extension

SiriKit ermöglicht die Verarbeitung von Anfragen über Siri und die Kurzbefehle-App. Intents Extension ist eine separate App Extension, die unterstützte Intents registriert und verarbeitet. SiriKit unterstützt über 20 Domänen: Anrufe, Nachrichten, Zahlungen, Notizen, Trainingseinheiten. Kurzbefehle ermöglichen dem Benutzer die Erstellung von Automatisierungen — zum Beispiel „Eine Nachricht in WhatsApp über Siri senden." Systemintegrationen mit SiriKit und Kurzbefehlen erhöhen das Engagement, da der Benutzer Aktionen ausführt, ohne die App zu öffnen.

BroadcastReceiver und Systemdienste auf Android

BroadcastReceiver ist eine Android-Komponente, die auf System-Broadcast-Nachrichten reagiert. Im Gegensatz zu iOS App Extensions benötigt BroadcastReceiver keine separate Binärdatei — es reicht aus, den Empfänger im Manifest oder im Code über Context.registerReceiver zu registrieren. Systemintegrationen auf Android beginnen oft mit BroadcastReceiver: vom Starten eines Dienstes beim Gerätestart bis zur Reaktion auf Netzwerkverbindungen.

IntentFilter für Systemereignisse

IntentFilter bindet BroadcastReceiver an ein bestimmtes Systemereignis. Typische Ereignisse: BOOT_COMPLETED (Gerätestart), CONNECTIVITY_ACTION (Netzwerkänderung), BATTERY_LOW (niedriger Akkustand), TIME_SET (Zeitänderung). Der Empfänger wird in AndroidManifest.xml oder über Context.registerReceiver für die dynamische Registrierung registriert. Dynamische Registrierung ist vorzuziehen — sie erfordert keine Manifest-Berechtigungen und funktioniert nur, während die App aktiv ist. App Extensions existieren auf Android nicht als Konzept, aber BroadcastReceiver übernimmt eine ähnliche Rolle — es erweitert die App-Fähigkeiten durch Systemintegrationen.

NotificationListenerService und AccessibilityService

NotificationListenerService ist ein Dienst, der alle Systembenachrichtigungen empfängt. NotificationListenerService benötigt die Berechtigung BIND_NOTIFICATION_LISTENER_SERVICE und Zugriff über die Barrierefreiheitseinstellungen. AccessibilityService ist ein leistungsfähigeres Werkzeug für Systemintegrationen: Er kann Bildschirminhalte lesen, Klicks simulieren und Aktionen automatisieren. Beide Dienste erfordern eine explizite Aktivierung durch den Benutzer in den Einstellungen, was die Sicherheit erhöht. Systemintegrationen in mobilen Apps über AccessibilityService werden für Auto-Ausfüller, Bildschirmlesegeräte und Barrierefreiheitswerkzeuge verwendet.

kotlin
class BootReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
            WorkManager.getInstance(context)
                .enqueueUniqueWork("post-boot", ...)
        }
    }
}

Das Beispiel registriert einen BroadcastReceiver für das Ereignis BOOT_COMPLETED. WorkManager wird für die verzögerte Aufgabenausführung nach dem Gerätestart verwendet — dies ist der Standardansatz für Android-Apps.

App Widget Provider — Erstellen von Widgets auf Android

App Widget Provider auf Android ist das Gegenstück zu iOS App Extensions im Widget-Kontext: Es ist eine Komponente, die interaktive Inhalte auf dem Startbildschirm anzeigt. Im Gegensatz zu WidgetKit können Android-Widgets Benutzereingaben entgegennehmen — Klicks, Umschalter und Gesten. App Widget Provider wird im Manifest über eine XML-Beschreibung von Größe und Aktualisierungshäufigkeit registriert.

RemoteViews und AppWidgetProvider

RemoteViews beschreibt die Widget-Oberfläche über ein XML-Layout und unterstützt nur eine begrenzte Menge an Views. RemoteViews erlaubt keine benutzerdefinierten Views — nur Standardkomponenten: TextView, ImageView, Button, ProgressBar. AppWidgetProvider ist die Basisklasse, die Widget-Updates, Aktivierung und Löschung behandelt. Die Methode onUpdate wird per Timer über updatePeriodMillis oder über WorkManager zur präzisen Steuerung aufgerufen. Systemintegrationen mit Widgets auf Android erfordern Vorsicht — zu häufige Aktualisierungen entladen den Akku.

Glance API (Jetpack) — Moderner Ansatz

Glance API ist eine Jetpack-Bibliothek zum Erstellen von Widgets mit Kotlin DSL anstelle von XML. Glance API wird zu RemoteViews kompiliert und unterstützt eine Compose-ähnliche Syntax: GlanceComposable, Column, Row, Text. Die Bibliothek löst das Problem komplexen XML-Codes und ermöglicht das Testen von Widgets über JUnit. Glance API unterstützt noch nicht alle RemoteViews-Funktionen — für komplexe interaktive Widgets ist der klassische Ansatz besser. App Extensions in der mobilen Entwicklung auf Android entwickeln sich in Richtung Glance API, was die Erstellung und Wartung von Widgets vereinfacht.

Content Provider, FileProvider und Datenaustausch zwischen Apps

Content Provider ist eine Android-Komponente zum Teilen strukturierter Daten zwischen Apps über eine einheitliche ContentResolver-Schnittstelle. Im Gegensatz zu iOS App Extensions erstellt Content Provider keinen separaten Prozess — Daten werden synchron im Kontext der aufrufenden App angefordert. Content Provider ist die Grundlage von Systemintegrationen auf Android: Kontakte, Mediendateien, Kalender und Standard-Apps verwenden ihn zur Datenveröffentlichung.

FileProvider für sicheres Dateifreigeben

FileProvider ist eine Unterklasse von ContentProvider für die sichere Dateiübertragung zwischen Apps. FileProvider generiert temporäre content://-URIs anstelle direkter file://-Pfade, die auf Android 7+ verboten sind. Zur Verwendung müssen Sie files-path oder external-files-path in der XML-Konfiguration angeben. App Extensions in der mobilen Entwicklung auf Android existieren nicht als separates Konzept, aber FileProvider übernimmt ihre Funktion — es erweitert die Datenfreigabefähigkeiten über eine einzelne App hinaus.

Gegenstück auf iOS: File Provider Extension

Auf iOS übernimmt File Provider Extension die Rolle der Dateifreigabe. File Provider Extension veröffentlicht die Dateien der App in der Dateien-App über NSFileProviderManager. Im Gegensatz zu FileProvider benötigt die iOS-Erweiterung eine separate Binärdatei und läuft in einem isolierten Prozess. File Provider Extension unterstützt NSFileProviderItem zur Dateibeschreibung und NSFileProviderEnumerator zur Ordner-Navigation. Systemintegrationen in mobilen Apps über File Provider Extension ermöglichen dem Benutzer die Verwaltung von App-Dateien aus der Dateien-App, ohne sie zu öffnen.

swift
class MyFileProviderExtension: NSFileProviderExtension {
    override func item(for identifier: NSFileProviderItemIdentifier) throws -> NSFileProviderItem {
        return MyFileProviderItem(identifier: identifier)
    }
}

Das Beispiel zeigt eine minimale Implementierung von File Provider Extension in Swift. Die Methode item(for:) gibt ein NSFileProviderItem-Objekt anhand der Kennung zurück — das System ruft sie beim Anzeigen von Dateien in der Dateien-App auf.

Häufig gestellte Fragen

Was sind App Extensions auf iOS?

App Extensions sind separate Binärdateien, die die App-Funktionalität über ihren Prozess hinaus erweitern: Today Widget, Share Extension, Action Extension, Keyboard Extension und andere Typen, die in einer isolierten Umgebung ausgeführt werden.

Wie unterscheidet sich CallKit von PushKit?

CallKit integriert VoIP-Anrufe in die Systemanrufschnittstelle mit Anzeige auf dem gesperrten Bildschirm. PushKit liefert Hintergrund-Push-Benachrichtigungen ohne Anzeige für den Benutzer — es weckt die App zur Verarbeitung von Daten wie Informationen über einen eingehenden Anruf.

Was ist BroadcastReceiver auf Android?

BroadcastReceiver ist eine Android-Komponente, die auf System-Broadcast-Nachrichten reagiert: Gerätestart (BOOT_COMPLETED), Netzwerkverbindung (CONNECTIVITY_ACTION), Flugmodus-Änderungen und andere OS-Ereignisse.

Wie erstellt man ein Widget auf Android?

Verwenden Sie AppWidgetProvider mit RemoteViews zur Erstellung der Widget-Oberfläche oder Glance API (Jetpack) für den Kotlin-DSL-Ansatz. Das Widget wird im Manifest über eine XML-Beschreibung mit Angabe von Größe und Aktualisierungshäufigkeit registriert.

Wofür wird Content Provider verwendet?

Content Provider ist eine Android-Komponente zum Teilen von Daten zwischen Apps über ContentResolver. Er wird für den Zugriff auf Kontakte, Mediendateien und alle strukturierten Daten aus anderen Apps verwendet.

Zusammenfassung

  • App Extensions — die Grundlage von Systemintegrationen auf iOS: Widgets, Teilen, Inhaltsverarbeitung und Tastaturerweiterungen in isolierten Prozessen
  • CallKit und PushKit — ein Paar Frameworks für VoIP-Anrufe: PushKit liefert Daten, CallKit zeigt die Anrufoberfläche an
  • BroadcastReceiver — das Android-Gegenstück zu App Extensions für die Reaktion auf Systemereignisse ohne separate Binärdatei
  • AppWidgetProvider — eine Komponente für Widgets auf Android mit RemoteViews- und Glance-API-Unterstützung
  • Content Provider und FileProvider — Datenaustauschmechanismen zwischen Apps auf Android über ContentResolver
  • File Provider Extension — das iOS-Gegenstück zu FileProvider zur Veröffentlichung von Dateien in der Dateien-App aus einem isolierten Prozess
  • Systemintegrationen in der mobilen Entwicklung vereinen App Extensions, BroadcastReceiver, CallKit und Content Provider in einem einzigen Ökosystem

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen