Today Widget: wat is het, soorten en het maken van een meldingswidget

Auteur: IT Sectr Gepubliceerd: 2026-06-15 Leestijd: 10 min

Today Widget is een iOS-extensie die interactieve informatie direct in het Berichtencentrum of op het scherm “Vandaag” weergeeft. De gebruiker ziet actuele gegevens — weer, wisselkoers, agenda — zonder de hoofdapp te openen. Volgens gegevens van Apple WWDC (2025) is het gebruik van WidgetKit met 40% gestegen na de introductie van interactieve widgets in iOS 17. Today Widget lost het probleem van snelle toegang tot informatie op: een blik op het scherm — en de gebruiker krijgt de benodigde gegevens zonder navigatie door de app.

Belangrijkste punten

  • Today Widget — iOS-extensie voor het weergeven van informatie in het Berichtencentrum.
  • WidgetKit — modern framework voor het maken van widgets (iOS 14+).
  • NCWidgetProviding — protocol voor Notification Center-extensies (iOS 8–13).
  • Auto Layout — aanpassing van de widget aan verschillende schermformaten.
  • Timeline Provider — mechanisme voor gegevensupdate in WidgetKit.

Wat is Today Widget

Today Widget (ook bekend als Berichtencentrumwidget) — een iOS-interface-element dat samengevatte informatie uit de app weergeeft zonder deze te starten. De gebruiker ziet de widget door het scherm naar links te vegen op het vergrendelscherm of op het startscherm. De widget kan dynamische gegevens tonen — wisselkoers, laatste nieuws, taakstatus, apparaatstatus.

Historisch verscheen Today Widget in iOS 8 als extensie van het Berichtencentrum, geïmplementeerd via het Notification Center-framework. Met iOS 14 introduceerde Apple WidgetKit — een volledig herontworpen architectuur waarmee widgets direct op het bureaublad kunnen worden geplaatst. Today Widget in moderne zin — een WidgetKit-widget geplaatst in de sectie “Vandaag” (de widgetssectie links van het eerste scherm).

Waarom is Today Widget nodig

Het hoofddoel is het verkorten van de toegangstijd tot informatie. In plaats van de app te openen, door menu's te navigeren en te wachten op laden, ziet de gebruiker direct de benodigde gegevens. Volgens Apple (2024) vertonen apps met widgets 27% hogere gebruikersbetrokkenheid. Aanvullende scenario's: snelle acties (taak als voltooid markeren), monitoring (hartslag, activiteit) en status (batterijlading, meldingen).

WidgetKit versus NCWidgetProviding

De ontwikkelaar van Today Widget heeft twee benaderingen: moderne WidgetKit (iOS 14+) en de legacy-extensie NCWidgetProviding (iOS 8–13). De keuze hangt af van de minimale ondersteunde iOS-versie. WidgetKit wordt aanbevolen voor nieuwe projecten, NCWidgetProviding — voor ondersteuning van oudere apparaten.

KenmerkWidgetKitNCWidgetProviding
Minimale iOSiOS 14iOS 8
PlaatsingBureaublad + “Vandaag”Alleen “Vandaag”
AfmetingenSmall, Medium, LargeEén vast
InteractiviteitiOS 17+ knoppen en schakelaarsAlleen app openen
UpdateTimeline ProviderwidgetPerformUpdate
TaalSwiftUIUIKit

Wanneer WidgetKit gebruiken

Als uw app iOS 14 en nieuwer ondersteunt — gebruik dan WidgetKit. Het biedt rijke mogelijkheden: meerdere afmetingen, configuratie via intent, herontwerp met iOS 17 en diepe links. SwiftUI-declarativiteit maakt de widgetcode compact en leesbaar. Timeline Provider beheert automatisch het updateschema met inachtneming van het energieverbruik.

Wanneer NCWidgetProviding gebruiken

Alleen als ondersteuning voor iOS 9–13 vereist is. NCWidgetProviding is eenvoudiger te implementeren — het is een gewone UIViewController met een protocol. Het is echter beperkt: één afmeting, alleen UIKit, geen configuratie. Apple beveelt aan om zelfs voor oude projecten over te stappen op WidgetKit met behulp van availability check: WidgetKit op iOS 14+, NCWidgetProviding als fallback.

Soorten Today Widgets

In modern iOS worden drie soorten widgets onderscheiden op basis van functioneel doel. Elk type lost zijn eigen taak op en vereist een andere benadering van gegevens- en interfaceontwerp. Classificatie helpt bij het kiezen van de juiste architectuur voor uw app.

Informatiewidgets

Geven statische of periodiek bijgewerkte informatie weer: weer, datum, wisselkoers, serverstatus. Gegevens worden volgens schema bijgewerkt via Timeline Provider. De gebruiker interageert niet met de widget — alleen lezen. Informatiewidgets — het eenvoudigst te implementeren, vereisen geen verwerking van aanraakgebeurtenissen en werken op de achtergrond zonder aanvullende machtigingen.

Interactieve widgets

Sinds iOS 17 ondersteunt WidgetKit knoppen, schakelaars en schuifregelaars in widgets. De gebruiker kan een actie uitvoeren — taak markeren, muziek pauzeren, licht inschakelen — zonder de app te openen. Interactive Widgets gebruiken App Intents om de actie naar de hoofdapp te sturen. Beperking: alleen op het bureaublad, niet in de sectie “Vandaag” tot iOS 18.

Configureerbare widgets

De gebruiker past de weergegeven gegevens aan via de systeeminterface — kiest een stad voor het weer, een account voor financiën, een categorie voor nieuws. Geïmplementeerd via Intents Extension en configuratie in WidgetBundle. Configureerbare widgets verhogen de personalisatie en relevantie van informatie voor elke gebruiker.

Een WidgetKit-widget maken

Laten we het proces van het maken van een Today Widget in SwiftUI met WidgetKit bekijken. De widget geeft de huidige wisselkoers weer met automatische update. WidgetKit vereist drie componenten: de widgetstructuur, een Provider met configuratie en een View voor weergave.

swift
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])
    }
}

De Provider is verantwoordelijk voor het voorbereiden van gegevens voor weergave. De methode getTimeline maakt het updateschema: volgende update over 15 minuten. TimelineProvider garandeert dat de widget actuele gegevens toont zonder constante serverpolling.

swift
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 en gegevensupdate

Timeline Provider — het centrale WidgetKit-mechanisme voor het beheren van Today Widget-gegevens. In plaats van periodieke update met een timer (zoals in oude NCWidgetProviding), gebruikt WidgetKit het concept van timeline — een reeks records met tijdstempels. Het systeem toont het huidige record tot het verloopt, schakelt dan over naar het volgende of vraagt een nieuw record aan.

Updatebeleid

Timeline ondersteunt drie beleidsregels: .after(date) — volgende update op de opgegeven datum; .never — de widget wordt niet bijgewerkt tot een expliciete aanroep van WidgetCenter.reloadAllTimelines; .atEnd — update na weergave van het laatste record. Voor Today Widget met wisselkoers is het beleid .after met een interval van 15–30 minuten optimaal. Energie-efficiëntie — het belangrijkste voordeel van WidgetKit: het systeem groepeert updates van alle widgets in één venster.

WidgetCenter: programmatische update

Als gegevens zijn gewijzigd voordat de timeline verloopt (bijv. de gebruiker heeft de koers in de app bijgewerkt), roep dan WidgetCenter.shared.reloadTimelines(ofKind: "CurrencyWidget") aan. Dit vraagt een nieuwe timeline aan bij de Provider en werkt de weergave bij. WidgetCenter maakt het ook mogelijk om alle widgets van de app met één opdracht te herladen — handig na gegevenssynchronisatie.

Ontwerpaanbevelingen voor widgets

Apple stelt strenge eisen aan het ontwerp van Today Widget: inhoud moet van een afstand leesbaar zijn, zonder overbodige elementen en met een duidelijke hiërarchie. Overtreding van de HIG-aanbevelingen (Human Interface Guidelines) is een reden voor afwijzing bij publicatie in de App Store. Drie principes: glanceability, consistency en hierarchy.

Glanceability — leesbaarheid in één oogopslag

De gebruiker besteedt minder dan een seconde aan de widget. Voeg niet meer dan 3–4 gegevenselementen toe. Lettertype — minimaal 11pt voor labels, 17pt voor waarden. Gebruik vet (Semibold) voor belangrijke getallen. Vermijd scrollen — Today Widget scrollt niet.

Aanpassing aan afmetingen

WidgetKit ondersteunt drie afmetingen: Small (170×170pt), Medium (364×170pt), Large (364×382pt). Voor Today Widget in de sectie “Vandaag” is Medium de meest voorkomende keuze. Adaptief ontwerp via EnvironmentValues: wijzig de informatiedichtheid afhankelijk van de afmeting. Small — één getal, Medium — getal + grafiek, Large — tabel.

Ondersteuning voor donkere modus en Dynamic Type

De widget moet correct worden weergegeven in lichte en donkere modus zonder extra handelingen van de ontwikkelaar — WidgetKit neemt automatisch de systeemkleuren over. Dynamic Type voor widgets is beperkt: de lettergrootte is vast, maar moet leesbaar zijn. UIColor.label en UIColor.systemBackground — basiskleuren voor tekst en achtergrond in beide modi.

Veelgestelde vragen

Waarin verschilt Today Widget van een gewone widget op het bureaublad?

Tegenwoordig is het dezelfde WidgetKit-widget. Het verschil zit alleen in de locatie: op het bureaublad en in de sectie “Vandaag” (links van het eerste scherm). Tot iOS 14 was Today Widget een aparte NCWidgetProviding-extensie die alleen in het Berichtencentrum werkte. Nu is het één WidgetKit.

Hoe vaak wordt Today Widget bijgewerkt?

WidgetKit werkt widgets niet bij met een timer. De ontwikkelaar stelt het schema in via Timeline Provider: records met tijdstempels. Het systeem garandeert een update op de opgegeven tijd met inachtneming van energiebesparing — kan enkele minuten vertraging oplopen. Minimale interval — 15 minuten, maar Apple raadt aan niet vaker dan 1 keer per uur.

Kan ik een Today Widget maken met interactieve knoppen?

Ja, vanaf iOS 17 ondersteunt WidgetKit knoppen, schakelaars en schuifregelaars via App Intents. Interactieve elementen werken op het bureaublad van iPhone en iPad. In de sectie “Vandaag” verscheen ondersteuning in iOS 18. Voor iOS 16 en ouder — alleen het openen van de app bij het tikken op de widget.

Hoeveel Today Widgets kunnen er in één app zitten?

Er zijn geen beperkingen. De app kan elk aantal widgets registreren via WidgetBundle — elk met zijn eigen type, afmeting en configuratie. De gebruiker voegt ze afzonderlijk toe. Aanbevolen niet meer dan 3–5 widgets om de keuze van de gebruiker niet te overladen.

Hoe test ik Today Widget op de simulator?

WidgetKit wordt volledig ondersteund in iOS Simulator. Start het WidgetKit-targetschema in Xcode — de widget verschijnt op het bureaublad van de simulator. Gebruik voor het controleren van Timeline Provider het WidgetKit Debug Profile: Xcode → Product → Profile → WidgetKit Debug. Controleer het werkelijke gedrag op een fysiek apparaat.

Samenvatting

  • Today Widget — iOS-extensie voor het weergeven van informatie zonder de app te openen.
  • WidgetKit (iOS 14+) — modern framework, NCWidgetProviding — legacy voor oude versies.
  • Drie soorten widgets: informatie, interactief (iOS 17+), configureerbaar via Intents.
  • Timeline Provider beheert het updateschema in plaats van timers.
  • Ontwerp moet glanceable zijn: minimale elementen, groot lettertype, aanpassing aan afmetingen.
  • Interactiviteit via App Intents — knoppen en schakelaars zonder de app te openen.
  • WidgetCenter.shared.reloadTimelines — programmatische update bij gegevenswijziging.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook