By now, it's well known that Pokémon Go sucks. My biggest problem with it is just how shallow it is. It's like a minimum viable product with a vaguely addicting gameplay loop.
Here is a short list of ideas that could've made the game more interesting. Pretty much every problem boils down to "but implementing this would've made us lose money"
Pokestops could've been "typed". Like "hospital" could've been a free heal or have better healing item rates. "Museum" could've been the place to get fossil Pokémon, or maybe revive fossils that you find from regular stops. Maybe a grocery store would've had better item rates. A school could've been a move relearner. Maybe some Pokémon only evolve at church, or at an amusement park. The lures could've done something similar, turning normal stops into typed stops. They had so much power at their disposal. They ran on Google maps, ffs.
The friend system is just so stupid. For some reason, it's the best way to farm items? Why can I send a gift at no personal cost to someone else and they receive items? This caused communities to form where people just share friend codes. Also, the fact that theirs a limit to how many you can open a day, and that each one must be opened individually taking about 10 seconds is to cause you to form either habit or routine.
Friends should be people you know or maybe people who live in your area, so you can get to know people.
The battle system is weird, but I don't explicitly hate it. It's more interactive than mainline, and that's fine.
The shadow system is dumb, and designed to be extremely addictive. A small rotation of Pokémon with higher attack, lower defense isn't a horrible idea. But the rates are so hard you're encouraged to log on just to fight rocket balloons.
Why does trading randomize stats? I'm obviously trading because I want their Pokémon. Not just any Pokémon of that species.
Why is there no way to increase appraisal stats? This is what the buddy system should've been. Like raising stats of a Chao from Sonic Adventure 2. Work hard, and reset the Pokémon frequently to slowly increase their stats overtime. Maybe every 10 km as your buddy increased 1 IV by 1 point. This would've been great for Shiny Pokémon. Instead, having a good shiny just means you're lucky.
I hate the limited time moves so much. If you evolve your Pokémon at the wrong time, it can be less than half as useful. The only fix is to pay a lot of money for an elite TM.
I hate the dumbed down battling system. Why can't CP be a function of level and stats found in a regular pokemon game instead of one number to rule them all, and have the battles be like the mainline games?
There are numbers behind the scenes that correspond to attack, defense, speed, and hp which when weighted create CP. The weights are favoring attack and hp.