I have added a list of some good open-source libraries that you can use to spice up your iPhone apps. Feel free to add any that I forget to mention. The top of the pile is Three20 which is a portfolio of libraries made by the creator of Facebook for the iPhone, and from what I’ve read, definitely looks handy, for efficiently bringing images and table data to your UI Controllers.
Three20 is a collection of iPhone UI classes, like a photo viewer, and general utilities, like an HTTP disk cache. Here is the list of components available in Three20
TTPhotoViewController emulates Apple’s Photos app with all of its flick ‘n pinch delight. You can supply your own “photo sources”, which works similiarly to the data sources used by UITableView. Unlike Apple’s Photos app, it isn’t limited to photos stored locally. Your photos can be loaded from the network, and long lists of photos can be loaded incrementally.
TTMessageController emulates the message composer in Apple’s Mail app. You can customize it to send any kind of message you want. Include your own set of message fields, or use the standard “To:” and “Subject:”. Recipient names can be autocompleted from a data source that you provide.
Web image views
TTImageView makes it as easy to display an image as it is in HTML. Just supply the URL of the image, and TTImageView loads it and displays it efficiently. TTImageView also works with the HTTP cache described below to avoid hitting the network when possible.
Internet-aware table view controllers
TTTableViewController and TTTableViewDataSource help you to build tables which load their content from the Internet. Rather than just assuming you have all the data ready to go, like UITableView does by default, TTTableViewController lets you communicate when your data is loading, and when there is an error or nothing to display. It also helps you to add a “More” button to load the next page of data, and optionally supports reloading the data by shaking the device.
Better text fields
TTTextEditor is a UITextView which can grow in height automatically as you type. I use this for entering messages in Facebook Chat, and it behaves similarly to the editor in Apple’s SMS app.
TTPickerTextField is a type-ahead UITextField. As you type it searches a data source, and it adds bubbles into the flow of text when you choose a type-ahead option. I use this in TTMessageController for selecting the names of message recipients.
HTTP disk cache
TTURLRequest is a replacement for NSURLRequest which supports a disk cache (NSURLRequest can only cache in RAM). It has some other nice features too. HTTP posts are as easy as supplying a dictionary of parameters. The TTURL loading system can also be suspended and resumed at any time, which is a great performance helper. Network threads often fight with the UI thread, so you can suspend the network any time your app is momentarily graphically intensive.
TTNavigationCenter is for those grizzled old web developers like myself who want to organize their app by “pages” which can be displayed by visiting a URL.
Your view controllers can simply register URL patterns that they handle, and when those URLs are visited the controllers will be created and displayed. You can also register generic actions that are called when a URL is visited.
TTNavigationCenter also persists and restores the full path of navigation controllers and modal view controllers, so your users can quite the app and come back exactly where they left off.
More details on:
2. MajicRank 1.3
Here is a list of the features that this version, 1.3 adds:
* Adds historical graphs
* Stores all archives by AppID
* Reduces file size of stored archives
* Allows entering AppID with search preference over name
* Auto detects and fills in app ID when app name is entered
* Allows re-ordering of apps list
* Fixed a bug where deleting an app while editing it’s title caused a hang
* About box allows resizing, should now be viewable on low-res displays
* Adds latest date run to status text when update is complete
More details on:
3. Facebook connect Library for iPhone
* Seamlessly connect their Facebook account and information with your iPhone app
* Connect and share experiences with friends who also use your iPhone app
* Share user information and actions on your iPhone app with friends on Facebook
4. MGTwitterEngine ‚ Twitter from Cocoa
MGTwitterEngine is an Objective-C class which lets you integrate Twitter support into your Cocoa application, by making use of the Twitter API. The entire API is covered, and appropriate data is returned as simple native Cocoa objects (NSArrays, NSDictionarys, NSStrings, NSDates and so on), for very easy integration into your own application.
More details on:
5. Route Me
A slippy map library for the iPhone.
Fast! Completely written in objective-c using CoreAnimation. Runs like the built-in app.
More Details on:
6. Core Plot
Core Plot is a plotting framework for Mac OS X and iPhone OS. It provides 2D visualization of data, and is tightly integrated with Apple technologies like Core Animation, Core Data, and Cocoa Bindings.
More details on:
This document introduces RegexKitLite for Mac OS X. RegexKitLite enables easy access to regular expressions by providing a number of additions to the standard Foundation NSString class. RegexKitLite acts as a bridge between the NSString class and the regular expression engine in the International Components for Unicode, or ICU, dynamic shared library that is shipped with Mac OS X.
* Uses the regular expression engine from the ICU library which is shipped with Mac OS X.
* Automatically caches compiled regular expressions.
* Uses direct access to a strings UTF-16 buffer if it is available.
* Caches the UTF-16 conversion that is required by the ICU library when direct access to a strings UTF-16 buffer is unavailable.
* Small size makes it ideal for use in iPhone applications.
* Multithreading safe.
* 64-bit support.
* Custom DTrace probe points.
* Support for Mac OS X 10.5 Garbage Collection.
* Uses Core Foundation for greater speed.
* Very easy to use, all functionality is provided by a category extension to the NSString class.
* Consists of two files, a header and the Objective-C source.
* Xcode 3 integrated documentation available.
* Distributed under the terms of the BSD License.
More details on:
is an open-source library of standard data structures which can be used in any Objective-C program, for educational purposes or as a foundation for other data structures to build on. Data structures in this framework adopt Objective-C protocols that define the functionality of and API for interacting with any implementation thereof, regardless of its internals.
Apple’s extensive and flexible Cocoa frameworks include several collections classes that are highly optimized and amenable to many situations. However, sometimes an honest-to-goodness stack, queue, linked list, tree, etc. can greatly improve the clarity and comprehensibility of code. This framework provides Objective-C implementations of common data structures which are currently beyond the purview of Cocoa.
The abstract data type protocols include:
The concrete subclasses of NSMutableDictionary include:
The concrete subclasses of NSMutableSet include:
The concrete subclasses of CHLockableObject (which don’t have a protocol) include:
More Details on:
A library for testing resolution-independent iPhone OS applications.
ResKit simulates varying device screen sizes by resizing and moving your application’s main window. It supports scaling down the simulated device so more of the screen can be seen at once.
Exposes properties of the phone, such as its device ID, model, and OS version number.
Gain access to the Latitude / Longitude of the device, and depending on the type of device, the course, speed, and altitude.
Monitor the accelerometer on the device to detect orientation, shaking and other similar actions.
Query the phone addressbook to read the users contacts.
Read the device layout orientation, e.g. landscape vs portrait.
Brings up the camera or photo browser on the phone to allow the user to upload a photo.
Triggers the vibration alert on the phone, if it is supported.
Play sound files (WAV, MP3, etc).
Trigger and activate phone calls.
ASKit is an easy to use library for your iPhone applications. ASKit provides AppStore styled table views
- ASTableViewController: Instead of subclassing UITableViewController, you’ll subclass ASTableViewController. This is where most of the work is done.
- ASTableViewCell: This replaces UITableViewCell
- ASHeaderView: Provides the gradient header that you can find when viewing a single app in AppStore
- ASFooterView: This is the footer that AppStore shows your iTunes account in.
- ASInfoCell This extends ASTableViewCell and should be used for various information messages such as “No Items” and “Loading” (it also contains an activity indicator for loading messages
- ASSectionHeaderView: This is for table sections, you must return a view when using ASKit and not a string, otherwise it you won’t have the correct theme.
- ASTableViewCellLabel: Use this instead of UILabel while adding to an ASTableViewCell so the shadows are handled correctly when a cell is selected
ElementParser is lightweight Cocoa Framework (usable on the iPhone) to provide easy access to XML and HTML content.
This iPhone framework allows settings to be in-app in addition to being in the Settings app
Accelerometer utilities for iPhone, including trigger sensitivity and time lockout between events
Hope it helps few, if not all of the aspiring iPhone developers.
The list will be updated as and when we encounter a new useful Open source library!
So keep Track.
Any addition to the list is Welcome!!
This article is credited to mobisoftinfotech.com