ok.com
Browse
Log in / Register

How Redfin Improved Its Android App to Prevent Image Loading Errors for Home Browsing

12/09/2025

Redfin's Android app successfully reduced image-loading failures by 90% by implementing a sophisticated image management pipeline. This technical overhaul, centered on the Fresco library, directly addressed memory constraints that previously forced users to restart the application. The solution enabled more aggressive image caching and pre-fetching, resulting in a smoother, faster experience for buyers and sellers browsing property photos.

What Was Causing the Image Loading Problems?

The core issue was related to the limited Java Heap, the area of memory on an Android device where standard application data is stored. Each device sets a strict limit on this memory for each app. When users browsed through numerous high-resolution property photos, the app would quickly exhaust this available space. Once the memory was full, the app could no longer load images, often requiring a full restart to continue browsing. Initial fixes, such as only loading images currently on screen and using tools like Leak Canary to plug memory leaks, provided minor relief but did not solve the fundamental problem.

How Did the Fresco Library Provide a Solution?

The adoption of Fresco, an open-source image-loading library, was the pivotal change. Its primary advantage is superior management of a different memory region called ashmem (Android shared memory). Unlike the Java Heap, ashmem is not managed by the standard garbage collector and is better suited for storing large objects like images.

The key breakthrough was Fresco's ability to keep decoded images in ashmem without the system prematurely freeing them. Before Fresco, if the app needed to re-display an image, it had to decode it again—a processing-intensive operation that could cause the app to lag or drop frames. Fresco uses the Native Development Kit (NDK) to manually control this memory, preventing wasteful re-decoding and keeping the user interface smooth.

What Specific Improvements Did Users Experience?

The integration of Fresco transformed the user experience in two key areas: reliability and speed. The most significant metric was a dramatic reduction in load failures.

MetricBefore FrescoAfter Fresco IntegrationImprovement
Image Load Failures~7.5 images per userReduced by 90%Major Reliability Gain
App Restarts RequiredCommon for 1% of usersSignificantly ReducedFewer Interruptions

Furthermore, the app could now pre-load images as a user scrolled through a list of properties. This meant images were often fully rendered by the time they entered the viewport, eliminating the waiting spinner and creating a seamless browsing experience. This aggressive pre-fetching and caching directly contributed to a more efficient home-browsing process.

Conclusion: A Better Mobile Experience for Real Estate

For anyone using a mobile app to browse real estate, performance is critical. The solution focused on smarter memory management, moving image storage away from the constrained Java Heap to the more capable ashmem region. This technical improvement translated into tangible benefits: fewer crashes, faster image loading, and a smoother scroll. Based on our experience assessment, this approach demonstrates how addressing underlying technical debt can directly enhance the user experience for buyers and sellers conducting market research on their mobile devices.

Cookie
Cookie Settings
Our Apps
Download
Download on the
APP Store
Download
Get it on
Google Play
© 2025 Servanan International Pte. Ltd.