Test app for the InStat company. The Project uses MVVM architecture, interface created with SwiftUI, network requests with async/await using API from

GitHubDemoFootStats GitHubDemoFootStats3 GitHubDemoFootStats2


On the first screen, list the available leagues using the appropriate method from the repository. League names, logo, abbreviation should be displayed. If necessary, the name should move to another line, not cut off, the logos should all be the same size..

When you select a specific league (by clicking on it from the list), a second screen should open, where all available seasons of the selected league are displayed using the appropriate method. Seasons should also be displayed in the form of a table, in which all the necessary information about each season should be located as much as possible (start date, end date, season name, and so on, everything that is useful is in the API).

When you click on a specific season, a third screen opens. In it, we display the league table for a given season. We display either all the useful information available in the API, including whether the team goes to the Champions League, logo, goal difference, average number of points, etc. (here you can use screen rotation to expand the table when you turn the phone), or display only part of the information, which you think is the most important.

Also on the screen there should be the ability to change the season using a drop-down menu / picker or any other tool that you think will come in here.

It should also be possible to navigate back between screens using the navigation bar.

Technologies & Functionality

  • Project uses MVVM Architecture with interface created with SwiftUI
  • Network requests with async/await, async image loading
  • Caches downloaded images


View Github