WaitTimes
Tracker iOS local-first des temps d'attente — chrono néon, catégories, équivalences absurdes, trophées et widgets Home Screen interactifs. Pour rire de sa patience plutôt que la subir.
Contexte
App iOS solo publiée sur l'App Store. Cible : la communauté du quantified self / self-tracking, mais avec un angle volontairement humoristique plutôt que productiviste. Aucun serveur, aucun tracking utilisateur.
Problème
La plupart des outils de tracking sont sérieux et culpabilisants — ils transforment la donnée en jugement. Beaucoup veulent tracker leur vie mais décrochent au bout de deux jours parce que c'est trop austère.
Solution
App entièrement local-first (SwiftData), chrono néon, citations sarcastiques, dashboard avec équivalences absurdes (« vous auriez pu regarder 3 films »), trophées débloquables, widgets Home Screen interactifs pour démarrer/arrêter un timer en un tap, rappels intelligents si on oublie de stopper.
Défis techniques
Local-first sans analytics
Aucun serveur, donc aucune analytics : chaque erreur de design se vit en aveugle. SwiftData pour la persistance, App Groups pour partager l'état avec les widgets, tout doit être correct du premier coup.
Widgets interactifs qui restent à jour
Démarrer ou arrêter un timer depuis le Home Screen demande de synchroniser l'état entre l'app, le widget et le système. Architecture autour d'App Groups + AppIntent pour les actions widget iOS 17+.
Faire d'un tracker ennuyeux un jeu
Le tracking pur s'épuise vite. Trophées, équivalences absurdes, dark mode néon + haptics : on ne demande pas à l'utilisateur d'être productif, on lui propose de rire de lui-même.
Apprentissages
- Une app de tracking ne survit que si elle a un ton — la data brute ne fidélise personne.
- Local-first force à designer sans filet : sans analytics, chaque écran doit être bon dès la v1.
- Les widgets ne sont pas un accessoire — sur iOS, ils sont souvent la vraie interface de l'app.