Whither the native app?

Earlier this month, over 60 developers attended the inaugural Seattle Android Developer’s Meetup to network, meet fellow developers, and eat free pizza. In addition, the meetup included talks from one of the developers of the lock screen replacement GOTO and the adult-oriented app store MiKandi. The last presentation was an introduction and demonstration of AIR for Android by FLEX developer Dusty Jewett. (full disclosure: Dusty and I are currently coworkers).

It’s unfortunate the number of people who chose not to stay for this talk. I think a lot of people who are still relatively new to Android, or who are relatively new to mobile in general, may not concern themselves with frameworks and high-level languages like FLEX or ActionScript. Native apps are the way to go, right? Why write for Android if you’re not writing in Java, or maybe even C++ using the NDK? iOS developers, shouldn’t you be writing in Objective-C?

That may have been true a year or so ago. Today, browser support for HTML5 elements is constantly maturing, and JavaScript performance is getting better with each release of WebKit. The number of mobile web app frameworks is increasing. With AIR, you’ll be able to package a SWF directly into an APK without writing a single line of Java code. The new Netflix app for the iPhone uses a UI front-end implemented entirely in a WebView. Chrome OS is right around the corner, and with it an entirely new app store, where the “native” language is JavaScript.

Personally, I welcome this. If I can write a significant chunk of my app in a device-independent language like JavaScript, that’s code that I’m more likely to be able to reuse moving from the mobile web to Android, or to iOS, or to Chrome OS.

What does this mean for mobile developers? Should we be afraid for our jobs? Probably not.┬áThere’s plenty of stuff a browser can’t currently do, and many apps will probably want some level of integration that will warrant some device-specific coding. And anyone who can write Java or Objective-C can pick up JavaScript or ActionScript pretty easily — good developers will always learn new skills as different tools in their tool belt.


I like wearing different hats. Follow me on Twitter. Connect with me on Google+