Context and Objectives
Since these applications had different needs, we developed a customizable "à la carte" Player, allowing it to be integrated with or without certain modules, such as the ad module. This modularity enabled us to easily switch ad providers over the years.
Establishment of a New Team (Feature Team Player)
Agility
- Participated in implementing agile methodologies within the Feature Team.
- Attended agile workshops to establish team processes.
Technical Choices
- Reflected on the project architecture.
- Selected the version control system (Git Flow).
- Developed a Sample for two targets (integrators and QA).
- Later created another Sample for Apple TV.
- Modularized the SDK to offer a customizable SDK to clients.
- Contributed to technical discussions on the video backend (HLS).
- Implemented a new work methodology using OKRs.
Continuous Integration
- Participated in setting up CI (Bitrise).
- Migrated to GitHub Actions two years later.
- Enhanced robustness with tests (Cucumber).
- Implemented feature flagging to remotely disable any feature via remote configuration.
New Features Added
- VOST
- Resume Playback
- Seek Preview
- Skip Intro and Recap
- Coming Next
- Playback Speed
- Quality Selection
- Chromecast
- AirPlay
- Apple TV
- Multiplayer
- Mini Player
- Remote Control
- Playlist
- Control Lock
- Metrics
- Picture in Picture
- Error Management
- Start Over (seek in live)
- Etc.
Addition of an Analytics System (Metrics)
- Tracking feature usage
- Tracking crashes
- Tracking bugs
- Making the system modular and compatible with multiple analytics SDKs simultaneously
New Ad Entries
- AdSwitching (replacing broadcast ads with digital ads)
- Google IMA (replacement by slot – a slot being an ad break)
- Broadpeak (implementing spot-to-spot replacement – a spot being an ad within an ad break)
- AdPause
- Ads on Chromecast