You don't diss Vaporeon in front of me. She's strong in GO with possible max CP exceeding 3100 and still one of top Pokémon, but more than that, I love her since little. It is my decision to spend my stardust on them and plan to drown this city with them. My top 3 Vapie still stay safe near me and I look to get more outstanding ones to drown gyms with.Evolving during day = espeon, night =umbreon this is demonstrated through the coloring of map.
Source: after a google search I found the article https://www.google.com/amp/bgr.com/2017/02/21/pokemon-go-eevee-espeon-umbreon-day-night/amp/
So basically, you are using stardust on something that won't be as strong as the gyms you face. Hacks save people money on things they would spend dollars on to purchase pokecoins.
Remember, this is just a way to get 100 coins a day from having 10 good enough Pokémon that will stay in gyms, and catch Pokémon to catch up to stronger Pokémon that other players have caught. It's not like I'm hurting Niantic, 100 coins only buys an incubator every other day. It's not illegal, for all I know, people who use he hack wouldn't have spent money anyways, so no one can say that I prevented a sale.
Now in to some gym tips:
Basically the best method is to have a few Pokémon 2000-2500 cp that are strong enough to challenge gyms, while still being weaker than the gym'a lowest cp Pokémon, so you can lower the enemy prestige more or raise your team gym prestige more. (Having a lower cp team increases the amount prestige you earn, while having higher cp decreases the amount you earn or remove from a gym- based on your highest cp in your team to challenge the gym weighed against the lowest cp of the gym you challenge).
Then have up to 10 very high CP Pokémon to save for the gyms you plan to get coins from, without using them as attackers: this way you never have to worry about not having a potion or revive when you need to put your strongest in the gym- as anything you want to deposit has to be at full health.
The easiest way to do this is to have a nickname for the 2000-2500 cp Pokémon such as putting a ~ before the IV% such as naming a 91 IV Vaporeon: ~91%
You can then sort the Pokémon by name, letting your gym attackers come at the top due to their nickname, and you can determine which ones you need to use to challenge the gyms.
Lots of people challenge gyms without knowing the fastest ways to earn points or lower points, or worse, they raise a gym or defeat it, but can't put their best Pokémon in the gym because it isn't at full health.
Oh, and it IS illegal. The TOS says location falsification is cheating while we here literally walks to play. I heard in latest interview the N'tic higher-up does know spoofing is a major problem and he looks to find a way to block this.
Problem with what these do is that these are one of the reason gym stagnate in the first place. Starting from laziness, this makes unfair advantages that will gives the cheaters easy way to get strong things without doing much. This easily moves up the lowest CP threshold in gyms. This is why I oppose them and try to open up gyms for new players when I can; it's not just the devs hurt by giving away coins, but the new players unable to compete and enjoy the gym feature with that high levels.
At least I have specialized gym trainers. Umbreon and Lanturn works very well even at 1300. I always keep specific +/- 1400 mon as training team and operate training in these range and they work very well.