Many of the best snorkeling and underwater photography areas are offshore at coral reefs or around uninhabited islands; you'll have little difficulty in finding a boat to take you out.
The best snorkeling locations are found in the harbors and just offshore of the main beaches, which you can swim to.