SB/serdar
All projects

VNGRS · 2012 — 2016

PuhuTV — Streaming Platform

iOS Engineer

The iOS client for one of Turkey's largest streaming platforms, migrated from Objective-C to Swift and from UIKit to SwiftUI while serving millions of active viewers.

SwiftSwiftUI MigrationAVKitScale
PuhuTV — Streaming Platform — screenshot

Problem

PuhuTV's iOS app had scaled from a small Objective-C codebase into a high-traffic product used by millions, and the codebase's architecture hadn't scaled with it. Crash rates crept up during growth spikes, build times slowed the team down, and the UI layer was increasingly expensive to change safely.

Approach

I worked on migrating the codebase to Swift incrementally, and later led a screen-by-screen migration from UIKit to SwiftUI, prioritized around the screens where iteration speed mattered most. In parallel, I helped restructure the app into modular Swift packages so a growing engineering team could work in parallel without stepping on each other.

Architecture

The playback and browse experiences sit on top of AVKit for media playback and a modular package structure separating catalog browsing, playback, and account management — each independently testable, with shared design-system components consumed as their own package.

Technical Decisions

Migrate screens in order of change frequency, not risk

Rather than starting the SwiftUI migration with the riskiest screens, I prioritized the screens the team touched most often — compounding velocity gains earlier in the migration.

Modular packages as the team scaled

As the engineering team grew, package boundaries gave new hires an obvious, contained area to own — reducing onboarding time and merge conflicts simultaneously.

Challenges

  • Maintaining stability and crash-free sessions for a high-traffic app during a period of rapid user growth.
  • Migrating Objective-C to Swift without disrupting an existing, large user base's experience.
  • Keeping a growing engineering team productive in a single, shared iOS codebase.

Results

  • Improved crash-free session rate during a period of rapid user growth.
  • Established modular architecture patterns later adopted across the company's other consumer apps.

Lessons learned

  • Scale exposes architectural debt faster than almost anything else — the codebase that worked at one order of magnitude of users often doesn't at the next.
  • Sequencing a migration around team velocity, not just technical risk, made the project sustainable across a full year of incremental work.