ios-tracker/HabitTracker/Support/ModelContext+Habit.swift
rene 22b8f5d806 Initiales HabitTracker-Projekt: SwiftUI + SwiftData Gewohnheiten-Tracker
Natives iOS-App-Gerüst (Xcode 26, synchronisierte Ordner, iOS 18+).

Features:
- Gewohnheiten anlegen (Name, SF-Symbol, Farbe), heute abhaken, Streaks, Löschen
- Detailansicht mit Monatskalender (Tage nachtragbar) und Statistiken
- Tägliche Erinnerungen via lokale Notifications
- Home-Screen-Widget (klein/mittel) mit App-Group-Datenaustausch
2026-05-29 21:12:45 +02:00

17 lines
621 B
Swift

import Foundation
import SwiftData
extension ModelContext {
/// Toggles completion for a habit on a given day: removes the entry if it
/// exists, otherwise inserts one normalized to the start of that day.
func toggleCompletion(for habit: Habit, on day: Date) {
let calendar = Calendar.current
if let entry = habit.entries.first(where: { calendar.isDate($0.date, inSameDayAs: day) }) {
delete(entry)
} else {
let entry = HabitEntry(date: calendar.startOfDay(for: day), habit: habit)
insert(entry)
}
WidgetSync.refresh(self)
}
}