Frameworks You Can Use to Develop Your iOS App

By Jesse Feiler

The UIKit frameworks sole purpose in life is to provide an iOS app developer with all the classes an app needs in order to construct and manage its user interface. The UIKit framework 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.

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 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. It is the basis for many things seen on the screen.

Even more frameworks

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

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

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

  • 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; then enter iOS Technology Overview. Be advised that if you want to be able to do something, there’s probably a framework to support it.