Android Tutorial B4A Change Log (versions history)

v12.2 - January 23, 2023 -

  • Receivers:
  • Home screen widgets and firebase notifications updated to work with receivers.
  • StartReceiver, StartReceiverAt methods.
  • Run without ADB - when B4A-Bridge is connected, the compiler will not fail if ADB is missing or throwing an error.
  • Ctrl + Alt + W closes the current code window.
  • OBFUSCATED automatic conditional symbol - note that it is set at compilation time, never during editing.
  • Bug fixes and other minor improvements.

v12.0 - November 17, 2022 -

  • This version brings an updated Android, Google, AndroidX and Firebase SDKs.
  • Follow these instructions to update the various components:
  • Updated libraries: B4XTable v1.23, B4XPages template, FirebaseAdmob2 v3.0, FirebaseAnalytics v3.0, FirebaseAuth v3.0, FirebaseStorage v3.0, FirebaseNotifications v3.0, AppCompat v4.02, USB v1.01, BCTextEngine v1.94, Phone v2.53, GooglePlayBilling v5.0, Core v11.81, NFC v2.02, DesignerUtils v1.04, Facebook v2.01 (external library.
  • Bug fixes and minor improvements.
v11.8 - July 5, 2022 -

  • Designer script extensions:
  • This is the first 64 bit version of B4A IDE, which means that it will handle better large projects.
    It will be installed by default under Program Files\Anywhere Software\B4A.
    It will not run on 32 bit Windows. Note that the CPU architecture doesn't affect the compiled apps.
  • RUNTIME conditional symbol - an automatic symbol that is added during compilation. It can be used to exclude code from the IDE case-corrector.
  • Updated libraries: B4XPages v1.11, XUI Views v2.55, BCTextEngine v1.92, XUI v2.2, SMM v1.13.
  • New DesignerUtils (DDD) library with a new designer script framework.
  • Bug fixes and other minor improvements.

v11.5 - March 21, 2022 -
  • Optimized dexer replaced with D8 tool.
  • Support for targetSdkVersion=31.
  • New #ExcludedLib attribute that is required in some cases when multiple native libraries with different versions are referenced.
  • Updated internal libraries: OkHttp v1.50, OkHttpUtils2 v3.00, PreoptimizedCLV v1.21, Network v1.53, B4XTable v1.22, KeyValueStore v2.31, SMM v1.12, NB6 v1.02, FirebaseNotifications v2.01, B4XCollections v1.13
  • #ExcludedClasses attribute removed.
  • Bug fixes and other minor improvements.

v11.2 - December 14, 2021 -
  • Long hex literal numbers: 0xff00ff00ff00
  • New methods: Bit.OrLong / AndLong / XorLong / ShiftLeftLong / ShiftRightLong / NotLong / UnsignedShiftRightLong / ParseLong
  • Fix the "incompatible types" warning with the relatively new Json type.
  • Json.ToCompactString method.
  • Several debugger fixes: crash on startup, missed assignments in some cases, single field objects were not always observable.
  • Code editor jumps to a sub when adding an event with the designer, including when the sub already exists.
  • Fix issue with compilation of large projects.
  • More descriptive errors when a maven artifact is missing, including the artifact origin.
  • bundleconfig.json - configuration file that is used when building an AAB package, can be overridden by putting such file in the project folder (you can find the default one in the installation folder).
  • SimpleMediaManager (v1.09) is included as an internal library.
  • Updated internal libraries: B4XCollections (v1.10), B4XTable (v1.21), B4XPreferencesDialog (v1.75), XUI Views (v2.54), JSON (v1.21), BCTextEngine (v1.92), Core (v11.2), KeyValueStore (v2.31).
  • Bug fixes and other minor improvements.
v11.0 - July 13, 2021 -

This update adds two new language features: IIf and As (inline casting)

v10.9 - June 16, 2021 -
  • IDE performance - several cases where the typing speed became slow were fixed. The speed difference in those cases is significant.
  • B4A SdK Manager v4.0 - bug fixes and minor improvements. It is configured to download a specific set of Firebase libraries.
  • The additional resources package was updated. If you encounter any compilation issues, especially related to Firebase, then it is recommended to delete your current Android SDK and download a new one:
  • FirebaseAdMob is deprecated and will not work with the updated resources. Google started to reject apps with the old user consent form in some cases. Time to switch to the new FirebaseAdMob2 library:
  • New private signing keys are created with the RSA algorithm, as required by Google.
  • The app bundle feature detects the key signing algorithm and will sign with the correct one. You can explicitly set the algorithm with #SignKeyAlgorithm but in most cases it is no longer required.
  • "after packager" custom build action step.
  • The bridge indicator in the bottom left corner shows the device name.
  • Copying of labels between B4A and B4i preserves the single line property (will work when pasting in B4i once a new version of B4i is released).
  • Add existing modules dialog - option to copy module(s) to parent folder.
  • New and updated internal libraries: XUI Views (2.50), X2 (2.0), Phone (2.51), XUI (2.1), FirebaseAdMob2 (2.13), B4XPreferencesDialog (1.73), OkHttpUtils2 (2.96), B4XPages (1.09), BCTextEngine (1.87), FirebaseAuth (2.01)
  • Recommended targetSdkVersion set to 30. Warning will appear if it is 28-.
  • Bug fixes and minor improvements.

v10.7 - March 17, 2021 -
  1. New toolchain.
  2. Support for app bundles.
  3. Support for targetSdkVersion=30
v10.6 - February 11, 2021 -

  1. Latest version of each library is displayed in the libraries tab. Clicking on the version will take you to the library thread.
  2. New %PROJECT_NAME% file variable for comment links and custom build actions.
  3. Updated internal libraries: XUI Views and B4XPages.
  4. Bug fixes including a fix to a debug issue where process global variables in code modules, packed as b4xlibs, weren't initialized properly.

v10.5 - January 4, 2021 -

  1. New libraries tab.
  2. Find all references feature was rewritten. Previously it couldn't handle more complex cases, where a sub or field are called indirectly.
  3. The various IDE notifications also appear in the logs.
  4. #CustomBuildAction - direct support for jar files, including Java 11+ UI jars.
  5. Default manifest updated. This allows resetting the manifest by removing the manifest text and saving.
  6. Dexer optimization can be disabled through the ini file.
  7. Updated or new internal libraries: XUI, XUI Views, B4XDrawer, BCTextEngine, OkHttpUtils2, GooglePlayBilling, KeyValueStore, B4XPages template, GooglePlayBIlling and FileProvider.
  8. Bug fixes and other minor improvements. This includes a long-standing bug where the wrong context was used after a resumed sleep in some edge cases (fix is relevant to B4XPages).

v10.2 - September 15, 2020 -

  • B4ASdkManager updated to support latest version of Android SDK command line tools.
  • Firebase libraries updated to support latest version of Firebase SDK.
  • OkHttp updated based on OkHttp 3.12.12.
  • Support for latest version of Crashlytics. Previous version will stop tracking crashes on November 2020:
  • B4X version of KeyValueStore added as an internal library.
  • Internal libraries updated: B4XPages, B4XDrawer, B4XCollections, XUI Views and BCTextEngine.
  • Deprecated libraries removed: CustomListView (replaced with xCustomListView), Http and HttpUtils2 (replaced with OkHttp and OkHttpUtils2).
  • B4XPages template updated.
  • IDE performance improvements related to projects which use many b4xlibs.
  • New indicators to help understand the code flow with resumable subs.

v10.0 - July 15, 2020 -

v9.90 - June 15, 2020 -

  • B4XPages - Cross platform and simple framework for managing multiple pages
  • Add new module - Option to add the new module to the parent folder. This is useful in cross platform projects where the modules are shared between the different platforms.
  • Fix for a design issue that existed since B4A v1.0 where in some cases assignment of an object to a variable can also change other variables that point to the same "wrapper".
  • New warning:
    "Comparison of Object to other types will fail if exact types do not match.
    Better to put the object on the right side of the comparison. (warning #35)"
    See this post for more information:
  • Support for Java 14 (must use the one downloaded from B4X).
  • Fix for empty description windows in some cases.
  • Several debugger fixes.
  • New "contribute" menu item.
  • Current selected line, in the search results and other syntax colored lists, is displayed.
  • New internal libraries: B4XPages, B4XTurtle, BCTextEngine, B4XPreferencesDialog, PreoptimizedCLV, X2, @agraham's Gestures, @corwin42's AppCompat, NB6 and B4XDrawer.
  • Network v1.52 - UDPSocket.GetBroadcastAddress method.
  • The code editor cursor color can be changed in the INI file. It uses the same 0xAABBGGRR format as in the theme files (CursorColor=0x000000FF).
  • Template of XUI custom views was updated. The convention explained here is implemented:
  • Fix for compilation error when compiling projects with many modules.
  • Latest versions of all internal libraries are included.Other bug fixes and minor IDE improvements.

v9.80 - January 29, 2020 -

  • Find all references, quick search and find subs / modules tool windows were rewritten and are now syntax colored, the text is selectable and you can jump directly to the selected position.
  • Subs code appears in the quick info windows.
    This code is also selectable and clickable.
  • Show Sub in window.
    Allows showing subs in a floating windows. The text is selectable and clickable.
    This can be triggered from all kinds of places including.
  • Positions and layouts of all windows are preserved.
  • Search results font can be configured from Tools - IDE Options - Font Picker.
  • IDE shows available updates.
  • Recommended targetSdkVersion is set to 28.
  • Alpha value of text colors can be set in the designer.
  • Fix for a crash related to B4XView.Color with Android 10 and targetSdkVersion >= 29.
  • Better handling of errors in the IDE.
  • Deprecation warnings for modal Msgbox.
  • Animation to zero size no longer causes an exception in new versions of Android.
  • Starter service subs can be accessed directly without using CallSub.
  • Warning and errors do not hide other information
  • Copy warnings from list of warnings.
  • Generate 'Create Type' Sub.
  • Copy events.
  • Modules list is saved in lexicographic order to avoid unexpected changes with source control tools.
  • Resources in implicitly referenced b4x libs are now accessible.
  • Other minor improvements and bug fixes.

v9.50 - September 11, 2019 -

Developers who are eligible for a free upgrade will receive an email with installation instructions. Other developers will receive a discount offer.

Note that B4J v7.80 was released as well:

v9.30 - July 8, 2019 -

I'm happy to release B4A v9.30. This update adds support for the new AndroidX SDK.

AndroidX SDK replaces the Android Support Library SDK. Android Support Library is no longer maintained and new resources such as the latest versions of Firebase libraries depend on AndroidX.

With B4A v9.30 you can continue to use the old Android Support Library or switch to AndroidX. Switching to AndroidX is simple:

  • Support for AndroidX SDK.
  • Jetifier tool that creates AndroidX versions of libraries. Note that this step isn't needed for most libraries.
  • Auto bookmarks feature:

    • Recent code positions and designer layouts appear as tabs in the window title.
    • The IDE decides on the list of tabs based on several factors (recency, modifications and others).
    • The list is saved together with the project and restored when the project is loaded.
  • Ctrl + Click on layout files from the code.
  • B4A Sdk Manager v3.50 is included. It supports AndroidX resources.
  • Issue with BaseFolder in command line builder fixed.
  • Latest versions of internal libraries are included. TabStripViewPager is an internal library now.
  • Bug fixes and other minor improvements.

v9.01 - April 17, 2019 -

This is a small update that includes support for Java 11 and bug fixes related to the performance optimizations added in v9.00.

v9.00 - March 26, 2019 -

  • Compilation performance (about 2 times faster for first compilation and up to 4 times faster on following compilations).
  • Bookmarks and breakpoints are listed in the modules tree:
  • Auto backup improvements:
    • Project is saved before backup, based on the auto save option.
    • Project name added to the backup file.
    • The project folder is configurable (AutoBackupFolder in the ini file).
  • Warning for unused parameters in private, non-event, subs.
  • Additional library folder can be configured with a B4X folder for cross platform libraries:
  • #Event declarations appear in the autocomplete list.
  • Fix for a long standing issue that caused scope changes of global variables to not always be detected.
  • Workaround for Android issue ( that caused services to fail to start in some edge cases. This is based on the automatic foreground mode feature.
  • Copy to clipboard option in the permissions dialog.
  • Missing maven resources can be added to the internal or additional libraries folders.
  • added as an internal library. This is a missing maven resource that required by Firebase libraries.
  • B4XCollections, B4XFormatter, B4XTable, XML2Map and XUI Views are internal libraries.
  • Foreground services permission is added automatically. Required when setting targetSdkVersion to 28.
  • CreateResourceFromFile(Macro, Core.NetworkClearText) - Required when setting targetSdkVersion to 28 when communicating with non-SSL servers.
  • Application.Icon works with adaptive icons.
  • FirebaseAdMob v1.54 - Fixes an issue related to targetSdkVersion 28. ReceveAd event is raised when the activity resumes (if it fired while the activity was paused).
  • Files are listed in the removal dialog.
  • OkHttpUtils2 v2.81 - Includes a call to Service.StopAutomaticForeground (related to the workaround discussed above).
  • Other bug fixes and minor improvements.

v8.80 - December 31, 2018 -

v8.50 - September 13, 2018 -
  • Debugger performance optimizations and bug fixes.
  • #CustomBuildAction:
    • Support in all modules.
    • Support for environment variables.
    • New "folders ready" cross platform compilation step. Useful for updating files.
  • The list of subs above the code editor was rewritten. It behaves better (doesn't miss key inputs and always jumps to the clicked sub).
  • file:// links can be ctrl + clicked.
  • B4A Sdk Manager v3.29 included.
  • BitmapCreator v4.18
  • XUI2D v0.99
  • OkHttpUtils2 v2.70
  • The WRITE_EXTERNAL_STORAGE permission removed from the debugger.
  • Code editor jumps to the error line when there are Java compilation errors.
  • Bug fixes.
Last edited: