Skip to content
assetlib

Questions

How do I stop exporting 1x, 2x, 3x and Android densities from Figma for every image?

Export one source at the largest size the app will ever display, and let a build step or a delivery service produce the smaller sizes. Phones pick an image by its pixel density, which is why iOS asks for 1x, 2x, and 3x and Android for mdpi through xxxhdpi, but every one of those files is a scaled copy of the same artwork. The repeated work comes from doing the scaling by hand, per image, per request, inside the design tool.

Updated October 9, 2026 · Assetlib

Why does the developer keep asking for another export?

Three reasons come up in designer and developer forums. The export settings live on each layer, so every new image needs them set again. Figma's presets do not match the Android drawable folder structure, so Android densities are done by hand. And the 2x export changes resolution, not dimensions, unless the layer is set up for it, so the developer gets a file that is the wrong pixel size and asks again. None of this is a skill gap. It is work the tool leaves to the person.

What does the app actually need?

One raster at a known pixel size for each density the app supports, in a format the platform decodes efficiently, with the same aspect ratio as the slot it fills. For a slot that displays at 300 by 225 points, that is 300 by 225, 600 by 450, and 900 by 675 pixels on iOS, and a similar ladder on Android. WebP is smaller than PNG for most artwork and both platforms decode it. Vector sources can skip the ladder on web, but native image views still want rasters.

The useful observation is that the ladder is derived. Given the source and the slot's logical size, every rendition follows. A script with a resizer can produce it at build time. A delivery service can produce it when the image is uploaded and let the device ask for the size it needs.

How does Assetlib handle sizes?

You upload one source per image in the console. Assetlib keeps the original privately and prepares up to three size tiers for delivery, lossless WebP and PNG for artwork, lossy WebP for photos, capped at 2048 pixels and never enlarged. The SDK asks for the pixel size the view needs and gets the smallest rendition that covers it. The placement's aspect ratio is enforced at upload, so a wrong crop is caught in the console rather than on a device. Assetlib does not crop or recompose artwork; the source should already be the composition you want.

Selecting a frame in Figma and sending it to a placement without a manual export is planned and not available. Today the step from Figma is one export at full size, then one upload. The publishing section of the guide has the current steps.