TweetFollow Us on Twitter

Mac Prog FAQ Review

Volume Number: 13 (1997)
Issue Number: 2
Column Tag: Tools Of The Trade

Macintosh Programming FAQs

By Edward Ringel

Lots of information in a good package

Needed: A Guide for the Perplexed

Recalling my undergraduate course in organic chemistry, my textbook went through a rather lengthy description of a synthesis. I would read it and I would think I understood it. I'd then go on to the next page, and an equally daunting process would be left as "an exercise for the reader," implying that at this point the logic should be pretty straightforward and any dummy should be able to figure it out. It would be at this point that I would realize that I wasn't as smart as I thought.

So it is with Mac programming. The first time I tried to put a list in a dialog I carefully read through Inside Macintosh, Volume IV, and I crashed and burned when they started talking about event filter procedures and drawing procedures, with implementation left as an exercise for the programmer.

Things are different from 1986 and 1987, when the List Manager was young, and System 3.2/Finder 5.3 was new and exciting. There are numerous books and good examples of introductory techniques. There are very good guides to the proper construction of a Mac GUI, using standard design elements. Apple has improved its sample code considerably, and I would argue that it is fairly easy to get started if you are willing to spend the time.

The road gets rockier when we get to the next level of sophistication. How do you customize a menu? How do you get the Notification Manager to notify the user? How do you add the little things that make a program special and professional? Certainly, there is an accumulated lore and body of experience which is available on the Internet, in various college and university repositories, the Apprentice CD series, and even from Apple. However, the information is diffuse, often poorly documented, and highly variable in quality and content. For the "every man" mainstream programmer, the person using an unmodified MacHeader straight from Metrowerks or Symantec, bootstrapping to the next level of sophistication can involve an unreasonably steep learning curve.

Enter Mac Programming FAQs

Mac Programming FAQs, by Stephen Baker with Dave Mark, is this needed organized repository of more advanced programming techniques. It is a wonderful book. It consists of a 600 plus page book plus a CD (we'll get back to the CD contents in a bit.) After an introduction, the book consists of 650 frequently asked questions about Macintosh programming, each answered concisely and usually illustrated with code.

I enjoyed this book for several reasons. First, it is simply well written. Baker and Mark are a good team, and they used a terse, but easy to read style. There was little ambiguity in the presentation, but at the same time it was not technical or handbook-like; the information flowed freely from the page. Second, it is written in a single voice; the approach is that of one individual, and it is easy to stay tuned to the presentation. Third, the information was accurate. While there were a few typos and misstatements, there were very few errors of fact. Fourth, this book is a gold mine of information. I learned a heck of a lot of new stuff, and got a bunch of questions on some murky topics (for me, at least) answered concisely.

The book purports to address the needs of a wide spectrum of programming skill. While a few of the questions are those posed at the beginner level, the bulk of the book addresses advanced and intermediate programming techniques. I suspect that a beginning programmer who tried to attack this book would certainly get something out of it, but the experience would be akin to learning to swim at the deep end of the pool.

Topics

This book covers questions about mainstream programming. It does not cover networking issues, writing PCI card drivers, maximizing efficiency of QuickDraw GX printer drivers, etc. It does cover events, dialogs, lists, menus, printing, notification, windows, resources and the like. The book is organized along the lines of the various Managers. Typical questions include:

"How do I get the full path of a file referenced by a vRefNum, parent directory ID, and filename?" (File Manager.)

"How do I attach an icon to an application?" (Finder and Desktop.)

"How do I change the title of a menu in the menu bar after it has been installed?" (Menus.)

"Why can't I access QuickDraw globals like ‘thePort' anymore?" (QuickDraw: Drawing.)

"Given a handle to a resource, how can I determine which resource file it came from?" (Resources.)

"How do I draw dimmed (grayed out) text?" (Text: Fonts and Drawing.)

"How do I put a list in a Macintosh model dialog box?" (Lists and the List Manager.)

Some only take a line or two of text to answer. Others, such as the list question, took three or four pages. In general, I had a pretty good idea of how to do something once I had read the answer to the question. Questions are cross-referenced, with respect both to specific FAQs and other more general topics. The only serious criticism I have of this book is that it tries to address the Apple Event issue. I have found this to be one of the most difficult areas of mainstream Macintosh programming, and it seems almost silly to have a few pages of FAQs about this incredibly complex Manager. Fortunately, the authors have the sense to direct the reader to more appropriate, in-depth resources, and acknowledge the limited scope of coverage in the book.

Code

The great majority of articles include some code, even if it just shows how to call a Toolbox function. The code varies from a snippet to a short program, but in my experience it a) always illustrated the point and b) worked when ran. Examples tended to be simple enough to follow, but complex enough not to be trivial and to illustrate the demonstration points successfully. Baker and Mark resisted the temptation to throw in tricks and to hot dog; I think Apple would approve of just about every technique demonstrated. All coding and examples are in ANSI C. There is a short series of FAQs about Pascal versus C, which was the only departure from this observation.

A CD Too!

The CD has three components. First, it contains complete projects (Code Warrior) for the longer examples. This means source, project file, and resource, as well as a compiled executable. Second, snippets are contained within Simple Text files for use in any environment. Third, there is a searchable database that includes every question asked in the book, with its answer, similarly cross referenced. As I said above, I experimented extensively with the code, compiled and ran as advertised; the quality assurance on this material was very good. The database worked well and delivered as promised. If you like working from the screen and using a search engine better than using a book and an index, you'll be very happy with the database.

Can I Ask for Better?

Not really. Frankly, I think this is the best forty bucks I've spent in a long time. I feel as though I have the resources to make my programs more professional in appearance, and I will waste less time in future projects. Indeed, I suspect that it is people such as myself, the serious hobbyist/intermediate level programmer who will find this book the most valuable, precisely for the reasons I just stated. Enjoy!

Mac Programming FAQs, by Stephen H. Baker with Dave Mark. IDG Books, Foster City, CA. Copyright 1996. ISBN 0-7645-4001-7. List price $39.95.

 
AAPL
$565.32
Apple Inc.
+0.00
MSFT
$29.07
Microsoft Corpora
+0.00
GOOG
$603.66
Google Inc.
+0.00
MacTech Search:
Community Search:

Empire of the Eclipse Review
Empire of the Eclipse Review By Carter Dotson on May 24th, 2012 Our Rating: :: OVERSHADOWINGiPhone App - Designed for the iPhone, compatible with the iPad Empire of the Eclipse is an ambitious strategy MMO that is very deep, and... | Read more »
Bejeweled HD Review
Bejeweled HD Review By Jennifer Allen on May 24th, 2012 Our Rating: :: ADDICTIVEiPad Only App - Designed for the iPad The iPad version of the ever addictive Match Three title.   Developer: PopCap Price: $3.99 Version Reviewed: 1... | Read more »
Facebook Releases New Camera App To Stre...
While not a replacement for Instagram, Facebook Camera is a good first step in this month+ old union of the two companies. Released today, Facebook camera looks to streamline the viewing of photos and the uploading of them. The app allows you to... | Read more »
Missile Monkey Review
Missile Monkey Review By Lisa Caplan on May 24th, 2012 Our Rating: :: FLYING LOWUniversal App - Designed for iPhone and iPad Missile Monkey is a must miss   Developer: Munsey Clan Games Price: $0.99 Version Reviewed: 1.0 Device... | Read more »
Boomlings Review
Boomlings Review By Lisa Caplan on May 24th, 2012 Our Rating: :: FUN FREEBIEUniversal App - Designed for iPhone and iPad Boomlings is a traditional matching puzzle game, with some explosive twists   | Read more »
Dave vs Cave Review
Dave vs Cave Review By Jason Wadsworth on May 24th, 2012 Our Rating: :: WATCH FOR FALLING ROCKSUniversal App - Designed for iPhone and iPad Kid falls down hole, kid gets trapped in cave, kid fights evil rock monsters to escape... | Read more »
Python Pocket Power: Python Bytes 3 – Mo...
Python fans are certain to welcome the best bits from the penultimate season of the BBC sketch comedy in a new iPhone app: Python Bytes 3 – Monty Python Series 3. If you have a flair for the obvious, you’ll correctly assume this is third in a series... | Read more »

Price Scanner via MacPrices.net

13″ 2.8GHz MacBook Pro on sale for $100 off MSRP
Adorama has lowered their price on the 13″ 2.8GHz MacBook Pro to $1399 including free shipping plus NY/NJ sales tax only. Their price is $100 off MSRP, and it’s the lowest price for this model from... Read more
Apple refurbished iPads available starting at $279
 The Apple Store Online has dropped prices on Apple Certified Refurbished iPad 2s and original iPads by as much as $50, with models now starting at $279. Apple’s one-year warranty is included with... Read more
Security Based Portable Operating System, Pocket D...
In conjunction with their consumer technology product, Pocket Desktop, a USB device that offers consumers enhanced security and portability in computing, has announced a new strategic alliance with... Read more
Apple’s Jonathan Ive Knighted By Britain’s Princes...
The BBC reports that Apple Senior Vice President Of Industrial Design Jonathan Ive is now Sir Jonathan Ive, having been knighted by Queen Elizabeth II’s daughter Anne, the Princess Royal (and an iPad... Read more
Microsoft Fixing to release Office for iOS and And...
BGR’s Jonathan S. Geller says BGR has learned from a “reliable source” that Microsoft is planning to release the company’s full Office suite for not only Apple’s iPad, but for Android tablets as well... Read more
Mac mini Server available for $949, $50 off MSRP
Adorama has Mac mini Servers on sale for $949 including free shipping. Their price is $50 off MSRP, and it’s the lowest price available for this model from any Apple Authorized Reseller. NY and NJ... Read more
21″ 2.7GHz iMac on sale for $1399, $100 off full r...
Adorama has the 21″ 2.7GHz iMac on sale for $1399 including free shipping. Their price is $100 off MSRP, and it’s the lowest price for this model from any Apple Authorized Reseller. NY and NJ sales... Read more
iMacs on sale bundled with free upgrade to 8GB RAM
MacConnection has 2011 iMacs in stock today with a free upgrade to 8GB of RAM. Shipping is also free. Their prices represent a $200+ savings over custom 8GB iMacs at The Apple Store: - 21″ 2.5GHz... Read more

Jobs Board

iPhone Mobile Developer at Mapmyfitness...
About MapMyFitness, Inc.: We're a well-funded and fast growing start-up. We're building the future of fitness applications on both the web and mobile. MapMyFitness is consistently ranked among the... Read more
Civil Engineering iPhone/iPad Applicatio...
I want to hire an application developer to design a universal iPhone/iPad application. The app is a calculator for civil engineers. Please see the attached Scope of Work. Desired Skills: iPhone, iPad... Read more
Helpdesk Support Technician - Mac Expert...
Mac hardwaresoftware preferably as a Mac Genius or Apple technician Demonstrated ability to troubleshoot ... in Mac OS X/Windows OS administration, exp supporting Mac, certified Apple and/or Windows... Read more
Mac Expert - Apple Online Store at Apple...
before calling a helpdesk for assistance). Description The Mac Expert is responsible for providing consultative ... to be effective, the Mac Expert will be knowledgeable about Mac product features... Read more
iOS Developer (iPhone and iPad) at Mahal...
Mahalo is looking for talented iOS developers to join its team of highly skilled engineers. Weve already released multiple successful apps in the Apple App Store with well over a million installs... Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.