Introduction

Technology Overview

Core Foundation is a procedural C framework that is conceptually modeled on the object-oriented Foundation framework in Cocoa and that uses the abstraction of the opaque type as a procedural analog to an object. If you use the Mac OS X developer environments (Carbon and Cocoa), you can incorporate Core Foundation types in your external interfaces and so share code and data between different frameworks and libraries. Moreover, you can use many Core Foundation data types (such as arrays and strings) interchangeably with the corresponding Cocoa objects. This can help you to transition code from one application environment to another. Utilities such as command-line applications can also benefit from the features Core Foundation provides.

Core Foundation helps you to create various kinds of application by providing:

You can also use the associated CFNetwork Programming Guide framework for networking tasks—in particular, dealing with Bonjour and the processing of HTTP transmissions.

Core Foundation does not provide support for user interface components such as windows and menus. If you want to create applications with a graphical user interface, you should also look at Getting Started with Cocoa and Getting Started with Carbon to become familiar with those frameworks.

Start Here

To begin development with Core Foundation, read:

Choose a Learning Path

Becoming proficient with Core Foundation begins with learning the underlying fundamental concepts—in particular, memory management. You may also benefit from using Apple’s developer tools.

Learning the Fundamentals

The first step in learning to use Core Foundation effectively is to understand the basic principles of opaque types. A full appreciation of the memory management model that Core Foundation employs will save you from many common mistakes.

Learning About the Development Tools

To start writing Core Foundation utilities quickly, Apple recommends its integrated development environment Xcode, which integrates a number of standard UNIX development tools.

Migrating from Another Platform

If you are porting code from another environment, the following documents will provide useful information. The article Carbon-Cocoa Integration Guide also describes general porting and integration issues relevant to Core Foundation.

Next Steps

The Core Foundation Reference Library includes the following high-level resource pages, which can be bookmarked for easy access: