/flutter_challenges

A Repo packed with Challenges that will help you build your Flutter skills from beginner to beast

Challenge 1: Build a To-Do List Application using Flutter and GetX

Level: Intermediate

Description: Your task is to create a To-Do List application using the Flutter framework and implement the state management using the GetX package. The application should allow users to add, edit, and delete tasks. Focus on utilizing the features provided by GetX for efficient state management and navigation.

Requirements:

  1. Task List Screen:

    • Create a screen that displays a list of tasks.
    • Each task item should show the task name and a checkbox indicating its completion status.
    • Tasks should be fetched and displayed using GetX's state management.
  2. Add Task Functionality:

    • Implement a way to add new tasks.
    • Provide a button to navigate to the screen where users can input task details.
    • Use GetX to manage the state of the tasks.
  3. Edit Task Functionality:

    • Allow users to edit task details by tapping on a task item.
    • Navigate to the edit screen pre-filled with the task details.
    • Users should be able to update the task name and completion status.
    • Changes should be reflected using GetX's state management.
  4. Delete Task Functionality:

    • Implement a way to delete tasks.
    • Each task item should have a delete button to remove the task from the list.
    • Use GetX to manage the task list state after deletion.
  5. State Management with GetX:

    • Utilize GetX's reactive state management for updating the UI based on changes in data.
    • Minimize unnecessary widget rebuilds using GetX's GetXBuilder or Obx widgets.
  6. Navigation:

    • Implement navigation between the task list, add task, and edit task screens using GetX's routing.
  7. Code Structure and Organization:

    • Organize your code into appropriate folders and files for better maintainability.
    • Follow best practices for clean and readable code.
  8. Bonus (Optional):

    • Implement filtering options to view only completed or incomplete tasks.
    • Add animations for task list updates or screen transitions using GetX's animation features.

Submission:

  • Provide the complete source code of the Flutter application.
  • Include a README that explains how to run the application and any additional notes about your implementation choices.

This challenge is designed to evaluate your proficiency in using Flutter and GetX for state management and navigation. Pay attention to code structure, reactivity, and adherence to best practices. Good luck!