Using Visual AppBuilder To Develop an ALM for a Pointing Device
Articles and Tips: article
Research Engineer
Novell Research
01 Jul 1994
This DevNote describes how Revelar Corp. used Visual AppBuilder to solve a number of problems in their development of ConstructionMac!, a utility that assists contractors and engineers in calculating construction costs. The AppWare environment allowed Revelar to create the AppWare Loadable Modules (ALM) needed to integrate a valuable pointing device called Scaler 1000 with ConstructionMac!.
- Introduction
- Defining the Problem
- Finding a Solution
- New Applications
- System Requirements
- ALM Editor ALM
- Contact Information
Introduction
Revelar Corp. is a Salt Lake City-based firm that produces customized software solutions for construction and manufacturing companies. This DevNote describes how Revelar used Visual AppBuilder to solve a number of problems in their development of ConstructionMac!, a utility that assists contractors and engineers in calculating construction costs. With Visual AppBuilder, Revelar created a versatile program that did not require a runtime engine or the learning curve of a third generation language (3GL). In addition, the AppWare environment allowed Revelar to create the AppWare Loadable Modules (ALM) needed to integrate a valuable pointing device called Scaler 1000 with ConstructionMac!.
In the course of this project, Revelar developed ALM Editor ALM, an ALM that creates other ALMs. The ALM Editor ALM is now copyrighted by Novell and will be shipped with future versions of Visual AppBuilder.
Defining the Problem
Contractors and engineers have used various methods to estimate construction costs. Examining blueprints has been helpful, and many companies have used spreadsheets and associated macros to simplify the estimating process. But although a wealth of Macintosh software was developed in the 1980s, not a single construction estimation package was available.
Revelar used the 4th Dimension database, Apple's Hypercard authoring tool, and the Excel spreadsheet to develop customized construction and manufacturing solutions. Revelar president Van C. Evans developed a spreadsheet template to help calculate building costs and materials for residential construction projects. In 1987 he began selling the templates to other contractors, and he has sold over 3000 units to date. By 1989, however, many customers had responded that while the templates were valuable, they wanted more of a pointandclick approach to estimating.
Because of the continued favorable response from construction template sales, Revelar decided to shift its focus from a value-added reseller (VAR) to an independent software vendor (ISV), by translating and enhancing the current templates into a standalone application. Given the relatively small installed base of Macintosh computers and a thin vertical market, choosing a development environment became a key issue.
Learning a 3GL or contracting the application out would have taken too long or been too costly since R&D resources would not likely be recovered. Current development tools Revelar used were also unacceptable. Revelar was not creating a database, so 4D was ruled out. Besides, 4D required a runtime engine to accompany each sale, which had three drawbacks:
It was expensivein proportion to the suggested retail price of the product because the cost of a runtime engine had to be passed on the end user.
It increased complexity for the end user. Revelar wanted to be careful not to merely trade the complexity of a spreadsheet template for complexity in another area.
It increased logistics because a runtime inventory would have to be kept in addition to product inventory.
Developing the product as a HyperCard stack also had weaknesses, including the following:
Color was not supported at the time.
This method also required a runtime engine (HyperCard), although it was bundled with each Mac purchase. Cost was therefore not a consideration, but complexity was.
This method did not support multiple windows.
The stack would have been enormous and slow.
Finding a Solution
In the midst of these difficulties, Revelar discovered Visual AppBuilder, a development tool from Serius Corp., which later became part of Novell's AppWare Systems Group.
Visual AppBuilder Capabilities
Visual AppBuilder is a fifth-generation language (5GL) development environment that allows developers to design applications from highly functional interfaces. Traditional application development usually requires writing code using 3GLs such as C or C++. With Visual AppBuilder, however, developers can implement complex applications without writing code.
Visual AppBuilder dramatically simplifies the complexity of building and maintaining software by representing objects visually rather than textually. In addition, Visual AppBuilder takes full advantage of the power of ALMs. ALMs can range from simple graphical utilities and spreadsheet modules to sophisticated network services. ALMs are represented by icons, and developers build applications by combining different ALM icons.
Visual AppBuilder allowed Revelar to solve their critical problems. And while Visual AppBuilder required a general knowledge of programming concepts, the steep learning curve of a 3GL was eliminated.
Over a period of the next two years, development took a back seat to custom VAR solutions for the company. In early 1992, however, Revelar released version 1.2 of ConstructionMac!, and they shipped version 2.0 that fall. Initial response was very good, spawning favorable reviews from Prodigy, MacWeek, MacUser, and the Macintosh Construction Forum. User input determined update features, which were quickly added.
Figure 1 shows the ConstructionMac! tool bar.
Figure 1: The ConstructionMac! tool bar.
Revelar introduced version 2.5 at the A/E/C Systems trade show in Anaheim, California in June, 1993, where Revelar representatives met members of Apple's technical market staff. Apple then invited Revelar to display ConstructionMac! at the Apple booth at the National Association of Home Builders (NAHB) show in Las Vegas in January, 1994.
The Need for a Pointing Device ALM
At A/E/C Systems, Revelar met with Scalex Corp., of Carlsbad, California. Scalex had recently developed a small hardware input device called the Scalex 1000 Digital Plan Scaler. This is a penlike device with a small wheel at the tip containing two infrared sensors that detect wheel motion. The user first sets the scale of the blueprints on the Scalex 1000. Next, the user rolls the Scalex 1000 along the blueprints, and construction statistics are dynamically calculated.
Scalex Corp had the prescience to include a serial interface on the Scalex 1000's chip but lacked the software expertise to develop a Mac interface. Revelar immediately saw the benefits of the Scalex 1000 for estimating and wanted to include a seamless integration of it into the next version of ConstructionMac!
Figure 2 shows the Scalex Object and Function Palette.
Figure 2: The Scalex Object and Function Palette.
Revelar found that the ALM suite they had developed with Visual AppBuilder contained everything necessary for Revelar's version 2.5e of ConstructionMac! except for an interface ALM for the Scalex 1000.
Revelar created an ALM for the Scalex serial driver using Think C 6.0. The ALM consists of one object with twenty-five functions. The driver uses Number objects for output parameters for its various functions, so nearly all of the data computed by the Scalex can be displayed in any Number object in a window. Exceptions to this included the unit (i.e., yard, kilometer, etc.) and scale (i.e., 1/8"=1'). A Number parameter was created as an output for an index number, so using the List and Table objects, respectively, Revelar assigned units and scales by their index in a list.
Revelar used the Polybutton and Picture objects to create the friendly user interface. Revelar also created functions to set the variables on the Scalex from the software. Finally, Revelar used other ALM Compare functions to help synchronize data on the screen with data on the Scalex LCD.
Figure 3 shows sample code of the Scalex object and related functions.
Figure 3: Sample code of the Scalex object and related functions.
The Need for a Pointing Device ALM (contd.)
Figures 4-6 show function descriptions of the Scalex ALM.
Figure 4: The GetPort function description.
Figure 5: The GetDescription function description.
Figure 6: The GetUnits function description.
The Scalex 1000 and interface are integrated into ConstructionMac!'s assembly window. The user simply clicks on a construction assembly, such as 2 x 4 walls, and then rolls the Scalex along the 2 x 4 walls in the blueprints. As the user rolls the Scalex, material and labor costs are automatically calculated. Figure 7 shows the Control Panel window for the Scalex 1000.
Figure 7: The Control Panel window for Scalex duplicates the LCD on the Scalex itself.
Figure 8 shows ConstructionMac!'s Assembly window.
Figure 8: The Assembly window uses many Visual AppBuilder functions, such as the Database ALM, Polybuttons, and menu items.
New Applications
Since the Scalex software interface was created as a subject in Visual AppBuilder, Revelar copied and pasted the subject to a new project, included a help file and menu bar, and then recompiled the program. The result was a standalone application that allows users to input Scalex data into any other application. The Windows version recently shipped, and Spanish and Japanese versions are in the works for both Mac and Windows platforms. These new applications are called Scaler*Mac and Scaler*PC. Figure 9 shows the opening screen and Roofing screen for Scaler*Mac.
Figure 9: The opening screen and Roofing screen for Scaler*Mac.
System Requirements
Requirements for ConstructionMac! are as follows:
Macintosh Requirements:
Macintosh running 16 MHz or faster (SE/30, Classic II, LC, II, Performa, Centris, Quadra, PowerBook, or Power Macintosh)
4 MB RAM minimum, 5 MB or more recommended
System 7.x
Hard disk drive
Color monitor recommended
PC Requirements:
386 or faster
4 MB RAM minimum, 5 MB or more recommended
Windows 3.1
Hard disk drive
VGA or SVGA monitor
ALM Editor ALM
In the process of creating the Scalex ALM, Revelar saw ways in which they could enhance the ALM SDK. After conferring with Novell representatives, Revelar created the ALM Editor ALM, an ALM that creates other ALMs.
Using the new ALM Editor ALM in Visual AppBuilder applications has reduced ALM development and editing time manyfold. What took hours to create has been reduced to minutes.
Figure 10 shows a help screen from ALM Editor ALM.
Figure 10: A help screen from ALM Editor ALM.
The ALM Editor ALM is owned and copyrighted by Novell, and it shipped with the Beta 3 release of Visual AppBuilder for the Macintosh. At this writing, the Windows version is under development by Revelar.
Enthusiasm for the Visual AppBuilder has broadened Revelar Corp.'s development to include custom Visual AppBuilder applications as well as custom ALMs.
Contact Information
Contact information for Revelar:
Revelar Corp. 2350 E. Parleys Way, Suite 3 Salt Lake City, UT 84109 Voice: (800) 669-5191 Fax: (801) 485-3296 AppleLink: REVELAR America Online: REVELAR CompuServe: 72143.1374 Internet: revelar@applelink.apple.com
* Originally published in Novell AppNotes
Disclaimer
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.