TF1

Player iOS & tvOS

I served as the Lead iOS Developer in the Player team of the IT division at TF1 (eTF1).
My initial goal was to contribute to the establishment of the first Component Team of the IT division. The goal was to extract the player from the MyTF1 application (now TF1+) to create a Framework and make it available for the various applications of eTF1 (TF1+, TFou Max, TF1 Info).

TF1+

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.
feature Team

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
Start Over
× Image en plein écran