You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The data for the games comes from a real-time database. You may need to retry several times for the app to load as there may be API related issues.
Game Details
Learn more about games with videos, photos, and information.
Drop a heart for your favorite games.
Used Technologies
UIKit
MVVM
Programmatic UI
Kingfisher
AVKit
Tech Stack
Xcode: Version 15.3
Language: Swift 5.10
Minimum iOS Version: 17.4
Dependency Manager: SPM
Architecture
MVVM Architecture
In developing GameStop App, the programmatically approuch and MVVM (Modal-View-ViewModel) architecture are being used for these key reasons:
Separation of Concerns: MVVM cleanly separates the UI (View) from business logic and data (ViewModel), promoting code clarity and ease of maintenance.
Testability: MVVM enables easy unit testing of ViewModel logic independently of the UI, leading to more robust and reliable code.
Code Reusability: ViewModel classes in MVVM can be reused across different views, reducing duplication and promoting modular development.
UI Responsiveness: MVVM's data binding mechanisms ensure that the UI updates automatically in response to changes in underlying data, enhancing user experience.
Maintainability and Scalability: With its modular design, MVVM simplifies maintenance and enables the addition of new features without disrupting existing functionality.
Support for Data Binding: MVVM aligns well with data binding frameworks, reducing boilerplate code and improving developer productivity.
Enhanced Collaboration: MVVM's clear separation of concerns allows developers with different skill sets to work concurrently on different parts of the application.
Adaptability to Platform Changes: MVVM provides a flexible architecture that can easily adapt to changes in platform requirements or UI frameworks, ensuring long-term viability.
Getting Started
Requirements
Before you begin, ensure you have the following:
Xcode installed
Also, make sure that these dependencies are added in your project's target:
Kingfisher: Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web, offering features like asynchronous image loading, smooth scrolling, and a simple API.