A simple application which fetches data from RAWG.io API to obtain information about various video game categories and information like metacritic scores, playtime and other information.
The application consists of several ViewControllers and custom views to give the end-user information about the application itself and how to use it, game categories, lists and game detailes. In the application, video game information like ratings, release date, screenshots, game store availability can be found.
- ViewControllers can be found in ViewController folder.
- The application consists of four ViewControllers:
- Onboarding ViewController
- Game category TableViewController
- Game list TableViewController
- Game detail ViewController
- Custom views were mainly used for the Onboarding and GameDetail ViewControllers to give a better and more descriptive UI to the end-user
- All of the custom views can be found in the View folder
- Generic UI elements, like label, buttons and UIAlerts can be found UIFactory folder
- The application consists of a few model files, which can be found in the Model folder:
- NetworkError : and enum which conforms to the Error protocol to give more details of the possible network issues end-user might come across during game search
- GameGanres : information from the verious video game categories from the API
- GameList : information about the games about a speicific game categories
- Game : information about a specific game
- The application has two managers, which can be found in the Manager folder:
- NetworkManager : manager who is in charge of communicating with the RAWG.io API to get video game information
- FirebaseManager : manager who is in charge of sending user events to Firebase
- SnapKit: framework for auto-layout
- Kingfisher: framework for smoothly downloading images
- Firebase: in this case, for event tracking
1. Just git clone the project and run the application via Xcode!