How we think about Threads’ iOS performance

How did the Threads iOS team maintain the app’s performance during its incredible growth? Here’s how Meta’s Threads team thinks about performance, including the key metrics we mon…

Dave LaMacchia
18 min readadvanced
--
View Original

Overview

The article discusses how Meta's Threads team has approached performance optimization for the iOS app amid rapid user growth. It highlights key metrics, challenges faced, and strategies implemented to ensure a smooth user experience.

What You'll Learn

1

How to measure app performance using metrics like %FIRE and TTNC

2

Why reducing app binary size is crucial for performance

3

How to implement a draft feature to enhance user experience

4

When to adopt Swift Concurrency for improved code stability

Prerequisites & Requirements

  • Understanding of mobile app performance metrics
  • Familiarity with Swift and iOS development

Key Questions Answered

What metrics does Threads use to measure performance?
Threads uses several key metrics to measure performance, including %FIRE (Frustrating Image-Render Experience), TTNC (Time-to-Network Content), and cPSR (Creation-Publish Success Rate). These metrics help the team identify user pain points and improve the app's responsiveness and reliability.
How does the SLATE tool improve navigation latency measurement?
SLATE, or Systemic LATEncy logger, is a tool developed to consistently measure navigation latency across various app surfaces. It automatically creates performance markers during navigation events, allowing developers to easily observe and optimize latency issues in real-time.
What impact did the Drafts feature have on user experience?
The introduction of the Drafts feature significantly improved user experience by allowing users to save their posts during network failures. Analysis showed that users with access to Drafts submitted 26% fewer bug reports related to posting issues, indicating a reduction in frustration.
How did the Threads team address excessive disk usage after introducing Drafts?
After the Drafts feature led to increased disk usage, the Threads team identified that media files were not being cleaned up properly. By implementing a cleanup process for these files, they improved app launch speed and increased user engagement, resulting in a 0.76% rise in original content posted.

Key Statistics & Figures

%FIRE
Percentage of users experiencing frustrating image-render experiences
This metric is crucial for understanding user satisfaction related to image loading.
TTNC
Time-to-Network Content
Measures how quickly the app can deliver fresh content to users.
cPSR
Creation-Publish Success Rate
Tracks the success rate of publishing posts, crucial for user engagement.
0.76%
Increase in original content posted
Resulting from improved disk usage management after the Drafts feature was introduced.
26%
Decrease in bug reports related to posting
Observed after implementing the Drafts feature.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Regularly monitor key performance metrics like %FIRE and TTNC to ensure app responsiveness.
Tracking these metrics helps identify user pain points and areas for improvement, ensuring a smooth user experience as the app scales.
2
Implement features like Drafts to enhance user experience during network issues.
By allowing users to save their posts, you can reduce frustration and improve overall engagement, as evidenced by the 26% decrease in bug reports.
3
Adopt Swift Concurrency to improve code stability and reduce race conditions.
Migrating to Swift's concurrency model can help prevent data races and improve the reliability of your app, especially at scale.
4
Keep the app's binary size small to enhance performance and reduce load times.
A smaller binary size not only improves app launch speed but also makes the development process more efficient, as seen with Threads compiling twice as fast as Instagram.

Common Pitfalls

1
Failing to monitor performance metrics can lead to degraded user experience.
Without regular tracking of metrics like %FIRE and TTNC, developers may miss critical performance issues that affect user satisfaction.
2
Neglecting to clean up temporary files can cause excessive disk usage.
As seen with the Drafts feature, failing to manage local storage effectively can lead to performance issues and user complaints.

Related Concepts

Mobile App Performance Optimization
User Experience Design
Network Request Handling With Graphql
Concurrency In Swift Programming