Pokémon GO's evolution and resurgence into the public eye has brought the phenomenon to new levels, and yet, it still lacks one thing that holds it back from being called a "game," direct interaction with other players. All this ends this month when Niantic finally brings PvP to its game, effectively destroying all of the friendships you might have made through the game so far.
Local battles can be fought between anyone within range of your game, but only Ultra and Best friends will be able to compete online. Currently, trading, gifts, and completing raids with one another are the best means of increasing friendship levels. From there, Pokémon GO will have two separate leagues depending on the CP power of your Pokémon. The Great League has a cap of 1,500 CP power, while the Ultra Leage lets you compete with Pokémon capped at 2,500.
From there, it's a real time internet connection or a Battle Code QR code scan away from fighting.
In battle, you'll be able to use Fast attacks as you do in any gym battle, but Charged attacks will require Candy and Stardust to refill for repeated use. Stardust is among the most valued currency in Pokémon GO, so we assume the rewards for battles will be worth the price you pay to win.
We'll find all this out later this month once PvP finally goes live on Pokémon GO, for Android and iOS.