0% found this document useful (0 votes)
5 views

Machine Test Flutter Developer

The document outlines a machine test for a Senior Flutter Developer with over 5 years of experience, requiring the development of a fully functional Flutter application within 2.5 hours. Key tasks include implementing authentication, product listing, product details, and favorite products modules using Bloc state management, API integration, and local storage. Evaluation criteria focus on Bloc usage, API integration, local data persistence, and UI/UX design, with specific submission guidelines provided.

Uploaded by

thahirac8
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Machine Test Flutter Developer

The document outlines a machine test for a Senior Flutter Developer with over 5 years of experience, requiring the development of a fully functional Flutter application within 2.5 hours. Key tasks include implementing authentication, product listing, product details, and favorite products modules using Bloc state management, API integration, and local storage. Evaluation criteria focus on Bloc usage, API integration, local data persistence, and UI/UX design, with specific submission guidelines provided.

Uploaded by

thahirac8
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Machine Test for Senior Flutter Developer (5+ Years Experience)

Test Instructions:

- Duration: 2.5 Hours

- Required: Laptop with Flutter installed, internet access for API testing (optional local JSON file

provided if offline).

- Objectives: Develop a fully functional Flutter application that demonstrates Bloc state

management, API integration, local storage, and UI responsiveness.

Task Description:

Create a Flutter application with the following functionalities:

Project Requirements

Authentication Module:

- Implement a login screen using Bloc to handle the login state.

- Use a mock API endpoint (or provided JSON data file) to verify login credentials.

- Display appropriate error messages for failed login attempts.

- Bonus: Include a 'Remember Me' option using local storage (e.g., SharedPreferences).

Product Listing Module:

- After login, navigate to a product listing screen.

- Fetch product data from a provided API endpoint and display it in a ListView with pagination.

- Implement a loading spinner during data fetch, and a 'Load More' button to simulate pagination.

- Use Bloc to manage the product list state, with states for loading, success, and error.

Product Details Module:

- On clicking a product, navigate to a detail page that shows full product information.

- Use a new Bloc instance to manage the state of this detail page.

- Include a 'Favorite' button that updates a local database (SQLite or Hive) to save or remove the
product as a favorite.

- Bonus: Show a toast notification when a product is added to or removed from favorites.

Favorite Products Module:

- Provide a separate screen to display favorite products saved in local storage.

- Use Bloc to manage the state for displaying and updating favorites.

- Allow users to remove products from their favorites on this screen, with real-time updates.

Evaluation Criteria

1. Bloc State Management (40%)

- Use Bloc to manage different states across screens (loading, success, failure).

- Properly separate business logic from UI.

- Effective use of multiple Bloc instances and event handling.

2. API Integration (20%)

- Correct use of HTTP requests for API calls.

- Proper handling of API responses and error cases.

- Smooth user experience during loading states and pagination.

3. Local Data Persistence (20%)

- Use local storage for saving login credentials (if 'Remember Me' is implemented) and favorites.

- Efficiently manage and update the list of favorite products.

4. UI and UX (20%)

- Clean, responsive UI design.

- Consistent theme and intuitive navigation.

- User-friendly error handling (e.g., error messages on failed API calls).


Submission Guidelines

- Ensure the app runs without issues.

- Provide code comments explaining key logic, especially Bloc state transitions.

- Submit the project in a zip file or as a GitHub repository link.

- Include a README file with setup instructions, any third-party packages used, and explanations of

any bonus features added.

You might also like