RFO-BASIC! is he quickest and easiest way to create your own application for Android phones and tablets. Knowledge of a programming language in BASIC will be to your advantage but you do not have to be an expert. What is RFODESIGNER ?   It is a WYSIWYG application to design the graphical UI for your Android application and by editing the auto generated code to suite your needs. It includes a full editor with syntax hi-lighting. See image below.

WARNING:  Please take note that attached examples apply for specific versions of RFODESIGNER.




RFOdesignerSetupV2000  Updated : 24-08-2018 
The Final Version 2. No changes is expected in the structure of the auto generated code in the future.

Warning: The auto generated code changed in Version 2.0 , thus it is not compatible with previous versions.
To use the APK compiler, download and install RFO2APK below
Keywords now include that of OliBasic's test version for BASIC!
OliBasic is an experimental add on to BASIC! in effect you have BASIC! plus OliBasic commands available.

NOTE: The download for RFODESIGNER no more includes the RFO2APK compiler below.

RFO2APK for Basic!, OliBasic and Hbasic  Updated : 20-09-2018 
Create your APK using Basic! as the base for generation. This is the standalone APK compiler version.
Very important to keep in mind is that the permissions selected should support your Basic code used
and failure of which will create a non working app.
Recommended emulator for testing your APK's  BlueStacks Ver1  

Sadly because the development of BASIC! came to a standstill, RFODESIGNER and RFO2APK will incorporate the Hbasic and OliBasic template for as long as it takes to restart the development of BASIC!.

It is available as downloads only and is a compiled video player that only plays the assembled video. It is created with the free version of Screen2Exe which creates a very small video in file size with a relative long play time.

VIDEO : - 5.8Mb
VIDEO : - 6.9Mb
VIDEO : - 6.1Mb
VIDEO : - 11.9Mb

Existing users to be careful not to break the code for your old apps with a newer version.
Changes in the framework's structure will produce errors in old examples/code. Your old code is fairly simple to fix by reading the errors and inserting the correct GoSub Labels as reported missing.
Main changes was occurrences in syntax for :
"Button" ==> "Btn"
"RndButton" ==> "RndBtn"
"LastObject" ==> "LastItm"
"TextLine" ==> "TxtLine"

When downloading a valid RFODESIGNER example just unzip and place it in the "c:\RFODESIGNER\Projects\"  directory. A valid RFODESIGNER example will always have a PRJ and BAS file included copied to the required BASIC! directory structure.

From time to time RFO2APK will return an error condition. This is due to some race conditions on the pc that prevents writing/deleting of files or directories that are in use by other applications. One such program could be software checking if the files are secure. The quick cure is to restart RFO2APK because it will try to fix the problem by itself.

The development of RFODESIGNER did now reach the stage where it is reasonable stable. RFODESIGNER uses RFO2APK to compile your app to an APK. RFO2APK is still in baby shoes and further development will be an ongoing process for some time. The manual is an outstanding task but instead watch the downloadable
self playing video exe  which is a compiled self playing video for convenience and small file size.

Credit is given for
RFO BASIC! to all where due with special reference to Paul Laughton, the original creator of RFO BASIC!.


Many decisions had to be made to decide which programming style (framework) to implement for the code that is auto generated, ie a function framework for objects versus the raw basic code for the objects. The latter was chosen because then a graphic user construction of objects is possible and the pc is then a very willing slave to help here. Just about anything is possible. Although I am not a gamer and have no  interest in coding games, it is possible to use the GUI generated to host your game or for example a live graph showing temperature or whatever.
RFODESIGNER have been tested to also produce board-games

By planning the Z-order of the objects placed, the overlaying results opens many other routes. Also then because every line/element of an object is traceable in the auto generated code, it is possible to change that single
line/element in that display list. It is important to minimize unnecessary drawing that is referred to by the display list for speed purposes and the possible out of memory situations.
The basics is thus to get all drawing done at initializing of the app and then only display sections from the display list as and when required. Your friendly functions in this regard is GR.MODIFY and GR.HIDE and GR.SHOW and GR.GROUP and GR.MOVE.
The latest official manual for RFO-BASIC! must be studied by the user so as to understand properly what I meant in this few words.

  • Stitches a number of sprite images in a row,
  • Auto generates an include file for cropping the sprites from the generated sprite sheet.
  • Resize your images to the required Android sizes for use as app icons
  • Create a WiFi hotspot on your WiFi enabled PC or Laptop for communication to your phone/tablet
  • Create bitmap images for gradient coloured buttons.

After downloading unzip and run the Setup program. RFO2APK is an utility to make an APK from your basic source code.For RFO2APK to work your pc needs Dot NET Framework support since it is programmed in VB.NET .  RFODESIGNER itself does not require this and will work without Dot NET framework.
Download the Dot NET Framework at Microsoft

This demonstrates a recursive user function to evaluate a math expression
It also shows how to use the invisible TchRect object on a bitmap.

Example for playing MP3's
The first example will play the selected track and switch to new track at any time when touched/selected.
The second example is the same as above except that it has a continue cycle added for when no new one selected or being stopped.

This is a custom input dialog with custom keyboard. The keyboard is not an Android one.
It consists of 3 images with the invisible TouchRect objects placed on the "buttons" to act as the touch regions.

The 3 keyboard images used was copied from phone screenshots and modified to suite the needs.
Operation is by touching the field for input ie "Lastname" . The Input dialog will open.
Any existing text in the entry field will be copied to the dialog box to edit.
To capture the dialog box entry simply touch the green "+button".
To return without capture - touch the phones Back key.

This example demonstrates a server created on your Android phone. Your PC will act as a Client. Thus the PC will log onto the phone server so as to send string messages to each other.
Included in this example is Windows executable to facilitate the communication on PC side as the Client :
"ClientToAndroidServer.exe" and "HotSpotManager.exe"

How to test :
The phone and the PC have to be on the same WiFi LAN. You can use your WiFi router as the LAN but then you would most probably also be connected to the internet if the PC was setup this way. Alternatively you can use "HotSpotManager.exe" to create a WiFi hotspot on your PC with the PC's WiFi as the pipe with zero internet connectivity for your safety. Your phone should be connected to either WiFi spot before creating the server with the appropriate button. Even better is to connect to the same WiFi spot before executing the phone server app. Once you created the server then the phone will display the server's IP address. This IP address must be entered into the appropriate textbox on the Windows app following with a "Connect Button" action. The Phone and the Win app will acknowledge this connectivity. Then you can send text messages back and forth as you wish.

Although the APK is included for testing by uploading to the phone, when compiling the APK by yourself with RFO2APK then you must make sure that the applicable android permissions are set for WIFI, INTERNET and WAKELOCK. The WAKELOCK permission can be omitted if you omit the WAKELOCK command in the source. The others are mandatory. Previously the unfinished version of RFO2APK enabled all the permissions by default which was good for the beginner to eliminate accidental omission errors. The latest version requires some effort from your side to do the right thing. So whenever you get an error, first check that your permissions are assigned correctly for your APK.
See example image below  for RFO2APK on this demo.

Then for you to explore is how to send files to each other. Also how two phones could be used with one as server and the other as client.
The source for the Win Client/Server app is available on request in RapidQBasic.
Below some screenshots of the events left to right, row by row.

This Oldschool Arithmetic Tutor application teaches the junior pupil the tested age old method of adding two numbers.
The app will generate random numbers to add up to below a answer value of 1000.
The user will touch below the answer line for a digit to insert. A numeric keypad will display to enter the answer for the column.
The user can use the carry over digit if so wish to aid the method as we had it 30+ years ago.
The carry over digit in red is not mandatory and can be omitted as the user gets the nick.

Example to demonstrate an invisible onscreen joystick. It outputs X and Y coordinates with the
relevant Polar value relative to the point where the screen was touched for the first time.
By dragging the finger from first touch down the Polar component is determined
The data can be used to steer an object with a direction and acceleration .
Similar to the example for the old version of RFODESIGNER.
The menu is drawn off-screen and touching the menu button will slide the animated menu from the right side into view. Here an option can be picked which will be displayed while the menu moves back at high speed to it's hidden off-screen position. It is demonstrating how to group a cluster of objects and treat them in a single move or animated steps.

Warning : Discontinued and will not be able to load into RFODESIGNER version 2
Touch the entry box and a numeric keypad will pop up. After entry the entry field is touched again to remove keypad from the view port.
A numeric number pad in 2
versions. The one is a bitmap generated somewhere else with overlayed touch regions.
The other buttons are all drawn in BASIC! at run time.
The menu is drawn off-screen and touching the menu button will slide the menu from the right side into view. Here an option can be picked which will be displayed while the menu is sliding back to it's hidden off-screen position. It is demonstrating how to group a cluster of objects and treat them in a single move.
This example demonstrates how to draw graphics over several development screen widths going off-screen and how to group them by method of the whole display list at once. Now the user is able to swipe the wide screen from left to right. This example only shows for horizontal. It can also scroll vertical with simple modification.

The most important subject for BASIC! is to understand the workings of the DISPLAY LIST around which it is based for graphics display. This demo then shows as per the most simple way to have 2 display lists and switching instantaneously between them.

Copyright starting as of 2014 for RFODESIGNER and RFO2APK software is retained by the author at all times. This software is not freeware and is never sold or given to anyone. Third party applications used carry their own license, terms and conditions. Permission is only granted for this software to be used by an individual for non malicious use, on his own risk, with the author offering/accepting no guarantees or liability.The user indemnifies the author against any liability that could come about from the usage of these software. Any download links or hosting by non RFO BASIC programming specific websites to this software and website is prohibited whether it is directly or indirectly.  Contact :    therfodesignerATgmailDOTcom