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.
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 theResult
type for clean and consistent error management, using a customenum
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 andkeyBoardObserver
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
andUITableViewDropDelegate
for intuitive task reordering. - Inline Editing: Allows direct task editing via a
UITextField
within theUITableViewCell
. - 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.
- Dynamic UI Updates: Uses
-
Settings Screen:
- Accent Color Customization: Provides a
UICollectionView
to select and persist the app's accent color usingUserDefaults
. - Real-time UI Updates: Uses
NotificationCenter
to instantly reflect the chosen accent color throughout the app.
- Accent Color Customization: Provides a
-
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.
- Data Visualization with Charts: Integrates the
-
Todo Detail Screen:
- Custom Presentation: Uses
UIPresentationController
andUIViewControllerTransitioningDelegate
to display a concise pop-over view with task details.
- Custom Presentation: Uses
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
- iOS 14.0+
- Xcode 12.0+
- Swift 5.3+
For questions, suggestions, or feedback, please reach out to us at: [email protected]