Now if I'm working for someone else, then sure! But, say, an author, who can no longer edit their old works for a republication? Not a chance.
I also think there just are hard limits in what’s a sustainable business. E.g. Small, indie, bespoke notes apps probably can’t support even one person long term regardless if it’s a one time purchase, subscription, paid upgrades, or any other pricing model.
Your app updates go to everyone, even if they've stopped paying their subscription.
So it becomes really tricky to sell a subscription on iOS where, once lapsed, the user can continue to use the latest version available at the end of their subscription.
One way to do this is to have feature unlocks based on a timeline (Working Copy, an iOS git client, does this). Where users continue to receive a subset of features but some new features are locked behind a yearly upgrade payment. This requires littering your codebase with checks that certain features are unlocked based on the user's latest yearly purchase.
I'd love official support for the JetBrains / Sketch subscription model on iOS. As a developer, I would feel bad locking my paying users out of features they paid for just because they stopped subscribing. But I also really can't be bothered spending months developing a robust in-app-purchase feature locking mechanism to work around Apple's limited set of purchase options
Sure, Apple could stop letting users get updates if they stop subscribing but then you have no way to ship ANY updates to that user on an older version. I'm honestly not sure if JetBrains ever ships bug/compatibility fixes for older versions but for apps that are half-free/half-subscription this would be a huge problem. How can I convince people to restart their subscriptions if from their perspective the app has been stagnant since they stopped subscribing? And/or do they even have the option to go to the latest version and just use the free features? Now we are back into the "littering your codebase with checks"-hell that I agree would be terrible to maintain. I'm not giving Apple a pass in the slightest, but I'm having a hard time coming up with what the "gold standard" would be where you could support something like this.
JetBrains has all but deprecated this AFAIK. I pay for my JetBrains tools annually and I'm perfectly ok with that. If I ever want to stop paying then I just fall back to the version of software at time of renewal [0]. I'm more than happy with this situation as it lets me get the newest features ASAP while giving JetBrains the "guaranteed" income stream. Major versions every year or so lead to a feast/famine situation for the developer and I'd rather get a feature right away instead of having to wait till they have enough features to justify a paid release.
Can subscriptions allow bad actors to act poorly? Yes, but then I can just cancel my subscription and find someone better. Maybe I'm in the minority but I don't mind subscription-based things if I feel like I'm actually getting value out of them. It lowers the barrier of entry, encourages/incentives continuous improvement, helps developers plan for the future better, and it lays stark the realities of development (if you want ongoing features/fixes you need to pay for them).
[0] https://sales.jetbrains.com/hc/en-gb/articles/207240845-What...