Skip to content

Intelligent task management application designed to streamline your personal and professional life

Notifications You must be signed in to change notification settings

flini1we/TaskFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Task Flow

Task Flow is an elegant and intelligent task management application designed to streamline your personal and professional life. Built with a focus on user experience, Task Flow leverages a hybrid MVVM architecture, seamlessly blending UIKit and SwiftUI to deliver a beautiful and intuitive interface. It also incorporates powerful frameworks like SPLarkController and Charts to provide advanced features and visualizations.

Features

Task Flow is packed with features designed for efficiency and a delightful user experience. Here's a breakdown of the key components and technologies used:

Core Functionality & Architecture:

  • Hybrid UI (UIKit & SwiftUI): Combines the strengths of both frameworks for optimal performance and flexibility.
  • MVVM Architecture: Ensures a clean separation of concerns, leading to maintainable and testable code.
  • Core Data: Provides robust and persistent data storage for your tasks.
  • Result Type for Error Handling: Employs the Result type for clean and consistent error management, using a custom enum for Core Data errors.
  • Context Merging: Demonstrates advanced Core Data techniques with context merging for efficient data handling.
  • NSFetchedResultsController: Powers the Statistics screen, efficiently fetching and managing completed task data.

Screen-Specific Highlights:

  • Main Screen (Task List):

    • Dynamic UI Updates: Uses NotificationCenter observers to update the accent color and keyBoardObserver to manage the tab bar's visibility.
    • Customizable Header: Features a custom toolBar (header view) with gesture and button handling.
    • Interactive Task Management: Implements UITableViewDragDelegate and UITableViewDropDelegate for intuitive task reordering.
    • Inline Editing: Allows direct task editing via a UITextField within the UITableViewCell.
    • Smooth Animations: Employs CAShapeLayer for visually appealing checkmark animations.
    • Efficient Data Display: Utilizes UITableViewDiffableDataSource with snapshots for optimized table view updates.
    • Scroll-Based UI Changes: Leverages the UIScrollViewDelegate to dynamically adjust the UI based on scroll position.
  • Settings Screen:

    • Accent Color Customization: Provides a UICollectionView to select and persist the app's accent color using UserDefaults.
    • Real-time UI Updates: Uses NotificationCenter to instantly reflect the chosen accent color throughout the app.
  • Statistics Screen:

    • Data Visualization with Charts: Integrates the Charts framework (SwiftUI) to present completed task data in a visually engaging manner.
    • Dynamic Table View: Adjusts the table view height dynamically based on content.
    • SwiftUI State Management: Uses @Environment and @Published property wrappers for efficient data flow and UI updates.
  • Todo Detail Screen:

    • Custom Presentation: Uses UIPresentationController and UIViewControllerTransitioningDelegate to display a concise pop-over view with task details.

Additional Features:

  • feedBackService: Provides haptic feedback (vibration) for a more tactile user experience.

Gifs

1.mov
swipe.action.mov
editing.todo.action.mov
drag.todo.action.mov
creat.mov
header.gestures.mov
cupd.mov
statistic.screen.mov
todo.detail.mov

Requirements

  • iOS 14.0+
  • Xcode 12.0+
  • Swift 5.3+

Contact

For questions, suggestions, or feedback, please reach out to us at: [email protected]