Share My Creation BasicIDE Suite 3 - Now further improved

BasicIDE Suite 3 now superceded by BasicIDE Suite 4



Here we have (yet) another updated version of BasicIDE Suite, my on device development environment. The IDE is based on my CodeEditorView control that you could use in your own projects if you needed a syntax highlighting code editor. I haven't documented it separately as I suspect the limited demand for it would not justify the effort but would be pleased to answer questions about its use.

Significant changes from BasicIDE Suite version 2 are:

BasicIDE

1) Async dialogs are now supported using a callback mechanism. Synchronous ones are available but deprecated.
2) Because debugging formerly relied on the deprecated Msgbox it has been overhauled to be programmatically invoked using Async dialogs
2) A few typos and missing items in the syntax highlighting and autocomplete are fixed.
3) All array, variable and Sub names are now available to autocomplete, updated whenever Enter is pressed
4) New CodeEditorView v1.20 has a custom ArrayAdapter that needs no manifest entries or inline Java (cribbed from some of Erel's B4A code - thank you) and has Search background highlighting added.
5) Editor can now do find, search and replace
6) Clipboard access for text items added to the language because it was needed by one of my apps

BasicIDE Designer

1) Various minor enhancements and UI bugfixes
2) Added landscape layout capability so programs can now cope with device rotation

1620385264992.png


BasicIDE Launcher

1) Launcher app has been added to the suite to enable rapid launch of completed programs by selection from a list


Personal ramblings - skip if you can't be bothered reading it!

A little history for context. Way back in 2007 I purchased a Pocket PC, a Dell Axiom A30. It was a revelation! A small Windows 95 like computer running a compact version of .NET and Windows Forms. I also purchased a program called Basic4ppc so that I could program on the go with the Axiom as well as on the desktop and so I 'met' Erel.

All good things come to an end and with the demise of Pocket PC/Windows Mobile 6 and its replacement by the utterly awful, and ultimately doomed, Windows Mobile 7 and later series of OSes I reluctantly switched to Android, as did the creator of Basic4ppc and I became the first beta tester to help Erel develop Basic4Android that later became B4A.

Back in 2010 Erel was pretty pleased with himself for implementing a modal dialog in Android - only to deprecate it nearly 10 years later 🤣
Hi Andy,
...
BTW, I've now started working more seriously on B4A. I learned a lot since 2005 when I first developed Basic4ppc so I'm pretty optimistic about this new project. Already implemented a good old blocking msgbox (was pretty complicated to do)
...
Regards,
Erel

I stopped using B4A in 2014 out of disgust with Google's business practices and for a while small Windows tablets looked promising. On them I could run my own private version of Basic4ppc which I have kept enhancing over the years into a full blown desktop IDE. However these small tablets never took off in the market and became unobtainable with any decent specification so in about 2018 I returned very reluctantly to Android, even more disgusted with Google but with no other alternative, and started relearning B4A which had grown somewhat during my absence.

I still wanted an on-device IDE and I have a Basic4ppc language interpreter that I wrote in C# for Basic4ppc and have kept polished over the years and which I had translated to Java and B4A as the BasicLib library. So I started implementing an on device development based upon it. Now with Basic IDE Suite version 3 we have the apotheosis of my efforts over the years.


BasicIDE Suite 3 details

This latest vesion of Basic IDE Suite has three components.

Basic IDE, the on-device development environment which uses the BasicLib B4A library to provide the language interpreter for the IDE. This latest version has a modified editor that provides syntax highlighting and auto-completion for the B4AScript language, the Basic IDE Script extensions and the variable and Sub declarations of the current program. It has error line highlighting together with search and replace. A major addition to the Script extensions are non-modal versions of the original modal user interface dialogs, and the elimination of modal dialogs from Basic IDE itself, apart from the script break and step facility which requires it. There is a discussion of modality and its implications in Basic IDE and its program in a topic in the help file for Basic IDE.

Basic IDE Designer, an on-device visual designer that is used to produce view layouts for use in Basic IDE programs. This latest version can provide both landscape and portrait variants.

Basic IDE Launcher, an app that can quickly run a selected Basic IDE program and whose project can very easily be copied, slightly modified and recompiled by B4A to produce a stand-alone APK of a Basic IDE program that can be installed to a device and run independently as a normal B4A app.

Before extracting the BasicIDEHelp zip file it should be unblocked by right clicking on it in File Explorer, selecting Properties and checking Unblock at the lower right of the General tab. This allows the .chm help files to be properly displayed by Windows. If the .chm files are not unblocked their content will not be available in the Windows help viewer. Read the BasicIDE chm help to get started. I note that the Installation topic in the Overview section implies that the help files are in BasicIDELibraries zip, they no longer are and now have their own archive.

If this all looks a bit daunting that is because it is, although once everything is in place on the device things are pretty straightforward. Remember that this is a full design and execution IDE for non-trivial Andoid apps so it was never going to be simple - I don't usually do simple. Enjoy :)

EDIT: There seems to be a bug in Android 11 keyboard handling that affects the Designer. See post #7 below.

EDIT2: The new IIF function in B4X v11.0 broke the Script module version replace it with the version in post #9

EDIT3: B4A v11 barfs on an unneeded manifest entry in the Launcher. Remove the last line

AddManifestText(<edtSource android:imeOptions="flagNoExtractUi|flagNoFullscreen" />)

EDIT4: See posts #15 and #16 for how to add a 'flinging' capability to the editor for much easier navigation
 

Attachments

  • BasicIDE_5.7.zip
    428.1 KB · Views: 172
  • BasicIDEDesigner_v1.2.zip
    223.5 KB · Views: 149
  • BasicIDEHelp.zip
    286.1 KB · Views: 140
  • BasicIDELauncher_v1.0.zip
    62.9 KB · Views: 129
  • BasicIDELibraries4.zip
    248.6 KB · Views: 144
Last edited:

agraham

Expert
Licensed User
if a program was run in the ide, dirAssets would point to its project dir, but when bundled with the launcher in an apk it would of course point to the real assets folder. when compiled into an apk, all one had to do is bundle all the files in the project folder and drop em in the files tab of the b4a launcher project. to me this pushed it up a notch as a serious development tool.
That's what Launcher does. There is a ScriptDir variable in the Script module which the IDE points to the project folder and Launcher points it to DirAssets.
 

JesseW

Active Member
Licensed User
There is a ScriptDir variable in the Script module which the IDE points to the project folder and Launcher points it to DirAssets.
so every basicide project your working on has its own scriptdir? I thought all the scripts went in the same folder pointed to by scriptdir?
 

JesseW

Active Member
Licensed User
I will when I get home. I was trying to convey the awesomeness of having each basicide project in its own folder, and as a consequence, the scriptdir could automatically point to it when in ide mode. we both had the same idea, I just suggested taking it a step further by proving each project its own dir. I really took up with b4script and have literally dozens of projects and sharing a single folder would have made things much more difficult
 

JesseW

Active Member
Licensed User
another thing to consider from my experience is after I ran the script and it merged includes into a single file, b4script automatically saved it as a .b4x file (maybe .b4sx is more appropriate now) and it was that file the launcher ran when it started so it didn't have to include the preprocessing logic itself.
 

JesseW

Active Member
Licensed User
interesting thought... if the launcher could register .b4a and other filename extensions, it could be uploaded to the play store as is, and any script files could be mailed and installed/ran when your client clicks on them from their email
 

agraham

Expert
Licensed User
I'm looking at implementing project folders, just a single level of nesting, as I can see that might be convenient. After the items in post #19 I think that I will call BasicIDE feature complete apart from bug fixes and maybe additional functionality in the Script module functions. Thanks for the prodding to add these improvements which make BasicIDE a better place to code.

it merged includes into a single file, b4script automatically saved it as a .b4x file (maybe .b4sx is more appropriate now) and it was that file the launcher ran when it started
Compared to the processing in the two tokenising/optimising passes that the interpreter does the overhead of inclusion is trivial.

up/down arrows that would jump to the last or next Sub.
Sorry but no. Use search to find them.

it could be uploaded to the play store as is, and any script files could be mailed and installed/ran when your client clicks on them from their email
Android 11 file access restrictions will destroy the IDE functionality. The IDE, as it's not in the store can stay targeting SDK 28 but a stand-alone launcher in the store will need to target SDK 30, soon 31, which would require a whole lot of of file access considerations to be addressed depending on the program requirements. I'm afraid that I won't be doing that as I have no interest in store apps.
 

agraham

Expert
Licensed User
Quick update - all going well to adding projects to both IDE and Designer and all the other items in post#19. I'm actually very pleased with it all. A few days yet to finish testing. update help and then build the new archives which I will post in a new BasicIDE Suite 4 topic.
 

agraham

Expert
Licensed User
New much improved BasicIDE Suite 4 now posted. BasicIDE Suite 3 is now deprecated and unsupported.

 
Top