Wie erstellen Sie lokale Erinnerungen in einer iOS-App? Einsteiger-Tutorial für Studierende 2026

Wie erstellen Sie lokale Erinnerungen in einer iOS-App? Einsteiger-Tutorial für Studierende 2026

Symptom: Ihre Aufgaben-App soll an eine Lernzeit erinnern, aber Sie wissen nicht, wo Berechtigung und Zeitpunkt hingehören.
Schnellster Weg: Erstellen Sie lokale Erinnerungen in einer iOS-App, indem Sie zuerst die Erlaubnis einholen, dann Inhalt und Auslöser festlegen und den Ablauf anschließend tatsächlich testen.

Das passt für Erinnerungen, die auf dem Gerät nach einem selbst gewählten Zeitplan stattfinden sollen. Es ersetzt keine Push-Nachricht, die erst durch ein Ereignis auf einem Server ausgelöst wird.

Sie entwickeln eine Aufgaben-, Kursplan- oder Lernplan-App und möchten eine Erinnerung sinnvoll ergänzen? Folgen Sie dem Ablauf von der Planung bis zur Abnahme.
Sie lernen Swift und iOS-Entwicklung gerade erst? So sehen Sie, warum Berechtigung, Inhalt und Auslöser getrennte Aufgaben sind.
Sie arbeiten hauptsächlich an einem Windows-PC oder an einem verwalteten Schulrechner? Der Leitfaden zeigt auch, wann Sie für den Bau und die Prüfung des Projekts eine passende Mac-Umgebung brauchen.

Planung: lokale Erinnerung statt Server-Push

Entscheiden Sie vor dem Code, was Ihre App tatsächlich versprechen soll. Eine Erinnerung für „Lernkarten wiederholen“ kann das Gerät zu einer vorher festgelegten Zeit planen lassen. Eine Mitteilung wie „Ihre Gruppe hat gerade eine neue Aufgabe veröffentlicht“ hängt dagegen von einem Ereignis außerhalb dieses Geräts ab und braucht einen Serverweg.

Diese Unterscheidung verhindert, dass Sie für eine einfache Kursaufgabe unnötig eine Serverarchitektur einbauen. Sie hilft ebenso, falsche Erwartungen zu vermeiden: Das Planen einer lokalen Mitteilung bedeutet nicht, dass die App eine sekundengenaue Zustellung in jeder Nutzungssituation garantieren kann.

Halten Sie zunächst drei Angaben fest:

  • Anlass: Welche Aufgabe oder welcher Termin soll in Erinnerung bleiben?
  • Inhalt: Welche kurze Information hilft beim Handeln?
  • Auslöser: Welche Zeit- oder Kalenderbedingung soll das System verwenden?

Eine brauchbare Nachricht nennt die Aufgabe, nicht nur eine vage Aufforderung. „Mathe-Aufgaben wiederholen“ ist für eine Lernplan-App nützlicher als „Nicht vergessen“. Fragen Sie sich außerdem, ob die Erinnerung wirklich einen Mehrwert bietet. Eine Berechtigungsanfrage nur deshalb einzubauen, weil andere Apps Benachrichtigungen verwenden, kann Nutzerinnen und Nutzer unnötig unterbrechen.

Apple beschreibt lokale Mitteilungen als Anfragen mit Inhalt und Auslöser, die eine App an das System übergibt. Die Übersicht zu Apple User Notifications ist die passende Referenz, wenn Sie die Rollen von Inhalt, Auslöser und Systemverwaltung genauer nachlesen möchten.

Für eine erste Übung brauchen Sie keine Anmeldung, kein Konto und keinen Server. Sie können die Aufgabe zunächst manuell anlegen und die lokale Mitteilung daran knüpfen. Wenn das Kursprojekt später eine serverseitige Aktualisierung verlangt, prüfen Sie diese Anforderung als eigenen Funktionsumfang, statt lokale Benachrichtigungen umzudeuten.

Berechtigung: erst erklären, dann anfragen

Die Benachrichtigungsberechtigung beantwortet eine einfache Frage: Darf Ihre App dem System eine Mitteilung anzeigen lassen? Rufen Sie die Abfrage nicht blind beim ersten Start auf. Erklären Sie vorher knapp, welchen konkreten Nutzen eine Freigabe in Ihrer App hat. Bei einem Lernplan könnte das heißen: „Damit Sie selbst gewählte Wiederholungszeiten nicht verpassen.“

In Swift arbeiten Sie dafür mit UNUserNotificationCenter. Apple dokumentiert sowohl den Ablauf zum Anfragen der Benachrichtigungsberechtigung als auch die Methode requestAuthorization. Ein vereinfachtes Muster sieht so aus:

import UserNotifications

let center = UNUserNotificationCenter.current()

center.requestAuthorization(options: [.alert, .sound, .badge]) {
    granted, error in

    if let error = error {
        print("Berechtigungsabfrage fehlgeschlagen: \(error)")
        return
    }

    if granted {
        print("Benachrichtigungen wurden erlaubt.")
    } else {
        print("Die Person hat Benachrichtigungen nicht erlaubt.")
    }
}

Das Ergebnis darf nicht mit dem gesamten Zustand Ihrer App verwechselt werden. Eine Ablehnung bedeutet nicht, dass Aufgaben, Kalender oder Lernfortschritt verschwinden müssen. Lassen Sie die Kernfunktion benutzbar und bieten Sie eine Alternative: Die Person kann den Plan weiterhin in der App ansehen, auch wenn keine Mitteilung erscheint.

Prüfen Sie den Berechtigungszustand bei Bedarf erneut, statt nur das Ergebnis der ersten Anfrage zu speichern. Dafür stellt UNUserNotificationCenter eine Methode zum Auslesen der aktuellen Benachrichtigungseinstellungen bereit. Ihre Oberfläche kann dann passend reagieren: erlaubte Mitteilungen, nicht erlaubte Mitteilungen oder ein Zustand, in dem die Entscheidung noch nicht getroffen wurde.

Die konkrete Nutzerführung sollte freundlich und knapp bleiben. Zeigen Sie keine wiederholten Aufforderungen, die den Arbeitsablauf blockieren. Erklären Sie an der Stelle, an der die Person eine Erinnerung anlegt, welche Funktion ohne Freigabe eingeschränkt ist. Verweisen Sie bei einer Ablehnung auf die Möglichkeit, die Systemeinstellungen selbst zu ändern, statt so zu tun, als könne Ihre App die Entscheidung umgehen.

Inhalt und Auslöser: zwei getrennte Einstellungen

Der Benachrichtigungsinhalt beschreibt, was die Person lesen soll. Für eine Aufgaben-App können Sie zum Beispiel einen Titel wie „Lernblock beginnt“ und einen ergänzenden Text wie „Wiederholen Sie die Vokabelliste“ festlegen. Der Auslöser beschreibt, wann die Anfrage vom System verarbeitet werden soll. Diese Trennung erleichtert das Testen: Ist der Text falsch, prüfen Sie den Inhalt; erscheint die Erinnerung nicht wie erwartet, kontrollieren Sie zusätzlich Auslöser und Berechtigungsstatus.

Ein minimales Beispiel verwendet einen Zeitintervall-Auslöser für eine kurze Test-Erinnerung:

import UserNotifications

let content = UNMutableNotificationContent()
content.title = "Lernblock beginnt"
content.body = "Wiederholen Sie die Vokabelliste."
content.sound = .default

let trigger = UNTimeIntervalNotificationTrigger(
    timeInterval: 60,
    repeats: false
)

let request = UNNotificationRequest(
    identifier: "lernblock-test",
    content: content,
    trigger: trigger
)

UNUserNotificationCenter.current().add(request) { error in
    if let error = error {
        print("Die Anfrage konnte nicht hinzugefügt werden: \(error)")
    }
}

Im Beispiel ist 60 ein Testwert in Sekunden, keine Zusage über die exakte Zustellung. Die Apple-Dokumentation zu UNTimeIntervalNotificationTrigger erklärt den Intervall-Auslöser und dessen Initialisierung. Für echte Kursaufgaben sollten Sie statt eines beliebigen Testintervalls die Anforderung Ihres Projekts verwenden und die tatsächliche Laufzeit beobachten.

UNNotificationRequest verbindet eine Kennung, den Inhalt und den Auslöser. Verwenden Sie eine Kennung, die Sie Ihrer Aufgabe zuordnen können. So lässt sich beim späteren Prüfen erkennen, welche Anfrage Sie testen. Übergeben Sie die Anfrage mit add an UNUserNotificationCenter; die App beschreibt damit die gewünschte Mitteilung und das System übernimmt die weitere Verarbeitung. Eine ausführliche Anleitung zum Planen lokaler Mitteilungen aus einer App finden Sie in Apples Entwicklerdokumentation.

Achtung: Planen Sie den Test so, dass Sie die App nicht sofort schließen und dann nur auf eine bestimmte Sekunde warten. Prüfen Sie die Anfrage, den Berechtigungsstatus und die Systemeinstellungen gemeinsam. Die Dokumentation beschreibt die API, aber sie ist keine Garantie für eine exakt sekundengenaue Anzeige in jeder Umgebung.

Für wiederkehrende Termine müssen Sie zusätzlich überlegen, ob ein Zeitintervall oder eine kalenderbezogene Bedingung zum Kursfall passt. Verwenden Sie keinen Wiederholungsmodus, nur weil er im Beispiel verfügbar ist: Eine einmalige Abgabe-Erinnerung und ein wöchentlicher Lerntermin sind unterschiedliche Produktentscheidungen. Beschreiben Sie diese Entscheidung im Projekt, damit Ihre Lehrkraft nachvollziehen kann, was der Code beabsichtigt.

Ausführung und Fehlersuche: Vordergrund gegen Hintergrund

Testen Sie nicht nur, ob der Code ohne sichtbare Fehlermeldung kompiliert. Prüfen Sie zuerst, ob die Anfrage tatsächlich hinzugefügt werden konnte und ob die Benachrichtigungsfreigabe aktiv ist. Beobachten Sie dann getrennt, was passiert, wenn Ihre App geöffnet ist und wenn sie nicht im Vordergrund läuft.

Bei einer geöffneten App sollten Sie die Darstellung nicht einfach voraussetzen. Apple beschreibt in der Anleitung zum Umgang mit Mitteilungen und zugehörigen Aktionen, dass die App die Behandlung von Mitteilungen während der Vordergrundnutzung berücksichtigen kann. Legen Sie deshalb fest, welches Verhalten für Ihre Lernplan-App sinnvoll ist: Soll eine sichtbare Mitteilung erscheinen, soll die App den Hinweis intern darstellen oder soll sie die Nutzeroberfläche aktualisieren?

Gehen Sie bei einem fehlenden Hinweis in dieser Reihenfolge vor:

  1. Berechtigung prüfen: Lesen Sie die aktuellen Einstellungen aus und unterscheiden Sie eine Ablehnung von einem noch nicht angefragten Zustand.
  2. Anfrage prüfen: Stellen Sie sicher, dass add keinen Fehler zurückliefert und dass Sie die erwartete Kennung verwenden.
  3. Auslöser prüfen: Kontrollieren Sie, ob Zeit oder Kalenderbedingung zu Ihrem Test passt und ob die Anfrage einmalig oder wiederkehrend angelegt wurde.
  4. Systemverhalten prüfen: Prüfen Sie die Mitteilungseinstellungen des Geräts und betrachten Sie Vordergrund- und Hintergrundsituation getrennt.
  5. Ergebnis dokumentieren: Notieren Sie, welche Umgebung Sie verwendet haben und was Sie tatsächlich beobachtet haben. Formulieren Sie daraus keine allgemeine Zustellgarantie.

Wenn Ihre App während des Tests geöffnet bleibt, implementieren Sie die Vordergrundbehandlung passend zur gewünschten Oberfläche und testen Sie diese ausdrücklich. Wird die App nicht verwendet, prüfen Sie die geplante lokale Mitteilung unabhängig davon. Das sind keine identischen Abnahmesituationen. Ein Test, der nur eine davon abdeckt, beantwortet nicht automatisch, wie sich die andere verhält.

FAQ: Berechtigung, Zeit und Push-Nachrichten

Braucht eine iOS-App zuerst eine Berechtigung für lokale Erinnerungen?
Ja. Fordern Sie die Benachrichtigungsfreigabe über UNUserNotificationCenter an, bevor Sie mit sichtbaren Erinnerungen planen. Erklären Sie den Zweck im passenden Nutzungskontext und prüfen Sie den aktuellen Status. Wenn die Person ablehnt, bleiben Aufgaben und Lernplan trotzdem benutzbar; behandeln Sie die Entscheidung nicht als Programmfehler.

Wo legen Sie den Text und den Zeitpunkt einer Erinnerung fest?
Den Text legen Sie im Benachrichtigungsinhalt fest, zum Beispiel mit Titel und Nachrichtentext. Zeitpunkt oder Bedingung gehören in den Auslöser. Danach übergeben Sie beides zusammen mit einer eindeutigen Kennung als Anfrage an das System. So können Sie Inhalt und Zeitplanung getrennt überprüfen, statt beide Fehlerquellen gleichzeitig zu suchen.

Was tun, wenn jemand die Benachrichtigungen ablehnt?
Lassen Sie die zentrale Funktion Ihrer App verfügbar und zeigen Sie eine knappe Erklärung, was ohne Mitteilungen nicht funktioniert. Prüfen Sie den Status erneut, wenn die Person eine Erinnerung verwenden möchte. Ist die Freigabe nicht aktiv, können Sie erklären, dass eine Änderung in den Systemeinstellungen erforderlich ist. Versuchen Sie nicht, eine Ablehnung durch wiederholte störende Dialoge zu umgehen.

Ist eine lokale Erinnerung dasselbe wie eine Push-Nachricht?
Nein. Eine lokale Mitteilung wird mit Inhalt und Auslöser auf dem Gerät geplant. Eine Push-Nachricht wird durch einen Server an das Gerät geschickt und benötigt einen passenden serverseitigen Ablauf. Verwenden Sie die lokale Variante für einen persönlichen, vorab geplanten Lernhinweis. Wenn Ihre App erst auf ein Ereignis aus einem Online-Dienst reagieren soll, planen Sie diese Anforderung gesondert.

Abnahme: Kursanforderung gegen Testumgebung

Arbeiten Sie die Prüfung durch, bevor Sie eine Funktion als fertig markieren:

  • Eine kurze Erklärung erscheint vor der Berechtigungsanfrage.
  • Die App funktioniert weiter, wenn die Person keine Mitteilungen erlaubt.
  • Titel und Text sagen konkret, welche Lernaufgabe ansteht.
  • Der Auslöser entspricht der Kursanforderung und ist nicht nur ein zufälliger Testwert.
  • Ein Fehler beim Hinzufügen der Anfrage wird protokolliert oder sinnvoll angezeigt.
  • Vordergrund und Hintergrund wurden als getrennte Situationen betrachtet.
  • Sie halten fest, auf welcher tatsächlichen Umgebung und mit welchem Ergebnis Sie getestet haben.

Die Wahl der Entwicklungsumgebung hängt davon ab, was Ihr Kurs verlangt. Wenn Sie nur die Swift-Logik skizzieren oder den Inhalt eines Projekts vorbereiten, können Sie Teile der Arbeit auch ohne Mac erledigen. Sobald Sie das native Projekt in Xcode bauen und die Mitteilung in der Zielumgebung prüfen müssen, benötigen Sie Zugang zu einer kompatiblen Mac-Umgebung. Die folgende Gegenüberstellung ist eine redaktionelle Eignungseinschätzung, kein Leistungstest.

Situation Bestehender Windows- oder Schulrechner Mac-Umgebung Eignung
Swift-Code und Ablauf gedanklich vorbereiten Geeignet für Planung und Dokumentation Ebenfalls geeignet Gut ohne zusätzlichen Mac-Zugang
Xcode-Projekt bauen und starten Nicht die passende lokale Umgebung für diesen Schritt Geeignet, sofern Projekt und System kompatibel sind Mac-Zugang einplanen
Benachrichtigungen auf dem Zielgerät abnehmen Kann die Geräteprüfung nicht allein ersetzen Hilft beim Bauen und bei der vorgesehenen Prüfung Kursvorgaben beachten
Längerfristige, tägliche Entwicklungsarbeit Abhängig von Schulrechner und Freigaben Ein eigener Mac kann dauerhaft verfügbar sein Nach Nutzungsdauer entscheiden

Nutzen Sie diese Entscheidungsbedingungen, bevor Sie Geld oder Zeit in eine Umgebung investieren:

  • Wenn Ihre Aufgabe nur Konzept, Swift-Grundlagen oder eine textuelle Projektplanung verlangt, dann beginnen Sie mit dem vorhandenen Rechner und prüfen Sie die genaue Abgabeanforderung, bevor Sie einen Mac-Zugang buchen.
  • Wenn Sie Xcode für Build, Start oder Abnahme brauchen und Ihr Schulrechner keinen Mac bereitstellt, dann organisieren Sie rechtzeitig Zugang zu einer kompatiblen Mac-Umgebung.
  • Wenn Sie regelmäßig und über längere Zeit mit hoher Last arbeiten oder physische Geräte und Anschlüsse benötigen, dann prüfen Sie einen eigenen Mac oder einen lokalen Zugang. Eine zeitweise Miete ist dafür nicht automatisch die bessere Wahl.
  • Wenn Sie nur für ein Kursprojekt bauen und testen müssen, dann vergleichen Sie eine zeitlich begrenzte Mac-Nutzung mit den Einschränkungen Ihres aktuellen Rechners. Für einen Überblick zur Abgrenzung von Bare-Metal-Mac und macOS-Virtualisierung hilft die entsprechende Gegenüberstellung.
  • Wenn Sie vor allem den verfügbaren Zugang und mögliche Mietoptionen prüfen möchten, dann lesen Sie die Informationen zu Mac-Date-Angeboten und Bestellmöglichkeiten, bevor Sie sich festlegen.
Arbeitsweg Vorteil für das Kursprojekt Einschränkung, die Sie vorher prüfen sollten Eignung
Vorhandenen Rechner weiterverwenden Keine zusätzliche Mac-Miete für Planung und nicht native Vorarbeiten Xcode-Build und Mac-spezifische Abnahme sind damit nicht erledigt Gut für Vorbereitung
Eigenen Mac nutzen Dauerhafter Zugriff auf die lokale Umgebung Anschaffung und langfristige Verfügbarkeit liegen bei Ihnen Gut bei regelmäßiger Nutzung
Mac zeitweise mieten Zugriff auf eine Mac-Umgebung für klar begrenzte Bau- und Testphasen Internetverbindung, Fernzugriff und Kursvorgaben müssen passen Gut für ein einzelnes Projekt, wenn kein Mac verfügbar ist

Ein vorhandener Windows-Rechner kann für Vorbereitung und allgemeine Programmierübungen ausreichen, löst aber nicht die Mac-spezifischen Schritte eines Xcode-Projekts. Ein eigener Mac bindet Sie langfristig an Anschaffung und Pflege; ein verwalteter Schulrechner kann Installationen oder Zugänge beschränken. Wenn Sie für eine Abgabe nur zeitweise eine kompatible Umgebung benötigen, kann eine Mac-Miete von MacDate den Zugang ermöglichen, ohne dass Sie dafür ein Gerät dauerhaft anschaffen müssen. Prüfen Sie vorab Kursanforderungen und Fernzugriff: Für lange, gleichmäßige Arbeitslasten oder Tests mit physischen Anschlüssen kann ein eigener Rechner die passendere Wahl sein.

Weitere Lektüre