- 🏪 Product catalog with category filtering
- 🛒 Shopping cart functionality
- ⭐ Product ratings and reviews
- 📱 Responsive grid layout
- 🌅 Efficient image loading and caching
- 🎨 Clean and modern UI design
- 🔄 Category-based filtering
- 💳 Checkout process
- 🏷️ Price formatting
- 🔍 Detailed product views
The app follows the MVVM (Model-View-ViewModel) architecture pattern and incorporates modern iOS development practices:
- Views: SwiftUI views for UI components
- ViewModel: Manages business logic and data flow
- Repository: Handles data fetching and API communication
- Models: Represents the data structure
- Networking: Uses Alamofire for API requests
- Image Loading: Custom async image loading with caching
- 📱 SwiftUI
- 🔄 Combine Framework
- 🌐 Alamofire
- 💾 Actor-based Image Caching
- 🎨 Custom UI Components
- ⚡ Async/Await for image loading
- iOS 15.0+
- Xcode 13.0+
- Swift 5.5+
- ContentView: Main tab view containing the product grid and cart
- ProductGridView: Displays products in a grid layout with category filtering
- ProductDetailView: Shows detailed product information
- CartView: Manages shopping cart functionality
- ProductViewModel: Manages product data, cart operations, and category filtering
- ProductApiRepository: Handles API communication using Alamofire
- NetworkError: Comprehensive error handling for network requests
- ImageCache: Actor-based image caching system
- Constants: App-wide configuration values
- AppColors: Centralized color management
The app uses the Fake Store API for product data. The ProductApiRepository
handles all API communication, including:
- Fetching product listings
- Error handling
- Response parsing
This project is licensed under the MIT License - see the LICENSE.md file for details
- Fake Store API for providing the product data
- Alamofire for networking
- SwiftUI for the modern UI framework