Skip to content

A simple iOS app that demonstrates how I write and organize my code.

Notifications You must be signed in to change notification settings

ahmedelgendy/GameStore

Repository files navigation

GameStore

Installation

After cloning the repo open your terminal and use this command to install the app pods.

pod install

High-Level Architecture

High Level Architecture

Class Diagram

Class Diagram

File Structure

File Structure

Notes

  • MVVM is used as UI Design Pattern, It’s more testable in comparison to the MVC design pattern.
  • I added a new layer for repositories which is responsible for fetching data from different sources (Services, Cache, Storage), that lets the rest of the app retrieve the data easily.
  • XIB files are preferred over Storyboards because it makes it easy to inject whatever we want into the view controller constructor during initialization.
  • Since hardcoding resources names (Fonts, images, colors) are not a good practice, I used R.swift which generates strong-typed assets.
  • To increase app performance I used KingFisher library which caches images.
  • UserDefaults is used to cache requests responses using requests URL(as a key), however, the solution needs enhancements for cleaning the cache periodically.

About

A simple iOS app that demonstrates how I write and organize my code.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published