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
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
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…
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
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
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
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
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 😄
This *is* a nice API!
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!
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
All of this is subject to change in the future, but I have no plans to do so. And this model, by and large, is what I will be doing with @broadcastsapp with Broadcasts 4.
There is so much I'd like to be able to do in both apps that requires investment, and the only way I can justify it is if the revenue line is going in the right direction, otherwise that time needs to go into new products. I would like to do both things! So Pastel gets to be my test case, and we'll see how it goes
True.
That said, I surely would like more software to be “done”. Like, you’d pay for that year’s version, expect only updates for that calendar year.
Want another year of support or new features? Pay for the upgrade, at a discount or not.
I remember some iOS apps with that business model: “buy” and get a year of updates. Want another year? That’s an IAP.
I’m not totally averse to subscriptions, I subscribe to a few. But some apps don’t present a clear case for this model to its customers.
In this I can not subscribe after the first year and keep the app as it is at the end of the timeframe I’ve paid for.
If, say, 3 years down the road the app ain’t working or gets a feature I want, I’ll pay for that year only, not the previous two in which I didn’t want/needed it changed.
Weird. I clearly remember Agenda (https://apps.apple.com/br/app/agenda-notas-mais-calend%C3%A1rio/id1370289240) advertising this.
That said, 1) it should be possible; 2) I’m not limiting my argument to App Store apps only, but all apps.
I’m basically asking for more apps being “bought”, like the norm before app stores. E.G. Adobe’s apps before the subscription model, like CS6. This is still possible.
@stroughtonsmith @gereon I hear^Wread you.
Nevertheless, OTOH, if I would need to subscribe for every utility I paid for in the past, I would need another tool to keep track of my subscriptions.
And as all subscriptions are different, I would need to manage these cases, at least:
- subscription expired? no new updates/features, but security/bugfixes, otherwise have fun with the software
- subscription expired? no security/bugfixes, but software keeps running. YOLO
- subscription expired? its license is checked against a license server, you lose access to your software (and maybe data created with it)
- subscription expired? the backend services somewhere else stop working, rendering the software useless
- what is this $2.95 cost a month on my credit card/Google Pay/whatever from CoolCompanyNameThatsImpossibleToGoogle Inc. ???
And now guess how well my dad or my aunt could distinguish this and decide.
That’s why I avoid subscriptions whereever I can. I tend to lose track of ’em. Either I pay too much, not using it. Or I lose the stuff bound to it. Either way, I’m unhappy.
YMMV, my arguments are not bound/related to _your_ software, just generic ramblings.
You could keep the one-time purchase active for security updates, but offer newer features for purchase.
@stroughtonsmith What about paying for updates. Like a base model that you can buy, then if you want continued updates you can either subscribe to that or pay to get updated to the last major release?
-Edit: it seems like I am not the only one thinking of this
@buck but it doesn't search the sidebar. The sidebar can be shown/hidden. The circle buttons don't apply to the sidebar either. And the search field always goes top-right in a Mac app.
So what is the alternative?
I sized the search bar such that it intentionally overlaps, so users aren't confused by what they're searching. I think that's the best user experience