One thing that really put me off about this article: the giant header that scrolls with the page. Vertical real-estate is already limited on a wide-screen monitor. I hate it when CNet does it, I hate it when news sites do it, I hate it all around. I understand I might not be speaking for everyone, but a nice thing would be an option to stick the header to the top. It could scroll by default until you click a button, where it would lock to the top of the screen.
As is, though, I find myself judging a site/article/company based on how many elements of their site irritate me. And it's a giant header.
Phonegap is useful when you want to get a quick and dirty one off application launched. It lets your designers work in CSS which is very familiar territory. Most one off apps are more informational than interactive (Think conference schedule app) and phone gap is more than responsive enough. It supports enough basic api calls to do simple things like take a picture and stuff and does it well. Ruby Motion seems like what I wouid use for a stable long term code base for a new application. The difference being the product. The small one offs are usually supporting a bigger product (like a conference) and the long term code base is a product itself.
The article isn't necessarily a far comparison: PhoneGap is cross platform, RubyMotion isn't. But it's nice to see someone holding up the different tools against one another.
His conclusion is more than correct for PhoneGap: PhoneGap feels like half-assing it.
Disclaimer: I'm Matt, the other half of Iconoclast Labs.
That platform limitation of RubyMotion and the cross-platform nature of PhoneGap is acknowledged multiple times in the post.
From a business perspective, the cross platform nature of PhoneGap may make it a better choice for some projects but from our short comparison of the PhoneGap version of the app deployed on both platforms, iOS appears more promising* so that's why we chose to write a native version for iOS (plus, coming from more of a Ruby/web background and having no Obj-C experience, RubyMotion lowered the barrier to entry for that). It's been an interesting learning experience for sure.
I can understand PhoneGap will be handy when requiring cross platform compatibility and you are not a multi platform expert. The experience is always going to be underwhelming. RubyMotion is much more ambiguous, on one hand we have beautiful XCode and Objective-C environment which is a pleasure to use, and then this command line monstrosity! And it do not save you from learning cocoa libraries - So if you want to develop for iOS, try to use Apple tools - period.
I would politely disagree. XCode is a beast of a program to learn and to maneuver, RubyMotion's command line interface is comparatively very simple with only a handful of commands. Coming from Ruby, it behaves like most things in that ecosystem, command line oriented and no IDEs, obviously if you're coming from XCode, it's going to feel foreign.
Further, I think learning Cocoa libraries in verbatim Objective-C is a only transient problem for the near-term. Efforts are already underway to abstract away some of that complexity but it's hard to be overly critical of a 5 week old project for not being mature.
Having just spent the weekend doing an iOS app in PhoneGap and jQuery Mobile, I can say that PhoneGap can get you to the first 80% really fast and it can look/feel native, but the devil is in the details and the last 20% is going to take an extra 80% for sure.
Native vs HTML/PhoneGap is about tradeoffs. With a little bit more experience I'll be able to easily ship a working app in a weekend using PhoneGap, but there are plenty of use cases where native would be a much better way to go (games, photo filter apps, etc.)
It's not about what is better in all cases, it's about what is better for your project.
I don't understand the apparent disdain here for phonegap. I'm currently working on a freelance project to convert a blackberry app to a phonegap app. Everything they want to do they can do using phonegap. I don't feel held back or like I'm half-assing it. I have access to CSS for, in my opinion, easier UX designing, and jQuery for things like posting or modal dialogs. Why aren't more people excited about developing once and it working on multiple platforms?
I think it comes back to the idea of "jack of all trades, master of none." No matter what PhoneGap does, it will never do everything superbly, and sometimes (often, even, I'd say) the trade-off isn't worth it.
There's also probably an ego play, too. I see the "Objective-C isn't that hard. Learn it." argument a lot, but it does have a steep learning curve. For one, it's syntax is confusing if you don't recognize the brackets and messaging. Second, it's a lot closer to C than something like Ruby or Python, so you have to learn about types and memory management.
Seems kind of an odd comparison to make. I see RubyMotion more in competition with something like Titanium. The question then becomes whether you want to use JavaScript or Ruby, as well as the support.
Personally, I just bit the bullet and spent time learning Obj-C, and found it to be much more pleasurable (especially when you don't limit yourself to just using XCode).
Titanium uses it's own methods and translates that code into Obj-C (you can actually see the * incredibly insane* trans-source when you build the app) -- RubyMotion is a direct interface with Cocoa and Obj-C. If you know Obj-C you can immediately start experimenting with RubyMotion --comfortably-- and if you know Ruby and can "read" Obj-C you can immediately pick up the iOS cookbook and get started, like the authors did. Think of it as a dialect, similar to CoffeeScript, where all the same rules apply, but things are just... better. Having zero Obj-C experience and, I admit, no desire to go into the realms of byte-sized memory management, I avoided it for a long time, but after just a few weeks with RM I feel like I have a very strong grasp on both Ruby and Obj-C, and can read and write both interchangeably, including interfacing with Storyboards and Interface Builder. Two languages for the price of one, IMO, and that was well worth the $150 dollars I paid, aside from any products that I may release with the toolchain.
But yeah, in short: there's no comparison between Titanium and RM.
The comparison was one of personal experience, we had the app written in PhoneGap prior to the release of RubyMotion, then rewrote it. The post just documents our impressions from both approaches.
I'm still waiting to see one app made in PhoneGap that doesn't look like complete rubbish.
For my nickel, I believe your best bet is to either make a native app, or a mobile website. These "cross-platform" tools just make apps that feel like junk.
[+] [-] freehunter|14 years ago|reply
As is, though, I find myself judging a site/article/company based on how many elements of their site irritate me. And it's a giant header.
[+] [-] GantMan|14 years ago|reply
[+] [-] phamilton|14 years ago|reply
[+] [-] gavingmiller|14 years ago|reply
His conclusion is more than correct for PhoneGap: PhoneGap feels like half-assing it.
[+] [-] evilduck|14 years ago|reply
That platform limitation of RubyMotion and the cross-platform nature of PhoneGap is acknowledged multiple times in the post.
From a business perspective, the cross platform nature of PhoneGap may make it a better choice for some projects but from our short comparison of the PhoneGap version of the app deployed on both platforms, iOS appears more promising* so that's why we chose to write a native version for iOS (plus, coming from more of a Ruby/web background and having no Obj-C experience, RubyMotion lowered the barrier to entry for that). It's been an interesting learning experience for sure.
[*] http://iconoclastlabs.com/cms/blog/posts/chatoms-app-store-e...
[+] [-] jballanc|14 years ago|reply
Between Ruboto and RubyMotion, I think there is a very real possibility that Ruby will become a significant player in the mobile space.
[+] [-] anuraj|14 years ago|reply
[+] [-] lrz|14 years ago|reply
[+] [-] evilduck|14 years ago|reply
Further, I think learning Cocoa libraries in verbatim Objective-C is a only transient problem for the near-term. Efforts are already underway to abstract away some of that complexity but it's hard to be overly critical of a 5 week old project for not being mature.
[+] [-] banister|14 years ago|reply
[+] [-] programminggeek|14 years ago|reply
Native vs HTML/PhoneGap is about tradeoffs. With a little bit more experience I'll be able to easily ship a working app in a weekend using PhoneGap, but there are plenty of use cases where native would be a much better way to go (games, photo filter apps, etc.)
It's not about what is better in all cases, it's about what is better for your project.
[+] [-] brodney|14 years ago|reply
[+] [-] eddieroger|14 years ago|reply
There's also probably an ego play, too. I see the "Objective-C isn't that hard. Learn it." argument a lot, but it does have a steep learning curve. For one, it's syntax is confusing if you don't recognize the brackets and messaging. Second, it's a lot closer to C than something like Ruby or Python, so you have to learn about types and memory management.
[+] [-] jasonlotito|14 years ago|reply
Personally, I just bit the bullet and spent time learning Obj-C, and found it to be much more pleasurable (especially when you don't limit yourself to just using XCode).
[+] [-] cnp|14 years ago|reply
But yeah, in short: there's no comparison between Titanium and RM.
[+] [-] evilduck|14 years ago|reply
[+] [-] bryanjclark|14 years ago|reply
For my nickel, I believe your best bet is to either make a native app, or a mobile website. These "cross-platform" tools just make apps that feel like junk.
[+] [-] phamilton|14 years ago|reply