CSTV
CSTV is an app that displays CS: GO matches happening across several worldwide tournaments
Demo |
---|
How to run the app
The external libraries are installed in the project with SPM, so just pressing play should run the project correctly.
Architecture
This app was made in MVVM. The architecture follows the following Layers:
- UI (
MatchListViewController
,MatchDetailViewController
) - ViewModel (
MatchListViewModel
) - Service (
Match Service
)
External Tools
- Swiftlint: tool to enforce Swift style and conventions.
- RxSwift: reactive programming
- Alamofire: network calls
- Kingfisher: Image loading/caching
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