From ImageView to Compose: Architecting Image Loading
summary
Jetpack Compose image loading needs a different architecture: sizing, downsampling, cache keys, prefetching in lists, and scaling semantics require explicit policies rather than implicit ImageView behavior. The team builds a rememberFrescoImagePainter that wraps Fresco drawables with a callback so a drawable→painter bridge triggers only painter redraws, exposes Fresco request/hierarchy builders as lambdas, and leverages the paint modifier to keep layout separate. Results: smoother scrolling, finer-grain invalidation that avoids full recomposition, and production use inside TikTok with benchmarks and fixes for oversized decodes and double crossfades.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 1:32ImageView in Android
- 9:06ImageView problems
- 14:47Image in Jetpack Compose
- 27:11Fresco to Compose case
- 40:29Closing and Q&A
related talks
38mImage Loading With Fresco: 4 Years Later
39mJetpack Compose: Drawing without pain and recomposition
36mJetpack Compose: Drawing without pain and recomposition
31mDesigning Media Friendly Jetpack Compose Components
01h 16mA Composable New World!
01h 12mJetpack Compose over inheritance
34mHow We Rebuilt Instagram Photo Sharing: Compose Interoperability With Large Legacy Systems
42mJetpack Compose: Art of the State
