Open source
Iconery
Iconery is an icon library for macOS, in the spirit of IconJar. It keeps your icons in nested sets, finds them again by name, and exports them in the format and sizes a project needs. It can bring over an existing IconJar library, and runs on macOS 14 and later.
What it does
- Import SVG, PNG, ICNS and ICO files, with folders becoming nested sets
- A name, tags, a description and a license on every icon
- Import an IconJar library or its iCloud backup, and later only what has changed
- Export to PNG, JPG, TIFF, GIF, PDF, ICO, ICNS or SVG, with size presets for each platform
- Drag an icon out of the grid and it arrives already exported
- Back up the whole library to a dated zip in iCloud Drive
How it's built
Reading IconJar without touching it
IconJar keeps its library in a Core Data SQLite database. Iconery reads a copy of it and never the original, because IconJar may have the file open, and even a read-only SQLite open can leave files beside the database. The copy takes the write-ahead log with it, since a database copied without it is missing IconJar's latest changes.
Writing ICO and ICNS by hand
macOS's own image writer leaves the 64 and 1024 px slots out of an ICNS file, and stores most ICO sizes as uncompressed bitmaps. Iconery writes both formats itself. An ICNS file is a list of typed chunks with a PNG in each, and every ICO entry is a PNG too, which Windows has read inside ICO files since Vista.
A library that survives being moved
The library's location is stored as a bookmark rather than a path, so it is found again after its folder is renamed or moved in Finder.
Swift 6 language mode
Everything runs on the main thread. Icons are small enough that drawing and exporting them inline never stalls the window, so strict concurrency checking costs nothing, and it will catch a background task if one is ever added.
Stack
- Swift
- SwiftUI
- AppKit
Source
Other apps
Get in touch
Most of my paid work is PHP and Laravel. If you have some, tell me about it.
I'm available now for full-time roles and contract work, remote or hybrid around Lakeland, Tampa and Orlando.