A modern e-commerce demo app built with SwiftUI, Firebase Authentication, Firestore, and SDWebImageSwiftUI for image caching. This app demonstrates best practices for MVVM architecture, and robust user experience.
- Product Listing: Browse products with cached images and smooth navigation.
- Product Details: View product info, price, rating, category, and description.
- Authentication: Login, signup, and forgot password flows using Firebase Authentication.
- User Data: Store user info securely in Firestore on account creation.
- Image Caching: SDWebImageSwiftUI for fast, efficient image loading and caching, with placeholders and error handling.
- Input Validation: Robust email and password validation for authentication flows.
- Keyboard Management: Automatic keyboard dismissal and smooth field navigation.
- Xcode 13+
- Swift 5.5+
- Firebase project with iOS app registered
- Clone this repository.
- Open
FakeStore.xcodeprojin Xcode. - Add your
GoogleService-Info.plistto theFakeStoredirectory. - Install dependencies via Swift Package Manager:
- Build and run the app on a simulator or device.
- MVVM: All business logic is handled in ViewModels, keeping views clean and testable.
- AuthManager: Centralized authentication logic for login, signup, logout, and password reset.
- InputValidator: Helper for robust input validation (email, password).
This project is licensed under the MIT License.
For questions or contributions, feel free to open an issue or pull request.