Skip to main content

Migrating Picture Component to Expo Image

· 3 min read

When building modern mobile apps, image handling plays a crucial role in user experience and performance. Whether it's a social feed, media gallery, or product listing—rendering images efficiently can make or break your app’s smoothness.

In this post, we’ll compare and understand why Enhanced Picture Component over the Old Picture Component.

Old Picture Component: Based on React Native's built-in Image component. Enhanced Image Component: Built on Expo’s expo-image, a high-performance image solution introduced by Expo.

Why This Matters

The old Picture component works well for basic use cases. However, as your app grows, you may start to notice slow rendering, janky scrolling, and limited caching capabilities. That’s where the Enhanced Image Component comes in—offering native-level performance, smarter caching, and better memory efficiency.

Below is a comparison of the Old and Enhanced Picture components across key areas:

  • Caching
  • Memory Usage
  • Performance

Caching

Old Picture Component

  • Offers minimal caching.
  • May result in repeated downloads, increasing data usage.

Enhanced Picture Component

  • Supports configurable caching strategies: memory, disk, memory-disk.
  • Supports blurhash/thumbhash placeholders for low-res previews during loading.
Impact

Up to 60% reduction in network requests thanks to smart disk caching.

Memory Usage

Old Picture Component

  • Limited memory management.
  • May cause memory spikes or crashes in image-heavy apps.

Enhanced Picture Component

  • Proactive memory management with automatic cache purging.
  • Optimized for FlatList and virtualized lists.
Impact

Up to 40% lower memory footprint observed in production apps.

Performance

Old Picture Component

  • Relies heavily on the JavaScript thread for image decoding and rendering.
  • Causes UI lag when rendering many or large images.

Enhanced Picture Component

  • Offloads decoding to native modules like SDWebImage (iOS) and Glide (Android).
  • Enables smooth, consistent rendering even in image-heavy interfaces.
Impact

Apps using expo-image report 30–50% faster image rendering in lists and galleries, especially on mid-range Android devices.

Old Picture Component vs New Picture Component

To understand better, you can find the quick comparison between Old and New Picture component below.

FeatureOld ComponentNew Component
PerformanceModerate, JS-thread boundNative-level, smooth
CachingMinimal, non-configurableMemory / Disk, configuration will be made available in subsequent releases
Memory UsageHigh in image-heavy appsOptimized with auto cleanup
Platform ConsistencyInconsistentUniform across iOS, Android, Web

Summary

If your app involves displaying a lot of images—be it a media feed, marketplace, or messaging app—the Enhanced Image Component is a clear upgrade. It’s not just about faster load times, it’s about a better user experience, lower memory consumption, and reduced data usage.

With the enhanced image component in WaveMaker, you can deliver a snappier, more reliable image experience, especially on lower-end devices or slower networks.