Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 1.32 KB

File metadata and controls

42 lines (33 loc) · 1.32 KB

LiveBoard

iOS app that displays live sports events with real-time updates.

Features

  • Token-based authentication (login/logout)
  • Headlines carousel with auto-scroll (5s interval)
  • Live games list with elapsed time updated every second
  • Automatic data polling every 10 seconds
  • Odds display for headline events
  • Offline detection with automatic retry
  • Game phase status for non-live events

Architecture

  • UIKit with programmatic views (ViewCode)
  • MVVM — ViewControllers bind to ViewModels via Combine
  • Protocol-Oriented — abstractions for networking (APIClient, APIRoute) and reachability (Reachable)
  • Dependency Injection — dependencies provided through initializers
  • Combine — reactive state, timers, and connectivity monitoring

Project Structure

LiveBoard/
├── App/                    # AppDelegate, SceneDelegate
├── Core/
│   ├── Extensions/
│   ├── Networking/         # API client, routes, error handling
│   ├── Protocols/          # ViewCodable, Reachable
│   └── Theme/              # Colors, layout, metrics
└── Scenes/
    ├── Login/              # Login screen (View, ViewController, ViewModel)
    └── LiveGames/          # Main screen, cells, and models

Requirements

  • iOS 15.0+
  • Xcode 15+
  • Swift 5.9+