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.
ResultType for Error Handling: Employs theResulttype for clean and consistent error management, using a customenumfor 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
NotificationCenterobservers to update the accent color andkeyBoardObserverto manage the tab bar's visibility. - Customizable Header: Features a custom
toolBar(header view) with gesture and button handling. - Interactive Task Management: Implements
UITableViewDragDelegateandUITableViewDropDelegatefor intuitive task reordering. - Inline Editing: Allows direct task editing via a
UITextFieldwithin theUITableViewCell. - Smooth Animations: Employs
CAShapeLayerfor visually appealing checkmark animations. - Efficient Data Display: Utilizes
UITableViewDiffableDataSourcewith snapshots for optimized table view updates. - Scroll-Based UI Changes: Leverages the
UIScrollViewDelegateto dynamically adjust the UI based on scroll position.
- Dynamic UI Updates: Uses
-
Settings Screen:
- Accent Color Customization: Provides a
UICollectionViewto select and persist the app's accent color usingUserDefaults. - Real-time UI Updates: Uses
NotificationCenterto instantly reflect the chosen accent color throughout the app.
- Accent Color Customization: Provides a
-
Statistics Screen:
- Data Visualization with Charts: Integrates the
Chartsframework (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
@Environmentand@Publishedproperty wrappers for efficient data flow and UI updates.
- Data Visualization with Charts: Integrates the
-
Todo Detail Screen:
- Custom Presentation: Uses
UIPresentationControllerandUIViewControllerTransitioningDelegateto 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: zabinskiy.danil@mail.ru