Improving Etsy for iOS with server-based logging
Article Summary
Etsy's iOS team faced a dilemma: their safety net for preventing crashes was quietly hiding logic bugs across the entire codebase.
Amy Dyer from Etsy's Native Apps team shares how they built a server-based logging system to make iOS crashes visible and debuggable. This 2013 post reveals how a small mobile team maintained stability while scaling their app.
Key Takeaways
- Created Safe category methods to prevent collection crashes from API hiccups
- Split methods into explicit variants: objectOrNilAtIndex vs safeObjectAtIndex
- Built EtsyAssert and EtsyExpect macros that log failures to servers
- Sampled 1% of users to surface thousands of hidden edge cases
- Correlated client logs with server logs for full request tracking
Critical Insight
By piggybacking on their analytics framework to send iOS logs to servers, Etsy made rare production bugs visible and fixed issues users hit thousands of times daily.