Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

QuickBooks: Pro 2006 for Mac: Intuit Updates and Adds Tiger Features

QuickBooks: Pro 2006 for Mac from Intuit is a state-of-the-art application, powerful and easy to use, that features several great Tiger technologies such as Address Book syncing, an embedded browser built with Web Kit and .Mac integration. The developers at Intuit made great use of the Mac OS X tools and technologies to get the application to where it is today.



With its clean Cocoa interface and strong Mac OS X look and feel, it’s not readily apparent that the original QuickBooks for Mac was created in the early 1990's; over the years, the engineers added more and more features and eventually the project included more than two million lines of code. By 2002, when Intuit decided to revamp the product to run on Mac OS X, the program was somewhat long in the tooth—and it no longer shared a common code base with QuickBooks for Windows. It was time for a restart.

A small development team inside Intuit was chartered with the work. “Not only were we few in numbers,” says Brooks Bell, Engineering Lead for QuickBooks for Mac, “we were six years behind the Windows version. Our challenge was to narrow the gap in functionality without being able to port the Windows code base—and to add new things that the Windows version wasn’t doing.”

The team set to work and released the first modernized version of QuickBooks for Mac in 2003. Since then, a new version has appeared every fall. Each new release has been a significant step forward with important new features and capabilities that have brought the product closer to the Windows version and added some important Mac-only benefits.

Besides the raw engineering talent at Intuit, the newest Mac OS X technologies and developer tools have played a key role in making this modernization effort a success.

“It takes time to get it to all work,” says Bell, “but Mac OS X has let us modernize gracefully. Every year we’re able to implement more new features than we did the previous year. Overall, we’ve experienced a massive increase in productivity.”

How They Did It

The veteran Mac developers on the QuickBooks for Mac team employed a wide range of Mac OS X tools and technologies to reach their goals. Initially, they used Carbon—the procedural C interface for Mac OS X—to port the legacy application to Mac OS X. Then they took the next big step and revised the Mac version to share data with the Windows version. Finally, the team transformed QuickBooks for Mac into a Cocoa application, making it Mac OS X-only.

“The application is now a real Cocoa application,” says Bell, “but the legacy code is still in Carbon. For all the new features, we use Cocoa, Interface Builder, Xcode, Cocoa bindings, and so on.”

How did all this go down with the development team? Here’s what they have to say about the technologies and techniques involved in this transformation:

  • About Cocoa: “Developing UI in Cocoa goes really fast. It takes a couple of days instead of the weeks or months it would have taken with our previous tool.”
  • About Objective-C: “A lot of us came from a C++ background, and we really like C++. We were kind of resentful that we had to switch to Objective C (the object-oriented language used in Cocoa). But over time I’ve come to love it. I now prefer it over C++. It’s simpler, and I really like the integration of Xcode with the documentation.”
  • About Cocoa bindings: “The bindings technology is great. It’s elegant and there’s less code to write. Some people say that bindings are hard to debug. But for me it almost always works, so I don’t have to debug it.”
  • About GCC: “Apple has updated GCC compilers consistently. There is now much improved error checking on GCC 4 (used in Xcode 2.1 and later). We are able to fix a lot of hidden, dormant bugs.”
  • About test-driven development: “We really appreciate Apple’s support for test driven development with the integration of OCUnit into Xcode.” OCUnit is a popular open source testing framework for Objective-C.

Another major step forward—especially in terms of development efficiencies—was the adoption of SQLite in the latest version of QuickBooks for Mac.

“With SQLite,” says Bell, “we can leverage an actual SQL database and use the open source tools built into Tiger to browse our data. Since it’s in an open format, we don’t have to maintain it. We just call it. This is a huge savings—almost two person-years of work we estimate. And as the new Intel machines appear, we should see an automatic boost in performance as these components are upgraded.” Bell also reports that using Shark, Apple's system-level optimization tool, helped optimize calls to the database.

Using Web Kit to Embed a Browser

The Web Kit—the open source core of Apple's Safari web browser—is another key Mac OS X technology used to good effect in the latest version. According to Peggy Chang, Senior Product Manager for QuickBooks for Mac, it was important for customers not feel that they had to leave the program in order to do the payroll function.

“We wanted to integrate this function more tightly into QuickBooks,” Chang says. Using the Web Kit framework, the development team created an embedded browser that lives in the application and that fully integrates payroll activity into the QuickBooks balance sheets.

Other Mac-only Features

Modernizing the application also provided the opportunity to add new Mac-only features, including:

  • iCal integration. You just use the iCal check box to link a transaction to a calendar. For example, you might want to create an invoice, but not send it until the end of a project; or write a check to send at a future date.
  • .Mac integration. You can back up your QuickBooks data file to the .Mac server. QuickBooks adds encryption and a password for the backup and the restore.
  • Address Book syncing. You automatically synchronize names of customers, vendors, and others from QuickBooks lists with the names and information in the Address Book —in both directions.
“It’s really a beautiful thing,” says Chang, “to have this as an automatic process in the background. It’s a major benefit for customers who no longer have to copy and paste.”

Building An Application With iChat

The list of Mac-only benefits in QuickBooks for Mac goes on. Here’s a final example: have you ever considered using iChat in your build process? Probably not. But the team creating QuickBooks for Mac did, and they’ve found it to be a useful tool. Here’s what they do. The build server is on the iChat buddy list for the team. An AppleScript process on the server checks for incoming iChat messages. When someone on the team sends a message (any message - “Hey there!”), the server automatically starts the build. The server then uses iChat status messages to reflect the status of the build—in process, complete, and so on. The team can easily keep track of what’s going wherever they are—in a meeting, in a cubicle, or in the Intuit cafeteria.

QuickBooks is a major product for Intuit, a company with 7000 employees and annual revenues of $2 billion. With an installed based of three million users, QuickBooks has the lion’s share of the small business accounting market.

For more information about Intuit and QuickBooks: Pro 2006 for Mac, see the Intuit website.