tl;dr: The only competition (IMO) is the LG G3, and IOS makes the difference (IMO).

I've owned a Nexus One, Samsung Galaxy S2, Moto X and LG G2.

Only the G2's camera was decent, but it seems a fairly broad opinion that the iPhone 5's camera is the better of the two.

Aside from the original iPhone's lack of video recording, I've found iPhone cameras to consistently be best of breed.

As far as MicroSD: I rarely felt a pinch at 64GB. With higher resolution video (and bigger apps/games over time) I think 128GB will probably serve pretty well.

It used to be that the MicroSD expansion on Androids was pretty limited. I've been told that's changed, but I wouldn't know since my last Android didn't have it.

As far as battery goes: I much prefer an all-day battery over swapping. I found the iPhone 5's battery to last quite a bit longer than the Moto X or G2 with similar usage patterns. It's also smaller and much quicker to charge. Sort of like trickle-charging a Tesla vs a Leaf I guess. Bigger isn't necessarily always better. If your battery is twice the size, but your phone consumes twice the power under active use, then all things being equal you're going to double your charge time.

All things aren't equal though as the 12w charger will take an iPhone from empty to 80% in what... 30 minutes? The G2 might recover 30% of it's charge in that time if I'm lucky.

And no swappable battery.

So what does have a swappable battery, a really good camera, has 128GB of storage (or can be expanded to it), and runs Android? That's a very short list I think.

The Moto X had a terrible camera at launch. After patching it was much improved, but still feel far short of the iPhone. The X+1 only has 32GB of storage (that I can figure out) and no MicroSD.

No Nexus device qualifies. Terrible cameras, no SD, no battery replacement.

Off the top of my head that leaves the G3, HTC One M8 and Samsung Galaxy S5 (might as well throw in the Note 3/4 as well?).

Personal tastes and all, and I'm definitely in the vast majority of opinion on this, but I think the HTC is one of the uglier phones I've seen. Just don't care for it at all.

The S5's shots in the camera reviews I could find seem pretty consistently over saturated and blow out detail, especially in faces. It's admittedly one of the best Android cameras I've seen. The 5S camera OTOH does seem less exposed in shaded shots. Maybe it's just personal preference, but I feel like I'd rather preserve the detail and let Google Plus Photos Automagic Enhancement, or iPhoto Enhancement make a photo more punchy if necessary, than losing detail.

Plus I don't take my kids to a lot of bars. So it's important that under sunlight at the zoo the shots aren't blown out. Under normal interior lighting conditions the iPhone seems to take the best pictures of people by far from the reviews I could find.

The G3 comes closest to meeting the requirements and earning the bonus of "best out-of-box experience/least crapware". Maybe that's moving the goal-post a bit, but it's still important to me in the same way it's important to Nexus users. The Samsung... meh.

My biggest frustration with the G2 was slow charging and that STUPID FCKING MENU BUTTON*. I think the G3 is a definite improvement on both counts.

That's my trouble with Android phones I guess. Lots of them have compelling features. But very few offer the whole package. It's not so much Android vs iPhone at this point. It's an LG G3 vs iPhone 6.

In that case, I think an iPhone 6 Plus with IOS8 wins on everything but price (it's easily $300+ more expensive). For me. Simpler interface. Similar storage. Faster. Longer battery life. Quicker charging.

Don't get me wrong, the G3 seems like a great value, and a legit alternative IMO. But I think the iPhone is the better package overall. I definitely prefer IOS's navigation over the app-drawer/menu in Android, I can count on 1 hand the number of times I found Google Now relevant or compelling over just using a Weather widget (I use Yelp, not Google, Passbook is better for Airlines IMO, but Google Now had the occasional suggestion for parks/museums for the kids on the weekend, which was a nice surprise a few times).

This is just me. I'm a flip-flopper. ;-) But I figure others like myself might find talkin' it out useful. Or at least consider the LG G3. Which seems like the most Nexus-like device with the most complete package that I've seen on the Android side of the fence.

I also like the Day-1 software updates for iPhones though. They age much better IMO, and they're supported much better. If you're an off-contract user like myself, it might also be nice to know that the $300 price differential probably goes away when it's time to trade it in. I just sold a G2 for $160 last night. That's a 12 month old phone. I can sell my temporary backup iPhone 4S for the same price. A phone three times it's age! Crazy.

Also, I've owned a Jeep Grand Cherokee, Nissan Leaf, and now Mazda 3. The iPhone Bluetooth or USB always works flawlessly with them. I'm lucky to get any Android phone I've used to connect 50% of the time. It feels like I have to reboot the phone more often than not.

Apparently this isn't a problem for some people. But across different vehicles and different Androids I've found Bluetooth connections to be very flaky. So much that I don't bother half the time unless I know I want to make a call on the drive home when I get in the car. Once a connection is established I've never had it disconnect that I can recall. It's just that it won't make the initial connection without a reboot. Turning on/off Bluetooth or Airplane mode seems to have no effect. This is with a Moto X and LG G2.

Oh, but one thing I mentioned previously: iMessage. It's hard to overstate how superior an experience it is forwarding the video you just recorded to another iPhone user. Hangouts is clunkier than iMessage and while I have a couple Android users in my family, getting them to figure out Hangouts so I can initiate a conversation with the right protocol so I can actually forward a video is something I haven't been successful at yet. So I have to upload to Youtube instead and forward them a link. Which takes a minute or two instead of a few seconds. The difference in user-experience is night and day for a parent on the run...