RealEyes Media · 2019–2021
Media Player SDK for a Popular Media Streaming Company
Only general information is provided for this project because it is under an NDA.
TL;DR
Challenge: Develop a player framework SDK for iOS and tvOS that could fit into many different applications, with features from basic player functionality to advanced features like Client Side Ad Insertion and SCTE-35 parsing.
Solution: As the Lead Apple Developer:
- Collaborated with the customer to pin down exact requirements and expectations.
- Led the SDK’s development in Swift, with a focus on an easy-to-use API.
- Mentored junior developers.
- Managed cross-team communications to keep features consistent with the other platforms (Web, Android).
Tech Stack:
- Swift, XCTest
- Swift package manager, Carthage, Cocoapods
- Advanced integrations: AVPlayer wrapper, HLS Manifest manipulation, Conviva metrics, Apple DRM, and more.
Project Goals
The customer for this project required a player framework for the Apple ecosystem.
The requirements for the project were:
- Create an SDK that wrapped AVPlayer and supported iOS and tvOS.
- The SDK needed to be able to be deployed in multiple applications for the company
- The SDK had to support features like Client Side Ad Insertion, Live media playback, DRM, SCTE-35, and more.
- The SDK had to have a simple API for all the standard player functionality and the custom features.
Functions
- Lead Apple Developer
- Worked with the customer to define feature requirements
- Mentored junior developers
- Wrote a majority of the SDK features
Features
For this project, we used:
- Swift and XCTest
- Swift package manager
- Carthage
- Cocoapods
Some of the notable features included:
- Wrapper for AVPlayer
- Simple, configurable API for customer integration
- HLS Manifest manipulation
- Client Side Ad Insertion
- Conviva metrics implementation
- Apple DRM support
- SCTE-35 parsing
- Example application that implemented all common media player scenarios
- Full documentation for the API and integration guides
Project Outcomes
This SDK was continuously delivered over my two years working on the project.
The company integrated the SDK into many of their iOS and tvOS applications.
After we had completed the contract, the customer took over the project.
Personal Takeaways
This was the first and longest-running project I worked on at RealEyes Media. This was also a long-running project for RealEyes Media, as they had been working with this customer for many years.
Coming onto the team and jumping right into the most significant project was an excellent opportunity to have an impact and get to know the team.
The SDK had a lot of different challenges to overcome. The biggest challenge was working with multiple customer teams to implement the required functionality.
Another challenge was keeping parity between the Web and Android SDKs. Another good technical challenge to overcome, but the communication and project planning challenges were arguably more complex.