There’s a certain feel that comes with a native app, and there’s a certain feel that comes with HTML, CSS, and JavaScript. The difference is subtle but it’s noticeable in how various components appear and respond to user interaction. The abilities of HTML and JavaScript have advanced so far that I’ve come to prefer an app that uses this stack. The user experience is the same across all platforms. When I use an app that’s been primarily built in HTML, I instantly feel at home that I just can’t with a native app.1

I also like the idea that an HTML document is a blank slate in which things can be moved around and changed. It’s not like the native world where views and things are inherited and things have to look a certain way unless you want to go custom. I know there are also defaults in HTML to be overridden and that things are ultimately 100% customizable in native apps, but for the average developer it’s significantly easier and faster doing this in HTML.2

Slack’s Mac app is built using MacGap, and it’s one of my favorite Mac apps. I like it more than Messages — so much so that I prefer using Slack to communicate with friends.

I’m hopeful that we’re going to be seeing more and more apps be built primarily in HTML and JavaScript. On so many levels it’s making more and more sense to build everything in this.

  1. It’s possible that, since I’m a web developer, the understanding what’s under the hood of an HTML app contributes to this sentiment. In other words, someone who writes native apps for the Mac might feel more at home using a native app. ↩︎
  2. Think about the difference in learning curve for CSS media queries versus iOS constraints. ↩︎