Craig A Holliday

Media Player SDK for a Popular Media Streaming Company

Only general information is provided for this project because this project is under an NDA

TL:DR

Challenge: To develop a comprehensive player framework SDK for the Apple ecosystem, encompassing iOS and tvOS, tailored to fit within various applications, and integrating a vast range of 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.
  • Spearheaded the SDK’s creation using Swift, emphasizing a user-friendly API.
  • Mentored junior developers, ensuring a cohesive development process.
  • Managed cross-team communications to align feature development and ensure consistency with 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.