Three20 - Prime31 Fork
Three20 is a collection of iPhone UI classes, like a photo viewer, and general utilities, like an HTTP disk cache. Three20 is derived from the Facebook iPhone app, which is one of the most downloaded iPhone apps ever.
The Prime31 fork of Three20 removes all private API calls so that apps made with it can get through the App Store approval process.
Adding Three20 - Prime31 to your project
Three20 is compiled as a static library, and the easiest way to add it to your project is to use Xcode's "dependent project" facilities. Here is how:
Clone the three20 - Prime31 git repository:
git://github.com/uprise78/three20-P31.git. Make sure you store the repository in a permanent place because Xcode will need to reference the files every time you compile your project.
Locate the "Three20.xcodeproj" file under "three20/src". Drag Three20.xcodeproj and drop it onto the root of your Xcode project's "Groups and Files" sidebar. A dialog will appear -- make sure "Copy items" is unchecked and "Reference Type" is "Relative to Project" before clicking "Add".
Now you need to link the Three20 static library to your project. Click the "Three20.xcodeproj" item that has just been added to the sidebar. Under the "Details" table, you will see a single item: libThree20.a. Check the checkbox on the far right of libThree20.a.
Now you need to add Three20 as a dependency of your project, so Xcode compiles it whenever you compile your project. Expand the "Targets" section of the sidebar and double-click your application's target. Under the "General" tab you will see a "Direct Dependencies" section. Click the "+" button, select "Three20", and click "Add Target".
Now you need to add the bundle of images and strings to your app. Locate "Three20.bundle" under "three20/src" and "Prime31.bundle" under "three20/src/P31-Additions/" and drag and drop them into your project. A dialog will appear -- make sure "Create Folder References" is selected, "Copy items" is unchecked, and "Reference Type" is "Relative to Project" before clicking "Add".
Now you need to add the Core Animation framework to your project. Right click on the "Frameworks" group in your project (or equivalent) and select Add > Existing Frameworks. Then locate QuartzCore.framework and add it to the project.
Finally, we need to tell your project where to find the Three20 headers. Open your "Project Settings" and go to the "Build" tab. Look for "Header Search Paths" and double-click it. Add the relative path from your project's directory to the "three20/src" directory.
While you are in Project Settings, go to "Other Linker Flags" under the "Linker" section, and add "-ObjC" and "-all_load" to the list of flags.
You're ready to go. Just #import "Three20/Three20.h" anywhere you want to use Three20 classes in your project.