iOS Frameworks beyond UIKit - dummies

By Neal Goldstein, Dave Wilson

The UIKit framework in the iOS Developer Library, whose sole purpose in life is to provide a developer with all the classes an application needs in order to construct and manage its user interface, does a majority of the heavy lifting for you, but developers don’t live by the UIKit framework alone.

Quite a few other frameworks get put into play as well. Here is a rundown of some of the other frameworks you may encounter.

The Foundation framework

The Foundation framework is similar to the UIKit framework in that it defines general-purpose classes. The difference is that whereas UIKit limits itself to classes that implement the user interface, the Foundation framework stakes a claim on all the other stuff — the non–user-interface stuff — you need in your app.

In practical terms, this means that the Foundation framework defines basic object behavior, memory management, notifications, internationalization, and localization.

The Foundation framework also provides object wrappers or equivalents (for numeric values, strings, and collections) and utility classes (for accessing underlying system entities and services, such as ports, threads, and file systems as well as networking, and date and time management).

The CoreGraphics framework

The CoreGraphics framework contains the interfaces for the Quartz 2D drawing API and is the same advanced, vector-based drawing engine that’s used in Mac OS X. It provides support for path-based drawing, anti-aliased rendering, gradients, images, colors, coordinate-space transformations, and PDF document creation, display, and parsing.

Although the API is C based, it uses object-based abstractions to make things easier for you. While it is the basis for many things you see on the screen, you won’t be using it directly for many app projects.

Even more frameworks

Besides the UIKit, Foundation, and CoreGraphics frameworks, you use a handful of others in your own applications down the road. They are as follows:

  • MapKit: Lets you embed a fully functional map interface into your application. The map support provided by this framework includes many of the features normally found in the Maps application.

  • AVFoundation: Provides an Objective-C interface for managing and playing audio-visual media in your iOS application.

  • AudioToolbox: Contains the APIs that provide application-level services — for playing sounds, for example.

  • MediaPlayer: Provides basic functionality for playing movie, music, audio podcast, and audiobook files, as well as access to the iPod Library.

  • SystemConfiguration: Contains interfaces for determining the network configuration of a device.

  • CoreLocation: Provides location data to support functionality such as social networking. It also includes classes to do both forward and reverse geocoding.

You can find many, many more frameworks for your apps in iOS Technology Overview Appendix B: iOS Frameworks, which you can find in the iOS Developer Library. Be advised that if you want to be able to do something, there’s probably a framework to support it.