Overview
Three20 is a open source Objective-C library used by dozens of well-known brands in the App Store, including Facebook, Posterous, Pulse, Meetup.com, and SCVNGR. Three20 provides powerful view controllers such as the Launcher, the popular Photo Browser, and internet-aware tables.
The library is modular, meaning you choose which elements of the library to include in your app. This modular design allows Three20 to be one of the only Objective-C frameworks that encourages what are called 'extensions' from the community.
You can explore some features of Three20 using the playable demo on the right.
Persistence
Three20 remembers your app's state so that you and your users don't have to.
How does it work?
Each page in your app is treated as a distinct URL. When the user navigates through your app, Three20 stores a history of the navigation path and writes it to disk. When the app starts up again, these URLs are replayed instantly, and your app is right where it left off.
Is this necessary now that multi-tasking is available?
Your app can be shut down at any time. Even with multi-tasking, the user might forcefully close the app, turn off their device, or the device itself might decide that it needs to shut your program down. Any of these situations will require that you persist the state of your application.
Example
In the following example Jeff is posting a status update. Below each screen is the corresponding URL and the data saved to disk when the state is persisted.
When the app launches again, each of these URLs is replayed in order. Each controller can then access their stored data to restore custom states. The best part: if you use Three20 UI components, all of this is handled automatically for you.
Launcher
Three20 provides an open-source implementation of the standard app launcher control found on all iOS devices. The Launcher supports reordering and deletion of items, custom column and row counts, and multiple pages of content. It also works on the iPad.
Example