✾, chief troublemaker

722 Followers
1,018 Following
25.3K Posts

Her sprit was weak, but knew the work of her hands.

Fixer, weaver, lover, spy. (🔞)

🏳️‍🌈⚧ ⚢ ⚤ ♡∞
Pronounsshe/her
Webhttps://millenomi.name/
Headerhttps://unsplash.com/photos/8gPev-y29WQ

I really wanted the app to _feel good_, because a dataset without a good frontend is like a library without librarians. So I went all out with adoption of things like zoom transitions and a range of idiom-specific cleanup choices.

I even added some small amount of discovery. Right now it's searching eBooks.com, which is the place that's most likely to have DRM-free epubs of current books.

(It's backed by a CRDT structured to attempt to circumvent normal shared folder sync failures, like a sync error duplicating individual files within the sync library directory.)

One thing I've been feverishly working on that I really wanted is stars — starring a book means that it is shown on the Index page and kept separate from casual downloads.

Stars also sync over through any shared folder (in this case, Syncthing) to any other device running the app, and are downloaded automatically on all of them.

This is TBR, the client I'm writing for accessing books on an OPDS-enabled server (like Jellyfin or Calibre) without it looking like gooddamn fucking Gopher-through-Atom-feeds.
Queer Bookstores Across America to Support This Independent Bookstore Day - Electric Literature

Check out our favorite indies around the country focusing on intersectional LGBTQ+ literature

Electric Literature
It's an emotional support view because I'm a little depressed and doing something aesthetically pleasing helped.
Yes, a non-.grouped Form would be more idiomatic on the Mac if you're not shipping a System Settings-style setup, but it requires _so much gosh darn work_ to make it look okay in SwiftUI that I may as well just keep the columnar UI for the panel and reuse the code.

And of course, neither of these approaches produces a traditional Mac settings/preferences panel, so for there it has to be rewritten to use TabView.

You _could_ ship a NavigationSplitView there, but I find that System Settings is a terrible experience all around, one that justifies itself out of sheer density and navigation depth; if you don't have that, a settings panel is a much better way to go, IMO.

Unfortunately, this targets iOS 18, where NavigationSplitView is basically broken across a range of basic adaptations.

So I rewrote it as a NavigationStack for there. Still some breakage (note the back button), but usable.

It's sparse, and it used to be just a single .grouped Form with sections, but it looked ugly as heck. But to do it right I had to write its structural harness three times.

Once 'the right way'; on iOS 26, NavigationSplitView works correctly across idioms and adaptations, and so we can just use that.