SwiftScore
A football stats and livescore app built with Kotlin,MVVM architecture,Retrofit, Coroutines and Navigation Components
Demo
Screenshots
API Reference
Get upcoming matches
GET /api/v1/soccer/matches
Parameter | Type | Description |
---|---|---|
apiKey |
string |
Required. Your API key |
seasonId |
string |
Required.League Id e.g Premier League |
dateFrom |
string |
Required. |
dateTo |
string |
Required. |
Get League Table
GET /api/v1/json/1/lookuptable.php
Parameter | Type | Description |
---|---|---|
l |
string |
Required. League Id e.g 1980 for Premier League |
s |
string |
Required. League Season Id e.g 2021-2022 |
Get Top Scorers
GET /api/v1/soccer/topscorers
Parameter | Type | Description |
---|---|---|
l |
string |
Required. League Id e.g 1980 for Premier League |
s |
string |
Required. League Season Id e.g 2021-2022 |
Lesssons Learnt
-
Always perform heavy tasks like local database and network operations on the background thread. This is to prevent blocking the main thread, I used Retrofit for network operation in support of Coroutines to perform the task in the background thread.
-
Navigation components made it easy for me to build my app's navigation system. Learnt best practices like having one activity and multiple fragments that can be swaped in and out of the fragment container, this improved app responsiveness since fragments are lightweight
-
Learnt how to create UI designs on Figma this really came in handy since without me knowing I was always thinking on the architecture of the app and how the data will flow
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Roadmap
Intergrate offline caching using Room local database
Add multiple leagues like La Liga, Serie A, Ligue 1 etc
License
Support
For support, email [email protected]