|
With its clean Cocoa interface and strong Mac OS X look and feel, its 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 wasnt 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 were able to implement more new features than we did the previous year. Overall, weve experienced a massive increase in productivity. How They Did ItThe 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? Heres what they have to say about the technologies and techniques involved in this transformation:
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 its in an open format, we dont 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 BrowserThe 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 FeaturesModernizing the application also provided the opportunity to add new Mac-only features, including:
Its really a beautiful thing, says Chang, to have this as an automatic process in the background. Its a major benefit for customers who no longer have to copy and paste. Building An Application With iChatThe list of Mac-only benefits in QuickBooks for Mac goes on. Heres a final example: have you ever considered using iChat in your build process? Probably not. But the team creating QuickBooks for Mac did, and theyve found it to be a useful tool. Heres 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 whats 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 lions share of the small business accounting market. For more information about Intuit and QuickBooks: Pro 2006 for Mac, see the Intuit website. |
|