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

    v6.80 - March 1, 2017: https://www.b4x.com/android/forum/threads/b4a-v6-80-has-been-released.76761/

    • CharSequence as internal type. Allows showing rich text in many places such as: Labels, toast messages, dialogs, ListView and others.

      [​IMG]

    • CSBuilder - Simplifies the creation of rich text CharSequences: https://www.b4x.com/android/forum/threads/charsequence-csbuilder-tutorial.76226/#content
    • 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. https://www.b4x.com/android/forum/threads/multidex-solves-the-too-many-methods-error.76431/
    • OkHttp updated and is now based on OkHttp v3.50.
    • Many improvements to B4A-Bridge:

      [​IMG]
      • 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:

      [​IMG]

    • 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+: https://play.google.com/store/apps/details?id=anywheresoftware.b4a.b4abridge
    2. If you are using the Dialogs library then you need to update to v2.94: https://www.b4x.com/android/forum/threads/dialogs-library.6776/

    v6.50 -
    December 12, 2016: https://www.b4x.com/android/forum/threads/b4a-v6-50-has-been-released.74051/
    FontAwesome and Material Icons fonts with more than 1500 icons are now integrated in the IDE:

    [​IMG]

    You can see more information here: https://www.b4x.com/android/forum/threads/b4x-fontawesome-material-icons-fonts.72908/

    - New auto format feature:

    [​IMG]

    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.

      [​IMG]
    • 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:
      Code:
      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: https://www.b4x.com/android/forum/threads/b4a-v6-31-has-been-released.72555/
    • Minor update with bug fixes.
    v6.30 - September 21, 2016: https://www.b4x.com/android/forum/threads/b4a-v6-30-has-been-released.71212/

    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:

      [​IMG]

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

      [​IMG]

      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.


    v6.00
    - June 20, 2016: https://www.b4x.com/android/forum/threads/b4a-v6-00-has-been-released.68112/

    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: https://www.b4x.com/android/forum/threads/google-maps.63930
    FusedLocationProvider: https://www.b4x.com/android/forum/t...ay-services-fused-location.67748/#post-429215

    Android SDK repositories should be installed: https://www.b4x.com/android/forum/threads/integrating-firebase-services.67692/

    v5.80
    - February 22, 2016 - https://www.b4x.com/android/forum/threads/b4a-v5-80-has-been-released.63858/

    • Custom views: [B4X] Custom Views with Enhanced Designer Support
      With this feature it is much easier to add and configure custom views.
    • #ExcludeClasses: https://www.b4x.com/android/forum/threads/new-feature-three-birds-with-one-stone.63127/
      This attribute makes it simple to exclude classes not required from libraries such as google play services.
    • CreateResource manifest editor keyword: https://www.b4x.com/android/forum/threads/new-feature-three-birds-with-one-stone.63127/#post-398974
      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:
      Code:
      SetApplicationAttribute(android:theme, "@style/LightTheme")
      CreateResource(values-v20, theme.xml,
      <resources>
        <style
        name=
      "LightTheme" parent="@android:style/Theme.Material.Light">
        </style>
      </resources>
      )
      CreateResource(values-v14, theme.xml,
      <resources>
        <style
        name=
      "LightTheme" parent="@android:style/Theme.Holo.Light">
        </style>
      </resources>
      )
    • 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 - http://www.b4x.com/android/forum/threads/b4a-v5-50-has-been-released.60242/

    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.

      [​IMG]

    • 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: http://www.b4x.com/android/forum/threads/b4j-v3-70-beta-is-available-for-download.58283/#post-366943
    • $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 - http://www.b4x.com/android/forum/threads/v5-20-has-been-released.57602/
    • Starter Service: Starter Service - Consistent & Single Entry Point
    • Blocks completion: http://www.b4x.com/android/forum/threads/56983
    • 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 - http://www.b4x.com/android/forum/threads/b4a-v5-00-has-been-released.54653/


    • New IDE with many improvements.
    [​IMG]


    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.

      [​IMG]

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



    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:
        Code:
        Dim m1 AsMap = CreateMap("Key1": 10, "Key2": 20)
      • Array keyword - The type can be omitted. In that case the array type will be Object. The Array keyword now supports creating empty arrays.
      • Spinner.DropDownBackgroundColor property
      • Debugger can optionally show hexadecimal values.
      • Auto complete for layouts and assets files:

        [​IMG]
      • Libraries filter box:

        [​IMG]
      • Add existing modules supports multiple selection.
      • New configurable color: ToolTipDefaultText (color of non-code tool tips text)
      • Other minor improvements and bug fixes.

    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]

      [​IMG]
    • Regions were added to the Find Sub (Ctrl + E) tool.
    • New attributes: #DebuggerForceFullDeployment and #DebuggerForceStandardAssets.
    • Other minor improvements and bug fixes.
    http://www.basic4ppc.com/android/forum/threads/basic4android-v3-50-is-released.38678/
    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.
    Link: http://www.basic4ppc.com/android/forum/threads/basic4android-v3-20-is-released.36690/#post-215889
    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).
    Link: http://www.basic4ppc.com/android/forum/threads/basic4android-v3-00-is-released.33495

    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).
    Link: http://www.basic4ppc.com/android/forum/threads/basic4android-v2-71-is-released.29170/#content
    Basic4android v2.50

    Basic4android v2.30



    Basic4android v2.20

    Basic4android v2.02

    Basic4android v2.00

    Basic4android v1.92

    Basic4android v1.90

    Basic4android v1.80

    Basic4android v1.70

    Basic4android v1.60

    Basic4android v1.50

    Basic4android v1.30

    Basic4android v1.20

     
    Last edited: Mar 1, 2017
    fireday, smercan, DonManfred and 5 others like this.
  2. Jost aus Soest

    Jost aus Soest Active Member Licensed User

    That's great - thank you very much!
    :sign0098:
     
  3. Erel

    Erel Administrator Staff Member Licensed User

  4. rbsoft

    rbsoft Active Member Licensed User

    Very informative - Thank you.

    Rolf
     
  5. pluton

    pluton Active Member Licensed User

    Thank you all.

    Now added and version 1.90. Thanks Erel for tip :sign0098:
     
  6. 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.
     
  7. CharlesIPTI

    CharlesIPTI Active Member Licensed User

    Addendum

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

    pluton Active Member Licensed User

    Erel says in post:

     
  9. 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...
     
  10. 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.
     
  11. Amalkotey

    Amalkotey Active Member Licensed User

    Thank you for the information!
     
  12. carbonsystem

    carbonsystem New Member Licensed User

    Link to Download

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

    Erel Administrator Staff Member Licensed User

  14. Informatix

    Informatix Expert Licensed User

    Thank you for the changelog.
     
  15. pluton

    pluton Active Member Licensed User

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

    pluton Active Member Licensed User

    Added version 2.30 in changelog in first post
     
  17. 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...
     
  18. Erel

    Erel Administrator Staff Member Licensed User

    The warning is correct.

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

    Troberg Well-Known Member Licensed User

    Suggestion: Pin this thread.
     
  20. Erel

    Erel Administrator Staff Member Licensed User

Loading...