Beyond the first page.
Search uses the API instead of filtering only loaded products. A 400 ms debounce limits requests, and a request version check keeps older responses from replacing current results.
02 / Product Catalog / Flutter technical assessment
A Flutter catalog app with paginated browsing, debounced search, and clear loading, empty, and error states.
BUILT WITH FLUTTER / DART01 / Explore the interface
Explore products in a two-column catalog. Pages of 20 load as you scroll, keeping the next discovery close.
Screenshot walkthrough · not a live app
02 / Behind the build
Search uses the API instead of filtering only loaded products. A 400 ms debounce limits requests, and a request version check keeps older responses from replacing current results.
Products load in pages of 20. If another page fails, existing products stay visible with a retry action. Loading, empty, error, and success states give each request a clear outcome.
Pull-to-refresh reloads the active search. Images include placeholders and error fallbacks, and product details have a swipeable gallery with page indicators.
A product model handles JSON conversion and a service handles HTTP requests. The interface uses StatefulWidget and setState for the catalog, and FutureBuilder for details.
03 / Validation & scope
This technical assessment uses sample data and has no checkout or payment features. The repository includes one model unit test for numeric conversion and product title preservation; API requests and widgets do not have automated coverage.
The README records manual Android checks for browsing, search, retry, detail navigation, and refresh. It also documents AI assistance with guidance, review, and selected code edits.
Read the project documentation