Implemented schedule CRUD methods using UserDefaults: createSchedule(): - Creates new schedule with required kind field - Auto-generates ID if not provided (kind_timestamp) - Stores optional fields (cron, clockTime, jitterMs, backoffPolicy, stateJson) - Adds to schedules array in UserDefaults - Returns created schedule updateSchedule(): - Updates existing schedule by ID - Updates provided fields (enabled, cron, clockTime, jitterMs, backoffPolicy, stateJson, lastRunAt, nextRunAt) - Returns updated schedule - Rejects if schedule not found deleteSchedule(): - Deletes schedule by ID from UserDefaults - Removes from schedules array - Rejects if schedule not found enableSchedule(): - Enables or disables schedule by ID - Updates enabled field in schedule - Rejects if schedule not found iOS Adaptations: - Uses UserDefaults array instead of SQLite database - In-memory array manipulation then persistence - Maintains schedule structure matching Android Progress: 44/52 methods implemented (85% complete)
80 KiB
80 KiB