St John is the best. There are so many different beaches to explore. Hawksnest is our favorite. Trunk Bay is great, but tends to be more crowded. There is pretty good snorkeling there though so it's definitely worth a visit. Maho Bay used to be really cool, but they added improvements after the hurricanes. There is now paved parking, public restrooms and food and drink there now. Cinnamon Bay is another awesome beach.
For hiking, Ram Head is really good. On a clear day, you can see St. Croix. We've also done a few random hikes in the VI National Park, but enjoyed Ram Head the best.
For snorkeling, I think Waterlemon Cay is the best accessible by foot. It is a bit of a hike. Also, be careful of the currents depending on the wind. Trunk Bay is also worth doing. If you choose to do a charter, it will definitely open up more snorkeling options.
I'd highly recommend a charter or two. We prefer to go the private charter route to do exactly what we want verses the canned charters (some of them are really good too). Our absolute cannot miss when visiting BVI or USVI is the Soggy Dollar. It's in BVI so you'll have to clear customs but it's an easy process. Other cool BVI spots if you do a BVI charter are the Willy T, The Indians (good snorkel spot) and The Baths (long boat ride) for a few.
In terms of food, I really like Lime Out. It's like a floating taco truck/bar with craft cocktails. It's only accessible by boat though so it would have to be in conjunction with a charter. A few other places we like are:
Skinny Legs, Morgan's Mango, Miss Lucy's, The Lime Inn, The Beach Bar (for drinks), La Tapa and Woody's.
Woody's.
There is really so much to do it's impossible to fit into one trip. If you have any specific questions feel free to PM me.