Welcome to the Koora Live iOS application! Utilizing a free API, we bring you real-time updates on the English Premier League, allowing you to stay informed about team matchups at your fingertips.
To set up and run the KooraLive app, follow these steps:
-
Clone the repository:
git clone https://github.com/dalia61/KooraLive.git cd KooraLive
-
Install CocoaPods dependencies:
pod install
- Open the Xcode workspace and build the app.
The app has two lists:
-
List of Matches:
- Explore a curated list of matches.
- Each cell represents the team’s name, flag, the time of the game, and the game result if played.
- The list is sectioned by day, and the first section is today's match or the next if the current day has no fixtures.
- Allows you to add or delete matches to your favorites.
-
List of Favorite Matches:
- Displays favorite matches that are marked.
- SWIFT
- UIKit
- MVP Architecture Pattern
- Coordinator Pattern For Handling Navigation
- UseCase Layer
- Network Layer (Alamofire)
- Realm For Caching Favorite Matches using [Generic Realm Manager]
- Delegation Pattern For Communication between Module entities
- Kingfisher For Images Downloading and Caching
- XIB Files
- Figma For Designing The UI
- Code Refactoring
- Unit Tests
Here are some screenshots from the app:
-
The app retrieves matches from the JSON endpoint https://api.football-data.org/v4/competitions/2021/matches instead of the V2 endpoint. The V4 endpoint is preferred due to the additional information it provides, such as flags for teams.
-
Separation of Concerns: MVP divides the application into distinct layers, promoting a clear separation of responsibilities for easier maintenance and debugging.
-
Enhanced Code Structure: By incorporating Coordinator, Network, Persistence, and UseCase layers, the architecture achieves a well-organized and cohesive codebase, improving readability and maintainability.
The app follows a modular structure, divided into different components:
-
Koora Live
- Koora Live
- Foundation
- App
- Configuration
- Extensions
- UI
- Externals
- Coordinator
- Data Persistence
- Realm
- DataNetwork
- Resources
- Foundation
- Modules
- Match
- Coordinator
- Network
- UseCase
- Model
- View
- Presenter
- Match
- Koora Live
Created by:
- Dalia Hamada
Don't hesitate to reach out if you have any questions or need further clarification about the project.