Friday, October 15, 2010

What if you could install your own software?

I've had the Nexus One for 6 months now, and today was the first time I downloaded and installed software on it that wasn't from the Marketplace.

It was easy. I followed a barcode link, the pointed by Barcode Scanner app at it, and within 30 seconds, it was downloaded.

It was secure. After downloading, I was presented with the permissions the app wanted and asked to approve.

It was fast. I was up and running Angry Birds very quickly.

It didn't drain the battery. After over 2 hours of addictive play, my battery was still at 75%, which is pretty good for this time of day anyway.

So when you here people talk about marketplace fragmentation or the difficulty and dangers of downloading apps directly, just know that they're coming from an iPhone centric perspective and can't imagine what freedom really feels like. A little pity and a little understanding will get you a long way. They'd be envious if they knew better.

Friday, May 14, 2010

"I don't see a real need"

The unofficial motto of the Apple apologist is "I don't see a real need..." followed by something that Apple doesn't allow. Hot girls on your iPhone, games compiled from Flash, alternative browsers, South Park app, and today, let's add wireless syncing. jcmark42 on cnet's discussions, consider yourself famous.

As a former iPod Touch and iPhone user, I'll tell you exactly why I'd like that app. I live in a 3 story condo. The bottom story is a two car garage. The second story (from the back), is the entry level from the front, and contains a living room, dining room, and kitche. The third story has two master suites. My Mac Mini media center is in the living room, and my office is one of the suites upstairs. As I'm sure I have mentioned before, I enjoy my podcasts. Before my N1 arrived, I would have the Mac Mini download them into iTunes, and then plug in my iPhone to sync. Sometimes, I might forget to do that when stopping home in the middle of the day before heading out the gym. Sitting in my truck, I'd realize that and just want to sync those podcasts. It would take two minutes or so and save my knees from a trip up and down the stairs. So jcmark42, there's the real need.

As I've noted before, podcast management with Android is a lot more flexible, as there are several apps that can help you manage them on your phone much easier than how iPhone does it. So wireless syncing is less desirable for me now that I have the N1. But I'd have killed for it 100 times over when I carried my iPhone around. Oh, and pre-iPhone, when I have my iPod Touch hooked up to the Alpine car stereo, same deal. I could have left it plugged into the car to charge and let it sync when it got in range rather than have to carry with me to the living room every time I bought a new album on iTunes or wanted fresh podcasts.

Sunday, May 2, 2010


The iPhone was out of the drawer for a couple days... charging on my Mac Mini. I forgot about it until it let out a little beep this afternoon.

Chad Ochocinco is my boy... But, can't he be a little more polite with the push notifications? Not on iPhone he can't.

On Android, this would appear in the "notifications" area with other notifications and not interrupt whatever I am doing until I am ready to look at them.

With iPhone, you have to act or dismiss notifications one at a time, in order. With Android, if you have 5 notifications waiting, you can deal with whichever one you want to deal with first, or just clear them out wholesale. While iPhone might be simple, Android wins on elegance.

Saturday, May 1, 2010

2 Reasons HTML5 Canvas is Bullshit

Experiment time... Mac users, open a Terminal. Type the command "top". This will show you processes that are running and the resources they are consuming. Now, open this link in a new tab:

Wait for it to load, then click to start. While it animates, check out how much CPU Safari is using. On my 1997 MacBook Pro (dual core), it's using 90%+ of one core. It doesn't seem like such a difficult animation. And this is how the all-knowing Steve Jobs says we should do animation now instead of using Flash.

So here's a Flash example that appears to do a lot more animating:

On my same MacBook Pro, Safari uses about 45% of one core to keep that running.

Since I knew the HTML5 Canvas example (the first one) was such a pig, I asked someone who has an iPad to try it out. It was too slow to be tolerable. I also tried it on my Nexus One in both the Google Browser and Skyfire Browser. Both are WebKit based. Neither was able to draw the graphic characters. Google Browser did the captions and the rotating box parts of the animations. Skyfire kinda hung there.

There are couple of conclusions to draw from this...

(1) The poor performance of that first animation is because the author of it is redrawing the whole scene for each frame being drawn. That is moving a lot of bits! And so that's why it takes so much CPU for what appears to be very simple incremental changes.

A problem with HTML5 Canvas is that this is an obvious way to do animation. It lets the developer do it very inefficiently. Flash, by contrast, doesn't bother the developer with that particular decision. The developer sticks some objects in the frame, tells them what to do, and the Flash runtime handles it more efficiently. So this is a case where 3rd party middleware promotes efficiency and would promote better performance and battery drain than a "native" solution. It does better by ensuring that the developer does the right thing.

(2) Today, we can pretty much depend on Flash objects to run consistently across platforms. HTML5, even from the same WebKit open source doesn't seem to have that consistency yet.

I really hope the developer of that HTML5 Canvas example doesn't take that page down. It is like a gift that will keep on giving for those of us who are skeptical of Apple's anti-Flash crusade.

Standby time of iPhone, Docking the N1 midday.

I learned this last week that the stand-by battery life of my iPhone is something south of 4 days. I charged it Sunday night and it wouldn't power up on Thursday -- the next time I took it out of my laptop bag because I needed a phone number.

I also learned this week that if I set my N1 in the car dock when I drive to lunch, I end up with more than 50% charge at the end of a long day.

I only make these point because there is so much attention paid in the great Flash debate to battery life and all that. Seemingly small alterations to your routine, like getting a hands-free car dock, can make all the difference in the world to how you perceive battery life. While the engineers argue over ever last theoretical CPU cycle, out in the real world, some simple things we probably should do anyway can make the battery question mostly moot.

Daring Fireball

Would somebody please tell me why if Jon Gruber is so wise and knowledgeable about user experience and user interface... why is his site white text on medium grey, with the default (and recommended) font size 11 point?

Seriously, if his actual writing doesn't give me a headache, the font size and color choice does.

Tuesday, April 27, 2010

Flow vs. Modality, Take 2

Over on, at least one genius commenter has said he won't be reading my blog because I'm not objective. This post is dedicated to that person, who I won't bother to look up.

In a previous post, I noted that Android flows from task to task, while iPhone goes modally into an app, then out of an app. It's flexibility on the Android side versus simplicity on the iPhone side, with elegance falling squarely on the Android side when the device is in my hand. In the car though, it's a different story. I don't want flow. I want to be able to do the phone things I need to in the car using the minimum amount of attention necessary. Voice dialing with the Nexus One works well when it works, but can fail miserably when it doesn't quite work, requiring you to hit the backup button or choose from a list.

Fortunately with Android, a good developer could write an app that does car thing right. Large text, voice feedback, large target areas. Color to differentiate options. That's probably where I would start.