MacTech Network:   MacTech Forums  |  MacForge.net  |  Computer Memory  |  Register Domains  |  Cables  |  iPod Deals  |  Mac Deals  |  Mac Book Shelf


  MacTech Magazine

The journal of Macintosh technology

 
 

Magazine In Print
  About MacTech  
  Home Page  
  Subscribe  
  Archives DVD  
  Submit News  
  MacTech Forums  
  Get a copy of MacTech RISK FREE  
Google
Entire Web
mactech.com
Mac Community
More...
MacTech Central
  by Category  
  by Company  
  by Product  
MacTech News
  MacTech News  
  Previous News  
  MacTech RSS  
Article Archives
  Show Indices  
  by Volume  
  by Author  
  Source Code FTP  
Inside MacTech
  Writer's Kit  
  Editorial Staff  
  Editorial Calendar  
  Back Issues  
  Advertising  
Contact Us
  Customer Service  
  MacTech Store  
  Legal/Disclaimers  
  Webmaster Feedback  
ADVERTISEMENT
Click Here
Volume Number:7
Issue Number:5
Column TagTools 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 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. 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.



Click here to find out more about our best subscription bundle deal ever!
2 years of the magazine, and the all new MacTech DVD ... at 70% off!



Click on the cover to
see this month's issue!

TRIAL SUBSCRIPTION
Get a RISK-FREE subscription to the only technical Mac magazine!
 
Nokia Qt Beta
 


MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797

Register Low Cost (ok dirt cheap!) Domain Names in the MacTech Domain Store. As low as $1.99!
Save on brand compatible and name brank ink jet and laser supplies.
Save on long distance * Upgrade your Computer
Movies with No Late Fees!

See local info about Westlake Village
SJ * BRJ * BJ * OJ * NITS
Staff Site Links



All contents are Copyright 1984-2008 by Xplain Corporation. All rights reserved.

MacTech is a registered trademark of Xplain Corporation. Xplain, Video Depot, Movie Depot, Palm OS Depot, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, NetProLive, JavaTech, WebTech, BeTech, LinuxTech, Apple Expo, MacTech Central and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.