IAC Toolkit
Volume Number: 7
Issue Number: 5
Column Tag Tools of the Trade
IAC with UserLand's Toolkit 
By Dave Kelly, MacTutor Editorial Staff
Perhaps you have heard about interapplication communication. First, look at the
way most applications communicate. This investigation will turn out to be an analysis
of the evolution of the Macintosh. Up to now communications between applications have
been done by the “Export-Import” method. That is, data is exported from the first
application to the clipboard or an external file and then pasted or imported into the
second application. This method usually requires a user to “baby-sit” the operation.
Cut and paste operations don’t make any assumptions about what application is doing the
paste and passes on very little knowledge of where the data came from. At most, all that
is known is the type of data that is being pasted (TEXT, PICT, etc.).
Of course, ingenious utilities such as QuicKeys and MacroMaker can “automate”
some of these operations. These macro utilities have been a great help, but can’t
possibly do everything. They extend applications to make them appear to have more
features.
Applications running with MultiFinder have had a slight edge up to now when it
comes to communicating with each other. A few companies have come up with their own
system of communication between applications. For example, you can link data in MS
Word to data in MS Excel and changes in the data are reflected in the linked application.
There are other “integrated” software packages available. These “custom”
applications are designed to work with each other. The problem is that they don’t work
outside the set of integrated applications.
With MultiFinder the user can load two or more applications into memory at
once, but the only thing that is stopping the applications from talking to one another is
the lack of a little bit of software to hook them up. Have you ever written an
application and wanted to add the text processing capabilities of MS Word, the
communications capabilities of AppleLink and drawing tools of MacDraw II? Since it
usually isn’t so smart to “reinvent the wheel”, wouldn’t it be good if you could link you
favorite applications together to have the best of all worlds?
The idea of IAC is much more than integrating applications. IAC gives
applications the power to ask other applications to perform tasks for them and then
return the results. The user can combine the features of several different programs to
create new functionality that would otherwise be unavailable. It may help to imagine
that you are adding a scripting system to your application. Scripts sent to other
applications could look in menus and dialog boxes and assume full control over another
application. The difficulty is that IAC must be implemented in the client and server
applications before any intercommunication can take place.
Until now the only form of IAC was in custom programs that only talked to each
other. System 7.0 defines a common method for applications to communicate. Apple
calls it AppleEvents. AppleEvents are only available under system 7.0, which brings
up a complication for developers that want their applications to support both System
6.0 and 7.0. There are still many 1 Meg Macintosh systems in use that will still be
running 6.0 systems for some time to come.
In January (1991) a new software company called UserLand Software, Inc.
released new software support for IAC. The company has been quiet until last November
when they disclosed their development of the UserLand IAC Toolkit that first shipped on
December 31st. There are several advantages with working with UserLand IAC Toolkit.
In particular your application can communicate using System 6.0 or System 7.0 and
possibly future operating systems in the future. There are implications that IAC will be
available for MS-DOS, Windows, or Unix. The IAC Toolkit was designed so that your
application can be driven by a user scripting system. The main advantage is that the
toolkit provides an IAC environment that is not biased toward any one platform, yet
provides one that will be supported on major platforms like System 7.0.
The Toolkit is simpler to use than AppleEvents (System 7.0). The manual is an
indication of this simplicity. The introduction gives a thorough overview of IAC and
some real examples of how it could be used. The step by step installation tells what
files will be used for using the Toolkit with THINK C version 4.0 or MPW C 3.1 or
later. When using system 6.0 the UserLand INIT is required to be installed in your
system folder. Next, four sample programs are provided with source code so you can
see how it’s done. Implementation of the Toolkit with your projects is presented in a
detailed format that shows how to add IAC capability to your applications. The last half
of the 71 page manual is a complete reference of the UserLand IAC Toolkit library. If
you become familiar with the manual, you should have no problem implementing
UserLand IAC. The IAC toolkit adds about 12K to the size of you program. That’s not
counting the UserLand INIT that takes about 6K.
Before you get started writing your IAC applications, you should be aware of
some costs of IAC. Implementation of UserLand IAC comes at the reasonable price of
$395 (retail price, street prices are possibly lower). Distributing IAC using
UserLand IAC Toolkit will require that you get a distribution license from UserLand
Software before shipping. The cost is $4000 for a fully-paid, royalty-free license to
include the Toolkit with as many of your company’s applications as you like. If that
doesn’t sound bad enough, they put a 5 year term on the license so that in 1995 you’ll
have to renew the license or a new one for a more powerful product that 1995 may
produce. When you purchase the distribution license, UserLand will deliver the
complete C source code so you can support IAC better e specially as Apple introduces new
hardware and system software.
The license fee sounds excessive, but in the price UserLand has taken into
account their development expenses, developer needs, and future development of
cross-platform and network-aware versions In addition, they provide excellent
product support by getting involved with IAC developers without an additional charge
for support. You’ll need to evaluate the pros and cons vs. cost to decide if the toolkit is
the way for you to go. Keep in mind that there will be a bit more of a learning curve to
implement AppleEvent IAC for system 7.0. than to implement UserLand IAC. If you’re a
small developer and feel that the license is too excessive, you may want to negotiate a
“technology exchange” with UserLand, if you have any technology to exchange.
In contrast, other “toolkits” have a much less costly license agreement. Many
products such as the Programmer’s Extender and the Extender DialogHandler from
Invention Software allow you to distribute freely and/or market programs that use
their toolbox if no portions of the source code library, user manuals or other
documentation is distributed. UserLand should review their license policy to encourage
more small developers to want to use it. I might suggest a license with limited support
or without the source code for small developers. It’s too bad, but UserLand’s license
was designed for larger commercial and in-house developers. The small struggling
developers just have to pay the price like everybody else. Remember, you can still
work with the toolkit for the $395 price and don’t have to license your product until it
ships. If your product is worth it’s weight, you should be able to come up with the
license fee. Dave Winer, President of UserLand puts it this way: “We’ve put a lot of
thought into the pricing of this product. If it’s out of reach for some developers, and
they don’t have any technology they want to exchange, so be it. We hope at least those
developers will consider putting System 7.0 AppleEvents into their products. We
believe IAC is worth doing even if it’s only for System 7.0, and even if the developer
has to do more work than absolutely necessary. On the other hand, we think that any
developer who passes on UserLand IAC Toolkit is being penny-wise and pound-foolish,
and missing a great opportunity to make their software more useful and more
competitive.”
In summary, the UserLand IAC Toolkit provides support for IAC in System 6.0
not available elsewhere. It has been designed to support multi-platforms including
System 7.0. You need the toolkit if you want IAC support in both System 6.0 and 7.0.
Although the Userland toolkit is easier to use, the cost to license it for distribution may
be a trade off for the time it takes to develop a similar IAC application using System 7.0
AppleEvents. You’ll have to be the judge of that. The toolkit doesn’t support other
languages except C at this time.
Userland Software, Inc.
490 California Avenue
Palo Alto, CA. 94306
Phone: 415 325-5700
FAX 415-325-9829
AppleLink USERLAND.DTS
Price: $395 + $4000 license fee (5 year term) to distribute applications that
use the Userland IAC Toolkit.
Requires: THINK C version 4.0 or later or MPW C 3.1 or later; a Macintosh
computer with at least 2MB RAM, running MultiFinder, System 6.X or System 7.X; a
hard disk.
OTHER STUFF
calenDAr™ from Psybron Systems is not just a calendar DA, but is a calendar
with fully programmable alarms. If you didn’t think LifeGuard would provide enough
for you (March 1991 MacTutor, p.79), calenDAr may provide similar reminders for
you. It doesn’t count keystrokes for you, but you can have calenDAr remind you with
either a sound and/or a message dialog on periodic intervals or on a one time basis. It’s
set up to record new sounds or audio messages for you with MacRecorder or the built in
sound support of the Macintosh LC or SI.
The calendar correctly displays calendars for months between January 1583
(the first month of the first full year in which the Gregorian calendar was used)
through December 99,999. All major US, Canadian and Jewish holidays are displayed
for every year as well as other special dates such as beginning of spring, summer, fall,
and winter.
Psybron Systems says that calculating the dates of holidays like Hanukkah and
Easter aren’t as easy as it might seem, but calenDAr does an excellent job of it. It’s a
spiffy little DA that you might find useful.
Psybron Systems, Inc.
1116 Smith Street Suite 206
Post Office Box 431
Charleston, WV. 25322-0431
(304) 340-4260 or (800) 866-4260
FAX: (304) 345-3312
Price: $49.95 plus shipping.
Update on bugs that were reported in the Programmer’s Assistants from Aladdin
Systems: The Bystander bug has been corrected. It was a memory management
problem. All of the DAs are being updated to support System 7.0.