What determines how fast a Main Move becomes charged in Pokemon Go?

Solution 1:

What determines how fast a Main Move becomes charged

The energyDelta of both the fast move, and the charge move. Every time you use a fast move, you get a certain number of energy. A charge move requires (and consumes) some different amount of energy.

You also receive some energy for taking damage, but this is completely independent of the actual moveset so the finer details of that is the topic for another question

How can I tell how quickly a main move will charge/recharge in battle

By looking at the GAME_MASTER.json file (warning - this is a 400kB plain text file and will almost certainly crash mobile devices).

For example, here's the fast move MUD_SLAP:

{
    "templateId": "COMBAT_V0233_MOVE_MUD_SLAP_FAST",
    "data": {
        "templateId": "COMBAT_V0233_MOVE_MUD_SLAP_FAST",
        "combatMove": {
            "uniqueId": "HOLO_POKEMON_MOVE_V0233_MOVE_MUD_SLAP_FAST",
            "type": "HOLO_POKEMON_TYPE_POKEMON_TYPE_GROUND",
            "power": 11.0,
            "vfxName": "mud_slap_fast",
            "durationTurns": 2,
            "energyDelta": 8
        }
    }
}

And here's the charge move EARTHQUAKE:

{
    "templateId": "COMBAT_V0031_MOVE_EARTHQUAKE",
    "data": {
        "templateId": "COMBAT_V0031_MOVE_EARTHQUAKE",
        "combatMove": {
            "uniqueId": "HOLO_POKEMON_MOVE_V0031_MOVE_EARTHQUAKE",
            "type": "HOLO_POKEMON_TYPE_POKEMON_TYPE_GROUND",
            "power": 120.0,
            "vfxName": "earthquake",
            "energyDelta": -65
       }
    }
}

Mud Slap has an energyDelta of 8, so every time you use it you gain 8 energy. Earthquake has an energyDelta of -65, so you need 65 energy to use it. This means that you need to use Mud Slap 9 times before you can fire off an Earthquake (although realistically you'll end up gaining enough energy from taking damage to do it in 8).