As a dev, StoreKit sucks. StoreKit 2 basically fixes all the development pain points, but is iOS 15+ only so basically unusable for everyone until late next year. Payment models are limited to basically paid, free + IAP, free + subscription. No real trials, no paid upgrades, no configurable subscriptions (IE pay for 1-X seats.) That leads to things like Twitter's setup where every plus account has an individual subscription SKU.
On the code side you have to run your own backend purchase server because there is a ton of subscription information that is only relayed to the server (Cancellations, upgrades, downgrades, cross grades, billing problems, etc.), as the app has no way to know directly (Until SK2.) Services like RevenueCat help small devs deal with this, but then you have another cut out of your paycheck.
Things like price testing require more backend setup because Apple offers no way for an app to grab product information from themselves (You have to know every identifier, there is no way to just request "all available IAPs" via StoreKit.)
So basically, there is a ton of room for improvement on the dev side, and a lot of easy wins for someone like Stripe to capitalize on.
As a user, I don't have many complaints, other than not having an easy way to request a refund, other than finding the App Store email address and pleading your case. It should be something you can do via your purchases screen directly. As a dev, not being able to issue customer refunds sucks, as many users will think you are dismissing them by saying, "You've got to ask apple for a refund."
On the code side you have to run your own backend purchase server because there is a ton of subscription information that is only relayed to the server (Cancellations, upgrades, downgrades, cross grades, billing problems, etc.), as the app has no way to know directly (Until SK2.) Services like RevenueCat help small devs deal with this, but then you have another cut out of your paycheck.
Things like price testing require more backend setup because Apple offers no way for an app to grab product information from themselves (You have to know every identifier, there is no way to just request "all available IAPs" via StoreKit.)
So basically, there is a ton of room for improvement on the dev side, and a lot of easy wins for someone like Stripe to capitalize on.
As a user, I don't have many complaints, other than not having an easy way to request a refund, other than finding the App Store email address and pleading your case. It should be something you can do via your purchases screen directly. As a dev, not being able to issue customer refunds sucks, as many users will think you are dismissing them by saying, "You've got to ask apple for a refund."