{"id":2621,"date":"2011-08-03T15:25:05","date_gmt":"2011-08-03T20:25:05","guid":{"rendered":"http:\/\/techcitement.com\/?p=2621"},"modified":"2011-08-03T15:31:50","modified_gmt":"2011-08-03T20:31:50","slug":"multiplatform-development-holy-grail-or-bad-idea","status":"publish","type":"post","link":"https:\/\/techcitement.com\/software\/multiplatform-development-holy-grail-or-bad-idea\/","title":{"rendered":"Multiplatform Development — Holy Grail Or Bad Idea?"},"content":{"rendered":"

\"\"<\/p>\n

Competition in the mobile space is usually great for consumers. It helps inspire more innovation and fuel more affordable products, but when it comes to developers, having multiple options out there is a real headache.<\/p>\n

Traditionally, if \u00a0you have an app idea that you want to reach the largest number of users, you are committed to spending the time and effort to port your work to each and every platform out there. This is no simple task, as each platform has its own unique\u00a0capabilities, features, and behaviors. Not only is this difficult for the developer, but it often leaves the less popular platforms (*cough* Windows Phone, WebOS *cough*) last on the list for releases and updates or not on the list at all.<\/p>\n

In steps multi-platform development tools.<\/p>\n

Almost two years ago, I had the pleasure of speaking with someone from Whoop Creative Studio<\/a>, a proposed solution to this very problem. Whoop uses a WYSIWYG editor to simplify app development and offers the ability to output a native app for a variety of devices including iPhone, Android, and Blackberry. The best bit is that they gear their visual interface to be easy enough for even a non-developer to use.<\/p>\n

The problem with this sort of concept, however, is that whenever you use tools to make it “easy”, you also sacrifice something. Apps may suffer in performance or bloat because you’re not in control of the code. Also, sometimes you’re simply not presented with the ability to do something exactly the way you want. If you’ve ever tried to edit a web page using MS Word and looked at the mess of HTML that comes out of it, you know what I mean. You always have cleaner and more efficient results, as well as the ability to make it look and work exactly the way you want if you code the hard way.<\/p>\n

Recently, it has come to my attention that more code-centric cross development tools exist.<\/p>\n

Engadget<\/a>\u00a0recently mentioned PhoneGap<\/a>, an open source tool of this kind. PhoneGap\u00a0received\u00a0some acclaim at the\u00a0Web 2.0 Expo San Francisco\u2019s 2009 Launch Pad event, and is based on web development languages like HTML and JavaScript. Before you dismiss the app as running in a browser, realize that PhoneGap gives the developer access to hardware like the GPS, camera, accelerometer, and more. Your finished app can then be exported to the platform of your choice as a native app.<\/p>\n

While this gives the developer a great deal more control than Whoop’s visual interface, it is still essentially a Web 2.0 app on steroids and not as\u00a0efficient\u00a0as developing the hard way.<\/p>\n

PhoneGap isn’t alone in this arena either. There are at least three other multi-platform mobile app tools that I’m aware of, including rhomobile<\/a>, Appcelerator<\/a>, and\u00a0MoSync<\/a>. There was actually another similar tool known as WidgetPad; however, they seem to have disappeared and taken their domain down with them.<\/p>\n

Here’s my take on all this: I’m a fan of not taking shortcuts to do something the right way. When Android first announced that they were basing their development tools on Java, a lot of hardcore coders were critical of the decision. Java is a virtual machine and is less efficient by nature. Google has \u00a0been working hard to keep code running as smoothly as it can, enabling performance tools like JIT, but the bottom line is that it’s already taking a slight performance hit. If a runtime environment like PhoneGap needs to exist on top of that, further removing the developer from the hardware, I fear the difference will be noticeable. That’s especially true with the limited resources on a mobile device to begin with.<\/p>\n

I’m all for getting apps out there to as many people as possible on as many platforms as possible, but I have to wonder whether if tools like this might end up being the crutch that allows developers to become lazy in the long run.<\/p>\n","protected":false},"excerpt":{"rendered":"

Competition in the mobile space is usually great for consumers. It helps inspire more innovation and fuel more affordable products, but when it comes to developers, having multiple options out there is a real headache. Traditionally, if \u00a0you have an app idea that you want to reach the largest number of users, you are committed […]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[241,882,880,879,881,878],"_links":{"self":[{"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/posts\/2621"}],"collection":[{"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/comments?post=2621"}],"version-history":[{"count":4,"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/posts\/2621\/revisions"}],"predecessor-version":[{"id":2736,"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/posts\/2621\/revisions\/2736"}],"wp:attachment":[{"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/media?parent=2621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/categories?post=2621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techcitement.com\/wp-json\/wp\/v2\/tags?post=2621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}