Basic4android v2.70 is now available. I would first like to thank the beta testers for their help and feedback .
This version includes many improvements including several major new features:
- 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).
Backwards compatibility issues
In previous versions, when a layout file was loaded the images were loaded as is. Starting from this version the size of the loaded image might be smaller based on the target view. The visual result is the same. The difference can happen if you take the image of a view and assign it to a larger view.