I published my first app last year (some dumb, useless, throwaway thing just so I could learn the process) and it's a nightmare from that side as well. For example:
The part that bothers me the most is that App Store search results are so keyword-oriented that the name of the app is often obscured.
Take LinkedIn for example. I got a new phone, so I wanted to download the LinkedIn app. I search for LinkedIn. My top result is "LinkedIn Job Search & News". That's actually the main app, but it sounds like some weird offshoot, sub-app that I don't want, so I scrolled past it. Surely there must be a way to separate the actual name of the app from the more subjective search terms?
Developers have to do this because the way Apple and Google rank app store search results. It's the reason app descriptions are so useless these days. Everyone is just trying to cram as many keywords into the app name, subtitle, description, etc. because they'll calculate a rank based on how many times certain keywords appear. Step one: make it impossible for people to find apps and for newer or smaller developers to ever get any kind of decent visibility. Step two: start letting developers buy ads in the search results. Step three: profit.
At least in the App Store you could enter up to like ten keywords outside of the description/title/subtitle to help users find your app, but on the Play Store everything is driven off the title and description.
Subscriptions and gems and all that are only going to become even more popular because of various reasons:
1. Cloud infrastructure means app developers have to pay every time a user reads a record from a database or writes a new row or executes a cloud function or looks at the app funny. It's difficult to estimate costs because you don't know, at the beginning, what usage patterns will be. Cloud contracts are obtuse and nearly impossible to parse. You think you understand how much it costs for a user to load a certain screen and then it ends up costing ten times as much because the cloud provider randomly decided that particular query shouldn't hit the cache so you end up consuming a ton more resources than you expected. App subscriptions and limiting usage and forcing people to buy more of "something" to continue playing/using the app take some of that risk away by ensuring heavier users are still paying for what they're consuming.
2. App store users don't want to take a risk and buy an app up front that ends up being trash. So "lite" versions of the app with an IAP to unlock the full experience have become more popular. But if you just offer a one time unlock you still have the issue from point one above and run the risk of losing money if you end up with a heavy user. Compounding this is that actually implementing IAPs is ridiculously more difficult than it needs to be (for example, you can't test IAPs on the iPhone emulator. You need to have an actual iPhone device just to make sure you've implemented the IAP correctly) so it's tempting to just forgo the IAP and make it a flat subscription for everyone.
3. Apple's ad tracking policies are great for users but suck for developers, especially independent developers. Targeted ads pay better than non-targeted ads, but they still don't pay a lot. Apple was really smart to use this policy to position themselves as a champion for user privacy but let's not kid ourselves. By making it more difficult to make money through ads, of which Apple does not get a cut, developers now have to turn to other forms of monetization: paid apps, IAPs, or subscriptions, all of which Apple takes a cut. The end result is increasingly predatory apps that Apple is more inclined to let slide because they're making Apple money.
The whole experience sucks for everyone involved, now. It's increasingly difficult for independent developers to get a foot in the app store door, so the industry consolidates and all the top apps are from bigger companies or startups that have rounds of investor funding and can afford to not make money until some point in the future where they'll hopefully be bought by a bigger company and then it won't be their problem any longer. This then sets unrealistic expectations as to what an app should be for independent developers who can't afford to lose money and so they have to charge more or avoid implementing some features and then actual innovation dies out and you end up with a place full of shovel ware and a frustrating user experience from beginning to end.