App Impostors

iOS is currently the platform to develop software for. Last week’s acquisition of Instagram by Facebook is an example of a company that, prior to a couple of weeks ago, had only a single entry point to their platform: their iOS app. The entire user base was pushing thousands of pictures per hour through a single application on a single brand of mobile device. Only very recently did Instagram release an app for Android.

That Android release resulted in an additional 10 million new users within 10 days of launch. That’s an incredible number for a small company, much less a tiny company like Instagram.

The number of Android devices in use is what makes it a compelling argument against developing solely for iOS. You can’t walk into a shopping mall without finding a cellular retailer who is giving away an Android device. Naturally, giving away hardware is a great way to push the platform along. Android devices are what make smartphones so ubiquitous today. In January, there were an estimated 250 million Android devices in use.

Rather than argue that startups should focus on iOS, I’d like to move forward with the assumption that both platforms have their merits, and neither appears to be disappearing any time soon. Since both exist, companies are left asking: “Which should we develop for?”

If you’ve worked with a marketing department, you know the answer to that question: “All of them.”

In the last few years, there has been a growing belief that the answer to mobile application development has actually been with us for a while: the web. HTML5 and CSS3 are the revered children of those hoping for a nirvana of application development. Many believe that web apps are the future, and that native applications are merely a relic of the past. By some accounts, it sounds like a great idea. Web-as-mobile apps have some nice benefits:

  • No app review – skip Apple’s esoteric review process
  • No updates – push new versions live, users receive them on next load
  • Iterative development – no updates means small changes can be made quickly
  • It runs everywhere there is a web browser

The last item in the list is the real kicker: a magical application that works everywhere. Unfortunately, there are a number of problems with using web technology for apps:

  • The internet goes down
  • The internet is slow
  • Web browsers are slow
  • Nobody wants web apps12

The way to solve these problems has been clever:3 simply marry the two together. Create a web app, and then wrap a pretty native window around a web viewer. Bundle the result, and ship it to the proper store. The web app can take advantage of local storage (introduced in HTML5), so it’s not even necessary to use a native storage library like Core Data or SQLite.

These apps are impostors: bits of software masquerading as native applications, attempting to deny their true ancestry in the web.

Most people won’t mind, or may not even notice an app is built with web technology instead of native software. The app will look almost identical on all major platforms, which may be a selling point for marketing and branding.

However, iOS and Android have certain UI expectations in place, as set by their respective purveyors. iOS apps look and feel a certain way, and Android apps have their own style. More striking in style are native Windows Phone 7 apps, with their Metro styling. For enthusiastic fans of a particular platform, these design themes are important, because they help unify the experience of using a device.

Apps built outside of native toolkits can quickly reveal their true identity. Widgets looking out of place or choppy scrolling are usually the first signs that something isn’t quite right. After a few minutes, the keen eye will notice things are not as they should be.

Here’s an example I stumbled on this evening: Untappd, a social drinking app that’s been gaining popularity lately.

The main screen in Untappd is fairly typical of a social application. There is a timeline with recent activity is displayed, with a text box for searching, a row of tabs at the bottom (customary for iOS), and a title bar with the app’s branding in it. The first time I launched Untappd, I was greeted with a typical Login / Signup view, which wasn’t particularly startling.

After jumping around a few of the screens, there were a few bits of UI that bothered me: the masking / highlights on the tab bar was all wrong for iOS. You can see the selected tab in Untappd is white, whereas the native UITabBar highlights selected tabs with a blue gradient:

Pull-to-Refresh is an interaction (recently patented) common in many mobile applications, so as I jumped through the views, I attempted to pull a few of them to see if they’d reload. Imagine my surprise to see the title bar sheepishly vacate it’s position at the top of the screen:

After discovering this, I had a pretty good hunch about what was up. I decided to pull the view the other way:

The tab bar seems to wander from it’s southern position as well. These behaviors are common in applications created with PhoneGap, a framework that boasts support for “7 platforms.” I pulled the Untappd.app bundle off my phone to confirm the inner workings of the app:

The presence of PhoneGap.plist, along with a directory named www were enough to convince me of my guess: Untappd is a web app.

I didn’t choose Untappd in particular to pick on it. I’ve only used the app for a few minutes, and it works fine. It definitely doesn’t feel like native apps do on my phone, and I’m left to believe an Android user might say the same thing.

If the goal for Untappd was to ship apps that appear very similar, they have clearly succeeded. The iOS and Android versions appear very similar in form, though seem to leave a bit to be desired in function.

However, if the goal was to ship a polished, buttery smooth4 app for iOS, the choice to go with PhoneGap was not the way to get there. Their current offering feels a bit disingenuous, as if the platform wasn’t worth the focused effort.

Clearly, it is.

  1. When was the last time you went to Apple’s Web Apps on your iPhone?
  2. The fact that Steve pitched web apps as the development path for iPhone at launch is still embarrassing
  3. I’m being incredibly generous. A more accurate choice of words would be “… full of dirty, dirty hacks.”
  4. Will it ever be possible for Android to be as smooth IOS?(SIC)

The Return

About a year ago, I took a hiatus from writing anything longer than 140 characters in public. I was an infrequent blogger, and my posts had little more in common than the mere fact that I had authored them. I quietly walked away, and eventually shuttered the WordPress installation at this domain. I started using Twitter more, and found fewer and fewer things to blog about.

Twitter has become a primary means of communication for me: I schedule meetups with friends, banter and joke with Mac buddies, and quip about random things throughout the day. I’ve met people on Twitter, created a social traffic service with it, promote my apps occasionally, and use it as my primary source of tech news.

So while I’ve come to appreciate and embrace Twitter, it has also brought to light something that has been quietly changing. My thoughts are brief now. I move between ideas and thoughts very quickly. At times, it seems like my internal dialog is artificially limited to 140 characters. Instead of having thoughts like this:

If I built a space ship, it would probably use iPads for all of the various flight systems. After all, they’re quite capable devices. Obviously, their touch screens can be used for interface and HUD responsibilities, but their other sensors would prove quite useful as well. With a couple of them paired, you could determine almost anything about the spatial properties of the aircraft. their communication abilities are very compelling. 3G coverage is available close to ground. The iPads could be networked with an inboard satellite link via WiFi when they’re outside the one city block where AT&T has coverage. And their dock connectors would provide many other interfacing possibilities.

I find myself having thoughts like this:

An iPad-controlled space ship would be awesome!

There’s clearly a difference here. In an effort to absorb and learn as much as possible, I’ve found myself not spending time processing and considering ideas as they’re presented. I have an incredibly hard time even keeping up with my Twitter feed, so the opportunities to reflect on what I’ve read a nearly nonexistent. In turn, that has impacted my creativity. Never mind also having a real life away from the comforting glow of an LCD.

My return to blogging will be focused on one simple goal: to reignite my creativity. I hope to journey into topics of design, art, and how they relate to my passion: building things. There will undoubtedly be nerdy posts about new iPads and iMacs, but I hope to make it much more than that.

I hope you’ll enjoy reading along.