Is it secure to allow all game clients in a multiplayer game session to store sensitive opponent player data which should be revealed in the UI only upon a certain action (e.g. enemy building type only revealed after the player has hit the building) to save network traffic? Clients could then calculate public ("visible to them") information to render on the UI on their own after the action has taken place (without the need for a response from the server providing the type of building which was destroyed in this example). Or is this approach too insecure, provided Android app data can be compromised revealing sensitive opponent information, which otherwise would only be revealed on demand while progressing through the game session?
My personal opinion on this is that if it's a competitive game, the information should not be available on the client until it's ready to be shown to the player.
The League of Legends launcher at one time knew the names of your opponents, but displayed "Summoner 1", "Summoner 2" etc. So a few times someone said in the pre-game chat "Hey Summoner 1 is an Ahri main. Ban Ahri."
Give your players as little opportunity to cheat as possible.