This is a Flutter app designed to interact with the Todoist API, offering a seamless task management experience. It incorporates modern Flutter technologies, adheres to Clean Architecture principles, and is built for scalability and maintainability.
The Flutter Todoist App offers a variety of features aimed at enhancing productivity:
- Task Management: View, add, and manage tasks fetched from the Todoist API.
- Dark and Light Themes: Switch between themes for comfortable viewing.
- Localization: Supports English and German languages, ensuring accessibility for a broader audience.
- Task Timer: Each task includes a built-in timer to help users track time spent.
- Completed Tasks View: Review tasks marked as complete.
- Offline Mode: Retain access to previously fetched tasks using local storage.
- Responsive Design: Adapts beautifully to various screen sizes.
- Clean Architecture: Ensures maintainable, testable, and scalable code structure.
- Unit Testing: Comprehensive tests to ensure functionality and reliability.
The app is built with the following technologies:
- Flutter: Framework for crafting high-quality, natively compiled applications.
- Dart: Programming language optimized for fast development and expressive UI.
- Flutter BLoC: Efficient state management solution.
- GetIt: Dependency injection and service locator.
- Dio: HTTP client for managing API calls.
- Retrofit: Simplifies API requests with type-safe REST client generation.
- Hive: Lightweight, blazing fast, key-value database.
- Flutter Secure Storage: For securely storing sensitive user data.
- Shared Preferences: Persistent storage for basic key-value data.
- Lottie: Dynamic animations.
- Google Fonts: Enhances UI with custom typography.
- Go Router: Advanced routing for Flutter apps.
- Intl: For internationalization and localization.
- Animated Theme Switcher: Enables smooth transitions between themes.
- Connectivity Plus: Monitors internet connectivity.
Before running the app, make sure you have the following installed:
- Flutter SDK: Version 3.0 or later.
- Dart: Version 2.18 or later.
- Android Studio/Visual Studio Code: With the Flutter and Dart plugins.
- API Access: Ensure you have API credentials for Todoist.
-
Clone this repository:
git clone <repository-url>
-
Navigate to the project directory:
cd flutter_todoist_app
-
Install dependencies:
flutter pub get
-
Run the app:
flutter run
For advanced configuration and customization, refer to the lib/config
folder for environment-specific settings.
Below are examples of the app's user interface and features:
-
You can see the first document version of the project on this link
Documentation.
- Todoist API Documentation: Todoist API.
- Localization: Flutter Intl Package.
- State Management: Flutter BLoC Documentation.
- Clean Architecture: Based on Uncle Bob’s Clean Architecture.
I welcome contributions from the community. To contribute:
- Fork the repository.
- Create a feature or bug fix branch:
git checkout -b feature-name
- Commit your changes with clear descriptions:
git commit -m "Add feature description"
- Push your branch to your fork:
git push origin feature-name
- Submit a pull request with detailed information about your changes.
If you encounter any issues while cloning the repository, you can use the following command as an alternative:
git clone https://<your-username>:<your-personal-access-token>@github.com/hexfa/todo.git