Basic4android Changelog

What's new in Basic4android 12.80

Dec 6, 2023
  • Updated internal libraries:
  • Core v12.8
  • OkHttpUtils2 v3.04
  • XUI Views v2.59
  • XUI v2.32
  • Network v1.54
  • NB6 v1.05
  • SimpleMediaManager v1.14

New in Basic4android 12.50 (Jun 14, 2023)

  • Default targetSdkVersion set to 33.
  • RuntimePermissions library updated with the new and a bit special POST_NOTIFICATIONS permission: https://www.b4x.com/android/forum/threads/notifications-permission-with-targetsdkversion-33.148233/
  • New B4XView.Alpha property and SetAlphaAnimated method. These will also be added to B4J and B4i in the next update.
  • Debugger improvements including performance improvements and bug fixes.
  • B4XLibs modules and files can be overridden. This is done by adding the module or file to the project. The compiler now accepts it and gives higher precedence to the project files.
  • New #ModuleVisibility attribute. Value can be Public - default visibility, or B4XLib. B4XLib means that the module methods and fields will not be visible once the module is packed as a b4xlib. Note that it is an IDE feature and is ignored by the compiler (might be changed in the future).
  • #ExcludeFromDebugger attribute removed.
  • ADB installation allows downgrading apps, based on the #VersionCode value.
  • Updated internal libraries: XUI v2.3, RuntimePermissions v1.2, Core v12.5, SimpleMediaManager v1.13, BCTextEngine v1.95, B4XFormatter v1.04, XUI Views v2.56, OkHttpUtils2 v3.02
  • Other bug fixes and minor improvements

New in Basic4android 12.00 (Nov 17, 2022)

  • Updated Android, Google, AndroidX and Firebase SDKs.
  • 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.

New in Basic4android 11.80 (Jul 5, 2022)

  • This update includes the new designer script extensions (DSE) feature

New in Basic4android 11.50 (Mar 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.

New in Basic4android 11.20 (Dec 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.

New in Basic4android 11.0 (Jul 13, 2021)

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

New in Basic4android 10.9 (Jun 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: https://www.b4x.com/b4a.html
  • 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.

New in Basic4android 10.7 (Mar 17, 2021)

  • New toolchain.
  • Support for app bundles.
  • Support for targetSdkVersion=30

New in Basic4android 10.5 (Jan 4, 2021)

  • New libraries tab.
  • Find all references feature was rewritten. Previously it couldn't handle more complex cases, where a sub or field are called indirectly.
  • The various IDE notifications also appear in the logs.
  • #CustomBuildAction - direct support for jar files, including Java 11+ UI jars.
  • Default manifest updated. This allows resetting the manifest by removing the manifest text and saving.
  • Dexer optimization can be disabled through the ini file.
  • Updated or new internal libraries: XUI, XUI Views, B4XDrawer, BCTextEngine, OkHttpUtils2, GooglePlayBilling, KeyValueStore, B4XPages template, GooglePlayBIlling and FileProvider.
  • 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).

New in Basic4android 10.2 (Sep 14, 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: https://www.b4x.com/android/forum/threads/crashlytics-crash-reports.87510/#content
  • 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.

New in Basic4android 10.0 (Jul 15, 2020)

  • Project templates: https://www.b4x.com/android/forum/threads/b4x-projects-templates.119901/
  • Comment links: https://www.b4x.com/android/forum/threads/b4x-comment-links.119897/
  • New project dialog.
  • Note that when the IDE is opened it starts with no editor, until you load or create a new project.
  • Latest versions of all internal libraries are included.

New in Basic4android 9.90 (Jun 15, 2020)

  • 4XPages - 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: https://www.b4x.com/android/forum/t...-is-available-for-download.117877/post-737515.
  • 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: https://www.b4x.com/android/forum/threads/117992/#content
  • 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.

New in Basic4android 9.50 (Sep 11, 2019)

  • Support for copying and pasting controls between the platforms: https://www.b4x.com/android/forum/threads/b4x-sharing-layouts-between-platforms.109296/#content
  • Ctrl + Click in the designer script to select the control.
  • Anchors checker: https://www.b4x.com/android/forum/threads/new-feature-anchors-checker.108805/
  • Generate B4XViews from the designer. Also supports changing the type of already declared variables.
  • Improved tool tips, add views from the views tree and other small improvements and bug fixes in the designer.
  • Empty lines will not be copied to the clipboard.
  • Regions are listed in the subs list.
  • Automatic foreground mode: better handling of several edge cases.
  • B4A Sdk Manager: temp folder is explicitly set by the IDE and fixes related to temporary resources cleaning.
  • Visual designer: Color property now includes the alpha channel. Simpler to use and behaves the same as in B4i and B4J.
  • New designer version. You will be asked to install it when B4A-Bridge connects.
  • FirebaseAdMob v1.60 - There are new requirements. See this post: https://www.b4x.com/android/forum/threads/firebaseadmob-v1-6.108552/#content
  • FirebaseAnalytics v1.11 - Includes the manifest definitions for FirebaseDatabase.

New in Basic4android 9.30 (Jul 8, 2019)

  • Improvements:
  • 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:

New in Basic4android 9.00 (Mar 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.
  • Warning for unused parameters in private, non-event, subs.
  • Additional library folder can be configured with a B4X folder for cross platform libraries: https://www.b4x.com/android/forum/threads/b4x-additional-libraries-folder.103165/
  • #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 (https://issuetracker.google.com/issues/113122354) 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.
  • com.google.auto.value-auto-value-annotations 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.
  • 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).

New in Basic4android 8.80 (Dec 31, 2018)

  • b4x libraries:
  • [new feature] b4x library - a new type of library
  • XUI Views: [B4X] XUI Views - Cross platform views and dialogs
  • X2 games framework: [B4X] X2 / XUI2D (Box2D) - Game engine
  • Auto-backups: https://www.b4x.com/android/forum/threads/new-feature-auto-backups.100010
  • ​IMG:
  • Go to the code line directly from the logs: https://www.b4x.com/android/forum/t...o-the-code-line-directly-from-the-logs.100090
  • Intent.SetPackage method.
  • Fix for wrong 'dip' scale issue that occurred in some edge cases.
  • Canvas.RemoveClip works with targetSdkVersion = 28.
  • Log correctly shows duplicate messages (relevant to Android 8+ devices).
  • Updated internal libraries: FirebaseAuth v1.06, Camera2 v1.11, XUI2D v1.02, Core v8.80 and debug libs.
  • Debugger improvements:
  • Fix for issue where resumable sub could show the wrong value for a global variable.
  • Fix for issue where the error message points to the wrong module.
  • XUI v1.90 with B4XView.EditTextHint, SetTextSizeAnimated, XUI.CreateFontAwesome and CreateMaterialIcons methods.
  • Other bug fixes and minor improvements.

New in Basic4android 8.50 (Sep 14, 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.

New in Basic4android 8.30 (Jun 12, 2018)

  • The docking and layout features are based on a new and improved framework. Floating code editors behave as regular windows.
  • Documentation tool tips while hovering over code elements.
  • Copy links in the tool tips that allow copying code examples.
  • Support for bookmarks.
  • New themes.
  • URLs in comments and strings are ctrl-clickable.
  • Class and module level documentation (taken from Process_Globals or Class_Globals subs).
  • Quick search shows a list of recent searches.
  • Designer uses the multiline text editor for text properties.
  • Unused libraries warning.
  • Debugger related improvements.
  • Custom views support "nullable colors". This is an important feature as in many cases it is better not to set any color and use the system default.
  • Rect.Width and Height properties.
  • Service_TaskRemoved event added to the Starter service. This event is raised when the user closes the app from the recent apps list. This is an Android 4+ event.
  • FloatLabeledEditText - Text and hint colors can be set in the designer.
  • Regex.Replace / Replace2 - Regular expression replacement.
  • (Java) The Tag property is set when calling CustomView.replaceBaseWithView2 (replaceBaseWithView is deprecated).
  • _onkeydown and _onkeyup inline Java hooks.
  • Other bug fixes and minor improvements.

New in Basic4android 8.00 (Mar 20, 2018)

  • IMPROVEMENTS:
  • The process of starting the app from the background was rewritten to comply with targetSdkVersion 26 requirements.
  • Push notifications and other features that cause apps to start from the background should be more reliable due to changes in the way services are started. A wake lock is automatically held when a receiver receives an intent. The wake lock is released when the service starts.
  • Automatic foreground mode: https://www.b4x.com/android/forum/threads/automatic-foreground-mode.90546/
  • Notification object rewritten to work with targetSdkVersion 26. In most cases you don't need to change anything. Notification.SetInfo or Notification.SetInfo2 should be the last calls before you show the notification.
  • Notification.SetInfo / SetInfo2 accept CharSequences so it can work with CSBuilder.
  • StartServiceAt / StartServiceAtExact rewritten to work with targetSdkVersion 26 and they are now more reliable.
  • Notification.Initialize2 - Allows to set the notification channel importance level.
  • Better support for AAR libraries: jni folders (native libraries) are handled properly, assets and resources from internal jars are added to the project.
  • #AdditionalJar with ReferenceOnly - Allows referencing jars that are only used as a reference during compilation. This is required for more complex libraries such as DJI library.
  • Signing key size is explicitly set to avoid issues with newer versions of Java.
  • B4A Sdk Manager v3.25 - Bug fixes and support for Google based AVDs.
  • Screenshot tool modified to work with latest versions of Android SDK.
  • MediaPlayer.IsInitialzied method.
  • Manifest editor macros - Macros can be added to libraries or zip files. For example to set a light theme based on Android version:
  • Code:
  • CreateResourceFromFile(Macro, Themes.LightTheme)
  • Unless you are setting a custom theme then it is recommended to use either Themes.LightTheme or Themes.DarkTheme.
  • Firebase push notifications:
  • Code:
  • Custom class templates - Class templates can be added to libraries.
  • For example if you add the XUI library to your project then you will have an option to add a custom view based on XUI:
  • Libraries can include multiple templates and any library can include templates.
  • #SignKeyAlias attribute - Allows overriding the default signing key alias.
  • Firebase, xCustomListView and KeyValueStore (2) are internal libraries.
  • Libraries deprecation messages in the IDE:
  • Fix for a very long standing issue where the activity code could have been executed while the activity is paused which leads to a hard to reproduce NullPointerException.
  • BADoclet (tool to generate libraries XML) v1.07 - adds support for custom class templates.
  • Other bug fixes and minor improvements.

New in Basic4android 7.80 (Dec 20, 2017)

  • Several important components were rewritten to provide more features and better performance:
  • Visual designer properties grid
  • Visual designer views tree
  • Modules tree (new component)
  • Files tree
  • The major improvements are:
  • Code modules can be loaded from other folders and can be easily shared between projects (including projects targeting other platforms)
  • Modules and file tree support grouping
  • Modules are monitored for external changes.
  • Files tree shows the files icons and allows opening the files with external editors.
  • Modules, files and views can be renamed directly from the relevant tree.
  • Full support for drag and dropping files and modules, including support for dragging multiple items.
  • B4A services and activities can be shared with B4J.
  • Deleted files are moved to the recycle bin.
  • Properties grid and views tree can be filtered.
  • New options when adding modules:
  • Copy to folder: Copies the module to the project folder (same as the current behavior).
  • Link - relative path: Adds a link to the module with a relative path. Useful when the folder is under or close to the project folder.
  • Link - absolute path: Adds a link to the module with an absolute path.
  • Properties grid is much faster and includes new types of editors.
  • B4A Sdk Manager is included in the IDE.
  • upport for downloading maven resources from Google online repositories. This is an important improvement as Google no longer updates the offline repositories.
  • Java 9 is supported.
  • WebView.ZoomEnabled hides or shows the zoom controls.
  • Better error handling in CallSub calls.
  • Fix for potential race condition in AsyncStreams.
  • Better handling of edge cases where the Activity life cycle events are called multiple times.
  • CallSubDelayed doesn't raise an error if the target sub is missing. This makes it safer to use CallSubDelayed for raising events,
  • Better support for version control. Files are only written when the contents are actually changed.
  • The modules internal attributes are sorted in lexicographical order to reduce random changes.
  • XUI library is now an internal library.
  • Debugger hover window is resizable.
  • Add New Modules / Existing modules menu items in modules tree.
  • Code editor color picker is based on the designer color picker.
  • Open file with default program in Files tree. Also works with double click.
  • Support for opening multiple files at once.
  • Better handling of locked files.
  • Manifest editor replacements are applied to resources created with CreateResource.
  • Bug fixes and other minor improvements.

New in Basic4android 7.30 (Aug 29, 2017)

  • Localizable IDE. Currently available in 23 languages.
  • Bitmap type:
  • Resize / InitializeResize / LoadBitmapResize - Similar to LoadBitampSample but better. Allow setting the image to a specific size while optionally maintaining the aspect ratio and the bitmap scale.
  • Tutorial: https://www.b4x.com/android/forum/threads/loadbitmap-loadbitmapresize-loadbitmapsample.82693/
  • Scale property - Returns the bitmap scale.
  • Rotate / Crop methods.
  • New ResumableSub type. Makes it simple to return values from resumable subs and to wait for resumable subs to complete.
  • https://www.b4x.com/android/forum/threads/b4x-resumable-subs-that-return-values-resumablesub.82670/
  • EditText - SelectionLength and SetSelection methods.
  • SingleLine property added to Label, Button and other views that inherit from Label.
  • Ellipsize property
  • View.SetVisibleAnimated affects the alpha level and the Visible property.
  • Warnings for illegal methods in Process_Globals.
  • Async dialogs are supported in classes.
  • Compiled libraries can reference AAR libraries.
  • Icon picker - aliases added to FontAwesome icons.
  • Auto complete and auto format improvements.
  • PhoneCalls (Phone library) - READ_CALL_LOG permission removed. It was added by mistake in a previous update.
  • Canvas.AntiAlias property to enable or disable antialiasing.
  • View.SetBackgroundImage returns a BitmapDrawable object. This allows changing the Gravity to CENTER instead of the default FILL value.
  • OkHttpUtils v2.61 - Job.GetBitmapResize and PATCH, HEAD and DELETE requests.
  • Improvements to the layouts loader engine. It is more flexible with the variables types and a bit faster. This feature will allow to add cross platform views types.
  • Administrator v1.10 - Adds support for owner apps. This update requires a change in the manifest editor. Instructions and copy of previous version are available here: https://www.b4x.com/android/forum/threads/device-administrator-library.19208/#content
  • Bug fixes, including an important debugger bug, and other minor improvements.

New in Basic4android 7.00 (May 25, 2017)

  • Resumable subs - Wait For / Sleep
  • Async dialogs
  • Variables and subs renaming based on the Find All References feature
  • Quick search supports replacing including replacing in all modules.
  • Icon picker - Filter field supports filtering by hex code.
  • Starter service better handles cases where the process is started by multiple intents.
  • CSBuilder.Image adds an underscore instead of space to fix an issue with multiline strings.
  • Application_Error - Fixed a compatibility issue with Android 2.2.
  • PhoneCalls - READ_CALL_LOG permission added. This is a new requirement.
  • Sender is set when raising events with CallSub or CallSubDelayed from classes.
  • Debugger improvements related to deployments of large projects. It is recommended to upgrade B4A-Bridge to v2.31
  • DoEvents is deprecated. A warning will appear when using it (see the async dialogs tutorial). Note that it is still supported, exactly as before.
  • SQL library updated to make it simpler to use with Wait For.

New in Basic4android 6.80 (Mar 2, 2017)

  • CharSequence as internal type. Allows showing rich text in many places such as: Labels, toast messages, dialogs, ListView and others.
  • CSBuilder - Simplifies the creation of rich text CharSequences
  • Support for MultiDex - With MultiDex enabled there is no limit to the number of methods or fields. This issue is important for large projects that reference many third party libraries.
  • OkHttp updated and is now based on OkHttp v3.50.
  • Find all references (F7) finds references in layout files and CallSub methods.
  • Typeface.FONTAWESOME / MATERIALICONS constants.
  • Icon picker - Filter field and icons tool tips
  • CallSubUtils is included as a library.
  • Menu click event implementation changed to avoid issues with modal dialogs.
  • Release and Debug compilation symbols are supported in the manifest editor and designer script.
  • Export as zip keeps the original dates.
  • Other minor improvements and bug fixes.
  • Many improvements to B4A-Bridge:
  • Auto discovery - Devices running B4A-Bridge are discovered automatically and are listed in the devices list with their names.
  • Logs - The logs implementation was rewritten. Logs reading with B4A-Bridge is more stable and it is also possible to read the unfiltered logs (limited to the running process).
  • #BridgeLogger attribute - When set to true, logs will be available in release mode as well as debug mode.
  • Landscape layout.
  • Download progress bar.
  • File Explorer menu shortcut.

New in Basic4android 6.50 (Dec 12, 2016)

  • FontAwesome and Material Icons fonts with more than 1500 icons are now integrated in the IDE
  • New auto format feature:
  • The formatting happens when you paste code (can be disabled) or when clicking on Alt + F. In the later case the enclosing sub will be formatted or the selected code if the selected text is not empty.
  • Other improvements:
  • Block autocomplete improved. It better handles nested blocks and also completes #If and #Region keywords.
  • Manifest editor support for #Region blocks.
  • Service can extend custom classes with the #Extends attribute. This makes it simpler to create libraries that extend services. A modified version of NotificationListener library is attached as an example.
  • View.Padding property. Sets the distances between the view's borders and the content. It can also be set in the designer.
  • PhoneSensors.Accuracy and TimeStamp properties. Return the values of the current event.
  • OkHttp v1.02 - Fixes an issue where headers were not available when the response status code was not 2xx.
  • Application.Icon property - Returns the application icon as a bitmap.
  • Jumping to a bookmark moves the bookmark to the center of the editor.
  • B4ABuilder - The output parameter supports passing the full path instead of just the APK name.
  • Bug fixes and other minor improvements.

New in Basic4android 6.30 (Sep 22, 2016)

  • There are many IDE related improvements in this update:
  • The docking and layout features are based on a new and improved framework. Floating code editors behave as regular windows.
  • Documentation tool tips while hovering over code elements.
  • Copy links in the tool tips that allow copying code examples.
  • Support for bookmarks.
  • New themes.
  • URLs in comments and strings are ctrl-clickable.
  • Class and module level documentation (taken from Process_Globals or Class_Globals subs).
  • Quick search shows a list of recent searches.
  • Designer uses the multiline text editor for text properties.
  • Unused libraries warning.
  • Debugger related improvements.
  • Custom views support "nullable colors".
  • Rect.Width and Height properties.
  • Service_TaskRemoved event added to the Starter service. This event is raised when the user closes the app from the recent apps list. This is an Android 4+ event.
  • FloatLabeledEditText - Text and hint colors can be set in the designer.
  • Regex.Replace / Replace2 - Regular expression replacement.
  • (Java) The Tag property is set when calling CustomView.replaceBaseWithView2 (replaceBaseWithView is deprecated).
  • _onkeydown and _onkeyup inline Java hooks.
  • Other bug fixes and minor improvements.

New in Basic4android 5.80 (Feb 23, 2016)

  • Custom views: [B4X] Custom Views with Enhanced Designer Support. With this feature it is much easier to add and configure custom views.
  • #ExcludeClasses: This attribute makes it simple to exclude classes not required from libraries such as google play services.
  • CreateResource manifest editor keyword: Allows creating XML resource files from the manifest editor.
  • Debugger improvements and fixes. Mostly related to larger projects.
  • Coarse location permission added to BluetoothAdmin. Required for discovery in Android 6.
  • The default setting of the holo theme in the manifest editor was removed. It is recommended to use a custom theme or the device default theme. The compiler will issue a warning about explicit usage of the holo.theme.
  • The WYSIWYG designer defaults to material theme on Android 5+.
  • The READ_LOGS permission was removed from LogCat object. It is not useful since Android 4.1.
  • The compiler will issue a warning if the targetSdkVersion is missing or if the value is not between 14 to 22.
  • ViewsEx library - Includes two views implemented as custom views (Switch and RatingBar). The source code of this library is available in the custom views tutorial.
  • View.Parent - Returns the view's parent.
  • OkHttp and OkHttpUtils2 libraries are included.
  • Other minor IDE improvements and bug fixes.

New in Basic4android 5.50 (Nov 11, 2015)

  • Debugger improvements.
  • Better handling of uncaught exceptions (Application_Error).
  • Material themes were added to the WYSIWYG designer.
  • Panel.Elevation / SetElevationAnimated methods (and designer property) - These methods allow setting the panels elevation. This is a new feature added in Android 5. The methods will do nothing on prior versions.
  • #DebuggerDisableOptimizations attribute
  • $AdditionalLibs$ and $AndroidSDK$ shortcuts. These shortcuts can be used in the #AdditionalRes path. They will replaced with the full path to the additional libraries folder or Android SDK folder.
  • Buttons text is no longer upper cased when the material theme is used.
  • Bug fixes and other minor improvements.

New in Basic4android 5.20 (Aug 25, 2015)

  • This update adds an important new feature, the "Starter Service". The Starter service is a special service module that serves as the program single entry point. This feature solves one of the most common bugs in Android apps which happens when the program starts from a secondary activity or service and some of the resources are not ready.
  • Other improvements:
  • Blocks completion
  • The backwards / forward navigation feature was improved and there is a new list with the recent locations (Alt + N).
  • The Logs font can be changed.
  • Sub names are bold.
  • RingtoneManager.Play method.
  • New Designer navigation pad.
  • Warnings engine improved.
  • SignKeyFile / SignKeyPassword attributes. Allow using a different signing key based on the build configuration.
  • Colors list in the designer color picker.
  • Bug fixes and other minor improvements.

New in Basic4android 5.02 (Jun 15, 2015)

  • Several issues related to the visual designer were fixed in this version as well as other minor issues and improvements

New in Basic4android 5.01 (Jun 11, 2015)

  • With this version we are moving to the next generation of B4X IDE. Almost all of the IDE components, both back-end and front-end components, were rewritten. The new IDE is significantly more powerful, smarter, more modern and more scalable.
  • Some of less obvious new features:
  • Press on Ctrl + Click to jump to an identifier (sub, variables, etc.).
  • Themes - Ctrl + T
  • Sophisticated conditional compilation: #If, #Else If, #Else and support for OR and AND. Also supported in the manifest editor and designer scripts.
  • Dockable layout. Including support for multiple open editors.
  • Find all references - F7.
  • Quick search - Ctrl + F.
  • Goto sub / module - Ctrl + E.
  • Smarter autocomplete.
  • Hover over variables and expressions in debug mode.
  • Structure matching.
  • Automatic warnings and errors highlighting.
  • Support for multiple visual designer windows
  • Better support for selection and editing of multiple controls.
  • Views tree supports drag and drop to allow changing the z-order.
  • Integrated abstract designer with support for zooming.
  • Memory leak related to layout animations was fixed.
  • StartServiceAtExact keyword.

New in Basic4android 4.30 (Feb 11, 2015)

  • Support for inline Java code
  • This feature will make it simpler to integrate third party SDKs.
  • New Smart String literal
  • Command line builder
  • Fix for Msgbox2 icon in Android 5 devices.
  • Files list supports drag & drop.
  • Clean project option also refreshes the libraries list. Can be accessed with a new shortcut (Ctrl + P).
  • Cancel option in the device selection dialog.
  • New warning for invalid code in the globals subs.
  • Class properties are listed in the Find All References tool (F7).

New in Basic4android 4.00 (Dec 11, 2014)

  • New features and improvements:
  • Rapid debugger memory handling was rewritten to provide better performance and to avoid memory leaks.
  • 5 new View methods: SetLayoutAnimated, SetVisibleAnimated, SetColorAnimated, SetTextColorAnimated and SetTextSizeAnimated. With these methods it is very simple to add nice animations effects to your app.
  • Designer animations - Layouts added with the designer are (optionally) animated.
  • Support for constants: Dim Const x As Int = 2.
  • Constant variables are assigned when declared. Their value cannot be later changed (enforced by the compiler).
  • Screen video capture - Requires Android 4.4+. Very useful for demonstrations.
  • Activity_ActionBarHomeClick event - Handles the action bar icon click event. This event replaces the event from StdActionBar library which doesn't work on Android 5 devices.
  • Better handling of the internal message queue on Android 5 devices.
  • Visual designer supports custom fonts.
  • Visual designer supports adding borders to views that use ColorDrawable. Borders can also be added with ColorDrawable.Initialize2.
  • New Application object with the following properties: LabelName / VersionName / VersionCode / PackageName
  • Activity.DisableAccessibility - Workaround for this Android bug: https://code.google.com/p/android/issues/detail?id=55933
  • IsDevTool keyword - Useful when reusing code with B4J / B4i.
  • Designer - Select all files option.
  • Designer - Double click on view's name to add to the script.
  • Libraries list - Checked libraries are listed at the top of the list.
  • Duplicate line shortcut - Ctrl + D.
  • AutoComplete shortcut - Ctrl + \ (same as Ctrl + Space).
  • Hide other modules option when right clicking on the module header.
  • Clear logs when program starts option.
  • 3 new warnings related to the manifest editor: No android:targetSdkVersion. / targetSdkVersion is lower than 20 and no theme is explicitly set. / AndroidManifest.xml is read only
  • New logo.
  • CurrentStatement and breakpoints colors are configurable in the xml file.
  • B4A-Bridge was updated with several fixes and the PHONE_READ_STATE permission was removed (it was used in the past to show the device id).
  • Bug fixes.

New in Basic4android 3.80 (May 20, 2014)

  • Conditional Compilation & Build Configurations
  • Shared code modules
  • #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.
  • 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
  • Libraries filter box
  • Add existing modules supports multiple selection.
  • New configurable color: ToolTipDefaultText (color of non-code tool tips text)
  • Other minor improvements and bug fixes.

New in Basic4android 3.50 (Mar 10, 2014)

  • 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.

New in Basic4android 3.00 (Oct 15, 2013)

  • The main new feature in this version is the rapid debugger: Rapid Debugger
  • The rapid debugger makes it much easier and quicker to test and debug your code.
  • 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).

New in Basic4android 1.60 (Sep 21, 2011)

  • New debugger and improved WYSIWYG visual designer.