TweetFollow Us on Twitter

Jun 01 Cover Story

Volume Number: 17 (2001)
Issue Number: 06
Column Tag: Getting Started

REALBasic 3 - The Marriage of Old and New

by Erick J. Tejkowski

Old World Mac Development meets New World Features

Introduction

Coincidental with the release of Mac OS X, REALSoftware announced the latest edition of their popular programming environment — REALbasic 3. REALbasic, a visually based, object-oriented BASIC environment for Macintosh, has always amazed fans in the past. The latest version is poised to do the same. With the introduction of a new operating system like Mac OS X comes the need for applications — and lots of them. REALbasic gives you the chance to create such applications, while simultaneously affording you the opportunity to reach out to other platforms with minimal effort. This fact alone may reason enough to warrant looking into REALbasic, but REALSoftware has also loaded REALbasic with all kinds of other powers.

Something Old

REALbasic 3 continues along the path of earlier versions by providing an easy-to-use cross-platform visual programming environment for the Mac OS. The latest incarnation of REALbasic builds on previous versions (REALbasic 1 & 2), so you will be glad to know that your old code should transfer to REALbasic 3 without a hitch. All of the familiar commands, controls, and features are there for your instant programming gratification.

There are, however, a few changes you should note. For starters, adding a resource file to your project works just as it always has, but now it is quite a bit friendlier. Previously, you were required to give an external resource file the name Resources for it to be recognized in the REALbasic IDE. Now, you are not limited to one external resource file. Instead, you may simply add a .rsrc extension to any file and it’s fair game for inclusion in your project. Therefore, it is now possible to have multiple resource files in your REALbasic project. In the event that you mistakenly include multiple files with conflicting resources (i.e. the same type and number), REALbasic simply overwrites earlier resources based on the order in which they appear in the Project Window.

Another important function that carries over into the latest version of REALbasic is the Declare statement. The Declare statement permits you to access Macintosh and Windows Toolbox calls directly from you REALbasic code, something that once was only possible with a plugin. REALbasic 3 continues to give you this ability and ups the ante by additionally providing access to Carbon calls. This requires a few code changes on your part, but luckily, the transition is nearly painless. Whereas the Classic Mac OS toolbox calls relied upon an assortment of libraries, Carbon code typically relies strictly on one library: CarbonLib. Updating your toolbox calls for Mac OS X often merely entails a library name change. If the syntax of the Carbon call has changed from its Classic predecessor though, you will have to change it as well. (See Listing 1).

Here is what a sample routine might look like:

Listing 1: Declare statements in Classic Mac OS versus Carbon

The only difference between most Class Mac OS Toolbox calls and their Carbon counterparts is a simple library name change.

Declare Function SetSysBeepVolume Lib “InterfaceLib” 
                           (Level as Integer) as Integer

Declare Function SetSysBeepVolume Lib “CarbonLib” 
                           (Level as Integer) as Integer

Something New

In addition to updating existing features, REALbasic adds a host of new abilities. Some of these features ease the transition to Carbon, while others are there just to simplify your life and make the REALbasic experience more pleasant.

The IDE

REALSoftware has made some nice changes in the REALbasic IDE. For example, you may now save your REALbasic projects in one of three formats (see Listing 2).

Listing 2: REALbasic 3 File Formats

Save As enables you to save your REALbasic projects in one of a number of formats rather than only one like in earlier versions.

Standard Project — REALbasic 3 format
REALbasic 2.1 Project — Provides backward compatibility. Without this feature, you would have to 
rebuild your projects if you ever wished to migrate back to REALbasic 2.1.

XML — A new format for REALbasic. The Project saves as an XML text file to encourage REALbasic tool 
development.

Furthermore, REALbasic 3 adds a bit of automation by making the build process Apple-scriptable. This allows you to perform builds under the power of an AppleScript. Figure 1 shows the REALbasic AppleScript Dictionary.


Figure 1. The REALbasic 3 AppleScript Dictionary.

Continuing on the path to making your life easier, REALbasic 3 makes dramatic improvements to the Auto-completion feature. As you type, REALbasic presents you with a list of possible commands, objects, methods, and property names; usually by the time you have typed the second or third letter of the word (see Figure 2). As you type, you see ellipses appearing directly after the cursor. When this occurs, press Tab and a list instantly appears displaying REALbasic’s guess as to what you wish to type next. Select the one you want and hit Return. This is a gem for all those hunt-and-peck programmers out there.


Figure 2. The REALbasic 3 Auto-Completion Feature

The REALbasic IDE also has some subtle navigation enhancements worth mentioning. The Code Editor has been updated with a few interface widgets that help you get around the environment quicker. Located at the bottom left corner of the Code Editor (see Figure 3), four small buttons give you instant access to navigation functions. The first button opens the Window Editor belonging to the current Code Editor in which you are entering code. The second button lets you toggle between showing all events and only the event you are working with. The third button takes you back in time to the last place your cursor rested in the Code Editor. Like multiple undos (which REALbasic has), your cursor can continue traversing backwards in time. The fourth button, as you may have guessed, lets you go in the opposite (forward) direction.


Figure 3. The REALbasic Code Editor provides some navigation options.

Carbon

REALSoftware released the third version of REALbasic alongside another major product release — Mac OS X. This was no accident. Perhaps the biggest news about REALbasic 3 is the fact that it can now compile Carbon versions of your projects, often with little or no change to your existing code. Your applications gain protected memory, Core Graphics text drawing, and other Carbon technologies with no additional effort on your part. Figure 4 displays the new Build Dialog where creating Mac OS X compatible software is as simple as clicking on a checkbox.


Figure 4. The Build Dialog shows how easy it is to create Carbon applications — one checkbox!

Although most code works “as-is” in Carbon builds, there may come a time when you need to address some specific facet of Mac OS X development. For example, Declare statements often differ based on the intended target platform. (Classic Mac vs. Mac OS X vs. Microsoft Windows). To facilitate platform specific code with Mac OS X, REALbasic 3 adds the TargetCarbon directive. Listing 3 shows it in action.

Listing 3: Targeting Mac OS X code

The TargetCarbon preprocessor directive permits you to address Mac OS X — specific code.

#if TargetCarbon
Declare Function SetSysBeepVolume Lib “CarbonLib” 
            (Level as Integer) as Integer
#elseif
Declare Function SetSysBeepVolume Lib “InterfaceLib” 
                           (Level as Integer) as Integer
#endif

The Shell Class is another great new feature available in REALbasic 3 for the first time. With it, you can perform command line functions within your own projects. This creates all kinds of possibilities for enterprising individuals to create GUI-based applications for those command-line shy Mac users out there (and believe me, they exist). For Microsoft fans, this feature also works on Windows (DOS anyone?). Figure 5 shows the Shell Class in action and the pictured example is available on MacTech’s ftp site.


Figure 5. The REALbasic Shell Object in action.

Executing a shell script is as easy as creating a new Shell Object and sending it the Execute command. Listing 4 shows how to list the current processes in an EditField.

Listing 4: Executing Shell Scripts

REALbasic 3 affords you the chance to execute shell scripts just as you do from the command line. This example lists the current processes and the corresponding PID number.

Dim myShell as Shell
myShell = New Shell
myShell.Execute “ps -x | awk ‘{print $1} {print $5}’ ”
if myShell.ErrorCode = 0 then
EditField1.Text = myShell.Result
end if

iDisk

REALSoftware has always been a very open company when it comes to pre-release software. They have always believed that user should be able to take advantage of bug fixes and feature additions as they progress. As such, it is wise to chase down the most recent version of REALbasic, as it is typically quite stable and often provides useful new functions. Prior to REALbasic 3.1b7, REALbasic was only available online directly from REALSoftware. Now, Apple is offering the latest download of REALbasic on iDisk. With iDisk you do not even need a web browser to gain instant access the latest version of REALbasic. Just mount iDisk on the desktop and find REALbasic in the Software directory. Now, that’s cool!

Something Borrowed

Existing REALbasic developers will be glad to know that it continues to support a vast collection of technologies, even within Carbon applications. QuickTime and AppleScript support are there like before, but don’t forget that REALbasic can take advantage of the many new features inherent to both of these technologies. Its like getting bonus features free!

Furthermore, REALbasic 3 supports MIDI, MP3, and MPEG files using Windows Media libraries now. Previously, you were required to use QuickTime. Despite QuickTime’s popularity, more Window’s users take advantage of the Windows Media Player technologies, so this feature is a welcome addition.

Something Blue

Everything is turning blue! No, you do not need a new pair of glasses, it is just the Aqua interface you are seeing. Along with Carbon compatibility, REALbasic makes the switch to Aqua painless. REALbasic 3 uses the Aqua interface under Mac OS X. It also permits you to build applications using the Aqua interface. This all happens transparently to the user. Build projects like you always have; they instantly acquire the Aqua interface when using Mac OS X. REALSoftware has made the transition to Aqua beautifully, although, on occasion, you may need to resize a button or two to deal with the different sized fonts on Mac OS X. Figure 6 shows REALbasic in all its Aqua glory.


Figure 6. REALbasic 3 is Aqua all over.

After the Honeymoon

REALbasic, like Mac OS X, is in a bit of a transitory state at the time this article was written. At this point, everyone is expecting an update to Mac OS X in the near future. REALSoftware is following a similar path by readying REALbasic 3.1. The Beta versions of REALbasic 3.1 are publicly available (see the URL list at the end of this article). Because Carbon is in a state of flux, REALSoftware recommends checking the Beta version of REALbasic should the REALbasic 3.0 version lack some feature you require. Keep in mind that Apple released the final Carbon libraries only shortly before the release of Mac OS X. Once it did, REALSoftware began revising REALbasic to reflect the changes therein. Thus, the Beta version of REALbasic 3.1 provides a glimpse into the latest work coming out of REALSoftware’s Austin offices.

Avoiding Divorce

Some programmers may be wondering what value there is in purchasing a programming environment like REALbasic when Apple gives away free tools with Mac OS X. This is a valid question, but not necessarily a good assessment of the situation. Although Project Builder is essentially free for Mac OS X users, it relies on the more complex Objective C and Java languages for all coding. It does not permit BASIC source code, an undeniably easy language to learn. Moreover, REALbasic provides the only cross-platform visual development environment on the Macintosh. Project Builder doesn’t do Windows! Finally, REALbasic also provides some features unavailable to Project Builder users. For example, REALbasic comes stocked with a database engine, a sprite engine, XCMD support, and more. Sometimes, you truly get what you pay for.

Conclusions

In this article, we took a brief look at the new and updated features of REALbasic 3. Although much of it appears similar to past versions, it is clear that much work has gone into its development. Not only does it make improvements to existing technologies, but it also manages to make it easier than ever to produce quality Macintosh and Windows software. Creating software for Mac OS X has never been easier either. REALSoftware made the transition as painless as Apple made the 68K to PPC change nearly a decade ago. All of your old code works just as it always did, but now on Mac OS X.

References

If you haven’t already registered for an iTools account, do so immediately! With the account you get a 20MB partition (called iDisk) that allows you to publish to the web directly from your desktop. You can download the latest version of REALbasic from it as well.


Erick Tejkowski is the author of REALbasic for Dummies published by Hungry Minds. You can reach him at etejkowski@mac.com.

 
AAPL
$99.18
Apple Inc.
-1.57
MSFT
$45.90
Microsoft Corpora
-0.46
GOOG
$568.27
Google Inc.
-9.09

MacTech Search:
Community Search:

Software Updates via MacUpdate

Cocktail Family License (5 Macs) 7.6.1 -...
Cocktail is a general purpose utility for OS X that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Cocktail 8.0 Beta 2 - General maintenanc...
Cocktail is a general purpose utility for OS X that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
QuickBooks 2015 16.0.0.1352 R1 - Financi...
QuickBooks 2015 helps you manage your business easily and efficiently. Organize your finances all in one place, track money going in and out of your business, and spot areas where you can save.... Read more
Mac DVDRipper Pro 5.0.1 - Copy, backup,...
Mac DVDRipper Pro is the DVD backup solution that lets you protect your DVDs from scratches, save your batteries by reading your movies from your hard disk, manage your collection with just a few... Read more
Apple OS X bash Update 1.0 - Fix for sec...
The OS X bash Update fixes a security flaw in the bash UNIX shell on OS X 10.9.5 (also on OS X 10.8 and 10.7 [see Related Links below]). OS X 10.9.5 or later Downloads for OS X 10.8 and OS X 10.7 in... Read more
SyncTwoFolders 2.0.5 - Syncs two user-sp...
SyncTwoFolders simply synchronizes two folders. It supports synchronization across mounted network drives and it is a possibility to run a simulation showing in a log what will be done. Please visit... Read more
FinderPop 2.5.7 - Classic Mac utility, n...
FinderPop is a Universal preference pane that extends OS X's contextual menus using a FinderPop Items folder much as the Apple Menu Items folder used to do for the Apple menu. It has other features... Read more
VueScan 9.4.45 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
LibreOffice 4.3.2.2 - Free Open Source o...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more
calibre 2.4 - Complete e-library managem...
Calibre is a complete e-book library manager. Organize your collection, convert your books to multiple formats, and sync with all of your devices. Let Calibre be your multi-tasking digital... Read more

Latest Forum Discussions

See All

Banner Saga (Games)
Banner Saga 1.0.17 Device: iOS Universal Category: Games Price: $9.99, Version: 1.0.17 (iTunes) Description: NOTE: The Banner Saga does NOT run on iPhone 4. iPhone 4S and more modern devices recommended. | Read more »
Beatbuddy HD (Games)
Beatbuddy HD 1.0.2 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.2 (iTunes) Description: **IMPORTANT** Beatbuddy runs only on iPhone 6, 6 Plus, 5, 5c, 5s, iPad 4, iPad Mini Retina and iPad Air. | Read more »
iKeywi - Customizable 5-Row Keyboard (U...
iKeywi - Customizable 5-Row Keyboard 1.0 Device: iOS Universal Category: Utilities Price: $.99, Version: 1.0 (iTunes) Description: Want to add an extra row to your iPhone/iPad? One of the most popular keyboard extension in iOS... | Read more »
Manage Your Cloud – Wunderlist Now Suppo...
Manage Your Cloud – Wunderlist Now Supports Dropbox Posted by Jessica Fisher on October 1st, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Nexticy Review
Nexticy Review By Jennifer Allen on October 1st, 2014 Our Rating: :: IDEAL FORM CREATIONiPad Only App - Designed for the iPad Nexticy allows you to make your own forms for research purposes or to organize your business better. It’s... | Read more »
Tiny Troopers: Alliance Marches onto the...
Tiny Troopers: Alliance Marches onto the App Store Tomorrow Posted by Jessica Fisher on October 1st, 2014 [ permalink ] Tiny Troopers: Alliance, by Kukouri, is a | Read more »
HeroCraft Introduces Unlimited Sequel to...
HeroCraft Introduces Unlimited Sequel to WW2: Sandbox. Strategy & Tactics Posted by Jessica Fisher on October 1st, 2014 [ permalink ] | Read more »
RGB Express Review
RGB Express Review By Jennifer Allen on October 1st, 2014 Our Rating: :: DELIGHTFUL PUZZLINGUniversal App - Designed for iPhone and iPad Guide trucks along their delivery routes in RGB Express, a testing but charming puzzle game... | Read more »
The Sagas of Fire*Wolf (Games)
The Sagas of Fire*Wolf 1.0 Device: iOS Universal Category: Games Price: $9.99, Version: 1.0 (iTunes) Description: | Read more »
BuggyFun Review
BuggyFun Review By Amy Solomon on October 1st, 2014 Our Rating: iPad Only App - Designed for the iPad BuggyFun allows children to create their own tracks for bugs to interact with for a unique open-ended experience.   | Read more »

Price Scanner via MacPrices.net

ASUS, Lenovo, and Amazon Slug It Out For Tabl...
According to market intelligence firm ABI Research, Apple and Samsung have led the touchscreen tablet market by a substantial margin since Apple energized the category back in 2010. However, ABI says... Read more
Amazon offers 13-inch MacBook Air for $899, $...
Amazon.com has the 13″ 1.4GHz 128GB MacBook Air on sale for $100 off MSRP including free shipping: - 13″ 1.4GHz 128GB MacBook Air: $899.99 Read more
Apple resting On Its iPhone Laurels? – The ‘B...
Apple calls its new iPhone 6 and 6 Plus “The Biggest Advancements in iPhone History,” but does reality live up to the hype? “Seldom have so many waited so breathlessly for so little,” tweeted veteran... Read more
Roundup of Apple Mac and iPad Education disco...
Purchase a new Mac or iPad at The Apple Store for Education and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free,... Read more
Apple Boycotts German Magazine Computer Bild...
Apple has revoked its PR accreditation of Germany’s Computer Bild, Europe’s best-selling PC magazine, in reaction to Bild’s posting of a “#Bentgate” YouTube video. Axel Telzerow, editor in chief of... Read more
iPhone 6 & iPhone 6 Plus Available in Chi...
Apple has announced that iPhone 6 and iPhone 6 Plus will be available in China beginning Friday, October 17 from the Apple Online Store (http://www.apple.com), Apple’s retail stores, and an expansive... Read more
MacBook Airs on sale for $100 off MSRP, start...
Best Buy has the new 2014 MacBook Airs on sale for $100 off MSRP on their online store. Choose free home shipping or free local store pickup (if available). Prices valid for online orders only, in-... Read more
Apple Releases OS X Mavericks bash Update 1.0...
Apple has released a patch update for OS X Mavericks users to address the recently-detected “Shellshock” security bug in BSD UNIX’s bash shell. Apple says only a few Mac users who had manually... Read more
Pivotal Payments Ready for Apple Pay – FlexPo...
Pivotal Payments, a provider of merchant services and global payment processing solutions, has announced its proprietary FlexPoint platform will support credit and debit transactions through Apple’s... Read more
iStabilizer Announces Tabarm — First Friction...
iStabilizer, a specialist in universal lightweight compact tripods, steady cams, dollies, mounts, and remotes for smartphones, tablets, and cameras, announced today the iStabilizer tabArm, the first... Read more

Jobs Board

*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Senior Event Manager, *Apple* Retail Market...
…This senior level position is responsible for leading and imagining the Apple Retail Team's global event strategy. Delivering an overarching brand story; in-store, Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
Project Manager / Business Analyst, WW *Appl...
…a senior project manager / business analyst to work within our Worldwide Apple Fulfillment Operations and the Business Process Re-engineering team. This role will work Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.