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.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Apple GarageBand 10.1.4 - Complete recor...
The new GarageBand is a whole music creation studio right inside your Mac -- complete with keyboard, synths, orchestral and percussion instruments, presets for guitar and voice, an entirely... Read more
Alfred 3.2.1 - Quick launcher for apps a...
Alfred is an award-winning productivity application for OS X. Alfred saves you time when you search for files online or on your Mac. Be more productive with hotkeys, keywords, and file actions at... Read more
Adobe Lightroom 6.8 - Import, develop, a...
Adobe Lightroom is available as part of Adobe Creative Cloud for as little as $9.99/month bundled with Photoshop CC as part of the photography package. Lightroom 6 is also available for purchase as a... Read more
Backblaze 4.2.0.990 - Online backup serv...
Backblaze is an online backup service designed from the ground-up for the Mac. With unlimited storage available for $5 per month, as well as a free 15-day trial, peace of mind is within reach with... Read more
OmniPlan Pro 3.6 - Professional-grade pr...
With OmniPlan Pro, you can create logical, manageable project plans with Gantt charts, schedules, summaries, milestones, and critical paths. Break down the tasks needed to make your project a success... Read more
OmniPlan 3.6 - Robust project management...
With OmniPlan, you can create logical, manageable project plans with Gantt charts, schedules, summaries, milestones, and critical paths. Break down the tasks needed to make your project a success,... Read more
Little Snitch 3.7.1 - Alerts you about o...
Little Snitch gives you control over your private outgoing data. Track background activity As soon as your computer connects to the Internet, applications often have permission to send any... Read more
iMazing 2.1.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
AppDelete 4.3.1 - $7.99
AppDelete is an uninstaller that will remove not only applications but also widgets, preference panes, plugins, and screensavers along with their associated files. Without AppDelete these associated... Read more
FileZilla 3.23.0.2 - Fast and reliable F...
FileZilla (ported from Windows) is a fast and reliable FTP client and server with lots of useful features and an intuitive interface. Version 3.23.0.2: Bug Fixes and Minor Changes Speed up icon... Read more

Latest Forum Discussions

See All

Galaxy on Fire 3 and four other fantasti...
Galaxy on Fire 3 - Manticore brings the series back for another round of daring space battles. It's familiar territory for folks who are familiar with the franchise. If you've beaten the game and are looking to broaden your horizons, might we... | Read more »
The best apps for your holiday gift exch...
What's that, you say? You still haven't started your holiday shopping? Don't beat yourself up over it -- a lot of people have been putting it off, too. It's become easier and easier to procrastinate gift shopping thanks to a number of apps that... | Read more »
Toca Hair Salon 3 (Education)
Toca Hair Salon 3 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: | Read more »
Winter comes to Darkwood as Seekers Note...
MyTona, based in the chilly Siberian city of Yakutsk, has brought a little festive fun to its hidden object game Seekers Notes: Hidden Mystery. The Christmas update introduces some new inhabitants to players, and with them a chance to win plenty of... | Read more »
Bully: Anniversary Edition (Games)
Bully: Anniversary Edition 1.03.1 Device: iOS Universal Category: Games Price: $6.99, Version: 1.03.1 (iTunes) Description: *** PLEASE NOTE: This game is officially supported on the following devices: iPhone 5 and newer, iPod Touch... | Read more »
PINE GROVE (Games)
PINE GROVE 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: A pine grove where there are no footsteps of people due to continuous missing cases. The case is still unsolved and nothing has... | Read more »
Niantic teases new Pokémon announcement...
After rumors started swirling yesterday, it turns out there is an official Pokémon GO update on its way. We’ll find out what’s in store for us and our growing Pokémon collections tomorrow during the Starbucks event, but Niantic will be revealing... | Read more »
3 reasons why Nicki Minaj: The Empire is...
Nicki Minaj is as business-savvy as she is musically talented and she’s proved that by launching her own game. Designed by Glu, purveyors of other fine celebrity games like cult favorite Kim Kardashian: Hollywood, Nicki Minaj: The Empire launched... | Read more »
Clash of Clans is getting its own animat...
Riding on its unending wave of fame and success, Clash of Clans is getting an animated web series based on its Clash-A-Rama animated shorts.As opposed to the current shorts' 60 second run time, the new and improved Clash-A-Rama will be comprised of... | Read more »
Leaks hint at Pokémon GO and Starbucks C...
Leaked images from a hub for Starbucks employees suggests that a big Pokémon GO event with the coffee giant could begin this very week. The images appeared on Reddit and hint at some exciting new things to come for Niantic's smash hit game. | Read more »

Price Scanner via MacPrices.net

12-inch Retina MacBooks, Apple refurbished, n...
Apple has restocked a full line of Certified Refurbished 2016 12″ Retina MacBooks, now available for $200-$260 off MSRP. Refurbished 2015 models are available starting at $929. Apple will include a... Read more
Holiday sale: 12-inch Retina MacBook for $100...
B&H has 12″ Retina MacBooks on sale for $100 off MSRP as part of their Holiday sale. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1199 $100... Read more
Apple refurbished 13-inch MacBook Airs availa...
Apple has Certified Refurbished 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: $849 $... Read more
Apple refurbished iMacs available for up to $...
Apple has Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are available: - 21″ 3.... Read more
Apple’s Education discount saves up to $300 o...
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
Back in stock: Apple refurbished Mac minis fr...
Apple has Certified Refurbished Mac minis available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz Mac mini: $419 $80 off MSRP - 2.6GHz Mac... Read more
Twenty-Five Years Of Apple Laptops – A person...
Among many other things, the often tumultuous 16th year of the new century marked the 25th anniversary of Apple laptop computers, not counting the optimistically named 16-pound Mac Portable of 1989.... Read more
Landlordy iOS App Adds Support For Appliances...
Riga, Latvia based E-protect SIA is releasing major update (version 1.8) to its Landlordy app for managing rental business financials on the go. Landlordy is iPhone and iPad app designed for self-... Read more
Holiday sale, Apple iMacs for up to $200 off...
B&H Photo has 21″ and 27″ Apple iMacs on sale for up to $200 off MSRP including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2099 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $... Read more
Holiday sale: Mac minis for $50 to $100 off M...
B&H Photo has Mac minis on sale for up to $100 off MSRP free shipping plus NY sales tax only: - 1.4GHz Mac mini: $449 $50 off MSRP - 2.6GHz Mac mini: $629 $70 off MSRP - 2.8GHz Mac mini: $899 $... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions- Trumbul...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions- Philade...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions- San Ant...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Products Tester Needed - Apple (Unit...
…we therefore look forward to put out products to quality test for durability. Apple leads the digital music revolution with its iPods and iTunes online store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.