CSTV is an app that displays CS: GO matches happening across several worldwide tournaments

Simulator Screen Recording - iPhone 14 Pro - 2023-02-26 at 23 03 53

How to run the app

The external libraries are installed in the project with SPM, so just pressing play should run the project correctly.


This app was made in MVVM. The architecture follows the following Layers:

  • UI (MatchListViewController,MatchDetailViewController)
  • ViewModel (MatchListViewModel)
  • Service (Match Service)

External Tools

What would I have done if I had more time?

  • Repository Layer: It’s job is to know where to fetch information from: Cache or Backend, for example
  • Coordinator: it’s job is to coordinate VC’s presentation.
  • Correct fonts and weights
  • Custom Swiftlint rules
  • Unit Tests for making sure password generation works how it’s supposed to do
  • Pagination
  • Better way to handle collectionview cells with UICollectionViewCompositionalLayout

Bugs and Limitations

  • There’s a “bug” in the API where it returns a not_started status even though the match’s date already started, which causes the date not to be red


View Github