TweetFollow Us on Twitter

Book Review: Mac OS X Advanced Development Techniques

Volume Number: 19 (2003)
Issue Number: 7
Column Tag: Reviews

Book Review: Mac OS X Advanced Development Techniques

by Ron Davis

I have to confess that I worked with Joe Zobkiw on my first job out of college working on Virex almost ten years ago. I was one of the tech reviewers for his previous book A Fragment of Your Imagination, which covered the esoteric programming arts of init, cdev, and other code fragments. It was one of those books that covered stuff no other book covered, the really low level crap most of us attempt to avoid. At the time there was next to no documentation on coding these things and Zobkiw's book was written to meet that need.

Mac OS X Advanced Development Techniques (MADT) is like that book. Not that it talks about the stuff you are trying to avoid writing, but it is talking about the things no one else is. There isn't as much low level stuff you can mess with in OSX, but there are a lot of little nooks and crannies of code that need explanations. Need to write a System Preference panel? It's there. How about adding one of those system-wide menus? Got you covered. They're called Status Items, Chapter 9. Screen saver? Chapter 10.

It also covers some less stand-alone stuff, like threads, frameworks and how to talk between a Cocoa app and a command-line tool. There is also a good chapter of "snippets", little pieces of code you often want, but that don't merit a long discussion.

Section 1: Overview

In my opinion, this book is really aimed at the experienced OSX developer. The introduction says anyone who can compile a program in Project Builder can use it. I think you probably need a little more experience than that. I was interested in the book as a follow up to the various OSX development books I already had. If you have no understanding of Cocoa and want to write a screensaver, this book may not be the place to start.

Given the level of experience required for the book, I thought the first chapter was a waste of time. It is a very high level overview of MacOS in general and MacOS development. Most people already know about Quartz, Project Builder, FreeBSD.

The second chapter at first looked like more of the same, but I found the brief descriptions of the all of the developer applications helpful, if a little shallow. Especially interesting was the listing of command line tools useful to the developer.

Another general thing about the book. Zobkiw is a long time developer of Mac software and this book is plainly written assuming you are coming from a Mac background. If you're a Windows user or a UNIX guy, some stuff might go right by you, but none of it is really critical.

Section 2: Application Level

The first chapter with code in it is a document-based Cocoa app. This isn't a simple text edit style doc app either, but an app that watches Doppler radar pictures on the web and alerts you when a color in them change. I like that. I don't need another simple simple application, I want something that shows me a lot while it teaches the basics of a document based app.

The book also doesn't go through creation of the project step by step, but assumes you downloaded the project and just need it explained to you. This is appropriate for an advanced audience.

The only problem I had with the app was the document class uses readFromFile:ofType: and writeToFile:ofType instead of dataRepresentationOfType: and loadDataRepresentation:ofType which are what the standard document template creates for you. Nor does he mention these other routines and explain why one would be better or worse than the other.

The next two chapters discuss plug-ins, both Carbon and Cocoa. It is a very useful overview and explanation of how the various plug-in architectures work in OSX.

The last chapter in this section covers Frameworks, showing how to build both a Carbon and Cocoa version of a simple Framework.

Section 3: Enhancing the System

The second section of the book was advanced topics for the application writer. The third section covers how to build unusual non-applications. Specifically System Services, System Preference Panes, Status Items (system-wide menus), Screen Effects (screen savers), and Color pickers.

You've probably noticed the Services sub-menu of a lot of apps. Under 10.1 this was a dead give away you were using a Cocoa, but 10.2 made them available to Carbon apps as well. They are programs, normally faceless, that interact with the current selection. Zobkiw explains how to write one of these services, creating an example that changes the case of the selected text.

Next Zobkiw talks about how to write a System Preference panel. This allows you to provide a basic UI for faceless application that run all of the time. The example in this chapter sets the preference for the Service created in the previous chapter.

Zobkiw gives an informative discussion of the various kinds of little menus that are displayed in the menu bar on the right side. Some of these are Status Items, some of them Menu Extras. Technically, we developers are only allowed to create Status Items; Menu Extras are reserved for Apple. The example in this chapter is of a Status Item and not a Menu Extra.

I was always a little jealous of how Windows has a standard screen saver mechanism and OS9 didn't. Well that changed in OSX and now you can very easily write those screen savers yourself. They're so easy the chapter explaining them is only 7 pages long. It is still a good introduction that leaves you with a place to start writing your own. If you are going to do a lot of Screen Effects work, you will want to get Saver Lab (http://www.dozingcat.com/), which allows you to run your screen saver in a window for debugging.

The last esoteric piece of code in this section is a Color Picker. The OSX Color Picker is actually a collection of pickers. When you open it there is a list of icon buttons at the top of the window that let you pick from a number of pickers. Third party developers can create their own picker panels using Cocoa. Chapter 11 gives you the details on how to do this.

Section 4: Advanced Methods

Threads is the first of the advanced topics discussed, which gives you an overview of what threads are and how they work, and gives you an example of how to use them.

Terminal is the name of the next chapter, but it is really about NSTask and another thread example. Of all the chapters, this was the one I liked the least, because I felt it didn't really cover the topic and was just kind of wrong. He tells you how to use an NSTask to launch a UNIX command line command, but when he does one that you have to wait to return, he uses a thread that polls for the result. It really should have used the notifications NSTask has built into it. That is the right way to do it and the code would have been simpler.

The last two topics covered by their own chapters were XML-RPC and SOAP. These chapters give a basic introduction to using WebServices both in PHP and Cocoa. The PHP for the server made sense, though I was a little surprised Zobkiw did a PHP client. He also builds a client in Cocoa using the WebServices API in CoreServices. These two chapters are very similar. If you have a preference for one remote procedure call methodology over the other, you probably only need to read one of these chapters.

The last chapter of the book is a collection of snippets. Bits and pieces of code that you will find useful, but don't rate a full chapter. This may be the section you find most useful.

Summary

Overall I would say this book is a must have for a complete Cocoa bookshelf. It covers topics no other book covers and does it in a concise, referenceable way.


Ron Davis is a long time Macintosh Software Engineer, having worked for companies like Apple, and Metrowerks on a variety of products from development tools to anti-virus software. His day job is working for Alsoft, and his evening job is R.A.D. Productions, makers of Suck It Down and FinderEye.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

DEVONthink Pro 2.9.11 - Knowledge base,...
DEVONthink Pro is your essential assistant for today's world, where almost everything is digital. From shopping receipts to important research papers, your life often fills your hard drive in the... Read more
DiskCatalogMaker 6.8.1 - Catalog your di...
DiskCatalogMaker is a simple disk management tool which catalogs disks. Simple, light-weight, and fast Finder-like intuitive look and feel Super-fast search algorithm Can compress catalog data for... Read more
Tunnelblick 3.7.0 - GUI for OpenVPN.
Tunnelblick is a free, open source graphic user interface for OpenVPN on OS X. It provides easy control of OpenVPN client and/or server connections. It comes as a ready-to-use application with all... Read more
Adobe Dreamweaver CC 2017 17.0.2.9391 -...
Dreamweaver CC 2017 is available as part of Adobe Creative Cloud for as little as $19.99/month (or $9.99/month if you're a previous Dreamweaver customer). Adobe Dreamweaver CC 2017 allows you to... Read more
Adobe Animate CC 2017 16.2.0 - Advanced...
Animate CC 2017 is available as part of Adobe Creative Cloud for as little as $19.99/month (or $9.99/month if you're a previous Flash Professional customer). Animate CC 2017 (was Flash CC) lets you... Read more
A Better Finder Rename 10.15 - File, pho...
A Better Finder Rename is the most complete renaming solution available on the market today. That's why, since 1996, tens of thousands of hobbyists, professionals and businesses depend on A Better... Read more
Creative Kit 1.1 - $149.99
Creative Kit 2016--made exclusively for Mac users--is your ticket to the most amazing images you've ever created. With a variety of powerful tools at your fingertips, you'll not only repair and fine-... Read more
iMazing 2.2.3 - Complete iOS device mana...
iMazing (was DiskAid) is the ultimate iOS device manager with capabilities far beyond what iTunes offers. With iMazing and your iOS device (iPhone, iPad, or iPod), you can: Copy music to and from... Read more
Fantastical 2.3.6 - Create calendar even...
Fantastical 2 is the Mac calendar you'll actually enjoy using. Creating an event with Fantastical is quick, easy, and fun: Open Fantastical with a single click or keystroke Type in your event... Read more
Apple Configurator 2.4 - Configure and d...
Apple Configurator makes it easy to deploy iPad, iPhone, iPod touch, and Apple TV devices in your school or business. Use Apple Configurator to quickly configure large numbers of devices connected to... Read more

Power Rangers: Legacy Wars beginner...
Rita Repulsa is back, but this time she's invading your mobile phone in Power Rangers: Legacy Wars. What looks to be a straightforward beat 'em up is actually a tough-as-nails multiplayer strategy game that requires some deft tactical maneuvering.... | Read more »
Hearthstone celebrates the upcoming Jour...
Hearthstone gets a new expansion, Journey to Un'Goro, in a little over a week, and they'll be welcoming the Year of the Mammoth, the next season, at the same time. There's a lot to be excited about, so Blizzard is celebrating in kind. Players will... | Read more »
4 smart and stylish puzzle games like Ty...
TypeShift launched a little over a week ago, offering some puzzling new challenges for word nerds equipped with an iOS device. Created by Zach Gage, the mind behind Spelltower, TypeShift boasts, like its predecessor, a sleak design and some very... | Read more »
The best deals on the App Store this wee...
Deals, deals, deals. We're all about a good bargain here on 148Apps, and luckily this was another fine week in App Store discounts. There's a big board game sale happening right now, and a few fine indies are still discounted through the weekend.... | Read more »
The best new games we played this week
It's been quite the week, but now that all of that business is out of the way, it's time to hunker down with some of the excellent games that were released over the past few days. There's a fair few to help you relax in your down time or if you're... | Read more »
Orphan Black: The Game (Games)
Orphan Black: The Game 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Dive into a dark and twisted puzzle-adventure that retells the pivotal events of Orphan Black. | Read more »
The Elder Scrolls: Legends is now availa...
| Read more »
Ticket to Earth beginner's guide: H...
Robot Circus launched Ticket to Earth as part of the App Store's indie games event last week. If you're not quite digging the space operatics Mass Effect: Andromeda is serving up, you'll be pleased to know that there's a surprising alternative on... | Read more »
Leap to victory in Nexx Studios new plat...
You’re always a hop, skip, and a jump away from a fiery death in Temple Jump, a new platformer-cum-endless runner from Nexx Studio. It’s out now on both iOS and Android if you’re an adventurer seeking treasure in a crumbling, pixel-laden temple. | Read more »
Failbetter Games details changes coming...
Sunless Sea, Failbetter Games' dark and gloomy sea explorer, sets sail for the iPad tomorrow. Ahead of the game's launch, Failbetter took to Twitter to discuss what will be different in the mobile version of the game. Many of the changes make... | Read more »

Price Scanner via MacPrices.net

Save up to $420 on a new MacBook Pro with App...
Apple is offering Certified Refurbished 2016 15″ and 13″ MacBook Pros, including some Touch Bar models, for up to $420 off original MSRP. An Apple one-year warranty is included with each model, and... Read more
12-inch 1.2GHz Retina MacBooks on sale for $1...
B&H has 12″ 1.2GHz Retina MacBooks on sale for up to $200 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.2GHz Space Gray Retina MacBook: $1449 $150 off MSRP - 12″ 1.... Read more
Is A New 10.5-inch iPad Still Coming In April...
There was no sign or mention of a long-rumored and much anticipated 10.5-inch iPad Pro in Apple’s product announcements last week. The exciting iPad news was release of an upgraded iPad Air with a... Read more
T-Mobile’s Premium Device Protection Now Incl...
Good news for T-Mobile customers who love their iPhones and iPads. The “Un-carrier” has become the first national wireless company to give customers AppleCare Services at zero additional cost as part... Read more
FileWave Ensures Support for Latest Apple OS...
FileWave multi-platform device management providers announced support for Apple’s release yesterday of iOS 10.3, macOS Sierra 10.12.4, and tvOS 11.2. FileWave has a history of providing zero-day... Read more
Use Apple’s Education discount to save up to...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free: -... Read more
Apple refurbished Apple Watches available sta...
Apple is now offering Certified Refurbished Series 1 and Series 2 Apple Watches for 14-16% off MSRP, starting at $229. An Apple one-year warranty is included with each watch. Shipping is free: Series... Read more
9-inch 32GB Space Gray iPad Pro on sale for $...
B&H Photo has the 9.7″ 32GB Space Gray Apple iPad Pro on sale for $549 for a limited time. Shipping is free, and B&H charges NY sales tax only. Their price is $50 off MSRP. Read more
13-inch MacBook Airs on sale for $100-$150 of...
B&H Photo has 13″ MacBook Airs on sale for up to $150 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/128GB MacBook Air (MMGF2LL/A): $899 $100 off MSRP - 13″ 1.... Read more
13-inch MacBook Airs, Apple refurbished, in s...
Apple has Certified Refurbished 2016 13″ MacBook Airs available starting at $849. An Apple one-year warranty is included with each MacBook, and shipping is free: - 13″ 1.6GHz/8GB/128GB MacBook Air: $... Read more

Jobs Board

Fulltime aan de slag als shopmanager in een h...
Ben jij helemaal gek van Apple -producten en vind je het helemaal super om fulltime shopmanager te zijn in een jonge en hippe elektronicazaak? Wil jij werken in Read more
Desktop Analyst - *Apple* Products - Montef...
…technology to improve patient care. JOB RESPONSIBILITIES: Provide day-to-day support for Apple Hardware and Software in the environment based on the team's support Read more
*Apple* Mobile Master - Best Buy (United Sta...
**493168BR** **Job Title:** Apple Mobile Master **Location Number:** 000827-Denton-Store **Job Description:** **What does a Best Buy Apple Mobile Master do?** At Read more
Fulltime aan de slag als shopmanager in een h...
Ben jij helemaal gek van Apple -producten en vind je het helemaal super om fulltime shopmanager te zijn in een jonge en hippe elektronicazaak? Wil jij werken in Read more
*Apple* Mobile Master - Best Buy (United Sta...
**492889BR** **Job Title:** Apple Mobile Master **Location Number:** 000886-Norwalk-Store **Job Description:** **What does a Best Buy Apple Mobile Master do?** Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.