Apps von Detlev Voss

Warum ich Timer & Wecker gebaut habe

Ein Timer in der Dynamic Island, in einem kleinen Widget und in einem mittleren Widget

Eine Timer-App klingt nach einer kleinen Sache. Spannend wurde es für mich bei dem Versuch, denselben Timer an vier Orten gleichzeitig dieselbe Zeit anzeigen zu lassen: in der App selbst, im Home-Bildschirm-Widget, in der Live-Aktivität auf dem Sperrbildschirm und in der Dynamic Island.

Was ich wollte

Die Kurzfassung findet sich im Startbeitrag: eine kostenlose Timer-App ohne Werbung und ohne Tracking, die Countdowns, Intervalle, Wiederholungen und Alarme verwaltet und die ich vom Startbildschirm und vom Sperrbildschirm aus überwachen und steuern kann, ohne sie öffnen zu müssen. Der Großteil dieser Liste betrifft die Entwicklung der Funktionen. Ein Punkt darauf – überall und jederzeit die richtige Uhrzeit anzeigen – erwies sich als der Teil, der den meisten Überarbeitungsaufwand erforderte.

Der erste Versuch

In meiner ersten Version war der Zeitplan vollständig im App-Code hinterlegt. Die App wusste, wann jeder Timer ausgelöst werden sollte, und das Widget sowie die Live-Aktivität wurden auf Basis dieses Zustands dargestellt.

Solange die App geöffnet war, sah alles gut aus. Sobald sie geschlossen war, sah es weniger gut aus. Das Widget und die Live-Aktivität konnten um 5 bis 10 Sekunden hinter der App zurückbleiben, und hin und wieder hörte ein Widget auf, sich zu aktualisieren, bis es schließlich durch einen Impuls vom OS wieder in Gang gesetzt wurde. Für sich genommen ist das alles vielleicht nicht dramatisch bei lang laufenden Timern, aber genau das fällt einem in dem Moment auf, in dem man sich tatsächlich auf einen Timer verlässt – der Wasserkocher kocht, die Intervallphase hat sich geändert, und auf dem Sperrbildschirm steht immer noch, dass noch zehn Sekunden verbleiben.

Was ich zuerst ausprobierte: kürzere Widget-Timelines, häufigere Aktualisierungen, bessere Abstimmung zwischen der App und der Live-Aktivität. Jedes dieser Maßnahmen half ein wenig. Keine davon beseitigte die Abweichung wirklich.

Der Wechsel zu AlarmKit

Die aktuelle Version basiert auf Apples AlarmKit. Der Zeitplan liegt dort; die App, das Widget und die Live-Aktivität lesen aus derselben Quelle, statt jeweils eine eigene Kopie nachzuziehen.

Die Abweichung war weg. Ein Timer, eine (Daten-)Quelle, vier Orte mit derselben verbleibenden Zeit. Das ist die Version, die jetzt im App Store steht.

Wo es noch hakt

Wenn ein Timer in der App gestartet wird, kann das Home-Bildschirm-Widget der App um 2 bis 3 Sekunden hinterherhängen, bevor es aufholt. Danach bleibt es synchron. Wird derselbe Timer direkt über das Widget gestartet, tritt diese Verzögerung nicht auf. Eine kleine Macke – und die einzige, für die ich bisher keinen Weg drumherum gefunden habe. Wenn sich einer findet, wandert sie in ein künftiges Update.

Was ich mitnehme

Wo Apple ein System-Framework für eine Aufgabe liefert, die schwieriger ist, als sie aussieht, lohnt es sich meist, dieses zu nutzen – auch wenn das heißt, den gerade fertiggestellten Teil neu zu schreiben. Die erste Version von Timer & Wecker war nicht umsonst – sie hat mir gezeigt, dass es manchmal Probleme gibt, mit denen ich nicht rechne, und dass diese Probleme manchmal tatsächlich schwer zu lösen oder sogar unlösbar sind. Ehrlich gesagt – ohne die Hilfe eines KI-Agenten hätte ich die App nicht in einen Zustand bringen können, in dem sie es wert ist, im App Store zu erscheinen.

Hol dir die App

Timer & Wecker ist im App Store kostenlos, ohne Werbung und ohne Tracking. Tippe auf das Badge unten, um sie zu installieren.

Laden im App Store

← Zurück zum Blog