Tasky is a task management app built using a combination of SwiftUI, UIKit, and Swift. It leverages modern Swift development practices, including Swift Concurrency, CoreData, animations, and dependency injection. The app follows the MVVM (Model-View-ViewModel) pattern and Clean Architecture principles to ensure a scalable and maintainable codebase.
- Swift Concurrency: Used to handle background operations and improve the responsiveness of the app.
- CoreData: Local storage of tasks with persistent data management.
- Animations: Smooth, custom animations that enhance the user experience.
- Beautiful UI Elements: A carefully crafted and responsive user interface, combining both UIKit and SwiftUI.
- Dependency Injection: Implemented to keep the code modular and easy to test.
- Swift Testing: Includes unit tests and integration tests for various parts of the app.
- Protocols: Protocol-oriented programming to ensure loose coupling and flexibility.
- JSON Decoding: Handles JSON parsing efficiently to work with remote or local data.
- Background Fetching: Support for fetching data in the background using background tasks.
- Local Notifications: Integrated with UNUserNotifications to remind users of tasks.
- Custom Extensions: Reusable components and extensions to streamline development.
- Localizables: Multi-language support for internationalization.
- Appearance Manipulation: Customizable app appearance for user experience.
- App Intro: App Intro will help to clarify things up.
- Model: Handles data and business logic.
- ViewModel: Mediates between the Model and the View, ensuring that the UI layer only focuses on presenting data.
- View: SwiftUI views combined with UIKit components where necessary, focusing on rendering UI.
- Independence of frameworks and libraries.
- Easily testable and maintainable code.
- Separation of concerns between layers.
- UIKit & SwiftUI: A hybrid approach to build a responsive, beautiful UI.
- CoreData: For efficient task storage and retrieval.
- Swift Concurrency: For handling async operations seamlessly.
- UNUserNotifications: To schedule and manage user notifications.
- XCTest: Unit testing for business logic and UI components.
- Xcode 13 or later
- iOS 16 or later
- Tasky supports multiple languages using Localizable.strings for internationalization.