MacApp & ACS Release 13


MacApp Release 13 is a significant new release of the venerable MacApp application framework. It has been thoroughly modernized and enhanced in preparation for the computing demands of the next millennium. The advent of more capable C++ compilers has finally allowed the MacApp team to incorporate many new capabilities which they and you, the MacApp developers, have requested for months or years.

During the process of modernizing MacApp many changes have been made. Unfortunately, these changes will require that you, the developer, make modifications to your source code. These changes include increased use of constructors and destructors, use of C++ exceptions, and use of auto-pointers. Although we believe your effort to move to Release 13 will be fairly straightforward it will take some effort. And we know that the effort will be worth it in terms of performance and features.


Apple Class Suites

MacApp is now accompanied by the Apple Class Suites, or ACS for short. ACS consists of many classes which can stand on their own or can be used in conjunction with MacApp. This provides you with several important benefits including the ability to use ACS classes with other frameworks. For example, the threading support provided by the Thread suite in ACS can be used with the PowerPlant framework sold by Metrowerks.

Many of the ACS classes (such as the Network, Thread and TidyHeap suites) are new while many are former MacApp classes that we have been able to 'wean' out of the MacApp framework. This 'weaning' was made possible by the elimination of the common base class, TObject, formerly found in MacApp. We were able to remove the need for TObject with the advent of ubiquitous support for multiple inheritance in all required C++ compilers.


Progress

We have made very good progress toward the goals we established last year based upon your responses to our feature surveys. And yet there is still much to do. We plan to accomplish much more in the upcoming releases. With your help we can accomplish even more in the upcoming releases.


How You Can Help

You can help in several ways. First, be somewhat patient with us. We are a small group with a very large responsibility which we take very seriously. We know that what we do to MacApp can help you be successful. In fact, our goals (listed below) are all geared to your success.

Second, let us know about bugs and enhancements by documenting those needs in an e-mail to mabugs@devtools.apple.com. Be sure to include the MacApp version information in your e-mail. And please participate in the occasional surveys which we post, too.

Third, get other MacApp developers involved. We are constantly surprised by how many 'stealth' MacApp developers are out there. Ask them to complete an information form. You can also send e-mail to us at mafriend@devtools.apple.com telling us a little about their work, their company and their products. The more we know about our developers the easier it is to invest wisely in enhancements to MacApp.


Getting Started with Release 13

MacApp & ACS Release 13 will be very familiar to those developers who have used previous versions of MacApp. The names of classes in ACS which could previously be found in MacApp are still very similar to their former names though we have changed the names of such classes for two reasons: 1) to make it clear to you that something about the class has changed, and 2) to clearly identify classes which belong to ACS.

We expect that new MacApp programmers may be 'challenged'. The reason for this has less to do with MacApp and ACS than it has to do with our current lack of adequate documentation. That's the bad news; the good news is that we have recently acquired funding to bring all documentation up-to-date and are working on it as quickly as possible.

In the meantime, please read the introduction to Release 13 to get a general overview of the new release. Here are some important links:

Introduction

An introduction to MacApp & ACS release 13 with highlights of new and changed features.

Apple Class Suites

A description of ACS and each of the suites contained therein.

Conversion Tips

Thoughts and tools for transitioning from MacApp v3.3.3 or MacApp Release 12 to MacApp Release 13.

Metrowerks Support

Notes on how CodeWarrior projects are set up for building MacApp applications and resources, and the various compile-time switches in MacApp and ACS.

Ad Lib View Editor

Ad Lib v2.6.4 represents significant improvements over previous versions.

Miscellaneous Notes

A collection a some comments, observations and advice which didn't seem to fit anywhere else.

Late Breaking News

Important information about actual or potential problems which were discovered too late to make it into the final release but about which we thought you ought to be made aware.

Make sure to check the 'Late breaking' folder at the top level for any last minute fixes to MacApp or ACS that haven't yet been qualified.


The MacApp Mission & Goals

Mission

To promote the development of compelling Macintosh software which takes advantage of all of the great Macintosh OS and Toolbox technologies.

Goals

The goals of the MacApp group are based on the mission, of course, and are to provide an application framework which:

  1. lowers the MacApp learning curve,
  2. improves developers' time-to-market,
  3. prediscovers any 'difficulties', and
  4. increases developers' and Apple's market potential.

Importance

MacApp is an absolutely critical component for many of Apple's key developers. There are hundreds if not thousands of programmers around the world who have been or are currently programming in C++ using MacApp as their preferred framework. Many of MacApp's developers are in-house IS groups (enterprise support) and the geographic spread of MacApp developers tends to be more international than developers that do not use a framework.

MacApp provides strategic Apple technology in an easy-to-use form. For example, the QuickDraw 3D API includes approximately 1,500 functions. It is difficult for a developer to even guess where to start! MacApp allows the use of QuickDraw 3D in an application without the developer having to write a single line of code! Further, in the process of implementing QuickDraw 3D support in MacApp we discovered several 'perturbations' in the QD3D API -- things which we worked around and which the developer need not rediscover. This is the essence of our mission: to make it easy for our developers to use strategic Apple technologies.

MacApp is the most mature object-oriented framework on the market, having pioneered the concept of the framework as a commercial development tool in 1985 under the direction of Larry Tesler. In the 12+ years since its introduction, MacApp has played a critical role in introducing compelling and novel products to the Macintosh market. MacApp is recognized as a "gold standard" by which other application frameworks judge themselves. For example, in Grady Booch's book "Object Solutions: Managing the Object-oriented Project" he says in part:

"MacApp is perhaps the quintessential example of a quality object-oriented framework. First available in early 1985 in the language Object Pascal, MacApp represented one of the first commercially available object-oriented application frameworks. Its domain was quite general, intended to aid the creation of all applications that conformed to the Macintosh look and feel... A relatively stable version was finally release[d] in 1992. By this time, the library was much more approachable, understandable, and adaptable. No longer presented as just a sea of classes, the library's architecture was made explicit, and key collaborations were well-documented."



©Copyright 1997 by Apple Computer, Inc. -- Last Updated 7/31/97