Skip to content

DaltonVector-FOSS/Tasky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Tasky

Tasky is a lightweight, opinionated task manager for macOS built with SwiftUI. It focuses on fast keyboard-driven task capture, project-based organization, and a clean split-view layout that keeps your sidebar and task list always in view.

Features

  • Projects & colors: Create projects, each with its own accent color, to group related tasks.
  • Priorities: Four priority levels (Critical, High, Medium, Low) with clear colors and SF Symbol icons.
  • Smart filters: Sidebar sections for All, Due Today, Overdue, and Completed tasks, plus per‑project views.
  • Quick search: Filter tasks by title or description with a free‑text search query.
  • Sorting: Sort tasks by date created, due date, priority, or title.
  • Completion stats: Basic completion percentage and counts derived from the current task list.
  • Local persistence: Tasks and projects are stored in UserDefaults using Codable models, so your data survives app restarts.
  • Keyboard shortcuts: System‑level menu commands to quickly create tasks and projects.

Tech Stack

  • Language: Swift
  • UI framework: SwiftUI (NavigationSplitView, sheets, environment objects)
  • Platform: macOS (hidden title bar window, Command‑key shortcuts)
  • Persistence: UserDefaults with Codable TaskItem and Project models

Project Structure

  • TaskyApp.swift: App entry point; creates and injects the shared TaskyViewModel, configures the main window, and defines app‑wide commands.
  • Models/Models.swift:
    • Priority: Enum for task priority with labels, colors, icons, and sort order.
    • Project: Model for user projects, including color handling.
    • TaskItem: Core task model with due‑date helpers (overdue / due‑today) and a Color hex extension.
  • ViewModels/TaskyViewModel.swift:
    • Manages arrays of TaskItem and Project.
    • Computes filteredTasks, pendingTasks, and doneTasks based on the selected sidebar section, priority filter, search query, and sort order.
    • Handles all CRUD operations for tasks and projects and persists them to UserDefaults.
  • Views/:
    • ContentView: Hosts the NavigationSplitView with SidebarView and TaskListView, plus sheets for task/project forms.
    • SidebarView: Sidebar navigation with smart sections and project list (see counts and filters).
    • TaskListView: Main area that shows pending and completed tasks based on filters.
    • TaskRow: Visual representation of a single task with priority styling.
    • TaskFormView / ProjectFormView: Sheets for creating and editing tasks and projects.

Requirements

  • Xcode: Xcode 15 or newer recommended
  • Platform: macOS 13 Ventura or newer (to support NavigationSplitView and modern SwiftUI APIs)

Running the App

  1. Open the project

    • In Finder, double‑click Tasky.xcodeproj, or
    • From a terminal: open Tasky.xcodeproj
  2. Select the scheme & target

    • In Xcode, choose the Tasky scheme.
    • Make sure a My Mac destination is selected.
  3. Build & run

    • Press Cmd + R to build and launch the app.

Keyboard Shortcuts

  • New Task: ⌘N
  • New Project: ⇧⌘N

These commands are also available from the app’s menu under the File section (after the standard “New” items).

Notes & Limitations

  • Local only: There is no syncing or multi‑device support; all data lives in UserDefaults on the local Mac.
  • No authentication: Tasky is a single‑user desktop app with no login or accounts.
  • Experimental UI: The UI is optimized for a medium‑sized window; very small window sizes are not a primary target.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages