Android Tutorial B4A Change Log (versions history)

Discussion in 'Tutorials & Examples' started by Erel, Jul 6, 2012.

  1. Erel

    Erel Administrator Staff Member Licensed User

    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:

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

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

    - 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: Sep 11, 2019
    jimmyF, fireday, smercan and 6 others like this.
  2. Erel

    Erel Administrator Staff Member Licensed User

    v8.30 - June 12, 2018:

    • Resumable subs in debug mode are optimized in the same way other subs are optimized. You can see the difference in this video:

    • Starter service is never destroyed until the process is killed - if you carefully read the automatic foreground notifications tutorial then you should be aware to a significant behavioral change in Android 8+. The OS kills services while the app is in the background. In previous versions the OS never killed specific services (only the complete process). This change made it much more difficult to work with the starter service as you could no longer assume that the starter service is running.
      Starting from B4A v8.3 the starter service will never be paused until the process is killed. Internally it switches from the service context to the application context.
    • Several other important debugger optimizations.
    • Bit.ArrayCopy method. Same as ByteConverter.ArrayCopy.
    • New File methods: CopyAsync, Copy2Async, ReadBytes, WriteBytes and ListFilesAsync.
    • Support for Java 8 jars and AARs.
    • Ctrl + Click on class types and custom types.
    • Autocomplete improvements.
    • Autocomplete in CallSub methods:


    • B4A Sdk Manager v3.27 - Supports Java 10.
    • Files can be added to groups directly.
    • For loops optimization (in release mode).
    • BitmapCreator v3.60 is included as an internal library.
    • xCustomListView v1.63 is included as an internal library.
    • XUI v1.70 is included as an internal library. This is a large update to XUI library with support for text measurements and other features.

    • Phone.ShellAsync - Asynchronous version of Phone.Shell.
    • Bug fixes and other minor improvements.

    v8.00 - March 20, 2018:

    I'm very happy to release B4A v8.0. This update includes many important improvements and makes it simpler to target the latest versions of Android.

    (image source:

    As explained in this tutorial, all apps will soon need to target sdk version 26 (Android 8). This is a new policy of Google and it has many consequences for app developers. Many of the improvements in B4A v8.0 help developers with this task.

    • 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:
    • 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:
      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:
      CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
      CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)
      CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)

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

    Backward compatibility notes
    • Notification.SetInfo or SetInfo2 should be the last calls before you use the notification. Note that standard notifications created with previous versions of B4A will not work at all on Android 8+ when targetSdkVersion is 26+.
    • Adding a service, other than the Starter service, will add the WAKE_LOCK permission. This is a non-dangerous permission.
      As mentioned above a wake lock is held automatically when a service is started from the background and until Service_Start is called. You can remove this permission with:
      Everything will still work, however the service might fail to start from the background in some cases.

    v7.80 - December 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.
    • 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.

    • Deleted files are moved to the recycle bin.
    • Properties grid and views tree can be filtered.
    • Properties grid is much faster and includes new types of editors:


    • B4A Sdk Manager is included in the IDE:

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

    v7.30 - August 21, 2017:

    • Localizable IDE. Currently available in 23 languages.
    • Bitmap type:
    • New ResumableSub type. Makes it simple to return values from resumable subs and to wait for resumable subs to complete.
    • 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.
      'load a background image while maintaining its aspect ratio.
      Dim bd As BitmapDrawable = Activity.SetBackgroundImage(LoadBitmapResize(File.DirAssets, "bg.png"Activity.Width, Activity.Height, True))
      bd.Gravity = 
    • 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:
    • Bug fixes, including an important debugger bug, and other minor improvements.

    v7.00 - May 24, 2017:

    This update includes the new resumable subs feature. This is the most important programing language improvement since the addition of classes in B4A v2.
    It makes it much simpler to manage asynchronous tasks.

    Quoting @johndb :

    - B4A compiled libraries with service modules need to be recompiled.
    - Java 8 is required (Tools - Configure Paths).

    v6.80 - March 1, 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.
    • 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.
    • 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.
    1. Make sure to update to B4A-Bridge v2.30+:
    2. If you are using the Dialogs library then you need to update to v2.94:

    v6.50 -
    December 12, 2016:
    FontAwesome and Material Icons fonts with more than 1500 icons are now integrated in the IDE:


    You can see more information here:

    - 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.
      Note that you need to quote the parameter like this if there is space in the path:
      B4ABuilder -task=Build "-output=C:\APK Folder\MyApp.apk"
    • Bug fixes and other minor improvements.

    There were changes in the layout files format. Layouts saved in v6.50 cannot be loaded in previous versions of B4A.

    v6.31 - November 1, 2016:
    • Minor update with bug fixes.
    v6.30 - September 21, 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:

      View attachment 48045

    • 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". The default value of such fields looks like:


      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.

    - June 20, 2016:

    New features and improvements:
    This version is backwards compatible with older versions of B4A.
    It is recommended to switch from referencing the complete google play services to referencing the required features. Overall it is simpler as the #AdditionalRes and #ExcludeClasses are no longer required.
    Google Maps:

    Android SDK repositories should be installed:

    - February 22, 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.
      For example with this code we can use the native light theme based on the Android version:
      SetApplicationAttribute(android:theme, "@style/LightTheme")
      CreateResource(values-v20, theme.xml,
      "LightTheme" parent="@android:style/Theme.Material.Light">
      CreateResource(values-v14, theme.xml,
      "LightTheme" parent="@android:style/Theme.Holo.Light">
    • 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.

    v5.50 -
    November 11, 2015 -

    Advanced optimizations were made to the debugger which make the debugger significantly faster.
    Complete features list:
    • Debugger improvements.
    • Better handling of uncaught exceptions (Application_Error). See this tutorial:
      Uncaught Exceptions
      This feature allows developers to provide alternative ways to handle crashes. For example, to send the crash logs by mail.
    • 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. See the following video:

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

    v5.20 -
    August 25, 2015 -
    • Starter Service: Starter Service - Consistent & Single Entry Point
    • 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.

    v5.00 - June 8, 2015 -

    • New IDE with many improvements.

    v4.30 - February 10, 2015

    v4.00 -
    December 11, 2014
    • 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.
      See this thread for more information: Simple animations in B4A v4.00
    • 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:
    • 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.

    v3.82 -
    July 3, 2014

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

    v3.80 -
    May 18, 2014

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

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

    Basic4android v3.50 -
    March 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): [​IMG]

    • Regions were added to the Find Sub (Ctrl + E) tool.
    • New attributes: #DebuggerForceFullDeployment and #DebuggerForceStandardAssets.
    • Other minor improvements and bug fixes.
    Basic4android v3.20 - January 13, 2014

    • 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.
    Basic4android v3.00 - October 13, 2013

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

    Basic4android v2.70 - May 12, 2013
    • Compiler warnings - A new warning engine that helps finding common errors as soon as possible.
    • 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).
    Basic4android v2.50

    Basic4android v2.30

    Basic4android v2.20

    Basic4android v2.02

    Basic4android v2.00

    Basic4android v1.92

    Last edited: Apr 17, 2019
  3. rbsoft

    rbsoft Active Member Licensed User

    Very informative - Thank you.

  4. pluton

    pluton Active Member Licensed User

    Thank you all.

    Now added and version 1.90. Thanks Erel for tip :sign0098:
  5. Roger Garstang

    Roger Garstang Well-Known Member Licensed User

    Good info, I couldn't find the 2.02 changes anywhere, and the announcement of it I only saw mentioned as a comment in another thread. I had grabbed the beta right before it that wasn't announced either. It is always good to know what changed, so if there are issues in code and a recent change was in that area you can debug easier too.
  6. CharlesIPTI

    CharlesIPTI Active Member Licensed User


    So what magic do I need to work on my download link to actually FIND the 2.02 version ?

    I'm actually running a 2.01 at the moment 201 Capture.JPG
  7. pluton

    pluton Active Member Licensed User

    Erel says in post:

  8. CharlesIPTI

    CharlesIPTI Active Member Licensed User

    Ya tanks

    I saw that thanks but somewhere else I notice people were having to EDIT the link to get the current version

    my link still says its for 2.00 exe and it downloads 2.01 so thanks again but not what I'm looking for ..

    for that matter my same link grabbed the 1.95 version before 2.0 was out so
    aslong with what your saying you'd think the link would remain the same and just point to the new version.. Who knows 2.01 might even be 2.02 at this point I don't know...
  9. Erel

    Erel Administrator Staff Member Licensed User

    There is no need to edit the link. Your link will download v2.02.

    If it was needed I would have wrote it.

    Note that this is the wrong place to post about not receiving a link. Future posts will be deleted.
  10. Amalkotey

    Amalkotey Active Member Licensed User

    Thank you for the information!
  11. carbonsystem

    carbonsystem New Member Licensed User

    Link to Download

    I need link for download V2.x , i dint received this...
  12. Erel

    Erel Administrator Staff Member Licensed User

  13. Informatix

    Informatix Expert Licensed User

    Thank you for the changelog.
  14. pluton

    pluton Active Member Licensed User

    Added version 2.20 in changelog in first post :)
  15. pluton

    pluton Active Member Licensed User

    Added version 2.30 in changelog in first post
  16. PhilipBrown

    PhilipBrown Active Member Licensed User

    According to the above, Version 3.8 introduced

    • Array keyword - The type can be omitted. In that case the array type will be Object. The Array keyword now supports creating empty arrays.
    However when I declare an array without specifying the type, eg
    Dim arr(3)
    I get the warning: Variable declaration type is missing. String will be used. (warning #5)
    In fact I can store different types of data in different elements of the array, so I guess the warning is wrong.

    I wonder also what is the point of creating an empty array, since one cannot then assign any data to it...
  17. Erel

    Erel Administrator Staff Member Licensed User

    The warning is correct.

    The new feature means that you can write:
    JavaObject.RunMethod("some method"Array ("parameter 1"2))
    Before you needed to write:
    JavaObject.RunMethod("some method"Array As Object ("parameter 1"2))
  18. Troberg

    Troberg Well-Known Member Licensed User

    Suggestion: Pin this thread.
  19. Erel

    Erel Administrator Staff Member Licensed User

  20. EvgenyB4A

    EvgenyB4A Active Member Licensed User

    In version 4.0 is claimed about New Appication object and its properties:
    • New Application object with the following properties:
      • LabelName
      • VersionName
      • VersionCode
      • PackageName
    How to access this object and its properties?
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice