DropletCreator

Who made a droplet.

struct DropletCreator

Every droplet carries one, and every surface that lists droplets shows it: the Store's rows, the droplet's detail page, and the cards on getdroppy.app/droplets. A user should never have to guess whether something came from Droppy or from the community.

Cases

DropletCreator.Kind.droppy

case droppy

Published by Droppy itself.

DropletCreator.Kind.community

case community

Published by a third-party developer.

Initializers

init(from:)

init(from decoder: any Decoder) throws

init(name:kind:url:avatar:)

init(name: String, kind: Kind, url: URL? = nil, avatar: String)

init(rawValue:)

init?(rawValue: String)

Properties

avatar

let avatar: String

Filename of the creator's avatar, relative to the droplet's Assets/ directory. Required.

A square PNG, at least 256×256, with no built-in rounding: every surface clips it to a circle itself, so a pre-rounded image ends up rounded twice and the corners go muddy. Transparency is allowed.

This is the small round mark beside the droplet's name in the Store, so it has to read at 20 points. A wordmark will not; a monogram, a face, or a symbol will.

kind

let kind: Kind

Whether this is a first-party or community droplet. Community submissions are always published as .community; the review tool refuses a submission that claims .droppy.

name

let name: String

Display name of the person or company, as it should appear in the Store. Sentence case, no marketing suffixes.

url

let url: URL?

A page the user can visit to learn who you are. Optional, but shown as a link on the detail page when present.