Software that natively facilitates public key exchange would be a really good start… if iMessage had the ability to read in a public key from one of those face-to-face meetings and use that key for communicating with that person suddenly Apple’s ability to become a bad guy is severely diminished (unless they put backdoors in their code, which is another problem entirely).
Basically give every app PGP and we’ll have a more secure world than we do now. Just gotta worry about user education (oh is that all?).