Today Widget ist eine iOS-Erweiterung, die interaktive Informationen direkt im Benachrichtigungszentrum oder auf dem „Today“-Bildschirm anzeigt. Der Benutzer sieht aktuelle Daten — Wetter, Wechselkurse, Kalender — ohne die Haupt-App zu öffnen. Laut Apple WWDC (2025) stieg die Nutzung von WidgetKit nach der Einführung interaktiver Widgets in iOS 17 um 40%. Today Widget löst das Problem des schnellen Zugriffs auf Informationen: ein Blick auf den Bildschirm — und der Benutzer erhält die benötigten Daten, ohne durch die App navigieren zu müssen.
Wichtige Punkte
Today Widget (auch bekannt als Benachrichtigungszentrum-Widget) ist ein iOS-Oberflächenelement, das zusammengefasste Informationen aus einer App anzeigt, ohne sie zu öffnen. Der Benutzer sieht das Widget, indem er auf dem Sperrbildschirm oder dem Startbildschirm nach links wischt. Das Widget kann dynamische Daten anzeigen — Wechselkurse, aktuelle Nachrichten, Aufgabenstatus, Gerätezustand.
Historisch gesehen erschien Today Widget in iOS 8 als Benachrichtigungszentrum-Erweiterung, die über das Benachrichtigungszentrum-Framework implementiert wurde. Mit iOS 14 führte Apple WidgetKit ein — eine vollständig neu gestaltete Architektur, die es ermöglicht, Widgets direkt auf dem Startbildschirm zu platzieren. Today Widget im modernen Sinne ist ein WidgetKit-Widget, das im Bereich „Today“ (dem Widget-Bereich links vom ersten Bildschirm) platziert wird.
Das Hauptziel ist es, die Zeit für den Zugriff auf Informationen zu verkürzen. Anstatt die App zu öffnen, durch Menüs zu navigieren und auf das Laden zu warten, sieht der Benutzer sofort die benötigten Daten. Laut Apple (2024) zeigen Apps mit Widgets ein 27% höheres Benutzerengagement. Zusätzliche Anwendungsfälle: Schnellaktionen (Aufgabe als erledigt markieren), Überwachung (Herzfrequenz, Aktivität) und Status (Akku-Ladung, Benachrichtigungen).
Einem Today Widget-Entwickler stehen zwei Ansätze zur Verfügung: modernes WidgetKit (iOS 14+) und die Legacy-Erweiterung NCWidgetProviding (iOS 8–13). Die Wahl hängt von der minimal unterstützten iOS-Version ab. WidgetKit wird für neue Projekte empfohlen, NCWidgetProviding zur Unterstützung älterer Geräte.
| Merkmal | WidgetKit | NCWidgetProviding |
|---|---|---|
| Min. iOS | iOS 14 | iOS 8 |
| Platzierung | Startbildschirm + „Today“ | Nur „Today“ |
| Größen | Klein, Mittel, Groß | Eine feste Größe |
| Interaktivität | iOS 17+ Tasten und Schalter | Nur App öffnen |
| Aktualisierung | Timeline Provider | widgetPerformUpdate |
| Sprache | SwiftUI | UIKit |
Wenn Ihre App iOS 14 und neuer unterstützt — verwenden Sie WidgetKit. Es bietet umfangreiche Funktionen: mehrere Größen, Konfiguration über Intents, Neugestaltung mit iOS 17 und Deep Links. Die Deklarativität von SwiftUI macht Widget-Code kompakt und lesbar. Timeline Provider verwaltet den Aktualisierungsplan automatisch unter Berücksichtigung des Stromverbrauchs.
Nur wenn iOS 9–13 Unterstützung erforderlich ist. NCWidgetProviding ist einfacher zu implementieren — es ist ein normaler UIViewController mit einem Protokoll. Es ist jedoch eingeschränkt: nur eine Größe, nur UIKit, keine Konfiguration. Apple empfiehlt, auch bei alten Projekten mit availability check auf WidgetKit umzusteigen: WidgetKit auf iOS 14+, NCWidgetProviding als Fallback.
Im modernen iOS gibt es drei Arten von Widgets nach funktionalem Zweck. Jeder Typ löst sein eigenes Problem und erfordert einen anderen Ansatz für Daten- und Interface-Design. Die Klassifizierung hilft, die richtige Architektur für Ihre App zu wählen.
Zeigen statische oder regelmäßig aktualisierte Informationen an: Wetter, Datum, Wechselkurse, Serverstatus. Die Daten werden nach einem Zeitplan über Timeline Provider aktualisiert. Der Benutzer interagiert nicht mit dem Widget — er liest nur. Informations-Widgets sind am einfachsten zu implementieren, erfordern keine Touch-Ereignisbehandlung und arbeiten im Hintergrund ohne zusätzliche Berechtigungen.
Mit iOS 17 unterstützt WidgetKit Tasten, Schalter und Schieberegler in Widgets. Der Benutzer kann eine Aktion ausführen — eine Aufgabe markieren, Musik pausieren, Licht einschalten — ohne die App zu öffnen. Interaktive Widgets verwenden App Intents, um Aktionen an die Haupt-App zu übergeben. Einschränkung: nur auf dem Startbildschirm, nicht im Bereich „Today“ bis iOS 18.
Der Benutzer passt die angezeigten Daten über die Systemoberfläche an — wählt eine Stadt für das Wetter, ein Konto für Finanzen, eine Kategorie für Nachrichten. Implementiert über Intents Extension und Konfiguration in WidgetBundle. Konfigurierbare Widgets erhöhen die Personalisierung und Relevanz der Informationen für jeden Benutzer.
Sehen wir uns den Prozess der Erstellung eines Today Widgets in SwiftUI mit WidgetKit an. Das Widget zeigt den aktuellen Wechselkurs mit automatischen Aktualisierungen an. WidgetKit erfordert drei Komponenten: eine Widget-Struktur, einen Provider mit Konfiguration und eine View zur Anzeige.
import WidgetKit
import SwiftUI
@main
struct CurrencyWidget: Widget {
let kind: String = "CurrencyWidget"
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: Provider()) { entry in
CurrencyWidgetEntryView(entry: entry)
}
.configurationDisplayName("Currency Rate")
.description("Current USD/RUB exchange rate")
.supportedFamilies([.systemSmall, .systemMedium])
}
}
Der Provider ist für die Aufbereitung der Daten zur Anzeige verantwortlich. Die Methode getTimeline erstellt einen Aktualisierungsplan: die nächste Aktualisierung in 15 Minuten. TimelineProvider stellt sicher, dass das Widget aktuelle Daten anzeigt, ohne den Server ständig abzufragen.
struct Provider: TimelineProvider {
func getSnapshot(in context: Context,
completion: @escaping (CurrencyEntry) -> Void) {
let entry = CurrencyEntry(date: Date(), rate: 92.5)
completion(entry)
}
func getTimeline(in context: Context,
completion: @escaping (Timeline<CurrencyEntry>) -> Void) {
let rate = CurrencyService().fetchRate()
let entry = CurrencyEntry(date: Date(), rate: rate)
let nextUpdate = Calendar.current.date(
byAdding: .minute, value: 15, to: Date()
) ?? Date()
let timeline = Timeline(entries: [entry], policy: .after(nextUpdate))
completion(timeline)
}
}
Timeline Provider ist der zentrale WidgetKit-Mechanismus zur Verwaltung von Today Widget-Daten. Anstatt regelmäßige Aktualisierungen per Timer (wie beim alten NCWidgetProviding) verwendet WidgetKit das Konzept einer Timeline — einer Sequenz von Einträgen mit Zeitstempeln. Das System zeigt den aktuellen Eintrag an, bis er abläuft, wechselt dann zum nächsten oder fordert einen neuen an.
Timeline unterstützt drei Richtlinien: .after(date) — nächste Aktualisierung zum angegebenen Datum; .never — das Widget wird nicht aktualisiert, bis WidgetCenter.reloadAllTimelines explizit aufgerufen wird; .atEnd — Aktualisierung nach Anzeige des letzten Eintrags. Für ein Today Widget mit Wechselkursen ist die Richtlinie .after mit einem Intervall von 15–30 Minuten optimal. Energieeffizienz ist ein wichtiger Vorteil von WidgetKit: Das System gruppiert Aktualisierungen aller Widgets in einem Fenster.
Wenn sich die Daten vor Ablauf der Timeline ändern (z.B. der Benutzer den Kurs in der App aktualisiert hat), rufen Sie WidgetCenter.shared.reloadTimelines(ofKind: „CurrencyWidget“) auf. Dies fordert eine neue Timeline vom Provider an und aktualisiert die Anzeige. WidgetCenter ermöglicht auch das Neuladen aller App-Widgets mit einem einzigen Befehl — praktisch nach der Datensynchronisation.
Apple stellt strenge Anforderungen an das Design von Today Widgets: Der Inhalt muss auf einen Blick lesbar sein, ohne unnötige Elemente und mit klarer Hierarchie. Ein Verstoß gegen die HIG-Empfehlungen (Human Interface Guidelines) ist ein Ablehnungsgrund bei der Veröffentlichung im App Store. Drei Prinzipien: Blickerfassung, Konsistenz und Hierarchie.
Der Benutzer verbringt weniger als eine Sekunde mit einem Widget. Fügen Sie nicht mehr als 3–4 Datenelemente hinzu. Schriftart — mindestens 11pt für Beschriftungen, 17pt für Werte. Verwenden Sie Fettdruck (Semibold) für wichtige Zahlen. Vermeiden Sie Scrollen — Today Widget scrollt nicht.
WidgetKit unterstützt drei Größen: Klein (170×170pt), Mittel (364×170pt), Groß (364×382pt). Für Today Widget im Bereich „Today“ ist Mittel die häufigste Wahl. Adaptives Design über EnvironmentValues: Ändern Sie die Informationsdichte je nach Größe. Klein — eine Zahl, Mittel — Zahl + Diagramm, Groß — Tabelle.
Das Widget sollte sowohl im hellen als auch im dunklen Modus ohne zusätzliche Entwickleraktionen korrekt angezeigt werden — WidgetKit übernimmt automatisch die Systemfarben. Dynamic Type für Widgets ist eingeschränkt: Die Schriftgröße ist fest, aber muss lesbar sein. UIColor.label und UIColor.systemBackground sind die Grundfarben für Text und Hintergrund in beiden Designs.
Häufig gestellte Fragen
Heute ist es dasselbe WidgetKit-Widget. Der Unterschied liegt nur in der Platzierung: auf dem Startbildschirm und im Bereich „Today“ (links vom ersten Bildschirm). Vor iOS 14 war Today Widget eine separate NCWidgetProviding-Erweiterung, die nur im Benachrichtigungszentrum funktionierte. Jetzt ist es ein einheitliches WidgetKit.
WidgetKit aktualisiert Widgets nicht per Timer. Der Entwickler legt den Zeitplan über Timeline Provider fest: Einträge mit Zeitstempeln. Das System garantiert eine Aktualisierung zur angegebenen Zeit unter Berücksichtigung der Energieeinsparung — kann sich um einige Minuten verzögern. Das Mindestintervall beträgt 15 Minuten, aber Apple empfiehlt höchstens einmal pro Stunde.
Ja, ab iOS 17 unterstützt WidgetKit Tasten, Schalter und Schieberegler über App Intents. Interaktive Elemente funktionieren auf dem iPhone- und iPad-Startbildschirm. Die Unterstützung im Bereich „Today“ kam mit iOS 18. Für iOS 16 und älter — nur Öffnen der App beim Tippen auf das Widget.
Es gibt keine Grenzen. Eine App kann beliebig viele Widgets über WidgetBundle registrieren — jedes mit eigenem Typ, Größe und Konfiguration. Der Benutzer fügt sie einzeln hinzu. Empfohlen werden nicht mehr als 3–5 Widgets, um die Auswahl des Benutzers nicht zu überfordern.
WidgetKit wird im iOS Simulator vollständig unterstützt. Führen Sie das WidgetKit-Target-Schema in Xcode aus — das Widget erscheint auf dem Startbildschirm des Simulators. Zum Testen des Timeline Providers verwenden Sie WidgetKit Debug Profile: Xcode → Product → Profile → WidgetKit Debug. Überprüfen Sie das tatsächliche Verhalten auf einem physischen Gerät.
Zusammenfassung
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.
Lesen Sie auch