… they may just not know it.

Consider the computing and user interface paradigm on the modern desktop. Stop for a moment and visualize OS X and Windows. Visualize yourself using some of your favorite apps on each desktop. You have buttons, lists, scrollbars, text inputs, datagrids, trees, etc. You have a monitor, keyboard, and mouse. This user-to-device paradigm is very similar on each platform. To the zealots of UX design, I realize that in each platform has different human interface guidelines, but the computing paradigm is still almost the same.

Mobile is different.

Some smart phones have a keyboard. Some a stylus. The ones that most care about: Android and iOS use touch. But even the Android and iOS interface paradigms are different. Let’s just start with the device buttons excluding the keyboard on some Android phones. Android phones have four buttons. Home, back, menu, search. Press the “back” button to go back to a previous view on an app. Press the “menu” to access options of the app. The rest are self explanatory. The iPhone has only one button: home.

Let’s consider the UI elements available to developers. A lot of components have the same corresponding component on the other platform: buttons, text fields, webviews, labels. But the similarities end there. Grouping of elements, list views, app navigation, are all different. The user-to-device interface for each platform is different and thus the user experience is different. Navigating an Android application is different than navigating an iPhone application. Scrolling is different. Users expect different behaviors and responses on each platform.

Consider using a mobile web app. The behavior is different than a native app. You typically have to wait longer for it load, which gives the impression of sluggishness. The UI elements behave like actual web pages, despite the fact that some of the frameworks have gotten pretty good (Sench Touch, jQuery Mobile, Dragdealer). But we’re not there yet.

Native apps also offer the goodies of being able to integrate with the OS (options on iPhone), access native hardware (GPS/Accelerometer), run background process. Best of all: most can be used in some fashion when internet access is not available.

Earlier this week, 37signals announced there mobile Basecamp app. Except that it’s not a native app, it’s a mobile web app. Skim the comments. Some people are upset that it isn’t a native app.

Sean Coleman wrote an article regarding the poor choice of building a mobile web app instead of a native app:

We have entered a software era where client access is becoming distributed. Phones, tablets, laptops, and desktops are now all mainstream methods to use software. If I’m walking down a hallway, I’ll be swyping on my Nexus S. When I get to my desk, I’ll switch to my MacBook Pro, and when I jump on a long flight, I’ll be typing on my iPad. I expect demand the absolute best user experience on each of these devices, and vote with my wallet for the company that will provide this. The fact that 37signals has decided against native apps puts them one foot into the obsolescence grave. In order to stay competitive, web companies now must provide for all devices.

Sean is right. Client access is becoming distributed. I appreciate products that work well on all of my devices and the user experience is not just an afterthought.

My main point is this: if you’re a business who needs to reach your customers on these devices, do not tell yourself or your customers that you don’t have the time. Be honest that it’s not a priority. Don’t short-change your customers, they deserve better, they deserve native.

I should also note that I think this app store/native craziness is only temporary. I do believe that after HTML5 really standardizes, we’ll see more acceptable web apps. I don’t see that happening for 5 years or so.

What are your thoughts? Do you think that mobile web apps are good enough? Do you think that native is better? Do you think that cross-platform mobile libraries like Phonegap, Appcelerator, Rhomobile are better alternatives?

You might also enjoy:

Follow me on Twitter: @jprichardson

-JP