1. SQLite Persistent Objects
One of my favorite third-party libraries for the iPhone is SQLite Persistent Objects. (We'll call it SPO, for short) SPO is to SQLite on the iPhone as Hibernate is to other relational databases on the Java platform. SPO allows for developers to persist normal Objective-C objects to the database, without the need to write SQL code or manage SQL connections. All that is needed for an object to be persistable is for it to extend the SQLitePersistentObject class. From there, a simple [save] call will allow you to save this object to the database for retrieval later.
By including SQLite within the iPhone OS, Apple has provided a simple mechanism for storing and retrieving data. However, many developers don't want to waste their time writing SQL code, especially when the data being written/read is not terribly complex. Using a library like SPO allows you to hit the ground running and make progress very quickly. Even more impressive is the querying capability that SPO provides. For example, if we have a data object called Person with first name and last name fields, we can query for people whose last name is 'Smith' simply by calling:
NSArray *people = [Person findByLastName:@"Smith"];
That's all there is to it! These query methods are dynamically added to the class, without the need for custom code. We can even execute arbitrary SQL in a query by calling the findByCriteria or findFirstByCriteria methods.
SPO provides a very powerful framework for object persistence. Take a look at it, and you will see it will dramatically cut down your development time. In the coming weeks, I will post a detailed tutorial on how to use SPO within your application, as well as provide some things you need to keep in mind when doing so.
2. GData Objective-C Client
Google web services and the iPhone seem like a match made in heaven. The wealth of information that Google can serve up can provide almost limitless possibilities on a device like the iPhone. Google's official GData Objective-C Client makes this functionality to OS X and iPhone developers, alike. Included in this library are classes for accessing Blogger, Google Calendar, YouTube, and many other Google properties.
The GData library is easy to use, with a great deal of features for developers of all types of applications. Most important to new developers is the inclusion of numerous sample applications. This framework makes developing complex applications for the iPhone almost effortless. Imagine combining the GPS built into the iPhone with a Blogger client or YouTube to post detailed information about an event or activity. Use the built-in camera and OCR to provide an easier way to perform web searches. You name it, this library can assist with it.
3. JSON Framework
As we discussed with the GData Objective-C Client, web services can provide some amazing capabilities to the iPhone. Many services choose to avoid complex web services protocols like SOAP in favor of REST-based or other types of web services. The JSON Framework provides a mechanism for parsing and generating JSON (JavaScript Object Notation) data for accessing webservices.
Like the SQLite Persistent Objects library, the JSON Framework makes working with JSON easy by extending your existing Objective-C objects. The included parser also makes it easy to create Objective-C objects from their JSON representation. In cases where there is no native, Objective-C client for a web service, the JSON Framework makes it easy to work with online services.
4. Simple iPhone Image Processing
The iPhone is never going to make your Mac Pro obsolete when it comes to image editing. However, the Simple iPhone Image Processing library does provide some basic image processing functionality to your application.
According to the project page, this library provides:
- Canny edge detection
- Histogram equalisation
- Skeletonisation
- Thresholding (adaptive and global)
- Gaussian blur
- Brightness normalization
- Connected region extraction
- Resizing
Combined with the iPhone semi-decent camera, this library can greatly extend your ability to process and enhance images in your application. The library is designed to perform well within the hardware constraints of the iPhone, and seems to be very careful when it comes to memory management to ensure it plays nicely with your application.
This is just a brief rundown of some of the libraries I've had the pleasure of working with. Have you encountered any other useful libraries? Post them in the comments! I'd love to take a look at them!
I appreciate the information. iphone development with iphone
ReplyDeletedevelopers is really grooming these days as demand for business and entertainment application is increasing.
Thanks @Purohit D - thanks for sharing your view on iphone application development .
ReplyDeleteThanks . . Very useful information .
ReplyDeleteBut for Image processing framework . I did not find any downloadable code in code.google.com link that is provided .
@Till: Dunno if you still need it.. but you can get the code via svn checkout:
ReplyDeletesvn checkout http://simple-iphone-image-processing.googlecode.com/svn/trunk/ simple-iphone-image-processing-read-only