views:

506

answers:

5

I'm learning iPhone programming and I'd like to know if there is some big, most-use, general purpose custom framework that extends functionality and makes it easier to develop apps, like jQuery does in the web realm, but for native apps.

A: 

Technically frameworks (libraries against which you bind dynamically) are not allowed for the iPhone. That being said, there are a number of third party libraries (like cocos2d-iphone) that developers have found useful and build -- statically -- into their applications.

fbrereto
+5  A: 

Joe Hewitt's Three20 is a pretty commonly-used library. It includes a lot of the components that Joe created (which in many cases match those that Apple apps use) in the course of developing the Facebook app.

Matt Ball
+2  A: 

Yes, there is an awesome framework! It's called Cocoa.

It's powerful and flexible. Unless you are using OpenGL it has 95% of what you need to quickly develop great apps.

Pick up the Prag Programmers book or Beginning iPhone development and you'll be off and running.

Seriously though, There are many frameworks that attempt to abstract out the SDK for web developers and the like. It is much simpler to take a few weeks and just learn the language and the syntax.

Three20 is a special case, it gives you a lot of added functionality at the cost or rewriting every Cocoa class to conform to web conventions. It works for some and doesn't for others. If you can use it out of the box fine, but if you need to modify/subclass, just start from scratch instead.

There are many, many open source libraries/code that add simple functionality like JSON parsing. The Cocoa community is very open and you won't find yourself recreating the wheel too often.

Corey Floyd
A: 

There's not really any one framework that has wide adoption.

Games is the closest field to that being true, with quite a few people building atop Cocos2D for, well, 2D games. For 3D games Unity seems the runaway favorite though it is commercial and a little pricy - but it has some pretty advanced stuff.

Three20 I've found handy for a few special purpose things (mostly photo stuff) but I'm not sure how useful the rest of it is.

There are tons of littler frameworks around if you look - search on sourceforge, guthub and other places for "iPhone" and you can find a lot of interesting little projects.

Kendall Helmstetter Gelner
A: 

pureMVC supports objective-C and so you could build an application in that framework and deploy on iPhone and the web (with Actionscript, or Javascript). You would mostly have to change the view components themselves to use the programming language of the target platform. But the overall structure of the app would remain fairly consistent because of the pureMVC conventions that you would follow. The website has demo examples of the same basic app deployed in multiple platforms/languages. For example look at the employee admin demo:

http://trac.puremvc.org/Demo%5FObjectiveC%5FUIKit%5FEmployeeAdmin

http://trac.puremvc.org/Demo%5FAS3%5FFlex%5FEmployeeAdmin

http://trac.puremvc.org/Demo%5FJS%5FEmployeeAdmin

http://trac.puremvc.org/Demo%5FRuby%5FwxRuby%5FEmployeeAdmin

Gordon Potter