Cafe App — Flutter Drink Ordering App
A production-quality Flutter app built from scratch — no third-party UI kits, clean architecture, and a fully custom design system.
🏗️ Architecture
Feature-first structure with a clean Data / Provider / Presentation separation. Two scoped providers: CartProvider for global cart state, and SizeAndQtyProvider for per-item size & quantity on the details screen. Cart uses a composite key (product + size) so the same drink in different sizes is tracked as separate entries.
✨ Animations
Staggered list entrance with per-index delay • Custom PageRouteBuilder (Fade + Slide, easeOutCubic) • AnimatedContainer background tint that shifts per drink on swipe • AnimatedSwitcher that morphs the Add button into an inline quantity stepper • Hero animation between list and details • Haptic feedback on all interactions.
🛒 Cart
Full CRUD with live badge count • Per-entry & total price calculation • Glassmorphism checkout sheet (DraggableScrollableSheet + BackdropFilter) • Minus button that turns into a delete icon at quantity 1.
🔍 Search & Filter
Real-time search (name + description) combined with category tabs in a single computed getter — no redundant state. ValueListenableBuilder renders the clear button only when needed. Empty state adapts its message and icon based on whether the result is from search or an empty category.