Documentation Index
Fetch the complete documentation index at: https://285e39fd5e337e58f16290.sightscreen.app/llms.txt
Use this file to discover all available pages before exploring further.
Build script
The app is built usingscripts/build-ios.sh, which handles configuration, SDK selection, and API URL injection.
API sources
| Environment | URL | Purpose |
|---|---|---|
| Production | api.sightscreen.app | Live production API |
| Fake | fake-api.sightscreen.app | Fake API for development and testing |
URL resolution order
The API base URL is resolved in this priority order:SANDBOX_API_URL environment variable
If set, this env var overrides the default. Useful for pointing at local or staging servers.
Info.plist configuration
Key entries in the app’sInfo.plist:
| Key | Value | Purpose |
|---|---|---|
NSSupportsLiveActivities | YES | Enables Live Activity support |
NSSupportsLiveActivitiesFrequentUpdates | YES | Allows more frequent APNs updates for Live Activities |
UIBackgroundModes | fetch, remote-notification | Enables background fetch and push processing |
Bundle identifiers
| Target | Bundle ID |
|---|---|
| Main app | com.sightscreen.ios |
| Widget | com.sightscreen.ios.SightscreenWidget |
Widget target
The widget targetSightscreenWidget is a separate build target that shares models with the main app.
| Shared resource | How |
|---|---|
| Generated models | All .generated.swift files included in both targets |
| Cached images | App group shared container (ImageCacheService writes, widget reads) |
| Constants | Shared constants file for match IDs, URLs, etc. |
Fonts
The app uses two custom font families:| Font | Usage |
|---|---|
| Clash Display | Headings, scores, large display text |
| Satoshi | Body text, labels, secondary information |
Info.plist.
Theme system
Visual theming is managed through three files:| File | Purpose |
|---|---|
Colors.swift | App-wide color definitions (background, text, accent, etc.) |
Typography.swift | Font size and weight presets mapped to Clash Display and Satoshi |
TeamBranding.swift | IPL team-specific colors (primary, secondary, gradient) for match cards and Live Activities |
Example: TeamBranding lookup
Example: TeamBranding lookup
Team branding colors are one of the few things defined on the client side, since they are purely visual and do not depend on match state or backend logic.