New Alternatives for App Creation
by Shawn
Back in 2009, when I first started creating iPhone apps, there was only one game in town: XCode. The official Apple iOS SDK uses Objective -C, the best 1987 has to offer, to create all of those games, utilities, etc. that litter your iPhone or iPad. And as anyone who’s ever coded in Objective-C can tell you, it’s terrible to work with. Simple operations that require only one line of code in most modern programming languages require three or four in Objective-C. The language and the environment are clunky and difficult to work with, but worse, the apps you create with them are only good on one platform, over which Apple exercises complete, tyrannical control. They have their reasons, of course; some of the business related and some of them having to do with quality control. But regardless of Apple’s motivations, the fact is that if you’re using XCode and Objective-C, you’re using an antiquated technology to tie yourself to a platform that is subject to the whims of an enormously powerful multinational corporation.
Enter the newest generation of app development tools. All of these tools approach the issue of platform-dependency by focusing on a tried-and-true, platform-independent technology: HTML. More specifically HTML5. The term HTML5 is a bit of a misnomer. Generally, when someone refers to HTML5, they’re actually referring to a combination of HTML5, CSS3, and Javascript. The newest specification of HTML was designed with CSS3 and Javascript in mind, and it’s quite powerful. In fact, it’s so powerful that it’s set to completely replace Flash, which Adobe recently acknowledged by announcing that it will discontinue development of Flash. Coming in it’s place though, will be Adobe Edge. Currently in beta, Adobe Edge looks and feels a lot like the Flash development environment. You’ve got the familiar timeline and keyframes, with which every Flash developer is intimately familiar. On the back end though, the tool is generating a combination of CSS3, HTML5, and Javascript. The big advantage to this is that you can use technologies like PhoneGap to wrap up the code generated in Edge, and create an app that can be run natively on an iOS or Android device. This allows developers to create in one environment, and publish on multiple environments. There’s one caveat though. The technology isn’t perfect yet. Really intense or complicated animations don’t look so great when created in HTML5, and they certainly don’t match the experience of apps developed in Objective-C. It’s certainly a step in the right direction though, and points toward a much more developer-friendly marketplace.