ITVX at Candyspace: Playback Features Under Live Constraints
How I delivered ITVX Android player features at Candyspace across recommendations, timeline previews, phone and tablet motion, reliability, security, and XML parsing.
[delivery dossier] 5 sections
Candyspace was the employer; ITVX was the project
I worked at Candyspace on the Android media player for ITVX. That hierarchy matters: Candyspace was my employer, and ITVX was the streaming project where I delivered the player work described here.
A video player concentrates product state into a small area. Playback, controls, recommendations, focus, device orientation, errors, and entitlement or security behavior can all change what appears over the same frame. A feature that looks like one panel therefore has to cooperate with the rest of the player rather than simply sit on top of it.
Recommendations had to move with the player
I built an in-player recommendations panel shown during playback. Opening it changed the usable space, so I coordinated the panel animation with movement in existing controls and buttons instead of allowing layers to collide. I accounted for both phone and tablet layouts, where the same transition had different spatial constraints.
The implementation treated the panel as another player state. Entering and leaving it had to preserve a coherent control hierarchy, and repeated transitions had to return elements to the correct position rather than accumulate visual drift.
Timeline previews needed playback-aware state
I independently delivered preview timeline scrubbing with a visual landing preview. The interaction linked a user’s touch position, the candidate playback time, the preview image, and the final seek target. Those values change quickly while a finger moves, so the visible preview needed to remain attached to the latest intent without making the player itself feel unstable.
I worked through the full interaction rather than treating the preview as a decorative thumbnail: entry into scrubbing, movement, release, cancellation, and the return to normal controls all mattered.
Reliability work removed older player friction
Alongside feature delivery, I resolved long-standing player issues, strengthened error tracking, contributed security fixes, and migrated XML handling from Simple XML to Jackson. The parsing change reduced reliance on an older path, but it still had to preserve the response shapes and failure behavior the player expected.
Error tracking was most useful when it carried enough context to distinguish a playback failure from a UI transition or data-parsing problem. I used that evidence to narrow fixes while preserving established player behavior outside the affected path.
How I verified the work
I checked the player as a stateful system: phone and tablet layouts, opening and closing transitions, control movement, timeline interaction, cancellation, error paths, and the handoff back to normal playback. That was more representative than verifying each view in isolation.
The public Google Play listing identifies the ITVX Android product. This public-safe case study limits itself to my role and product-level delivery. It omits private source references, ticket identifiers, security details, internal service information, and unsupported outcome metrics.