Evaluate your technical skills, logic, and ability to design a maintainable and high-performance Flutter application.
You need to develop a small mobile application for personal task management. The application should allow:
- Creating, updating, and deleting tasks.
- Displaying tasks in a list view.
- Persisting data even after restarting the application.
-
Main Screen: Task List
- Displays all tasks with their title and status (completed/not completed).
- Allows marking a task as completed or not.
-
Task Creation/Editing Screen
- Contains a field for the title and a checkbox for the status.
- Allows adding or modifying an existing task.
-
Data Persistence
- Tasks should be saved in a local database (SQLite, Hive, etc.).
- Use Flutter Bloc for state management.
- Implement a Clean Architecture approach (domain, data, presentation).
- Validate input fields (e.g., title should not be empty).
- Use Dio to simulate an API returning a pre-filled list of tasks when the app starts.
- Write unit tests to validate business logic.
- Source code hosted on a Git repository (GitHub, GitLab, etc.).
- Clear instructions on how to run the project.
- Unit tests covering business rules.
- A document explaining the technical choices and architecture.