Skip to content

mYoda/Taskly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Taskly

A minimal Task Manager app built with The Composable Architecture (TCA) and SwiftUI.

Overview

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.

Taskly Demo

---

Features

  • 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

Architecture

  • 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.

Setup & Run

  1. Clone the repository
  2. Open Taskly.xcodeproj in Xcode 15+
  3. Build and run on iOS Simulator (iOS 18+)

Assignment Requirements Checklist

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages