Skip to content

ShawSensei/advanced_task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Task Manager

A comprehensive iOS task management application built with Swift and UIKit, featuring advanced task organization, filtering, and productivity tracking capabilities.

Features

Core Functionality

  • Task Management: Create, edit, delete, and mark tasks as complete
  • 🔍 Smart Search: Real-time search functionality to quickly find tasks
  • 📊 Statistics Dashboard: Track total, completed, and pending tasks
  • 📱 Modern UI: Clean, intuitive interface with iOS design guidelines

Advanced Features

  • 🎯 Priority System: Three-level priority system (Low, Medium, High) with color coding
    • Low: Green
    • Medium: Orange
    • High: Red
  • 📂 Category Organization: Six predefined categories with custom icons
    • Personal (👤)
    • Work (💼)
    • Shopping (🛒)
    • Health (❤️)
    • Education (📚)
    • Other (📁)
  • 📅 Due Date Management: Optional due dates with date picker
  • 📝 Rich Task Details: Title, notes, creation date, and completion tracking
  • 🔄 Smart Filtering: Filter tasks by status (All, Pending, Completed)
  • 💾 Persistent Storage: Local data persistence using UserDefaults
  • 📤 Export Functionality: Share and export task lists
  • 🗑️ Bulk Operations: Clear completed tasks with confirmation

User Experience

  • 🎨 Empty State Handling: Elegant empty state with helpful messaging
  • Swipe Actions: Quick task completion and deletion via swipe gestures
  • 🔍 Search Integration: Built-in search controller with real-time filtering
  • 📱 Responsive Design: Optimized for various iOS device sizes
  • Accessibility: VoiceOver support and accessibility features

Technical Architecture

Design Patterns

  • MVC (Model-View-Controller): Clean separation of concerns
  • Singleton Pattern: Centralized task management with TaskManager.shared
  • Delegate Pattern: Custom protocols for data flow and user interactions

Key Components

Models

  • Task.swift: Core task model with Codable support
  • TaskPriority: Enumeration for priority levels with display properties
  • TaskCategory: Enumeration for task categories with icons and colors

Controllers

  • ViewController.swift: Main task list with filtering and search
  • TaskViewController.swift: Detailed task view with editing capabilities
  • EntryViewController.swift: Task creation and editing form

Views

  • TaskTableViewCell.swift: Custom table view cell with rich task display
  • Custom UI components with programmatic Auto Layout

Data Management

  • TaskManager.swift: Centralized data management with CRUD operations
  • JSON encoding/decoding for data persistence
  • UserDefaults integration for local storage

Technologies Used

  • Language: Swift 5.0+
  • Framework: UIKit
  • Architecture: MVC
  • Storage: UserDefaults with JSON serialization
  • UI: Programmatic Auto Layout
  • Testing: XCTest framework

Project Structure

Tasks/
├── Tasks.xcodeproj/          # Xcode project configuration
├── Tasks/                    # Main application source
│   ├── Models/
│   │   └── Task.swift        # Task data model
│   ├── TaskManager.swift     # Data management layer
│   ├── ViewController.swift  # Main task list controller
│   ├── TaskViewController.swift    # Task detail view
│   ├── EntryViewController.swift   # Task creation/editing
│   ├── TaskTableViewCell.swift     # Custom table cell
│   ├── AppDelegate.swift     # App lifecycle management
│   ├── SceneDelegate.swift   # Scene lifecycle (iOS 13+)
│   └── Assets.xcassets/      # App icons and images
├── TasksTests/               # Unit tests
└── TasksUITests/             # UI automation tests

Requirements

  • iOS: 13.0+
  • Xcode: 12.0+
  • Swift: 5.0+

Installation

  1. Clone the repository:

    git clone https://github.com/ShawSensei/advanced_task.git
  2. Open the project in Xcode:

    cd advanced_task
    open Tasks.xcodeproj
  3. Build and run the project:

    • Select your target device or simulator
    • Press Cmd + R to build and run

Usage

Creating Tasks

  1. Tap the "+" button in the navigation bar
  2. Enter task title (required)
  3. Add optional notes
  4. Select priority level
  5. Choose category
  6. Set due date (optional)
  7. Tap "Save"

Managing Tasks

  • Complete: Tap the circle icon or swipe right
  • Edit: Tap on a task to view details, then tap "Edit"
  • Delete: Swipe left on a task or use the delete button in detail view
  • Search: Use the search bar to find specific tasks
  • Filter: Use the segmented control to filter by status

Statistics

The app provides real-time statistics showing:

  • Total number of tasks
  • Completed tasks count
  • Pending tasks count

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is available under the MIT License. See the LICENSE file for more info.

Author

ShawSensei - GitHub Profile


Built with ❤️ using Swift and UIKit

About

task with more designs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages