A minimal Task Manager app built with The Composable Architecture (TCA) and SwiftUI.
Taskly allows users to manage a list of tasks, each with its own editable state. The project demonstrates modern TCA patterns, parent-child feature composition, dependency injection, optimistic UI, and integration of analytics and sync clients.
---- Tasks List Screen
- Display a list of tasks
- Create a new task
- Complete a task
- Delete a task
- Navigate to task details
- Task Detail Screen
- Edit task title
- Toggle completion
- Sync Client
- Simulates backend sync with artificial delay and debouncing
- Handles success/failure and allows retries
- Optimistic UI: updates are shown immediately, errors handled gracefully
- Analytics Client
- Logs analytic events for key user actions
- Batching and debouncing of events
- Flushes events when app goes to background
- UI & Animations
- Modern SwiftUI interface with smooth animations and transitions for task actions, list changes, and state updates
- UI inspired by Todo app concept on Dribbble
- Unit Testing
- Exhaustive tests for TCA features and clients using TestStore and dependency injection
- TCA: All business logic is implemented using The Composable Architecture.
- Dependency Injection: All clients (Sync, Analytics, File) are injected via TCA's DependencyValues.
- SwiftUI: Modern, clean UI with state driven by TCA, including animated transitions.
- Optimistic UI: State updates immediately, with error handling and retry for sync failures.
- Clone the repository
- Open
Taskly.xcodeprojin Xcode 15+ - Build and run on iOS Simulator (iOS 18+)
- Tasks List: list, create, complete, delete, navigate to details
- Task Detail: edit title, toggle completion
- Sync Client: artificial delay, debouncing, optimistic UI, error handling, retry
- Analytics Client: batching, debouncing, flush on background
- Unit tests: exhaustive for features and clients
- Modern TCA architecture, DI, clean code
- UI with animations and transitions, inspired by Todo app concept on Dribbble
