If you've been holding off on learning Objective-C because you didn't
like the idea of reading a whole book about C first, this tutorial is the
solution. If you know what a variable is and know what function is, we can
quickly get you up to speed on the subset of ANSI C that you need for use in Cocoa.
June 04, 2004
The Cocoa Bindings system is a toolset available in Panther which allows you to
define relationships between user interface and data objects. This means
a lot less code, and a lot more functionality
for free.
This tutorial walks you
through the conversion of a standard application into a bindings application.
April 30, 2004
The Cocoa development environment encourages the "Model-View-Controller" design pattern. This article demonstrates how Perl can serve as a resource for the "Model" components of Cocoa applications. The PerlObjCBridge makes it fairly easy to provide an Aqua interface to a Perl utility, or to add Perl's power to Objective-C in the "Model." [
Tutorials: Regular];
An easy tutorial on building an NSMenuExtra. [
Tutorials: Regular];
This easy tutorial will introduce you to the new Cocoa Framework named Web Kit. Step by step you'll create a Web Browser with only 1 line of code. [
Tutorials: Regular];
Today we'll talk about implementing delegates in our own classes. It's a relatively simple thing to do, but there are a couple gotchas that you have to watch out for. [
Tutorials: Bare Basics];
This tutorial shows you how to add export to PDF support to an application for single page and multi page documents. [
Tutorials: Regular];
A quick tutorial on getting started in AppleScript Studio, resulting in a working application. [
AppleScript Studio];
A quick tutorial on how to implement the NSDraggingDestination informal protocol. This is what lets a view receive drag and drop operations. [
Tutorials: Regular];
This tutorial shows you how to use Project Builder when learning to program. It covers creating a project, editing, compiling and debugging. [
Tutorials: Bare Basics];
This tutorial steps you through making a simple plugin and tells you how to build both plugins and applications that accept the capability. [
Tutorials: Regular];
This tutorial shows how to add drop shadows to the items drawn in a NSView using the ShadowView subclass. [
Tutorials: Regular];
This article describes how you would go about checking the user's version of Mac OS X, either to enable or disable a feature, or do other things. [
Tutorials: Regular];
This edition of QA answers questions about initializing C-style arrays, accessing MySQL, alias resolving, menu extras, finding Cocoa answers with cocoa.mamasam.com and more. [
Q & A];
When you first played with Interface Builder, you may have tried briefly to create an array or a dictionary, and given up in disgust. Apple in its wisdom has not, as of Mac OS X 10.1.5, seen fit to add support for these fundamental classes to IB, and it is usually possible to work around this oversight. [
Tutorials: Bare Basics];
A quick overview of the simplest of the OmniFrameworks, including OBObject and the OBASSERT macros. [
Tutorials: Regular];
In this installment we cover accessing MySQL databases from Cocoa apps, tools for examining Cocoa binaries, and a searchable archive of cocoa-dev posts which is extemely useful. [
Q & A];
This tutorial will add mouse events to the Rotate app to control the transformations. The translations will be controlled by normal mouse clicks and dragging. Rotation and scaling will both be controlled by either control clicking or by the right mouse button if the user has a multi button mouse. In addition, scaling will also depend on the shift key being pressed. [
Tutorials: Regular];
It is very easy to implement a basic HTML help system in a Cocoa application. The Cocoa frameworks automatically provide your application with a help menu. This article is about hooking up your HTML help to work with that menu item. [
Tutorials: Bare Basics];
Guidelines to help choose the right class to use in Cocoa's Foundation classes, as well as how to use them most effectively. [
Tutorials: Regular];
Implementing an "About Box" in Cocoa is very easy because Cocoa has a built-in "standard about panel" that is more than sufficient for most applications' needs and that does nearly all of the work for you. This tutorial describes how to use this standard about panel, including what types of information it needs and where to put this information in your application and in Project Builder. [
Tutorials: Bare Basics];
Jiiva provides us with a new way to store resources. This article answers the questions "why and how". [
Tutorials: Regular];
How to use multiple Nibs in order to easily have multiple intances of resources loaded and running in your application [
Tutorials: Regular];
Don't think you have to use Java OR Objective C to program Cocoa. Just mix it! Now with additional information. [
Java];
We cover regular expression libraries, tools for searching developer documentation offline, Objective-C QuickTime wrappers, javadoc-like tools, opaque references, the [copy] message, UNIX signals, and more. [
Q & A];
A short overview to providing a data source and customizing an NSTableView to your needs [
Tutorials: Bare Basics];
Tutorial on using NSAffineTransform to perform transformations and ABCRotation to control the rotate transform. [
Tutorials: Regular];
This tutorial shows how you can use AppleScript Studio to access a FileMaker database without much hassle. [
AppleScript Studio];
This tutorial explains how to make an About Box with scrolling credits. As an added bonus you will also learn how to make a Secret About Box. [
Tutorials: Regular];
This tutorial will show you how to use Portable Distributed Objects to communicate between threads and processes, including a fairly involved example that will stretch beyond just this article. [
Tutorials: Regular];
This article explains how to include a framework inside of your application's bundle in order to avoid requiring installation of the framework by the user. [
Tutorials: Regular];
Event though Mac OS X is GUI-based, sometimes you just need something that requires the terminal. [
Tutorials: Regular];
An introduction on how to create a PreferencePane. [
Tutorials: Regular];
This tutorial shows you how to create a preference pane that can be added to the System Preferences application. Specifically, a pane is created that allows you to control the position of the scroll arrows on the scroll bar and offers more options than what Apple provides in the General preferences. [
Tutorials: Regular];
This edition of QA answers questions about opening URLs, editing HTML in PB, string streams for STL, ejecting disks, Cocoa wrappers for BSD sockets, and much more. [
Q & A];
This tutorial shows how to add a toolbar to a window and how to customize it. [
Tutorials: Regular];
A quick intro to how to use Cocoa's NSThread class to create and destroy threads, and its synchronization classes to keep them from ruining each other's data. [
Tutorials: Regular];
A tutorial with examples of using the XML-based property list methods and also the binary-encoded NSArchiver based methods to create persistent objects. [
Tutorials: Regular];
This tutorial shows how to add a custom dock menu to your application. [
Tutorials: Regular];
This article discusses debugging in Mac OS X using Unix tools like GDB, functionality like assert and NSLog/printf, and more. This is not for a Cocoa newbie, but should serve debugging newbies well. [
Tutorials: Regular];
This tutorial describes how to attach a drawer to a window. [
Tutorials: Bare Basics];
Using Darwin's ppplib to connect, disconnect and receive PPP-events. [
Tutorials: Regular];
This tutorial describes the steps necessary to make a full screen application. [
Tutorials: Regular];
AppKit and Foundation are great, but your development power can be strengthened by using third-party frameworks. Read this article to get started with OmniFrameworks, a set of powerful frameworks from The Omni Group. [
Tutorials: Regular];
Using NSTask's setStandardOutput: for displaying information from a command. [
Tutorials: Regular];
This edition of QA answers questions about formatters, file renaming, docklet icons, language settings, FSSpec conversion, inserting attributed text into a NSTextView, outlet connection rules, NSTabView reordering and random numbers. [
Q & A];
Versioning is an important feature for many projects. This tutorial teaches you how to use versioning in your project. [
Tutorials: Regular];
This edition of QA answers questions about images, exceptions, font anti-aliasing, processes, small controls, delegates and controllers, multiple windows and disabling menus. [
Q & A];
Using NSTask and an interface to help regular users. [
Tutorials: Regular];
This edition of QA answers questions about resource forks, initialization, pbxbuild, sendmail and drawing strings. [
Q & A];
This tutorial describes how to easily write a screen saver module. [
Tutorials: Regular];
This edition of QA answers questions about file packaes, LaunchServices, command key bindings, the time and pthreads. [
Q & A];
This edition of QA answers questions about window backgrounds, NSRange, circular dependancies, detached views, closing windows, the dmg-format and faceless background applications. [
Q & A];
How to create a disk image to distribute your applications [
Tutorials: Regular];
Learning C is a good first step before learning Java or Objective-C. Presented here are some references and links to help you learn C as well as some advice for people who are used to learning scripting languages like AppleScript, Lingo, or Hypertalk. [
Tutorials: Bare Basics];
Dictionaries are more complicated than arrays, but if you know them they can be powerful companions. [
Tutorials: Bare Basics];
This edition of QA answers questions about vargs, constant strings, command line front end, converting CF to NS, timestamps and preferences. [
Q & A];
Arrays can help storing lists of any data you want. Dynamic, static, whatever. [
Tutorials: Bare Basics];
Storage is one of the most common problems of programming. Cocoa solves this very well, so read this before you get caught in dynamic linked lists... [
Tutorials: Bare Basics];
This edition of QA answers questions about NSTextFields, saving documents, SIGSEGVs and Carbon calls. [
Q & A];
This edition of QA answers questions about OpenTransport replacements in Cocoa, date formats, getting keyboard input, crashing NSTableViews and converting integers to NSStrings. [
Q & A];