DropletCreatorAvatar
The rules a creator avatar has to satisfy.
enum DropletCreatorAvatar
The avatar is the small round mark beside a droplet's name in the Store and on getdroppy.app/droplets. It says who made the thing at a glance, without the user opening anything, and it is what separates the Store's Community shelf from its By Droppy shelf visually rather than only by label.
Type properties
bundleRelativePath
static let bundleRelativePath: String
Default path of the avatar inside a built bundle, relative to the bundle root. A manifest may name another PNG in the same Assets/ directory; use the host renderer to resolve that name.
fileName
static let fileName: String
Where the avatar lands inside a built .droplet.
droplet.json names it relative to the package's Assets/ directory, and build-droplet.sh copies that directory wholesale into Contents/Resources/Assets/. This is the scaffold's default and the compatibility fallback for bundles without a readable manifest. A bundle may name another validated PNG, which the host reads by that manifest name.
isClippedToCircleByHost
static let isClippedToCircleByHost: Bool
The host clips the avatar to a circle on every surface.
Ship a square PNG with the artwork centred and no rounding of your own: a pre-rounded image is clipped a second time, and the two radii disagree by a pixel or two all the way round, which reads as a muddy edge rather than a circle.
minimumPixelSize
static let minimumPixelSize: Int
Smallest accepted edge length, in pixels. The image must be square.
renderedSize
static let renderedSize: CGFloat
Size the Store draws it at, in points.
Type methods
validate(at:)
static func validate(at url: URL) throws
Whether a file at url is a plausible avatar.
Checks the PNG signature and IHDR dimensions. The image must be square and at least minimumPixelSize pixels on each edge. Whether the mark is legible at renderedSize is a review judgement, not a check.