A beautifully crafted, feature-rich Todo application for iOS and watchOS with seamless real-time synchronization
iphone.MP4
Fluid iPhone interface showcasing task management, categories, and priority levels
watch.mp4
Optimized watchOS interface with Digital Crown support and instant sync
| Main Interface | Task Categories | Add New Task | Detailed View |
|---|---|---|---|
| Clean, modern task list | Smart categorization | Intuitive task creation | Rich task details |
- Create, Edit & Delete: Full CRUD operations with intuitive interfaces
- Smart Scheduling: Schedule tasks for specific dates with calendar integration
- Completion Tracking: One-tap completion with visual feedback
- Rich Descriptions: Add detailed notes and context to your tasks
Choose from 6 beautifully designed categories:
- πΌ Work - Professional tasks and projects
- π€ Personal - Personal goals and reminders
- π Shopping - Shopping lists and purchases
- β€οΈ Health - Fitness goals and health reminders
- π° Finance - Financial tasks and payments
- π Study - Learning goals and academic tasks
Three-tier priority system with visual indicators:
- π΄ High Priority - Urgent and important tasks
- π‘ Medium Priority - Standard tasks
- π’ Low Priority - Nice-to-have tasks
- Large, Readable Interface: Optimized for touch interaction
- Swipe Gestures: Intuitive swipe-to-complete and swipe-to-delete
- Rich Visual Design: Beautiful gradients and animations
- Date Navigation: Easy date switching with visual date chips
- Category Filtering: Filter tasks by category with visual chips
- Progress Tracking: Visual progress indicators and statistics
- Native watchOS Design: Perfectly optimized for small screens
- Digital Crown Navigation: Smooth scrolling with haptic feedback
- Quick Actions: Tap to complete, swipe gestures for actions
- Complication Support: Quick task count on watch face
- Offline Capability: Works independently when iPhone is not nearby
- Voice Input: Dictation support for hands-free task creation
Powered by WatchConnectivity Framework:
- Instant Sync: Changes appear immediately on both devices
- Bidirectional Updates: Edit from either device seamlessly
- Conflict Resolution: Smart merging of concurrent changes
- Background Transfer: Sync continues even when devices are disconnected
- Reliable Delivery: Guaranteed delivery with fallback mechanisms
- JSON File Storage: Efficient file-based persistence for task data
- Crash Recovery: Data survives app crashes and device restarts
- Efficient Encoding/Decoding: Swift Codable for high-performance JSON serialization
- Data Integrity: Consistent data structures across platforms
- SwiftUI Framework: Native, declarative UI with smooth animations
- Dark Mode Support: Seamless appearance adaptation
- Accessibility: VoiceOver and accessibility feature support
- Haptic Feedback: Tactile responses for important actions
- Visual Feedback: Color-coded priorities and status indicators
βββββββββββββββββββββββββββββββββββββββ
β SwiftUI Views β
β βββββββββββββββ ββββββββββββββββββββ
β β ContentView β β AddTodoView ββ
β β TodoRowView β β EditTodoView ββ
β βββββββββββββββ ββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ€
β Data Management β
β βββββββββββββββ ββββββββββββββββββββ
β βTodoData- β βWatchConnectivityββ
β βManager β βManager ββ
β βββββββββββββββ ββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ€
β Data Models β
β βββββββββββββββ ββββββββββββββββββββ
β β TodoItem β β TodoCategory ββ
β βTodoPriority β β SyncConstants ββ
β βββββββββββββββ ββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ€
β Frameworks & APIs β
β SwiftUI β’ Combine β’ Foundation β
β UserDefaults β’ WatchKit β
βββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ
β Watch-Optimized Views β
β βββββββββββββββ ββββββββββββββββββββ
β β ContentView β β AddTodoView ββ
β β TodoRowView β β StatsView ββ
β βββββββββββββββ ββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ€
β Watch Data Management β
β βββββββββββββββ ββββββββββββββββββββ
β βTodoData- β βWatchConnectivityββ
β βManager β βManager ββ
β βββββββββββββββ ββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ€
β Shared Models β
β βββββββββββββββ ββββββββββββββββββββ
β β TodoModels β β SyncConstants ββ
β β(Identical) β β (Shared) ββ
β βββββββββββββββ ββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ€
β watchOS Frameworks β
β SwiftUI β’ WatchKit β’ Foundation β
β WatchConnectivity β’ UserDefaultsβ
βββββββββββββββββββββββββββββββββββββββ
graph TD
A[iPhone App] -->|WatchConnectivity| B[Data Sync Layer]
C[Apple Watch] -->|WatchConnectivity| B
B -->|JSONEncoder/Decoder| D[TodoItem Array]
D -->|UserDefaults| E[Local Storage iPhone]
D -->|UserDefaults| F[Local Storage Watch]
G[User Action iPhone] --> A
H[User Action Watch] --> C
A -->|sendMessage/updateContext| C
C -->|sendMessage/updateContext| A
ToDO/
βββ ToDO/ # iOS App
β βββ Views/ # SwiftUI Views
β βββ Managers/ # Data and Connectivity Managers
β βββ Models/ # Data Models
β βββ Assets.xcassets/ # App Icons and Images
βββ ToDOWatch Watch App/ # watchOS App
β βββ Views/ # Watch-specific Views
β βββ Managers/ # Watch Data Managers
β βββ Models/ # Shared Models
βββ ToDOTests/ # Unit Tests
- Xcode 15.0 or later
- iOS 17.0 or later
- watchOS 10.0 or later
- Apple Watch (for watch app testing)
-
Clone the repository
git clone https://github.com/your-username/todo-example.git cd todo-example -
Open in Xcode
open ToDO.xcodeproj
-
Build and Run
- Select your target device (iPhone/Apple Watch)
- Press
Cmd + Rto build and run
The app uses generic bundle identifiers that you can customize:
- iOS App:
com.example.todo - Watch App:
com.example.todo.watchapp - App Group:
group.com.example.todo
The app uses WatchConnectivity framework for bidirectional synchronization:
- Immediate sync when both devices are active
- Background transfer when watch is not reachable
- Conflict resolution based on most recent changes
struct TodoItem: Codable, Identifiable {
let id: UUID
var title: String
var isCompleted: Bool
var priority: TodoPriority
var category: TodoCategory
var createdAt: Date
}- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with SwiftUI and WatchConnectivity
- Icons from SF Symbols
- Inspiration from modern todo applications
Coming Soon
Requires iOS 17.0 and watchOS 10.0 or later