Tinder Maxwell Elliott and Connor Wybranowski Feb 27, 2025

How the Tinder iOS App reduced the size of our localizations by 95% using Emerge

Article Summary

Tinder ships their iOS app to 190+ countries in 50+ languages. That localization overhead was costing them 51MB of install size.

The Tinder iOS team tackled a sneaky performance problem: Apple's 4KB minimum file size for code signing meant hundreds of tiny localization files were bloating their app. They combined Bazel build optimizations with Emerge's SmallStrings compression tool to dramatically reduce their footprint.

Key Takeaways

Critical Insight

Tinder cut localization size by 95% (51MB install, 10.7MB download) by merging files and compressing with SmallStrings, all transparent to developers.

The team discovered even more optimization opportunities during this work, including a way to dynamically remove unused strings at build time.

About This Article

Problem

Tinder's iOS app had over 50 localization files per target across 190 countries. Apple's 4KB code signing minimum meant each file took up at least 4KB of space, even if the actual content was much smaller. Translator comments and whitespace added to the bloat.

Solution

Tinder built a custom Bazel rule called namespaced_strings that merged multiple localization files into single files per language. They then used Emerge's SmallStrings tool to compress the keys and values into LZFSE format, which gets decompressed at runtime.

Impact

This two-step approach cut download size by 10.7MB and install size by 51.3MB. The merging phase alone saved 30.1MB of install size, and the SmallStrings compression added another 21.2MB in savings.