A modern, feature-rich todo app for macOS built with SwiftUI and SwiftData.
| Main Interface | Menu Bar |
|---|---|
![]() |
![]() |
- Three-Column Layout — Sidebar filters, task list, and detail editor in a clean NavigationSplitView.
- Priority & Categories — Set priority levels (None / Low / Medium / High) and assign multiple tags to each task.
- Due Dates — Inline calendar picker with smart relative date display (Today, Tomorrow, Overdue, etc.).
- Markdown Notes — Write notes in Markdown and preview rendered output with full block-level support (headings, lists, code blocks, tables) powered by MarkdownUI.
- File Attachments — Attach files via drag-and-drop or file picker. Open files or reveal in Finder with one click. Security-scoped bookmarks ensure persistent access across app launches.
- Smart Filtering — Filter by All / Today / Upcoming / Completed. Sort by due date, priority, or creation date. Full-text search across titles, notes, and categories.
- Menu Bar Quick Access — View and manage pending tasks directly from the macOS menu bar without opening the main window.
- Multilingual — Full support for English, Chinese (中文), and Japanese (日本語).
- Keyboard Shortcuts —
⌘Nto create a new task, and more. - Persistent Storage — SwiftData powers reliable local data persistence with automatic lightweight migration.
- macOS 26.2+
- Xcode 26.2+
- Clone the repository:
git clone https://github.com/mfzzf/todo-list.git
- Open
ToDo List.xcodeprojin Xcode. - Wait for Swift Package Manager to resolve dependencies.
- Build and run (
⌘R).
| Package | Purpose |
|---|---|
| MarkdownUI | Markdown rendering in SwiftUI |
ToDo List/
├── ToDo_ListApp.swift # App entry point & MenuBarExtra
├── ContentView.swift # Three-column NavigationSplitView
├── SidebarView.swift # Filter navigation (All/Today/Upcoming/Completed)
├── ToDoListView.swift # Task list with search & sort
├── ToDoRowView.swift # Individual task row
├── DetailView.swift # Task detail editor
├── AddToDoSheet.swift # New task creation sheet
├── MenuBarView.swift # Menu bar popover
├── SettingsView.swift # App preferences
├── Item.swift # SwiftData model
├── Priority.swift # Priority enum
├── Localization.swift # i18n (EN/ZH/JA)
├── DateFormatting.swift # Smart date utilities
├── AttachmentService.swift # File open & Finder reveal
├── FileTypeIcon.swift # File extension → SF Symbol mapping
└── Assets.xcassets/ # Colors & icons
Apache License 2.0. See LICENSE for details.

