mycode/myApp/TallyFlow/IOS/Settings/AppPreferences.swift
songyc macbook b209199c2d feat: Setup app shell, SwiftData models, and real-time tracking engine
- Initialize iOS project with 6-tab navigation structure
- Configure custom Light/Dark themes and AppColors
- Define SwiftData models for Tasks, Tags, Goals, and TrackingRecords
- Setup relationships (Super/Sub tags) and cascade delete rules
- Implement Observable TrackingEngine for real-time timer updates
2026-06-26 03:32:29 +09:00

27 lines
1.2 KiB
Swift

import Foundation
import Observation
@Observable
final class AppPreferences {
// Calendar.weekday constants: 1 = Sunday, 2 = Monday 7 = Saturday
var themeMode: ThemeMode = ThemeMode(rawValue: UserDefaults.standard.string(forKey: "pref.themeMode") ?? "system") ?? .system {
didSet { UserDefaults.standard.set(themeMode.rawValue, forKey: "pref.themeMode") }
}
var languageCode: String = UserDefaults.standard.string(forKey: "pref.languageCode") ?? "ko" {
didSet { UserDefaults.standard.set(languageCode, forKey: "pref.languageCode") }
}
var weekStartDay: Int = (UserDefaults.standard.object(forKey: "pref.weekStartDay") as? Int) ?? 2 {
didSet { UserDefaults.standard.set(weekStartDay, forKey: "pref.weekStartDay") }
}
var dayStartHour: Int = (UserDefaults.standard.object(forKey: "pref.dayStartHour") as? Int) ?? 0 {
didSet { UserDefaults.standard.set(dayStartHour, forKey: "pref.dayStartHour") }
}
var dayStartMinute: Int = (UserDefaults.standard.object(forKey: "pref.dayStartMinute") as? Int) ?? 0 {
didSet { UserDefaults.standard.set(dayStartMinute, forKey: "pref.dayStartMinute") }
}
}