|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 dont 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 cant 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 dont 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 isnt so smart to reinvent the wheel, wouldnt 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 its 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. Thats 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 companys applications as you like. If that doesnt sound bad enough, they put a 5 year term on the license so that in 1995 youll 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 especially 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. Youll 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 youre 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 Programmers 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. Its too bad, but UserLands 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 dont have to license your product until it ships. If your product is worth its weight, you should be able to come up with the license fee. Dave Winer, President of UserLand puts it this way: Weve put a lot of thought into the pricing of this product. If its out of reach for some developers, and they dont 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 its 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. Youll have to be the judge of that. The toolkit doesnt support other languages except C at this time.
Userland Software, Inc.
490 California Avenue
Palo Alto, CA. 94306
Phone: 415 325-5700
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.
calenDAr from Psybron Systems is not just a calendar DA, but is a calendar with fully programmable alarms. If you didnt think LifeGuard would provide enough for you (March 1991 MacTutor, p.79), calenDAr may provide similar reminders for you. It doesnt 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. Its 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 arent as easy as it might seem, but calenDAr does an excellent job of it. Its 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 Programmers 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.