Watch More
A native iOS and Android player for your own Xtream and M3U sources — no bundled content, no account, no telemetry.

Context
Watch More is a player, not a service: no built-in IPTV service, no providers, no recommendations. Users play the sources they already have access to, entirely locally — credentials never leave the device.
Constraint
Two platforms (iOS and Android), two languages (Swift and Kotlin), and a requirement that they behave identically — with no shared source code, since the platforms share no runtime.
Decisions
- Behaviour guarded by 114 executable conformance vectors instead of shared code: any behaviour change requires updated test vectors and both implementations passing them on the same pull request.
- The entire Swift core was developed and tested on Windows, without Xcode — using a Swift 6 toolchain. That's why the core is built on Foundation only, with zero external dependencies.
- Streaming M3U and XMLTV/EPG parsers, benchmarked against a 100,000-entry catalogue.
- Privacy as a design principle: no account, credentials in Keychain, only redacted log lines allowed, and an offline demo mode for App Review.
What it costs to run
No hosting required — the app runs entirely on the user's device. Distributed via TestFlight (iOS) and a Play Store staging track (Android), with no hosted CI: one local gate script (check-parity.sh) validates Swift tests, conformance vectors, schema and strings for every release.
What I'd change
The first conformance vectors were too coarse-grained; knowing what I know now, I'd write them at the function level from the start rather than the scenario level, which would have surfaced regressions sooner.
A similar problem to solve?
A no-obligation introduction call about cross-platform product delivery.