views:

138

answers:

2

I'm going to create iPhone and Mac apps and wonder if there are benefits of creating iPhone and Mac apps with Cocoa over Sproutcore + Phonegap/Titanium?

I'm not doing any game or high performance related software.

If I learn Cocoa I could only create apps for iPhone, iPad and Mac. But if I use Sproutcore for web development with Phonegap or Titanium for mobile and desktop I can run it outside Apple platform as well eg. in Windows, Linux, Android, BlackBerry, Windows Phone 7 etc.

And I already know javascript + html + css for frontend and php/ruby for backend.

Are there any actual benefits of using cocoa with objective c?

I can't find any and wonder if someone could convince me to use cocoa instead.

+5  A: 

Well

  1. Cocoa will always give you the best, native, access to the underlying libraries for functionality, touch and gestures especially and will run natively on the iPxxx device and use thing like the gyro and the accelerometer etc.

  2. Sproutcore, Sencha Touch, iUi et al will be javascript emulating touch and gestures with at best limited access to the underlying libraries and may not always run natively on the iPxxx devices and may not always be able to tap into things like the accelerometer.

I think you may need to deal with both and it will depend on the applications that you are building as to which you need go for.

PurplePilot
It really depends what functionality you need. If everything you need is exposed in the layer you're using, then you should be fine.
Ken Aspeslagh
+1  A: 

SproutCore (and other JS Frameworks) can be run inside of PhoneGap or similar tools to access native protocols. One big benefit of using HTML5/JS is that you can run in the browser and on other platforms such as Android and the new Chrome AppStore without having to recode your application.

Peter Wagenet