December 01, 2013

Fast Enough

What Does “Primetime” Mean for Mobile?

(This post migrated from my Medium trial).

With few exceptions, slow and sluggish apps fail. I don’t know about you, but I don’t want my name behind those apps. Not as a business. Not as a developer. You’ve seen them. And you junk them whenever possible, unless:

  • You’re forced to use it
  • You make an exception and lower your standards
  • You find no other alternative
  • You pity

We developers know this, so we do everything possible to avoid that fatal perception. Play it safe and nobody gets hurt. It’s simple, really. Give them an experience.

Consumer Experience for the Win

Winning is everything right? To win in apps, the experience is key. It’s just like football. To win in football, you need to score more points than your opponent. To score more points you need to have a scoring offense. I happen to follow the Denver Broncos (American football flavor). As of the time of this writing, the Broncos have averaged 42.9 points per game (that’s history in the making, folks). Denver is an offensive team. Assuming they can maintain their average, here’s a valid question: is 42.9 points each game enough to continue winning? That depends on the second question: is Denver’s defense good enough to prevent opponents from scoring more than 42.9 points? If I’m a Denver coach, I just need to answer this 1 question. “Will my defense be good enough?”.

Let’s imagine a bizarre scenario in Denver. The Broncos finish the season by actually increasing their PPG average. In the upcoming draft, Denver spends its first few precious rounds drafting offensive playmakers. Absurd? Of course. Yet we are seeing such logic today in the app industry. The Obsession with “Fast”

There is a pervasive view in the world of app developers: For a great consumer experience, apps need to be snappy. The computer scientists say that snappy means fast. If fast is good, then faster is better. Therefore I need to make everything faster…

It’s a trap! While you’re busy scoring a few more performance points, your opponents are outscoring you by:

  • Reaching a broader market
  • Getting to market quicker
  • Iterating and pivoting quicker

A Step Back

I wonder if it’s possible to score enough points in the “experience” department without surrendering the above items? Here, I believe it’s important to realize what it means to win. Building a flash card app? You don’t have to score many “fast” points in the game of consumer experience. Building a 3D game? That’s another story — super scoring is essential.

At the end of the day, experience expectations are completely dependent on the type of application. The 80% Solution

I don’t have any research numbers, but I would venture to guess that 80% of all mobile apps require little to moderate “fastness” as a component of the user experience. As an app developer, I’m ok with focusing on the 80% — especially if I can win big gains in the areas of market and timing.

If you have read this far, HTML5 may come to your mind at this point. Indeed, I believe HTML5 can deliver — both theoretically and practically. There may be an uphill climb in the realms of business politics and public opinion, but its increase in adoption is inevitable. The Other 20%

Clearly, some applications require the “fastness” that HTML cannot provide. Taken from a recent Venture Beat article:

Admittedly, HTML5 mobile apps cannot match native apps in terms of performance expectations today. Applications requiring sophisticated algorithms, complex data manipulation, or those using heavier graphics are still slow when implemented as web-based applications.

If your application falls into one of these categories, you’re better off with a native app for sure. That means an app for iOS, another app for Android, and yet another for Windows — you get the point.

However, as usual, technology is changing…

The Hybrid Approach

Does it really have to be all or nothing? Suppose I need to write an app in the 20% space because it contains specialized algorithms. Couldn’t I just “import” the algorithms somehow and otherwise create the app with HTML5? Finally…yes!. There are a plethora of technologies that allow the HTML5 (really javascript) environment access to native capabilities, namely:

  • Get access to mobile device hardware
  • Get access to native device software features and data
  • Utilize fast native code

The Wrong Question?

Is HTML5 ready for prime time? It’s common to ask general yes-no questions. But in technology, it’s never that simple. Show me a market where HTML5 is good enough, and I’ll show you prime time success in the right areas.

Tags

html5 mobile performance