Aug 03

Respect the users status bar; Man the Olympics app can suck can’t it?

Tech, UI / UX, iPhone No Comments »


The status bar should be treated with respect. It drives me nuts when it is abused, and it can give delight when it is used well. One of the lil hacks I really liked came from Joel Bernstein when in developer mode only, you get to see if you are talking to dev, qa, or production servers! Delightful Joel.

But then I saw this…


… the Olympics app takes over my status bar to show a sponsor? I am not allowed to know my battery life, the time, network situation, and if the app is going back to get data and instead I get…. an ad? You have to be kidding me guys.

Feel free to use it in a temporal way to give me updates such as Twitter does these days:


But please, don’t take away my info without giving me something back.

(The apps are pretty bad in general. They are buggy and flaky, have been “updated” daily, the video goes in and out a lot, and the content isn’t that good. Meh.)

Mar 10

Can this tablet thing be a massive fad?

Apple, Tech, iPhone 3 Comments »


I mean, who buys Hula Hoops, Furbies, and lava lamps no mo?

Farhad Manjoo lays out his case on how the iPad could be unbeatable, and how competitors may be just hoping that the tablet is a fad.

I know that the iPad was purchased more than any laptop from another manufacturer… but I can also sniff the fad.

I remember getting the first iPad… such a long couple of years ago. At first it was fun to explore the touch interface, and I carried it everywhere I went. I felt like a dork pulling it out for meetings, so I kept it tucked away, but it had its place.

Shortly thereafter however, I got a MacBook Air, which is by far the best computer I have ever owned. Comparing my iPad to my 17″ Macbook Pro was different to the new work of the light, small, SSD packing, powerful Macbook Air. At this point the iPad stayed in my bag so much more. It turned out that having a keyboard was a nice feature! As was this “hinge” thing that meant that I didn’t have to hold the device…. and I could have multiple windows on the same screen (which was nicer than putting my iPad in a keyboard dock say).

My iPad is now a niche product. I enjoy it for certain tasks, mainly content consumption, but it is niche. So…. maybe this is a fad! The iPad killer could be the Macbook Air! In fact, the killer could be an Air with a retina display and the ability to touch the screen and undock it!

That doesn’t work though, as the UI would then end up in old Windows stylus land. OS X isn’t ever going to be touch friendly like iOS. Mixing and matching iOS and OS X though? Mmmm.

Then I turn from myself, and I think about my Mum and mother-in-law. I got them both iPads in short order as I saw a consumer-oriented OS for the first time. Instead of being afraid of messing up their computer, or worrying about viruses and the like…. they were free to explore and get things done. They would never go back to an OS of yore. Surely this market is the lion share. Add to that the fact that iOS will grow and grow, and I think that the fad isn’t here chaps. Time to dig in and execute.

But, there lies the other problem that Farhad Manjoo articulated. Many have told me that iOS vs. Android will end up as MacOS vs. Windows. “History will repeat itself”. That assumes that the same natural forces are in play, and I think there are huge differences. One big one is that the CLONES can’t just come in and win here. I had a huge gulp when I HP bought Palm and I quickly saw that we couldn’t make a tablet for the same price as the iPad. HP. They have scale. And, they couldn’t do it. Apple loves their margins and all, but they have a lot of room to make life reaaal hard for any competitor. You can’t just make something meh and cheap and win.

Also, the nail in the coffin, we have seen the tablet in the future…. on Star Trek, as seen at the top of this entry. Maybe a hip flash is good enough.

Dec 02

Native apps are always better than Web apps; Psst, the new way has an escape chute

HTML, JavaScript, Mobile, Open Web, Tech, UI / UX, iPhone 3 Comments »

When we talk about the mobile Web being a good candidate to be a unifying platform for mobile and beyond, we often get nay-sayers telling us that there is no chance of this happening.

Their claims often chanted include:

  • Cross platform never works (case in point: Swing)
  • You can’t create a great experience without going native (and Apple raised the bar on the experience!)

There is some validity to some of this, but I also wanted to discuss the other side too.

Cross Platform Did Work

Swing gets bashed because a) it didn’t take off, and b) people always saw Swing apps as ugly and great examples of the uncanny valley. That team worked tirelessly for many years to try to get the look and feels to be as exacting to their hosts as possible. A pixel off here and there…. and it felt wrong.

It turns out that this probably wasn’t the right approach, and either a) Use SWT to use the real OS components or b) create a great looking l&f that is different to any one host, but natural and fantastic to use. Ben, Jasper Potts, and others fought for such a look and feel in Nimbus but a lot of time had gone by.

We have all seen many platforms on top of hosts that don’t feel right and don’t look good. That doesn’t mean that cross platform can’t work. Flash is an example that is very much cross platform and that community very much went the “every app will have its own UI”…. probably TOO far in the other direction ;)

In fact, the Web itself is a fantastic cross platform success. We have argued that if it wasn’t for the massive Web revolution, would non-Microsoft vendors (read: Mac OS X) be in the situation there are now? Or would they have followed in the wake of Atari, Amiga and BeOS? When the Web happened, suddenly the interesting actions that people wanted to do on a computer were dominated by the global scale of the Web (Google, Amazon, Yahoo!, eBay, etc). The Microsoft Office lock-in was gone (aside: it also DID help a lot that Microsoft gave Apple money, got Office over there, and solutions like VMWare enabled those few Windows apps that you still wanted to come with you).

The Web was a great cross platform success, even though its rich capabilities in the areas of graphics were laughable…. as I mentioned in an earlier post:

Apple - old and new

When you look back at many of the earlier designs of the top website brands, they are comical by todays standards. However, at this same time, technology such as WPF was being touted on the desktop. Why would people visit Web sites when they could experience amazing native Windows and Macintosh experiences?

So, I don’t think you can discount the Web on the merits of “cross platform can’t win” as it already did win once, and at a time when the capability gap was much wider than we now have with HTML5.

Compare this native app to their Web site!


I teased about the Delta mobile Web application before. If you compare their iPhone application to what you get if you go through a mobile browser, the difference is huge.

But, is the reason they are so different due to capability? I think not. I think the reason is much more about structure, legacy, politics, and history reasons.

I remember seeing an early viewing of an Adobe AIR eBay client. The thing was so rich, so much better than the awful eBay site in almost every way. It made you want to cry looking at the website afterwards. Why or why would eBay have this fantastic client and not spend time on the website where all their customers were! It wasn’t that they were baffoons, it was because they had no legacy in this new world!

The designers had free rein with a blank sheet of paper. They had core concepts and some design language, but total creative freedom. Compare that to the website. If they changed the color one hex value users would go nuts! Every time Facebook changes their site there is a massive campaign to change it back for the first 2 weeks.

They also didn’t have to run the gauntlet of the massive codebase that had been built over years to make any of these changes. And the QA. Ugh.

In fact, an entirely new team could be formed to do this work.

This is exactly what I am seeing in mobile. In many companies, if there is a mobile group, they are just that…. a very separate group. In a non-mobile-thinking company they are like the old “Mac” group in a Windows heavy shop that hangs in the corner and is very different.

Other companies are still getting into the world of mobile and realizing that usage patterns are going in that direction. They are bringing in consultants to help out. They are forming new crack teams to take on the challenge. They are realizing that they need to re-think the entire experience, and hopefully realizing that they need to create software as-a-whole in a very different manner.

The bar on the quality of experiences on some of the mobile platforms is very high indeed (and very low on others!) which has the (great) effect of pushing the bar forward.

Will this leave the Web versions behind? Maybe in the short term. Kinda like how the old Twitter website was simple compared to Tweetie and other clients, but #newtwitter is much richer and borrows some of the concepts where they make sense.

I am definitely seeing people swing back to their web experiences. As multiple platforms foster in touch and cross device, they are starting to feel the increasing tax of building totally different applications across the fragmentation, and then trying to keep them in sync once the 1.0 is complete. Outsourcing the 1.0 is one thing, but the syncing part is hard.

Back to Delta. You will notice that the screenshots on the web side get increasingly poor as you go deeper into the experience. Contrast that with the iPhone version above that is always at a high quality. It is time for them to go back to the web side and sync up.

In fact, just before a recent talk, we coded up some of the simple transitions and feel just so show how easy it is to get some of this stuff working via the mobile Web. You can see the simple example here.

In our Palm Developer Day keynote we shared some of the high level pieces on how to put this all together, the major piece being that you have to really re-think the way that you architect your applications (think: Gmail not server generated HTML, Backbone.js, and more).

Here are some of the slides:





aside: Dave Balmer goes into some depth in his Rockstar apps with HTML5 talks.

Of course, it isn’t all hunky dory. There are still edge cases on getting things performing just right using the Web on the various devices. You have to think “cross platform” again. It may have been nice to ignore that and hack on a native application for awhile. But, would you rather be porting between proprietary SDKs and languages all day long? Or re-use as much of your code as possible.

And, if for some valid reason you really DO need a bit of native for something, you can break out of jail and do just that. The escape chute is waiting for you.

We have a long way to go on giving developers better access to native capabilities and tools to make building the next generation of apps more of a breeze, but it is doable right now (another aside: webOS kinda proves that right now as the native apps ARE Web apps!)

I will finish with the interesting take from Venture Beat the other day on how
the iPhone app is the Flash homepage of 2010. They say:

In the late 1990s, it was common for companies to spend $50,000 to $150,000 for a Flash homepage that looked like a beautiful brochure. However, they soon learned that Flash was cumbersome, slow to load, expensive to build, and hard to update, and moved on to HTML. Now only specialized, high-end sites are Flash only.
The exact same thing has replayed itself on the iPhone. Companies have paid $50,000, $100,000, and more for an iPhone app. Now they have to keep the iPhone app in sync with their regular web site, and have to add additional native apps, each at a high price point, due to the hypergrowth of Android and newly viable platforms like Windows Phone 7

Jun 20

iPhone 3Gs: “S” for responsiveness, but also subordination?

Apple, iPhone with tags: 7 Comments »


Imagine this scenario. Say you worked for a company that had a top website and a new browser came out. There were some known bugs when said browser used your website, so you would obviously change the website ASAP. Chance are that you are ahead of the game and already had the fixes ready as you tested with release candidates. Your users grab the latest and greatest browser and use your website with glee.

Now imagine if the following happened: the browser vendor was in charge of your website and you had to ask nee plea with it to update your site. The vendor refuses at first and you have no control at all! All of the users that have upgraded their browser are now getting a sub-par experience. It’s your site, but you have no control. You curse as you know that the fix is RIGHT FRIGGIN THERE but hasn’t been applied.

This is crazy talk. You would never cede control like that. But wait, isn’t that what can happen with the iPhone and Apple? Facebook is one of the most popular applications on the iPhone, yet I read the following from poor Joe Hewitt, the guru that single-handedly created Facebook for iPhone, as well as the original Firebug, worked on Firefox, and much much more:

Submitted an update to the Facebook app a few weeks ago to fix OS 3.0 issues, still awaiting approval.

As of right now, if I am running Facebook on the iPhone 3Gs there are known bugs that Joe has fixed. I can’t run it. This is how they treat THEIR TOP APPLICATIONS which has a brand name company behind it? Imagine how they treat the poor lowly buggers on the totem pole.

Well, actually, we don’t really have to wonder too much. How gutted are you if you bet a year of your company on something with some amount of apparent blessing from Apple, and then see it thrown back in your face with some rule cited … when you know that the guy next door got his work in even though he is doing the same or worse!

Back to Joe. He got the latest 3Gs and talked about how smooth it is. This is great news. I feel like I often have a frozen UI on my 3G (typing, scrolling, any interaction) and it bugs me. If Apple has gotten their device “responsive enough” where the average user doesn’t notice these glitches, they have gone a long way, and as Joe mentions…. will give him time to work on features and not tweaking his code to try as hard as possible to keep his UI responsive (which in some circumstances was proving impossible). Ben has told me “It’s like the PowerBook G4 to MacBook Pro upgrade dude” which is great to hear since recently all upgrades have felt like a wash (e.g. recent Macbook Pro upgrades).

Also, I took another look at the applications that I have installed on my phone, and quickly realized that I use ~5% of them. I have a huge number that I have probably run once. When I look at the ones that I do use, I also quickly saw that the vast majority could easily be web applications, especially with the HTML5 features of Mobile Safari. If Apple continue to open up the API to the WebView (or PhoneGap / Titanium Mobile continue to thrive) then it will be so easy to create a large swarth of applications using simple Web tech. Sure there will be reasons to go closer to the metal, but for a lot…. you won’t have to. That is exciting stuff. I would also love to chat more with Joe about his experience using Cocoa vs. Web tech for layout etc. We have chatted a little, but I would love to talk more.

I went back and forth on getting an upgrade this time around. I was a definite “No” at first due to the pricing, and then AT&T came out saying that they would be helping out, so Ben and I went to check it out. Note: we both were in the same line for the 3G last time around, and at the store we found out that HE got to get the phone for $200 (as a “valued customer”) whereas I would have the pleasure of paying $300 more. I couldn’t whip out my credit card and walk out with the same hardware as him for a shed load more. So, now he will get the chance to lord over me until I do make the upgrade “wow this compass is amazing. wow the responsiveness is fantastic. How did I live without video right in my pocket.” Or, maybe I will jump to a Pre and start hacking on the native SDK that is just Web itself?

Nov 22

Being a “power user” really sucks sometimes as iPhone 2.2 reminds me

Apple, Tech, iPhone 7 Comments »

Being a power user sucks, as you are often in the minority. The marketing folks are drooling over the middle of that bell curve, and you are clustered at one end with a few of your mates.

I got reminded of this again with the iPhone 2.2 update that gave me this:

iPhone Safari

I get it, some people didn’t know that the search icon would do what that huge block on the right hand side now does. Make it like the “normal” browser and maybe they will get it. For me though, the space that they gained with the reload/stop URL bar integration is destroyed by the huge search box which does nothing for me.

If you could change it back, that would be OK. about:config away. But Apple doesn’t do this for us. We live in a Jobsian society where his vision is our vision. One more gripe with the iPhone even with this update…. I keep expecting the team to give us a decent friggin cache. PLEASE let me give the iPhone as much space as it needs to keep my stuff around! A mobile browser that is often on a crap network needs this more than anyone else! Cache more aggressively. Save my JavaScript and CSS! At the very least, don’t let me hit the back button and wait for the entire bugger to be grabbed again for the love of god! Why can’t I about:config and up the caching space and rules :(

I find this common with the Apple tools in general. They often get away with it as the engineers hide things in Apple prefs that we can change. The UNIX sometimes gets a chance to shine through for us there. Developers can sneak in a few more settings that don’t show up in the UI that Mr. J probably looks at with a fine tooth comb.

Argh. So close. Does anyone else feel this way? Maybe it is time to check out Linux? Nah, I am not that crazy ;)

Nov 16

iPhone Web applications and the Record API

Mobile, Tech, Web Browsing, iPhone with tags: 3 Comments »

As we watch and wait for the update to the Google Mobile iPhone application we are once again aware of the gatekeeper situation on that platform.

Google doesn’t know when it will launch, Apple does. Google had great PR into the launch (which they were told would be Friday… at least at some point). I had the pleasure to see the voice feature and was actually kinda gobsmacked with it when I saw it at work. It isn’t like we haven’t seen voice recognition apps for years. However, this one seemed to actually work, and not just for simple words but for complex queries. Random place names were picked up. Wow. Maybe the work behind GOOG-411 is paying off :)

But, the iPhone app isn’t out there, yet. If this was a Web application, the Google engineers could cut a release and be on their way. But, how would you read in the audio? You could go for Flash or a custom plugin, but it reminded me of the audio API support and Gears. When you think Audio API you think of the HTML 5 audio tag and the API that goes with it… specifically the “play” support. What interested me from the first design doc in Gears was the other side of things and the support for “record”:

// an object of this class can be got from 
// google.gears.factory.create('beta.audiorecorder')
AudioRecorder class
  // ---- error state ----
  readonly attribute AudioRecorderError error;
  // ---- recording state ----
  // says whether recorder is currently recording or not
  readonly attribute boolean recording;
  // says whether recorder is paused or not
  readonly attribute boolean paused;
  // the amount of sound detected by the microphone
  // 0 - no sound detected to 100 - maximum sound detected
  readonly attribute int activityLevel;
  // specifies the length (in milli seconds) of the audio recorded
  readonly attribute float duration;
  // number of channels, currently can be 1 (mono) or 2 (stereo)
           attribute int numberOfChannels;
  // sample rate for the recording
           attribute float sampleRate;
  // sample type for the recording, possible values need to be defined
  // signed 16 bit little endian linear PCM
  const unsigned short S16_LE = 0;
           attribute short sampleFormat;
  // audio file type (container and codec), possible values need to be defined
           attribute string type; 
  void record();
  void pause();
  void unpause();
  void stop();
  // ---- controls ----
  // 0.0 - silent to 1.0 - loudest
           attribute float volume;
           attribute boolean muted;
  // the amount of sound required to activate the microphone
  // 0 - capture even minutest sound to 100 - capture only loudest sound
           attribute int silenceLevel;
  // ---- cue ranges ----
  // provides ability to set callbacks at specific points in playback time.
  // similar to API in Audio class. Look at HTML5 spec for explanation.
  void addCueRange(in DOMString className, in float start, in float end, 
                  in boolean pauseOnExit,
                  in VoidCallback enterCallback, in VoidCallback exitCallback);
  void removeCueRanges(in DOMString className);
  // ---- access blob ----
  // returns handle to the blob object containing the audio data
  Blob getBlob();

I can’t wait to get full audio support available in the Open Web itself. Yet another barrier knocked down. Of course, the publicity around the Google Mobile app is nothing but good in many ways :)

Nov 03

Why I am bullish on iPhone Web; Looking at my wifes iPhone

Tech, iPhone 4 Comments »

iPhone Old School

I picked up my wifes iPhone today and wasn’t at all surprised to look at the AppStore icon and see a bazillion updates showing in the badge icon. To explain, I will pick up Emily’s laptop and find Software Update bouncing for its life. “Look at me! Please, it’s been months!” Em doesn’t seem to notice this: “I don’t look down there.” Huh :) If the leaping icon doesn’t do the trick, a badge on an icon that is never touched won’t do the trick.

This is why I am bullish on that Web thing on the phone. Emily is using an old, but imagine if she was going to a Facebook website that had access to APIs for the camera and address book. With these APIs, Joe could build everything that he has done on the native app, yet auto update my wife since this is all just behind a URL!

PhoneGap is there to allow you to take your Web app and throw it in the App Store so people can find it there. You can also access native APIs too through PhoneGap, but hopefully Apple opens up more and more to Mobile Safari itself.

I hope that the AppStore will offer a “keep up to date” option so it can auto download new versions for me. I wish that other products did that too, especially browser nightlies. I want WebKit and Firefox (Minefield) nightlies to keep updating themselves.

The big question: Location API. HTML 5 has it. WebKit is notoriously good for implementing these APIs, but Location is a key feature for apps and the AppStore. Hmm.

Aug 20

Frustrating User Experiences: iPhone

Tech, iPhone with tags: 14 Comments »

One of the most common tasks that I have as I check email on my phone, is jumping between work and personal email. This breaks down for me on the iPhone due to the menu system.

When you are on one inbox:

iPhone Inbox

you then have to go back, through the list of folders, to the accounts screen:

iPhone Accounts

At this point you then have to go back into the other account. This makes 4 animated clicks to go from Inbox to Inbox, and even more if you are already in a message.

Since this is so common for me, I would like to be able to bypass the menus and have something like a dropdown to go directly from Inbox to Inbox. Here is an incredibly crude visualization:

iPhone Dropdown

Maybe a nice gesture… a swish… which sends you back and forth :)

Other Frustrating User Experiences

Aug 05

Tough Love: How Steve could make us all like Flash more

Adobe, Tech, iPhone 2 Comments »

I was reading Om Malik’s interview with Kevin Lynch of Adobe, and mulling over the mobile question.

After reading, I popped online to view the menu for the Tandoori Grill in Boulder (I love that place!). They use Flash for the menu, which doesn’t make the iPhone happy. I cursed again, as their is no work around until either:

  • It gets on the iPhone (and I think it will)
  • Someone does the crazy Flash on the server hacks

After cursing, I sat down and realized that the tough love that Steve Jobs is giving Adobe could actually be a good thing for everyone (including Adobe!). You have to bet that the Adobe Flash / mobile teams are working their arse off getting Flash small and compact in a way they never have had to before. I am sure they will get there, and the day that Steve can pop open the debug Safari build and see that it runs Flash nicely without sucking the battery life, he will give it the OK. When that happens, we will not only have Flash on the iPhone, but also a much leaner and meaner Flash that can run on the desktop. A true win-win?

Jul 30

Nintendo DS, I never even got to know you; When the iPhone convergence story wins

Apple, Tech, iPhone with tags: , 2 Comments »

I have been wanting a Nintendo DS for quite some time. I have watched friends with their special ROMs that have every game under the Sun on them, and some of the games have phenomenal game play. I always love a device that focuses on that rather than raw graphics.

I don’t know why I didn’t get around to getting one. I think that the reason partially lies in the fact that I had bought a PSP when it first game out. It was great fun to play, but since I had a child quite shortly after, I think that my nephews have played it more than I.

There lies the rub. For me, the only real time that I get to play something like that (including a DS if I had one) is on a flight. In those times when boredom sometimes strikes, the Internet isn’t there to help, and you are stuck in cabin where the idea of doing anything useful on the flight disappears.

So, I never have got a DS. I don’t think I will end up with one now, because I can just download games to the iPhone. There aren’t any that I love right now, but I can enjoy a short period playing Tetris and trying out some free / very cheap new games that try to use the gyros.

I trust that the same will go for the Amazon Kindle too. I really like it in theory, and I am waiting for the next version to come out. But by then we may have a MacBook Touch that will illuminate the need.

Sometimes the convergence play doesn’t work. The bulky “I do it all” stops making sense, and you just want something that does that one thing really well. Apple is nailing it though, and I think that the iPhone is actually going to be THE computer in the years to come.

Bluetooth to headsets, glasses that show the screen directly on your retina, voice controls, magic keyboards, and a hell of a lot of processing in the cloud.

I am sorry that I will only be buying a few devices in the future. I always remember my iPhone. I often forget the PSP etc.