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.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

OS X Server 4.1.3 - For OS X 10.10 Yosem...
Designed for OS X and iOS devices, OS X Server makes it easy to share files, schedule meetings, synchronize contacts, develop software, host your own website, publish wikis, configure Mac, iPhone,... Read more
pwSafe 4.1 - Secure password management...
pwSafe provides simple and secure password management across devices and computers. pwSafe uses iCloud to keep your password databases backed-up and synced between Macs and iOS devices. It is... Read more
Kodi 15.0.rc1 - Powerful media center to...
Kodi (was XBMC) is an award-winning free and open-source (GPL) software media player and entertainment hub that can be installed on Linux, OS X, Windows, iOS, and Android, featuring a 10-foot user... Read more
Coda 2.5.11 - One-window Web development...
Coda is a powerful Web editor that puts everything in one place. An editor. Terminal. CSS. Files. With Coda 2, we went beyond expectations. With loads of new, much-requested features, a few surprises... Read more
Bookends 12.5.7 - Reference management a...
Bookends is a full-featured bibliography/reference and information-management system for students and professionals. Access the power of Bookends directly from Mellel, Nisus Writer Pro, or MS Word (... Read more
Maya 2016 - Professional 3D modeling and...
Maya is an award-winning software and powerful, integrated 3D modeling, animation, visual effects, and rendering solution. Because Maya is based on an open architecture, all your work can be scripted... Read more
RapidWeaver 6.2.3 - Create template-base...
RapidWeaver is a next-generation Web design application to help you easily create professional-looking Web sites in minutes. No knowledge of complex code is required, RapidWeaver will take care of... Read more
MacFamilyTree 7.5.2 - Create and explore...
MacFamilyTree gives genealogy a facelift: it's modern, interactive, incredibly fast, and easy to use. We're convinced that generations of chroniclers would have loved to trade in their genealogy... Read more
Paragraphs 1.0.1 - Writing tool just for...
Paragraphs is an app just for writers. It was built for one thing and one thing only: writing. It gives you everything you need to create brilliant prose and does away with the rest. Everything in... Read more
BlueStacks App Player 0.9.21 - Run Andro...
BlueStacks App Player lets you run your Android apps fast and fullscreen on your Mac. Version 0.9.21: Note: Now requires OS X 10.8 or later running on a 64-bit Intel processor. Initial stable... Read more

Rage of Bahamut is Giving Almost All of...
The App Store isn't what it used to be back in 2012, so it's not unexpected to see some games changing their structures with the times. Now we can add Rage of Bahamut to that list with the recent announcement that the game is severely cutting back... | Read more »
Adventures of Pip (Games)
Adventures of Pip 1.0 Device: iOS iPhone Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: ** ONE WEEK ONLY — 66% OFF! *** “Adventures of Pip is a delightful little platformer full of charm, challenge and impeccable... | Read more »
Divide By Sheep - Tips, Tricks, and Stre...
Who would have thought splitting up sheep could be so involved? Anyone who’s played Divide by Sheep, that’s who! While we’re not about to give you complete solutions to everything (because that’s just cheating), we will happily give you some... | Read more »
NaturalMotion and Zynga Have Started Tea...
An official sequel to 2012's CSR Racing is officially on the way, with Zynga and NaturalMotion releasing a short teaser trailer to get everyone excited. Well, as excited as one can get from a trailer with no gameplay footage, anyway. [Read more] | Read more »
Grab a Friend and Pick up Overkill 3, Be...
Overkill 3 is a pretty enjoyable third-person shooter that was sort of begging for some online multiplayer. Fortunately the begging can stop, because its newest update has added an online co-op mode. [Read more] | Read more »
Scanner Pro's Newest Update Adds Au...
Scanner Pro is one of the most popular document scanning apps on iOS, thanks in no small part to its near-constant updates, I'm sure. Now we're up to update number six, and it adds some pretty handy new features. [Read more] | Read more »
Heroki (Games)
Heroki 1.0 Device: iOS Universal Category: Games Price: $7.99, Version: 1.0 (iTunes) Description: CLEAR THE SKIES FOR A NEW HERO!The peaceful sky village of Levantia is in danger! The dastardly Dr. N. Forchin and his accomplice,... | Read more »
Wars of the Roses (Games)
Wars of the Roses 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: | Read more »
TapMon Battle (Games)
TapMon Battle 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: It's time to battle!Tap! Tap! Tap! Try tap a egg to hatch a Tapmon!Do a battle with another tapmons using your hatched tapmons! *... | Read more »
Alchemic Dungeons (Games)
Alchemic Dungeons 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: ### Release Event! ### 2.99$->0.99$ for limited time! ### Roguelike Role Playing Game! ### Alchemic Dungeons is roguelike... | Read more »

Price Scanner via MacPrices.net

Seagate Backup Plus Drives Feature 200GB of C...
Seagate Technology plc has announced that its Backup Plus family of external storage offerings will now include 200GB of OneDrive cloud storage, a major added value, and the addition of Lyve’s photo... Read more
Canon PIXMA MG3620 Wireless Inkjet All-in-One...
Canon U.S.A., Inc. has announced the PIXMA MG3620 Wireless (1) Inkjet All-in-One (AIO) printer for high-quality photo and document printing. Built with convenience in mind for the everyday home user... Read more
July 4th Holiday Weekend 13-inch MacBook Pro...
Save up to $150 on the purchase of a new 2015 13″ Retina MacBook Pro at the following resellers this weekend. Shipping is free with each model: 2.7GHz/128GB MSRP $1299 2.7GHz/... Read more
27-inch 3.5GHz 5K iMac on sale for $2149, sav...
Best Buy has the 27″ 3.5GHz 5K iMac on sale for $2149.99. Choose free shipping or free local store pickup (if available). Sale price for online orders only, in-store prices may vary. Their price is $... Read more
Apple now offering refurbished 2015 11-inch...
The Apple Store is now offering Apple Certified Refurbished 2015 11″ MacBook Airs as well as 13″ MacBook Airs (the latest models), available for up to $180 off the cost of new models. An Apple one-... Read more
15-inch 2.5GHz Retina MacBook Pro on sale for...
Amazon.com has the 15″ 2.5GHz Retina MacBook Pro on sale for $2274 including free shipping. Their price is $225 off MSRP, and it’s the lowest price available for this model. Read more
Finally Safe To Upgrade To Yosemite’?
The reason I’ve held back from upgrading my MacBook Air from OS X 10.9 Mavericks to 10.10 Yosemite for nearly a year isn’t just procrastination. Among other bugs reported, there have been persistent... Read more
Logo Pop Free Vector Logo Design App For OS X...
128bit Technologies has released of Logo Pop Free 1.2 for Mac OS X, a vector based, full-fledged, logo design app available exclusively on the Mac App Store for the agreeable price of absolutely free... Read more
21-inch 1.4GHz iMac on sale for $999, save $1...
B&H Photo has new 21″ 1.4GHz iMac on sale for $999 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Best Buy has the 21″ 1.4GHz iMac on sale for $999.99 on their... Read more
16GB iPad mini 3 on sale for $339, save $60
B&H Photo has the 16GB iPad mini 3 WiFi on sale for $339 including free shipping plus NY tax only. Their price is $60 off MSRP. Read more

Jobs Board

Frameworks Engineer, *Apple* Watch - Apple...
**Job Summary** Join the team that is shaping the future of software development for Apple Watch! As a software engineer on the Apple Watch Frameworks team you will Read more
Mobile Payments Counsel, *Apple* Pay (digit...
**Job Summary** Apple is looking for an atto ey to join Apple 's Legal Department to support Apple Pay. **Key Qualifications** 4+ years of relevant experience Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** The ASC is an Apple employee who serves as the Apple business manager and influencer in a hyper-business critical Reseller's store which delivers Read more
Partner Marketing Manager, Merchant- *Apple*...
**Job Summary** The Apple Pay partner marketing team is looking for a marketing manager to develop and drive US marketing programs with our merchant partners. The right Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.