Native SwiftUI client for iPhone and iPad (tvOS target planned). Thin UI over Lumen-Media-Server — libraries, details, HLS / Direct Play via AVPlayer, progress sync.
- Login / first-run setup against the LumenMedia API
- Home shelves, library grid, item details
- Playback with device profile → DirectPlay or HLS
- Quality / audio / subtitle selection; resume progress
- Design language aligned with the web client (cinema dark + mint accent)
- Xcode 16+ / iOS 17+
- XcodeGen (
brew install xcodegen) - A running LumenMedia Server
git clone https://github.com/monowar71/Lumen-Media-iOS.git
cd Lumen-Media-iOS
xcodegen generate
open LumenMedia.xcodeprojSet the server URL on the login screen (default http://127.0.0.1:8096).
Unit tests live in the LumenMediaCore Swift package (MockLumenMediaAPI):
swift test| Path | Role |
|---|---|
Sources/LumenMediaCore |
Models, API client, Keychain session, settings, ViewModels, design tokens |
App-iOS |
SwiftUI shell — TabView (iPhone), NavigationSplitView (iPad) |
Tests / UITests |
Unit and UI coverage |
MVVM: SwiftUI View ↔ observable ViewModel ↔ API protocols (testable).
More: docs/ARCHITECTURE.md · AGENTS.md
| Repo | Role |
|---|---|
| Lumen-Media-Server | Backend API + transcoding |
| Lumen-Media-Android | Android / Android TV client |
| Lumen-Media-Web | Web client |
See CONTRIBUTING.md and the Code of Conduct. Security: SECURITY.md.
GNU General Public License v3.0
Copyright © 2026 Alexander Goncharow and contributors.