I’ve long had this opinion that building smartphone apps by writing HTML and sticking it into a native app shell is a bad idea. I’m not talking about web apps, mind you; I’m talking about apps you get from the App Store or Play Store, but really just run HTML and Javascript. My two main issues are that it’s difficult to get the app to look right and that people seem to want to make an HTML app work on multiple platforms.

It’s important for a smartphone app to feel like it belongs on the platform. I’ve seen Android apps that were clearly designed for iPhone first, and it just feels wrong. The interaction is different which causes the user to make more mistakes, and it just doesn’t feel like an Android app. The same goes the other way; an iPhone app should look and feel like an iPhone app. The two platforms (and others as well) have their own idioms and ways-of-doing-things that the users are used to. You don’t want to make them learn something different if they don’t have to.

The most common reason for developing an app in HTML (at least as far as I’ve seen) is to avoid writing redundant code across platforms. If I make an app for one platform, wouldn’t be awesome if it just worked for the other platforms as well?

No.

Well, sure, but you’re sacrificing way too much in the process. That, and as far as I’ve been able to tell, it doesn’t really save you much in time and effort. The platforms are different enough that you still have to tweak and debug and change your code.

All that, and LinkedIn just gave me a new reason not to write HTML apps.

Memory issues. Especially in larger apps, memory apparently becomes a problem in HTML apps. That, and they confirmed to me that it’s difficult to get the app to look right. So stick with native. You’ll be glad you did.

See this post and more at the SEP Blog.