Just Eat Alberto De Bortoli Sep 8, 2026

In-House Over-the-Air Localizations in a Modular iOS App

Article Summary

Alberto De Bortoli from Just Eat Takeaway built an over-the-air localization system that fixes translation bugs without app releases. No vendor SDK, no compromise—just a few hundred lines of code that works with their 30+ module architecture.

Most iOS teams accept that fixing a wrong translation means waiting for the next release cycle. Just Eat Takeaway rejected that constraint and built their own OTA localization system when their translation platform didn't offer one. The solution leverages Bundle's existing capabilities rather than reimplementing locale logic.

Key Takeaways

Critical Insight

A foundation module with zero dependencies and minimal per-module changes delivers production translation fixes without releases, applying updates only on cold launch to avoid mid-session UI mutations.

The rejected alternatives section reveals why seemingly obvious approaches (method swizzling, Bundle subclassing, in-memory dictionaries) would have created invisible failure modes.

About This Article

Problem

Just Eat Takeaway's translation platform couldn't update translations over the air. When translations were wrong or new localizations were needed, they had to wait for full app release cycles that took days or weeks across their 30+ module monorepo.

Solution

Alberto De Bortoli's team built a foundation module that used Bundle's native locale fallback and plural handling. The system downloads zip archives per module to a CDN and replaces files atomically through FileManager to avoid partial bundle corruption.

Impact

The client code came down to roughly 300 lines with just one line of integration per module. ETag-based conditional requests cost almost nothing when content hasn't changed, so they can fix production issues instantly without releasing a new app version.