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

MacFamilyTree 9.0.12 - Create and explor...
MacFamilyTree gives genealogy a facelift: modern, interactive, convenient and fast. Explore your family tree and your family history in a way generations of chroniclers before you would have loved.... Read more
ffWorks 2.0.4 - Convert multimedia files...
ffWorks, focused on simplicity, brings a fresh approach to the use of FFmpeg, allowing you to create ultra-high-quality movies without the need to write a single line of code on the command-line.... Read more
Apple Pages 10.0 - Apple's word pro...
Apple Pages is a powerful word processor that gives you everything you need to create documents that look beautiful. And read beautifully. It lets you work seamlessly between Mac and iOS devices, and... Read more
Numbers 10.0 - Apple's spreadsheet...
With Apple Numbers, sophisticated spreadsheets are just the start. The whole sheet is your canvas. Just add dramatic interactive charts, tables, and images that paint a revealing picture of your data... Read more
Keynote 10.0 - Apple's presentation...
Easily create gorgeous presentations with the all-new Keynote, featuring powerful yet easy-to-use tools and dazzling effects that will make you a very hard act to follow. The Theme Chooser lets you... Read more
Carbon Copy Cloner 5.1.16 - Easy-to-use...
Carbon Copy Cloner backups are better than ordinary backups. Suppose the unthinkable happens while you're under deadline to finish a project: your Mac is unresponsive and all you hear is an ominous,... Read more
PDFpenPro 11.2.2 - Advanced PDF toolkit...
PDFpenPro allows users to edit PDF's easily. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Create fillable forms and tables of content... Read more
PDFpen 11.2.2 - Edit and annotate PDFs w...
PDFpen allows users to easily edit PDF's. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Even correct text and edit graphics! Features... Read more
ScreenFlow 9.0.3 - Create screen recordi...
ScreenFlow is powerful, easy-to-use screencasting software for the Mac. With ScreenFlow you can record the contents of your entire monitor while also capturing your video camera, microphone and your... Read more
Amazon Chime 4.30.7537 - Communications...
Amazon Chime is a communications service that transforms online meetings with a secure, easy-to-use application that you can trust. Amazon Chime works seamlessly across your devices so that you can... Read more

Latest Forum Discussions

See All

Same Room Games is a great collection of...
Staying at home under lockdown kinda sucks. Totally necessary, yes, but also more than a little anxiety-inducing and often boring. Thankfully, we've got lots of great multiplayer games to play with friends and keep us sane, the latest of which,... | Read more »
Bark Park is a joyfully silly multiplaye...
Bark Park is a charming, good-humoured game about competing against other players to claim as much territory as possible by peeing on nearby trees. Did I mention that everyone is playing as a dog? Makes things a little less weird. [Read more] | Read more »
The 5 Best Games Like Grindstone
Apple Arcade made a splash when it first launched, granting access to over 50 games as soon as it became available. Of those titles, the one that seemed to grab most people’s attention was Grindstone, a matching puzzle game from Capy Games. [Read... | Read more »
Awarding-winning puzzler Make One is now...
Make One is a game with a simple concept that it executes with flair and impressive levels of polish. It comes to us from developer Brazle and publisher PiG, and it's just landed this week for Android. At its core, Make One is a logic-based... | Read more »
Marvel Contest of Champions' latest...
Kabam's Marvel Contest of Champions has now teased some of the latest characters heading to the Battlerealm next month. Here's your chance to watch the new motion comic embedded below, Barons' War, before I spoil the surprise. [Read more] | Read more »
Why Calibria: Crystal Guardians is the p...
We could all use escapism right now, something to focus on and a project to feel part of during these times of social isolation. If you’re one of the many who’s turned to gaming to fill the lockdown void, Calibria: Crystal Guardians should be on... | Read more »
Mini Tank: Fire is a Worms-like, turn-ba...
Mini Tank: Fire is an online multiplayer game that takes a few cues from the likes of Worms and Shell Shock Live. It will feature 5v5 turn-based battles and is available now for both iOS and Android as a free-to-play game. [Read more] | Read more »
Poly is an endless runner for iOS where...
Poly is an endless runner from solo developer Denis Kakacka that's available now for iOS as a free-to-play game. It aims to bring a slight twist to the standard running formula by mixing up what you're actually controlling. [Read more] | Read more »
Reflex Unit 2 brings intense PvP battles...
Reflex Unit 2 will see players engaging in mech-based warfare, fending off waves and waves of autonomous robots that are threatening to destroy the planet. It's available now for iOS and Android. | Read more »
Snake Core is a modern take on a mobile...
Snake Core, from acclaimed indie developer Orangepixel, is a modern take a mobile classic: Snake. The idea is that you'll command a small army of troops as they go about attempting to take down a horde of invading aliens. [Read more] | Read more »

Price Scanner via MacPrices.net

Apple offers Certified Refurbished iPhone XS...
Apple has Certified Refurbished iPhone XS models available for up to $350 off MSRP, with prices starting at $699. Each iPhone is unlocked and comes with Apple’s standard one-year warranty and a new... Read more
Siri, Apple’s AI-Powered Virtual Assistant, N...
FEATURE: 04.01.20- Apple’s virtual assistant powered by AI (artificial intelligence), Siri, can answer almost any question you throw at it, from asking for today’s weather forecast to where the... Read more
Buy Apple’s 16″ 2.6GHz 6-Core MacBook Pro for...
Apple reseller DataVision has new 16″ 2.6GHz 6-Core MacBook Pros on sale for up to $170 off MSRP, each including free shipping. DataVision charges sales tax for NY, NJ, PA, and CA residents only. In... Read more
Boost Mobile 1-day Flash Sale: $100 off all A...
Boost Mobile is offering Apple’s 2019 iPhone 11 and 11 Pro models for $100 off MSRP. Boost is also offering the same $100 discount on new previous-generation iPhone XS, XR, X, 8, and 7 models. For... Read more
In stock! Apple’s new Mac Pro for $5995 with...
Apple reseller DataVision has the new 2019 Apple Mac Pro in stock today for $5995 ($5 off MSRP) including free shipping. DataVision charges sales tax for NY, NJ, PA, and CA residents only. If you don... Read more
Apple Sources Confirm Spring Media Event Canc...
NEWES: 03.31.20- A previously planned Apple media event scheduled to take place sometime this Spring that was rumored and widely expected to be held today, March 31, were confirmed by anonymous... Read more
Apple restocks 2017 13″ Dual-Core non-Touch B...
Apple has restocked a limited number of Certified Refurbished 2017 13″ 2.3GHz Dual-Core non-Touch Bar MacBook Pros starting at $1019. An standard Apple one-year warranty is included with each model,... Read more
Save $300 on the 13″ 2.4GHz MacBook Pro with...
Apple has a full line of Certified Refurbished 2019 13″ 2.4GHz 4-Core Touch Bar MacBook Pros available starting at $1529 and up to $300 off MSRP. Apple’s one-year warranty is included, shipping is... Read more
Just in! Apple’s new 2020 4-Core Mac mini $10...
B&H Photo has Apple’s new 2020 4-Core Mac mini in stock and on sale today for only $699 including free overnight delivery for many US addresses. Their price is $100 off MSRP, and it’s the lowest... Read more
New 2020 13″ Space Gray MacBook Airs on sale...
B&H Photo has Apple’s new 2020 13″ Space Gray MacBook Airs on sale today for $50 off Apple’s MSRP. While they don’t have stock today, preorders are accepted at this discount. Overnight shipping... Read more

Jobs Board

Sephora Merchandise/Operations Supervisor -...
Sephora Merchandise/Operations Supervisor - Apple Blossom Mall Location:Winchester, VA, United States- Apple Blossom Mall 1850 Apple Blossom Dr Job Read more
Sales Supervisor - *Apple* Blossom Mall - J...
Sales Supervisor - Apple Blossom Mall Location:Winchester, VA, United States- Apple Blossom Mall 1850 Apple Blossom Dr Job ID:1083621Store Hourly Positions Read more
*Apple* Mac Product Engineer - Barclays (Uni...
Apple Mac Engineer Whippany, NJ Support the development and delivery of solutions, products, and capabilities into the Barclays environment working across technical Read more
Essbase Developer - *Apple* - Theorem, LLC...
Job Summary Apple is seeking an experienced, detail-minded Essbase developer to join our worldwide business development and strategy team. If you are someone who Read more
Senior Software Engineer @ *Apple* - Theore...
Job Summary Apple is looking for a seasoned senior software engineer to join our worldwide business development and strategy team. This is an opportunity to lead a Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.