Published October 3, 2011
Michael Martinez
Title: Exciting times, choosing a platform! Date: 2011-10-03 21:01 Author: Michael Category: Misc Tags: JavaScript, Android, Flash, UI, UX Slug: exciting-times-choosing-a-platform Status: published
As I sit here and write this post; I have an ActionScript 3 project open, a Flash Pro project open and a vanilla Java project open. Earlier I was working in Xcode on an HTML5/JavaScript Phonegap project.
I know what you are thinking; “This dude is a freakin’ badass!” HA! Rest assured that I’m merely enthusiatic crazy about technology and more specifically UI/UX and programming (and my children, but this blog is about tech, not diapers). I’m living and eating this stuff when the kids are sleeping or out and about.
There is a bit of a problem, however. I would really, really like to focus on a core programming language and/or platform. I want to be a Jedi master of the most ubiquitous, most loved and most profitable language and platform. In this day and age its a fools errand, a pipe dream and the emperor has no clothes.
Lots of geek pundits have said, “Just focus on iOS and be merry.” Yes… but. There is always a “but” and I would be remiss to leave out the other exciting platforms. After all, my Android phone got me into this whole mess and Android is still growing like gangbusters. My problem, essentially, is that I want my cake and too eat it too. Another silly cop-out, eh?
I need something that will work on a variety of platforms with essentially one code base. As a one man shop with limited time, I don’t have the luxury of coding every platform in its native tongue. I would LOVE to be that BADASS, but I’m not anywhere near that level. I need to work where I’m comfortable and productive from 8pm to midnight. I have a full-time job and diapers to change, I don’t want to fight with something I enjoy doing in the hopes to make a quick buck; that simply isn’t worth it.
So I went down the cross platform path to see what I could find;
Phonegap as mentioned previously is righteous. It works and it works well. The bonus is I get to use the skills I’ve aquired from years of HTML and javascript developing hacking websites. There are some nagging performance issues outside of Phonegap based on the libraries one chooses. JQuery Mobile is NOT ready for prime time. In fairness to JQuery Mobile, its still in beta and has some serious corporate backing with Adobe and Microsoft. So it “should” be really good in time.
Sencha Touch looks great but will require a significant investment to learn. The same can be said for Appcelerator Titanium. These frameworksfor mobile development are basically javascript only and have a very specific (and different) ways of doing things. There are lots of reports of strong support for iOS and lacking support for Android with both. I can’t comment directly on the issues with Sencha or Titanium as I have not used them for any length of time. However, the comments and blogs are there and in your face when you start to research.
The over arching problem with all of these is the dependence on the mobile browser. The very thing that made my want to stab myself in the ear with a pencil while developing websites, rears its ugly little head in this domain. This much is clear; All of the DOM manipulating cross platform solutions are dependent on the mobile browser. These browsers can vary widely and wildly from device to device. Android developers think fragmentation is bad, add another layer of abstraction and OEM specific implementations and you have some serious pain coming your way.
The only other game in town for cross platform mobile development is with Adobe and the Flash-FLEX / Air combo. The Flash apps I have built and tested for mobile just flat out work. They look great and you get to use a class based, statically typed language to build them in ActionScript 3. What is the downside? Reach! The good news is I can target iOS and Android with basically the same code base, but that is it (I will not mention the Blackberry Playbook as its sales look dismal, oops (I went there).
So the moral of this story is almost every solution has real, bonafide merits and warts and it you came to this article looking for the magic bullet… I apologize. You see, the magic platform with everything YOU want including buckets of money does NOT exist. There is an old adage that I read a lot on stackoverflow and tech-religious pieces; Choose the right tool for the job. When people are choosing a path, this is the last thing they want to hear… and I understand the angst. However, this piece of advice is pure gold and everyone should take it to heart.
I have come to realize my, sometimes unhealthy, curiosity is both a blessing and a curse… but mostly pure blessing. I like learning new things and often get tired of “same” ( which is part of the reason my day job is a riding around in a fire engine, no day is ever the same.) Timing will always be a challenge as the IT industry moves at break-neck pace. With a healthy curiosity and a good method to learn, I think its possible to get on board and make a difference.