views:

249

answers:

7

I want to make iphone apps but do i really need to learn objective c ?

I love Languages like Ruby, Python and PHP. Is it really worth me spending my time learning objective c ( i understand i have to learn c first)? Any advice, help, tips tricks would be greatly appreciated.

Thank you in advance ;-)

+2  A: 

Yes. iPhone is all about C and Objective-C (or there C++ cousins).

I'd recommend starting away with a good understanding of C, then go grab some Objective-C book, and then read the docs or another book on iPhone development.

Eiko
A: 

Yes, you really need to learn Objective-C. More importantly, you really need to learn UIKit, etc. Yes, it's really worth the time you'll have to invest. There are a number of nice tutorials and books to help you get started.

Kaelin Colclasure
A: 

There is currently no way to use Ruby, Python or PHP to make native iPhone applications. You can use C# through MonoTouch but that is still a new language.

Many people who come from a scripting background totally enjoy working with Objective-C. Maybe just give it a try? There are plenty books available now. Also for the total beginner.

St3fan
Maybe you should tell that to all those developers who have been selling native Ruby apps through the App Store for months ...
Jörg W Mittag
Can you show me some examples? Or give a link to the tools they use to build these apps?
St3fan
According to the umpteen other times that this exact same question has already been asked and answered here on StackOverflow, there's at least 4 apps written in Squeak Smalltalk, about 10% of the Top-100 games are written in C# using the Unity framework, there's one written in Gambit Scheme AFAIK, several Lua apps and dozens of Ruby apps using the Rodes framework, including the official Wikpedia app, MyHumana, RhoLogic for SugarCRM, Multilingual and TrackR. And that's only the ones in the app store. A lot of Rhodes customers are enterprises that only deploy their apps internally.
Jörg W Mittag
While it's cool, Rhodes is still just a framework that has lots of limitations. It's not a complete substitute for Obj-C on the iPhone.
Jeff Meatball Yang
A: 

Yes.

There is a price to pay, however. $100 to be exact. For 1 year of a developer license, you get XCode, a lot of nice supporting tools, and access to the Apple Developer Center website, which has very extensive documentation and examples and code samples.

IMHO, you can't write iPhone apps without learning Obj-C, and the best way is to access the ADC and get all the tools.

Jeff Meatball Yang
Well, to be *exact* it's only 99 USD :-). And he can start for free as long as he doesn't want to run on real devices - which is admittedly only half the fun.
Eiko
OP could use one the 3rd party solutions that enable you to develop apps in javascript, ie PhoneGap, Titanium, and (now) Flash.
Jonathan
A: 

Agreed with comments above, if you want to create a native iPhone app.

You can always go the iPhone web app option.

http://stackoverflow.com/questions/219653/ruby-on-iphone rhomobile is an option to run ruby code on the iPhone, but it's essentially web app development. A web server runs locally on the iPhone and your ruby code renders to standard client side web technologies (html/css/javascript). rhomobile.com

Mark
+6  A: 

No and Yes. The answer really depends on what type of apps you want to make, the apps compute requirements, and whether you want support from Apple and its developer community, or some other much smaller (but perhaps specialized in your area of interest) developer community.

For the fastest, most battery efficient (CPU cycles, cache footprint, etc.) apps that track the latest OS features, Apple has spent a lot of resources developing their Objective C and C compiler tools, and usually ships betas, including lots of documentation referencing how to use the new APIs from Objective C, well in advance of most OS releases. The vast majority of iOS example code and tutorials are for Objective C. In many cases, Objective C and C will usually produce smaller apps as well as faster ones.

For encapsulated web app type apps that don't need compiled performance, Javascript is both Apple supported and requires only a page or so of Objective C to run within an App store app. You might be able to use something like the PhoneGap library to help encapsulate your Javascript.

For specialty niches, such as 2D and 3D games (etc.), there are other environments where you can code in other languages, such as Lua, MonoTouch C#, et.al., which Apple recently re-allowed. But you may have trouble getting support for making apps outside the specialty niche of those environments, and support from Apple, if you find some really gritty low level problem in iOS or the UI libraries.

So YMMV.

hotpaw2
+1  A: 

In my super subjective opinion, learning any new language is worth while. You'd like to make an iPhone app, and Objective-C is the recommended language by the maker of the iPhone. If I were you, I would view this as an opportunity to learn a new language, thus enlarging your toolset.

If programming for my favorite new toy would require me to assemble machine codes by hand, I would totally do it!

Yuji