An application for game lovers. You can browse through games, like them and access their details easily.
| App Gif |
|---|
![]() |
| Home Screen | Detail Screen |
|---|---|
![]() |
![]() |
| Search Screen | Favorite Screen |
|---|---|
![]() |
![]() |
- Explore the Gaming world.
- 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.
- Learn more about games with videos, photos, and information.
- Drop a heart for your favorite games.
- UIKit
- MVVM
- Programmatic UI
- Kingfisher
- AVKit
- Xcode: Version 15.3
- Language: Swift 5.10
- Minimum iOS Version: 17.4
- Dependency Manager: SPM
| 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.
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.
- Clone the repository:
git clone https://github.com/guraygul/GameStop.git
- Open the project in Xcode::
cd GameStop
open GameStop.xcodeproj- Add required dependencies using Swift Package Manager:
KingFisher
- Build and run the project.
- Search screen and favorites screen show an emptyView when loading games
- It would be better if we add a share button in the detail screen
- More refactoring could be done for the Controllers.





