Friday, August 29, 2008

The iPhone 3G: A Hate-Love Relationship

My advice, in a nutshell: if you don't own an iPhone, don't buy one.

In a word, the iPhone sucks. No, really. I'm not kidding. The platform is buggy, unstable, hella slow at email over 3G or EDGE, and totally violates the Principle of Least Astonishment in many, many, many circumstances. Mail doesn't have junk mail filters (no kidding). Safari has no ad blocker. Safari doesn't cache web pages (meaning they completely reload when you go forward or backward). The Calendar program randomly assigns colors to your iCal calendars when you import them, unless you follow this strategy to hack around the problem. There is no Java support. There is no Flash support. Frequently, I cannot get published procedures for moving data to and from the phone to work (such as getting photos on the iPhone to sync to a folder or to Aperture automatically - though the reverse works fine). And Apple maintains far too much control over the application distribution process than it ought (including being able to remotely disable a user's application).

On the flip side, the thing is a rockin' iPod with amazing video quality for such a small device. Full-frame motion is liquid smooth, sound is good, and subtitles appear reasonably large on the screen, enabling me to watch foreign media at the gym without difficulty. Similarly, the phone itself is great. Comfortable, clear (on both ends of the call), with by far the best interface for placing calls I've ever seen. That aspect works exactly like it should. Visual voicemail is revolutionary - especially as someone who hates having to check voicemails because of the amount of extra time it takes to dial in, listen through the prompts, weed past voicemails (in order) to get to one you want to listen to again.... Many of the third-party apps are wonderful, truly giving the device the potential it should have had at launch last year.

The above reasons are why, even though I say don't get one, I won't be able to get rid of the thing. It's a hate-love relationship. I hated it first (and still do, about daily), but I love it enough that I can't let go.

If you're a glutton for punishment, the rest of the post details my dislikes about the phone. Where applicable, I'll point out workarounds for things I've noticed (so that this is more than a rant).

Instability. Let go of any doubts. The machine is a computer. That will make this paragraph a bit easier to swallow. Like a computer, the longer you use the thing, the more failures and crashes you'll see. Yes, crashes. No kidding. On an iPhone, a crash manifests in two ways: 1) the app you're using vanishes and the home screen reappears and 2) the phone locks up for a while (iBrick) and then restarts. (1) is the most frequent, as you'd hope, but (2) has happened to me.

From all reports I've seen, this is not the fault of the app designers in most cases. I believe it: the Settings application (think System Preferences on a Mac, or Control Panel on Windows) crashed on me while I was viewing information about the device (such as the number of videos or songs on it). Repeatedly. As did Mail. And Safari. Note that those are not 3rd party apps.

Like a "real" computer, the solution is to restart the thing. No kidding. I do this about daily now. As soon as an app crashes, I restart the machine. Which takes a while (just like a real computer!) but fixes the problem.

Steve has said that Apple knows about this and will be fixing it in September. I'm hopeful, but not terribly optimistic.

Slow Email. If you've never used an iPhone, you'll like be appalled by how long it takes the device to connect to a mail server to check for new messages. Over both EDGE and 3G I've seen the thing take upwards of a minute just to connect - i.e., before it starts pulling down data. And that's when I have full signal strength. Now, reports out there indicate that slow speeds have more to do with carriers than the phone. But I've abandoned checking email and pulled up Safari to see if it's a systemic problem rather than something local to Mail and had no trouble retrieving web pages - which makes me think this is a Mail-related issue. I can only guess at the cause, so I won't bother recording my guesses here. Just be forewarned: pulling email is hella slow on the iPhone right now.

The Principle of Least Astonishment. Far too often, the iPhone does something that just doesn't make any sense to me at all. The iPhone Calendar color issue (below) is one such example. So is the lack of junk-mail filtering.

Calendar Colors. I have 5 calendars in iCal: one for work, one for home, one for travel, and two that "belong" to Tracy (so I can keep track of what she's up to and not bug her while she's in class). My work calendar is green, home is blue, and travel is orange. They've been that way for - well, for as long as I've used iCal, which is about 4 years now. So you can imagine my astonishment when I synced my calendars to my phone for the first time and saw that a telecon I had listed under Work was red. I immediately thought the phone was trying to tell me I'd missed the meeting or something (which was not true). It was only when I backed up a level to look at all of my calendars that I discovered the thing had assigned red to my work calendar, orange to home, and blue to travel. I was so shocked, I figured I must have done something wrong. I still cannot fathom what Apple was thinking in not ensuring that when transferring calendars from iCal on a Mac to an iPhone using iTunes (not the complete chain of Apple software/hardware) the colors didn't map. Honestly. Who thought that was a good idea? That's something I'd expect out of Redmond! The kind of thing that makes me ask, "Do these guys use the software they write!?"

The workaround, is equally worthy of Microsoft: you have to remove all of the calendars from your iPhone and add them back one by one in a specific order to get the colors you desire. This is an Apple product for heaven's sake. Say it with me: "What were they thinking?"

Junk Mail Filtering. Mail on the iPhone does not filter junk mail. No, I'm not making this up. (At time of writing, that Google search returns 1.6 million pages.) Your only option for not seeing junk mail on your iPhone is to use server-side mail filtering. And if your email service doesn't give it to you, you're out of luck. Let's say it again: "What were they thinking?!"

All of the published workarounds involve either setting up server-side filtering (not an option for most people, since most people don't host their own email server) or routing everything to Gmail and letting Gmail do filtering for you. The latter is a good idea, unless you're a professional. In that case (in my case), your company likely doesn't want you taking company property (your email) and sending it to Google for archiving and caching. Which isn't terribly surprising (though I'm trying to convince my company to allow that).

No Mark as Read. While you can delete (and even multi-delete) email messages on the iPhone, you can't mark messages as read. This may not sound like a big deal, but it is. It means that if you're on the road and you get 20 email messages from your POP server that you don't want to deal with, you can't take away the 20 on your Mail icon on the phone. You actually have to download each message one-at-a-time (by "reading" it) in order to take away the "new" flag. This is just silly. Especially if you POP your email from multiple machines (i.e. a Mac and an iPhone): you have to "read' the message in both places. This just doesn't make sense.

Implicit in this is that the first time you POP email from an account onto your iPhone, it will present you with 50 marked-as-new old messages. And since you can't "Select All," even multi-delete is painful. You just have to either check all of them, one-at-a-time and then delete them all or read through all of the messages to clear the "new" flag. Ridiculous.

No Java and No Flash. Now, in a way, no Flash on the iPhone might be viewed as a good thing. It means any Flash-based ads won't play, which limits a lot of annoyance while browsing. On the other hand, many sites make heavy use of Flash to deliver content to users: without Flash, they are entirely crippled. This is dumb on Apple's part. So is the lack of Java. There's a lot of useful stuff out there that runs on Java - and Java is a popular development language for getting cheap, powerful apps built.

Which might be why it's missing. Apple is quite insistent (as always) on maintaining as much control over what's going on as possible. The folks who built Adium have an interesting take on Apple's NDAs surrounding the iPhone SDK. Basically, because of the way Apple treats information in the SDK related the iPhone, anything developed under the GPL can't be ported to the iPhone because it would entail public release of information in the SDK. This is both dumb and bad for business: it will reduce the number of applications ported to the iPhone which, in turn, will turn people off of the iPhone and onto phones based on Google's Android OS.

Too Much Apple Control. The above discussion segues nicely into this one. Apple has far too much control over the application distribution and installation process. Even to the point of remotely disabling an application you have installed on your phone. This is ridiculous. I like Apple and all, but I for sure don't want them to mess around with applications I've put on my phone.

The App Store, as convenient as it is, has other problems. 3rd party apps intended to de-cripple your phone have been killed by Apple: Netshare, for instance, was pulled by Apple because it (apparently) allowed you to sidestep and asinine restriction on iPhone use placed by AT&T. AT&T, from all reports, does not allow you to use your iPhone as a modem through which your computer can access the Internet. This is silly, since you're paying $30 for the data plan with the phone. But AT&T wants you to have to pay extra for that. So they (apparently) made Apple take it down.

Quite frankly, I don't care at all about violating AT&T contracts. If they're silly enough to impose ridiculous restrictions on the use of their network, I'll do what I must to circumvent said restrictions. Since I cannot get service through my iPhone through another carrier, it's not as though I can take my business elsewhere. So what infuriates me is Apple playing party to AT&T's greed and assisting in the (typical in the cellphone world) crippling of a product.

No External Keyboard. Here's a thought. You've got an iPhone - a device with a good screen, a good OS, a good amount of memory. Why not hook up a keyboard and take notes on the thing in meetings, so you don't have to lug around your laptop?

Because you can't hook up a keyboard. At all. Period. Not through bluetooth. Not through the Dock connector. Say it again with me: "What were they thinking?" Palm and Handspring have had this forever. It works great. Why did Apple miss the boat here? No one seems to know. (Oh - and if you see the MacWorld article about the Macally keyboard for the iPhone, do note that it's vaporware.)

Turn-by-Turn Navigation. As of this writing, there is no turn-by-turn navigation for the iPhone. You have Google maps, you have a GPS, but no nav that's useable while you're driving. It sounds like a sick joke, but it's not. It's just not there. Honestly, how could they launch the product without that? It just gives their competitors more advantages over them in the marketplace. TomTom has hinted at a release for the iPhone, but there's nothing there now. (Note that this claim that the phone is incapable of turn-by-turn nav is total and complete drivel and is not to be believed at all.)

Safari. Sucks. There are numerous problems with Safari on the iPhone. The first one you'll likely run into is that Safari doesn't remember zoom level between page loads. This is horrible when viewing a site like Time.com (not mobile.time.com, note). I set up the zoom level to fit the text of the article across the screen and comfortably read the page. But as soon as I go back, or click next in a multi-page article, the zoom level is reset and I have to do it all over again. Now maybe this is a good thing if you jump to a different site: you might not want the same zoom level. But when browsing within a site, it should at least be an option.

Which is a problem in and of itself. There are no options. No preferences. Well, none to speak of. All you have control over is JavaScript, Plug-ins, Pop-up Blocking (at least that's not missing), cookies, and your search engine. Nothing else. No default zoom level. No default page to load. No caching behavior. No "what should I do if you browse onto something that offers a mobile site."

Those last two are big for me. I don't want to reload a page completely if I back up. When is that ever the right thing to do by default? Especially on a mobile device with a low-bandwith connection? Last night, I accidentally clicked the wrong link from a page. I hit cancel. I hit back. And waited 2 minutes while the page I had (barely) left reloaded. Just so I could zoom in and click on the correct link. Do Apple engineers only use their iPhones on campus where they have free, fast wifi? Is that even possible?

And how about mobile versions of sites. I don't want to see time.com's mobile site. I just don't. I want to view the same site that I see at my desk on my computer. And why not? Isn't that one of the selling points of Safari on the iPhone (at least, according to Apple)? But if I click on the link to Time's homepage, it redirects me to the mobile version. Every. Time. And then I have to click on another link (after the page has loaded enough that I can see it) to take me back to what I wanted in the first place. A bookmark solves that problem for Time, but I still have to go through the same rigamarole on any other site that offers a mobile version. Really. What where they thinking?

And finally. No ad blocking. I know - there's no ad blocking on Safari on the Mac. Why would I expect it on the iPhone? Well, there is ad blocking for Safari on the Mac. It's a plug in, and it's called PithHelmet and it works great. If you're not using it, you should be. Unless you like ads? But back to my point: ads suck. They suck up bandwidth and they're irritating. I suppose it's not surprising that Apple doesn't provide it by default. But it is surprising that the SDK doesn't give you the power to extend Safari in such a way that you can do ad blocking. (Of course, if you could, Apple would likely pull the app with that too-much power they have.) Currently, the only way to get ad blocking in Safari on the iPhone is to Jailbreak your iPhone.

Jailbreak. Ridiculously, Jailbreaking is still a highly desirable activity if you own an iPhone. You'd think Apple would have fixed that in their updates, but as I've chronicled, they haven't.

I've not Jailbroken my phone yet, so I'll hold off on going into detail on that in this post.

Conclusion. The legacy of Apple products - or the legacy that Apple has assumed for itself - is that they just work. This is woefully untrue of the iPhone. You could easily push back against my post and point out that none of this is even applicable to any other phone, so Apple has obviously accomplished a lot. You'd be right: they have. It's an amazing device. But my push back is this: I shouldn't have to search for the things I like about it. But I do. If you ask me to name 5 things I love about the iPhone, I'll choke after 3. But if you ask me to name 5 things I hate about it, I'll give you ten in no time.

That's not the way things should be. Technology should just work. The iPhone doesn't. It's yet another Almost product from Apple. And I'm getting rather tired of those.

No comments: