While I don’t intend to ship GPT-3 as a user-facing feature in Pastel, I can certainly use it on the development side to build collections of palettes to populate a gallery feature I was toying with. It will make it very easy to pre-fill with content based on themes
Today's task in @pastelapp is to rewrite the color wheel to move it off third-party ObjC code and bring it in-house in Swift. Almost done — it’s so much smoother to interact with now, even if there are still a couple bugs to work out. Pastel is still a ways off being Swift-only, about 6,000 lines to go, but it’s nice to be able to get major improvements as I do-over each class
Next up for visionOS: @pastelapp. A few dozen build errors to start with…
…well that's certainly a look 😂 Time to dive in
Better, but I can see I'm going to have plenty of elements to rewrite ahead of me
Some of this UI does look fun, but it's gonna be one hell of an OS to window-manage
I think the color picker makes sense as an ornament, but it is pretty hard to gauge some of this stuff from a simulator
Going in another direction for @pastelapp. I will have to rewrite the sidebar as a collection view (it’s still UITableView, of all things), and I'm glad I spent time this week working on a new color picker tab bar because I'm gonna need it. Overall I think it's going to require a lot more effort than Broadcasts, but it's mostly stuff I needed/wanted to do anyway
Starting to make preparations to branch @pastelapp to v3.0, so I can work on some larger changes coming down the pipe. I think that will include bumping the minimum OS version, which is currently macOS 11 & iOS 15. I will be dropping support for macOS 11 in this release, for certain, and maybe push even higher depending on timing and how development plays out. This is probably a 2024 update rather than for the iPhone launch this year

This is the time post-WWDC where I try to get all my projects building to a shippable state again with the new Xcode after working on experimental tangents and rabbit holes for months 😅 I think everything in my dev version of @pastelapp works again now, but I can't remember what I broke.

I'm doing a pass at a bunch of little things, shuffling some bits around, updating iconography etc

There is no ‘iOS 17 update' for Pastel, as the new system features don't really touch upon anything in the app. Kinda gives me some space to think up new features to build as I work towards v3.0. The app is in a great place, I think, so I don't feel like there's any pressing need to dig in right now. Some of my other projects need the attention a lot more
Making progress on @pastelapp today. I've walked back some of the more-complex changes I was making for visionOS, and taken a pass at rounding out all the sharp edges. There is still a lot to do, but I think it's turned a corner now

An awful lot of bringup for an existing iOS view controller on visionOS involves three things:

• Change your background color
• Round out your shapes/set your button configurations to the system rounded style
• Add roundrect hover styles

Here's a before/after on my wallpaper generator; just a handful of one-line changes

TL;DR much of this stuff looks incredibly daunting when you first run your iOS app on visionOS, where everything has the wrong color and style, and feels like a mountain of work ahead of you. But actually, it's not as bad as it seems
Here’s @pastelapp with a few more passes around the app. Honestly? I could probably publish this build without changing a whole lot else

I built this palette-generation feature two years ago for @pastelapp, hoping that Apple would ship LLM APIs I could use instead of GPT-3. Womp womp.

Here's hoping tomorrow brings some change here…

https://mastodon.social/@stroughtonsmith/110194490041668965

Finally trying Apple's Foundation Models for palette generation, side by side with what I generated with ChatGPT.

The first image is the prompt "Planets of the Solar System" with Apple's on-device LLM, the second image is the same prompt using GPT-3.5 as of 2 years ago.

It can certainly do what I need it to do; whether the results are any good is an open question. I think it's inoffensive, and harmless, at the very least, so maybe I can move forward with it

As a proof of concept, it confirms that the Foundation Models can indeed be applied to any kind of silly little task, and it’s so easy to get structured, deterministic output from it using the new @-Generable macro. No JSON, no parsing, just perfectly formed structs as output
Even though the concept works, the performance is a little worrying. It takes an M1 iPad Air about 30 seconds to generate a handful of color palettes — which are just some hex codes with a name, nothing complex. Streaming the results in one by one becomes a necessity with those kinds of processing times

Enabling streaming, you can see that the Foundation Models API is slow — I would say alarmingly slow — on M1 hardware. I'm not even sure what kind of optimization I might be able to do to speed this up, as it's seemingly purely on the token generation side 🤔

It's going to take more than a little care and attention before you start sprinkling this all over your apps, that's for sure. Good to know

#wwdc25

Initial bringup on macOS 26 for Pastel. There are some significant system-level performance regressions that I'm going to have to debug my way through — I've lost my 60fps window resizing, that's for sure 😐 Other than that, it was a modern app with a forward-thinking design language, and it fits Liquid Glass on iOS and macOS without much trouble
Slowly iterating on the design language for Pastel and fixing all the weird little bugs the new SDK introduced. Only now is it functional again
Not making a whole lot of forward progress with my apps right now, so I'm gonna get some lateral progress done. Pastel still has about 5,500 lines of Objective-C code remaining that is all ripe for translating to Swift via Xcode's new ChatGPT feature. It'll give me a chance to sanity-check some of my legacy code in the process
Slightly reorganizing my copy menu while I'm at it, and scratching my chin at the menu glass effect 🤔

Still a long way to go, but here's a before/after on Pastel on macOS 26 as of the current build.

During development, you spend so much time looking at the new design that you kinda forget how it used to look

Pastel on iPad is going to look effectively indistinguishable from the Mac version by the time I'm finished updating it for Liquid Glass

With today's work out of the way, I think Pastel's iOS 26 update is done for Mac and for iPhone. The iPad build is blocked by my earlier radar, and I haven't figured out a mitigation strategy yet, but we're nearly there

https://mastodon.social/@stroughtonsmith/115095006424999494

I've started the TestFlight process for Pastel for iOS and macOS 26. There are some known issues on iOS, including a severe hang, but most things are in place now, and there are still slots available 😄

https://testflight.apple.com/join/xkUYBZPb

Today's build of @pastelapp fixes the last of my major issues, and achieves all the goals I set out for this iOS 26 update 😄 All in all, the update touched about 6000 lines of code, with zero new features, just to adopt the new UI
I think @pastelapp for iOS and macOS 26 is now 'visually complete' ahead of the September event, which means I have to start thinking about marketing screenshots. I'm very happy with how this turned out, even if it took a while to get there
I don’t think I’ll ever get used to how good iPadOS 26 looks on an external display. If you have an M1 iPad or higher, I implore you to give it a try
Giving Pastel a v2.4.1 today on macOS to update everything that looked blurry on a non-Retina display, as it's been a long time since I've given it a pass and some system metrics have changed lately that need round()ing. It's real hard to tell the difference from a JPEG, but here's a before/after

The next minor version of @pastelapp will support exporting color palettes to Pixelmator Pro (on the Mac, at least, as they don't support that on iOS)

Update: now available!

https://apps.apple.com/us/app/id413897608

(Did I just spend the day reverse-engineering their proprietary color palette format? Yes.)
The next version of Pastel tackles a bunch of things, including revamped undo/redo support. I recently added pinch-zoom to the image importer, too. Paying attention to lots of little corners of the app that haven't seen love in a while — time for a polish pass now that Liquid Glass is no longer taking up all of my development time

Venturing out into the Great Unknown, I have finally made the switch from single-purchase to subscriptions in @pastelapp, for new customers, after talking about it for years.

I should have done it years ago, but the risk of the floor falling out from under me scared me off. Better late than never!

I'm much better prepared to handle the initial financial shock today, and as I've migrated everything to StoreKit 2 I've been really impressed by how easy Apple has made it to implement subscriptions

Why subscriptions? A one-time purchase revenue graph, even for a moderately successful app, looks like this. Yet work required only increases in complexity — Pastel has had 40 multiplatform updates since it launched in 2020, including two system UI redesigns, and a whole new OS (visionOS).

One-time purchases just aren't sustainable, unless the product itself is also one-and-done — and that's just not possible on a moving target like Apple's OSes. Revenue can't be inversely proportional to time

I've tried to make Pastel's subscription pricing as unobtrusive as possible. As it stands:

• Existing paid users are grandfathered in and don't have to subscribe
• New users can subscribe for $2/mo or $10/year, with two-week free trials
• If you are on an OS version that I know won't be supported going forward (though I haven't decided to drop support yet), you won't see subscription options at all, only the legacy one-time purchase (now $20)

TL;DR, if you already own the app, you won't notice

@stroughtonsmith I use it often enough that I’d be willing to “tip” through the app since I paid for it years ago.
@DanMorgan the subscription options are open to previous purchasers if they go looking, but I don't have anything like a tip jar. Thanks though!
@stroughtonsmith I did that with Overcast. I think I’ve tried to give Marco money in several ways.