Let's be real here—the HTC One M9 was not a good phone, but the HTC 10 is. The only problem is that it's very expensive at $700. Now, HTC is knocking $100 off the price through the end of July, but the deal is only valid through HTC's online store. This probably would have been a better starting price.

At $599, the HTC 10 is a more attractive option. That makes it cheaper than the Galaxy S7 variants sold by carriers or unlocked. You have the option of picking up a carrier version of the HTC 10 or the unlocked version. There's no AT&T device, but you can get Sprint, Verizon, or T-Mobile. The unlocked phone is GSM/LTE, so that's the one to get for Tmo or AT&T as the price is the same.