The main intention behind creating this app is a further practice of the Composable Architecture on iOS.
Specific features of this to-do list app will be based on following ChatGPT-generated assignment:
Create a To-Do List app using the Composable Architecture (TCA). The app should allow users to add, edit, delete, and mark to-do items as completed. Additionally, the app should allow users to filter to-do items by their completion status (All, Completed, Pending).
- Add To-Do Item ✅
- The user should be able to add a new to-do item with a title and description.
- Edit To-Do Item ✅
- The user should be able to edit the title and description of an existing to-do item.
- Delete To-Do Item ✅
- The user should be able to delete a to-do item.
- Mark To-Do Item as Completed ✅
- The user should be able to mark a to-do item as completed or pending.
- Filter To-Do Items ✅
- The user should be able to filter the to-do items by All, Completed, and Pending.
- Persist To-Do Items ✅
- Use local storage to persist to-do items between app launches (e.g., using UserDefaults or local file storage).
- Priority Levels ✅
- Let users assign priority levels (e.g., low, medium, high) to tasks, sort tasks by priority.
- Due Date ✅
- Allow users to set a due date for each task.
- Recurring Tasks ✅
- Provide an option for users to set tasks as recurring (daily, weekly, monthly, annually).
- Move to Trash ✅
- Instead of permanently deleting a to-do item, users can move it to a Trash Bin.
- iOS 18
- Xcode 16.0 (16A242d)
- Swift 6
Models
- Data structures to work with & its mocksStorage
- Storage extensions to be usedReducers
- Reducers & unit testsUI
- SwiftUI views, previews & unified sizing