Skip to content

guraygul/GameStop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 

Repository files navigation

GameStop

An application for game lovers. You can browse through games, like them and access their details easily.

Table Of Contents

Features

In app Gifs and Screenshots

App Gif
GameStopGif
Home Screen Detail Screen
SCR-20240526-tpwu SCR-20240526-tpzz
Search Screen Favorite Screen
SCR-20240526-tqeh SCR-20240526-tqev

Screens

Browse Games:

  • 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.

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
MVVM

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.

Installation

  1. Clone the repository:
git clone https://github.com/guraygul/GameStop.git
  1. Open the project in Xcode::
cd GameStop
open GameStop.xcodeproj
  1. Add required dependencies using Swift Package Manager:
KingFisher
  1. Build and run the project.

Known Issues

  • Search screen and favorites screen show an emptyView when loading games

Nice to have

  • It would be better if we add a share button in the detail screen
  • More refactoring could be done for the Controllers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages