Android: An Exercise in "Ship It"
Article Summary
Airbnb rebuilt their entire Android app in weeks to meet a hard Google I/O deadline. The catch? They couldn't throw away the old codebase.
In 2013, Airbnb's Android app was lagging far behind their award-winning iOS experience. With Android dominating internationally, the newly formed in-house team had to rapidly overhaul the app while integrating Google Wallet features for the May 15th Google I/O launch.
Key Takeaways
- Converted legacy app into library project to preserve code while redesigning UI
- Used reflection to launch new activities from old code without breaking compilation
- Fixed i18n disasters: hardcoded dollar signs, English-only pluralization, unlocalized dates
- Flattened string resources into single files to simplify translation workflows
- Shipped complete redesign with new features in under two months
Airbnb transformed their Android app from neglected to first-class citizen by cleverly wrapping legacy code while fixing fundamental internationalization problems.
About This Article
Airbnb's Android team found serious internationalization issues in their legacy codebase. Prices had hardcoded dollar signs, guest counts used English-only pluralization by appending 's', and date formatters were locked into yyyy-MM-dd format that didn't work for other locales.
Alex Davis's team adopted Android's native pluralization framework and consolidated string resources into a single centralized file. This let translators handle language-specific variations like night counts and guest plurals without needing code changes.
By moving internationalization into one string resource file, Airbnb reduced complexity in their translation tooling and expanded the app to work across 192 countries and 35,000 cities without engineering work for each locale.