Basic4android (B4a) release notes

b4a logo

basic4android b4a logo

This post is NOT authorized by B4A. We made it only to get an impession of the immense B4A development progress. It was done by copy/paste from the single product pages for the most releases. Here the release notes:


B4A v3.82

New features and improvements:

  • Support for Android L (preview version).
  • Support for the files structure of latest Android SDK.
  • Sender keyword – correctly manages events from multiple threads.
  • Optimized dexer supports Java 7 classes. This is required in order to compile apps with the latest Google Play Services version.
  • Rapid debugger – several bug fixes and improvements to error reports.

 

B4A v3.80

This version includes several major new features that make it easier to develop real-world solutions and reuse code between different projects.

New features and improvements:

  • Conditional Compilation & Build Configurations: http://www.b4x.com/android/forum/threads/conditional-compilation-build-configurations.40746/
  • Shared code modules: http://www.b4x.com/android/forum/threads/shared-code-modules.40747/
  • #AdditionalJar attribute – Allows adding jar files to the compilation. Together with JavaObject library it is now possible to use 3rd party libraries without a wrapper (not in all cases).
  • Project meta file – This file stores „dynamic“ project state: modules visibility and order, collapsed nodes, bookmarks and breakpoints. This file should be excluded from source controls.
  • Bit.InputStreamToBytes – Reads all the data from an input stream and returns an array of bytes with the data. The input stream is closed automatically.
  • JSON generator supports arrays as well as lists.
  • CreateMap keyword – A shorthand method for creating and filling Maps. For example:
    Code:
    Dim m1 AsMap = CreateMap("Key1": 10, "Key2": 20)
  • Array keyword – The type can be omitted. In that case the array type will be Object. The Array keyword now supports creating empty arrays.
  • Spinner.DropDownBackgroundColor property
  • Debugger can optionally show hexadecimal values.
  • Auto complete for layouts and assets files: [​IMG]
  • Libraries filter box: [​IMG]
  • Add existing modules supports multiple selection.
  • New configurable color: ToolTipDefaultText (color of non-code tool tips text)
  • Other minor improvements and bug fixes.

 

B4a v3.50

This update brings major improvements to the debugging features of Basic4android.

With this update you can enjoy the rapidness and power of the rapid debugger with runtime performance close to non-debug deployments.

A new powerful watch expression feature is also available:

[​IMG]

This allows you to easily evaluate expressions when the debugger is paused.

New features and improvements:

  • Rapid debugger runtime performance is now close to non-debugged applications.
  • Watch Expressions feature (see screenshot above).
  • The rapid debuggers uses a virtual assets folder. This makes it possible to redeploy only the modified files. This feature makes deployments of large projects with many files much faster.
  • Visual designer – Views tree performance is significantly better. Views preserve their names when pasting views between layouts.
  • #AdditionalRes attribute can be used multiple times.
  • ScrollView.ScrollToNow method (available in HorizontalScrollView as well). Immediately scrolls the ScrollView to the new position.
  • Quick Search tool (Ctrl + I) – An index based search tool for quick searching (in all modules):
  • Regions were added to the Find Sub (Ctrl + E) tool.
  • New attributes: #DebuggerForceFullDeployment and #DebuggerForceStandardAssets.
  • Other minor improvements and bug fixes.

There is a new style attribute in B4A.xml: CurrentLine. This attribute sets the color of the currently active line.


 

B4A 3.20

This version includes many important improvements:

  • Visual designer
    • Anchors feature – makes it easier to target multiple screen sizes. See this short video.
    • Copy & paste – work both inside the layout or between different layouts.
    • Undo / redo feature.
    • The views are organized in a tree for easier navigation.
    • AutoScaleAll keyword now works with all variants, not just the „standard“ variant.
    • Colors fields can be copied and the colors values can be pasted or directly typed.
    • Designer script find / replace dialog.
    • The grid is saved in the layout file.
    • Landscape / Portrait designer keywords to test the current orientation.
    • UI Cloud threshold reduced to 10 seconds.
  • #AdditionalRes attribute – Makes it possible to wrap Android library projects (projects with resources). See this example: jfeinstein10 SlidingMenu library
  • Sync button in the Files tab – Syncs the project files with the Files folder.
  • Modules added to the Find Sub / Module tool (Ctrl + E).
  • Tabs order in the IDE is preserved.
  • Modules files that were not modified will not be saved thus preserving the correct time stamp.
  • DateTime.SetTimeZone now accepts a Double instead of Int.
  • Shortcuts: F11 – Restart (rapid debugger), F2 in the designer connects to the device.
  • JavaObject v1.00 – new RunMethodJO / GetFieldJO methods.
  • Bug fixes and other minor improvements.

Notes


 B4A 3.00

Improvements:

  • Rapid Debugger – Powerful debugger, hot code swapping, quick deployment and more.
  • Better support for large number of background tasks. This update (together with an update to the Http library) allows you to send hundreds of requests at once.
  • B4A-Bridge – Last 5 IP addresses are stored. F2 connects to the last one. Some other small improvements in the connection process.
  • For loop performance improvement.
  • Activity / Panel.GetAllViewsRecursive. Provides a simple way to iterate over all views.
  • Color picker. Right click in the code editor to show it.
  • List.SortTypeCaseInsensitive method.
  • PhoneSms.Send2 – send sms without notifications.
  • Screenshots tool – Copy to clipboard.
  • Spinner.DropDownTextColor property.
  • Compilation window closes automatically when it loses focus.
  • Bug fixes and other minor improvements (including the fix for Android 4.3 back key issue and the IDE scrolling issue).

B4A 2.71

  • Compiler warnings – A new warning engine that helps finding common errors as soon as possible:[​IMG]
  • Custom views with designer support – Developers can create custom views (with classes or libraries) that can be added with the visual designer. This feature makes it possible to build the complete layout with the designer and designer scripts.
  • Classes properties – a long-awaited feature.
  • Bitmaps handling improved – LoadBitmap / LoadBitmapSample internally handle out of memory errors by down-scaling the image. The visual designer loads images based on the target size to preserve memory.
  • DateTime.ListenToExternalTimeChanges – raises an event when the device time is set or when the time zone changes (and updates the internal time zone used).
  • CallSub keyword improvements:
    Returns Object instead of String.​
    Sender is set when calling from a class. This is useful for events implementation.​
    Significant performance improvements when calling subs in classes.​
    No error is raised if the target sub is not found when calling from a class. This is useful for events implementation.​
  • #LibraryName attribute. Sets the compiled library name.
  • Libraries dependencies resolver was improved and it can now handle cases such as described here.
  • Logs are colored based on the message type.
  • LogColor keyword – Similar to Log. The message will be displayed in the IDE with the specified color.
  • Screenshot tool improved.
  • HttpUtils2 and DateUtils are now included as libraries in the IDE.
  • Bug fixes and other minor improvements (including „run last deployment“ feature).

Version 2.71 is now available for download from the same link as v2.70. This update fixes the following issues:

  • Low quality images when adding images with the designer
  • CallSub casing fails with some numeric types
  • Support for the new location of aapt.exe
  • Other minor improvements

 

B4A 2.52

Performance improvements

  • Compilation time in debug mode is similar to compilation in release mode.
  • Many performance and memory related improvements in the IDE. The IDE should be much more responsive (some of the improvements will only be applied after you first save the project with the new version).

New features

  • Compile to library. This feature allows you to reuse components and break large projects into smaller projects.
  • Module attributes.
  • Custom build actions – See the attributes tutorial.
  • Native support for Google maps (requires Android 3+).
  • Sign key signatures are displayed in the key dialog.
  • List Permissions button in compilation window – Lists the permissions and the objects that added them.
  • Quotes in string literals – Double quotes in string literals will be treated as a single quote: Code:
    Log("Hello ""world"""'Will log: Hello "World"
  • RemovePermission keyword in the manifest editor.
  • DateTime.DateTimeParse keyword – Combination of DateParse and TimeParse.
  • SQL – Asynchronous queries and asynchronous batch inserts.
  • Contacts2.GetContactsAsync – Asynchronously retrieve contacts information.
  • Accessibility library.
  • Bug fixes and other minor improvements.

B4A 2.30

I’m happy to release v2.30. This version gives access to the new UI Cloud service.

This service will make it much simpler to test how your user interface scales on different types of devices.

New features:

  • Basic4android UI Cloud
  • Designer script supports conditions (If blocks)
  • Designer script – ActivitySize keyword – returns the approximate size of the activity measured in inches
  • 7″ tablet default layout values changed to match the Nexus 7 values
  • AutoScale scales Spinner text size
  • GPS library – NMEA event

 B4A 2.20 &  B4A 2.22

This version includes the following improvements:

  • For Each blocks
  • Declaration and assignment in the same statement – Two new language features in the next version
  • B4A-Bridge – many stability improvements related to both Bluetooth mode and wireless mode
  • B4A-Bridge supports logging on all devices including Android 4.1+. Requires B4A-Bridge 2.07
  • Menu items will now appear in the action bar on Android 3.0+ devices
  • Default target level set to 14
  • WYSIWYG designer uses device default theme. Supports changing themes: New feature: better support for modern Android themes
  • Designer includes a new color value: DEFAULT. The meaning of this value is that the theme default color will be used.
  • Designer script new keywords make it easier to build user interfaces that scale correctly on all phones and tablets: Min, Max, AutoScale, AutoScaleAll and AutoScaleRate: New feature: AutoScale and other new designer script keywords
  • Optimized designer layout files – loading time is 3 – 4 times faster
  • MediaPlayer can play files from File.DirInternal
  • Map.Keys / Values – allows iterating over map entries with For Each
  • Panel / Activity.RemoveAllViews
  • LayoutValues.ApproximateScreenSize – returns the approximate device physical screen size
  • Sign key alias key can be changed (requires editing the settings file)
  • Activity/Panel.LoadLayout can now be used from classes
  • Camera_Preview event


Update: V2.22 is now available.
You can download this version from the same link as the previous version.

This version fixes several bugs including the InputType property not being updated by the designer.
Other changes:

  • Variant chooser method improved: variants orientation is better handled (landscape phone variants will be chosen on landscape tablets as well)
  • Activity.AddMenuItem / AddMenuItem2 on Android 3+ will add the menu items to the overflow menu
  • Activity.AddMenuItem3 allows you to choose whether to add the menu items to the action bar (if there is enough room)


Notes

  • Layout files saved in version 2.20+ cannot be loaded on older versions of the IDE
  • Libraries in the internal libraries folder have first priority (changed from previous versions)
  • B4A.xml file was updated. If you are using a custom color scheme then you can copy the relevant section to the new file.

B4A 2.0

The major new feature is support for class modules. With support for classes Basic4android now allows you to write both procedural code and object oriented code.
Object oriented code makes it easier to write and maintain large projects.

Basic4android v2.00 improvements:

– Classes

– Public and Private access modifiers

– Built-in documentation

– Better handling of tasks in the internal thread pool

– CallSubDelayed keywords – These keywords significantly simplify the interaction between services and activities.

– Building process improved and it now supports libraries with embedded resources (such as PayPal, Zooz, Samsung Pen and others).

– Bug fixes and other minor improvements.

Note that B4A.xml was modified in this version. The highlighting styles section was not modified.
The Reflection library was updated to support the new version internal changes.


B4A 1.92

This update fixes the following issues:
– DoEvents / Msgbox crash the application on Android 4.0.3 and above when used inside Panel_Touch event and some other touch related events.
– Starting the Bluetooth bridge hangs the IDE.
– HorizontalCenter returns the wrong value in the designer script.
– The designer script variant code is not executed if there is no general code.
– Basic4android is now compatible with Designer4android layout files.
– (Libraries developers) BA.raiseEventFromUI – new method to raise events from inside a native UI. The event is raised by posting a message to the message queue. This fixes the DoEvents / Msgbox issue in Android ICS.
– Other minor fixes.

– Panel_Touch event return value is now ignored.


B4A 1.80

Code editor

– Automatic case correction of variables and subs (based on their declaration)
– Highlighting of undeclared variables
– Highlighting of global variables
– „Find all references“ tool – F7
– „Find sub“ tool – Ctrl + E
The above two tool make it much easier to develop and maintain large projects
– Backward / forward navigation buttons
– Improved Find/Replace
– Improved support for multiple monitors
– Support for custom color schemes: IDE Color Schemes
– Drag and drop text

 

Code obfuscation

Variables renaming and strings obfuscation make your code much more difficult to be reverse-engineered.
See this tutorial for more information: Code Obfuscation

Manifest editor

Allows you to add or modify elements in the manifest file without needing to further maintain the file.
See this tutorial for more information: Manifest Editor

Other features

– File – Export as zip maintains the read-only attribute
– Libraries can now reference other jar files with the @DependsOn annotation („dummy“ xml files are no longer needed)
– DateTime.GetTimezoneOffset returns a Double instead of Int
– #Regions are collapsed when a file is opened
– New compilation mode combo box – Debug, Release or Release (obfuscated)
– Outlining – ToggleAll (Ctrl + Shift + O)
– Notification.SetInfo2 – allows you to distinguish between multiple notifications
– Bug fixes and other small improvements


B4A 1.1

The new version contains many bug fixes and many new features.
Since the release of version 1.0 there were many new libraries. This version includes all the new and updated official libraries.

Major new features (not including new features added previously with the new libraries):
– Select Case block.
– New views: WebView and ProgressBar. WebView is a really powerful view. It uses the internal browser engine to display html. You can use it to display online pages or offline pages.
– Internal support for handling results from external activities (onActivityResult).
– Using the above feature, two new objects: VoiceRecognition and ContentChooser. Both are included in the Phone library.
– Designer color dialog changed and it now includes a text description.
– Support for installing applications to the SD card. This is available in Projects – Can Install To External Storage. This feature is only relevant for Android 2.2 and above. It will be ignored when installing to other versions.
– Button_Down and Button_Up events added.
– Option to override AndroidManifest.xml created by Basic4android. This is done by changing the file located under Objects folder to read-only.