Release Notes, 6.11.1

This release provides additional improvements and fixes along with features that will increase development productivity.

🚧Minimum required versions for SF-core 4.0.1

Android: v6.11.1 iOS: v6.11.1 UI Editor: v6.14.1 contx: 2.2.3

Default Components Styles Are Deprecated

In this release, default component styles are removed and style assignments can only be managed with contx.

Before

Button

const Page = require("sf-core/ui/page");
const extend = require("js-base/core/extend");
const FlexLayout = require('sf-core/ui/flexlayout');
const Color = require('sf-core/ui/color');
const Button = require('sf-core/ui/button');
var Page1 = extend(Page)(
function(_super) {
_super(this, {
onShow: function(params) {
Application.statusBar.visible = false;
this.headerBar.visible = false; //For Android
}
});
this.layout.flexDirection = FlexLayout.FlexDirection.ROW;
this.layout.justifyContent = FlexLayout.JustifyContent.CENTER;
this.layout.alignItems = FlexLayout.AlignItems.CENTER;
var myButton = new Button({
width: 100,
height: 50,
text: "Button",
textColor:Color.BLACK,
backgroundColor: Color.create("#00A1F1"),
onPress: function() {
console.log("Button pressed");
}
});
this.layout.addChild(myButton);
}
);
module.exports = Page1;

After

Button

const extend = require('js-base/core/extend');
const Button = require('sf-core/ui/button');
const PageWithContx = require('@smartface/contx/lib/smartface/PageWithContx');
const Page2 = extend(PageWithContx)(
// Constructor
function(_super, routeData, router) {
// Initalizes super class for this page scope
_super(this);
this._router = router;
this._routeData = routeData;
// Overrides super.onShow method
this.onShow = onShow.bind(this, this.onShow.bind(this));
// Overrides super.onLoad method
this.onLoad = onLoad.bind(this, this.onLoad.bind(this));
});
function onLoad(superOnLoad) {
superOnLoad && superOnLoad();
var myButton = new Button({
text: "Button",
onPress: function() {
console.log("Button pressed");
}
});
this.layout.addChild(myButton, "myButton", ".sf-button", function(userProps) {
userProps.top = 200;
return userProps;
});
}
function onShow() {
}
module.exports = Page2;

UI-Editor GifImageView Support

You can now use the UI Editor to add the GifImageView component to add GIF files to your app quickly. (As with all UI Editor components, you can still add this component via the JavaScript code.)

New Project Templates

With this release, there are more variations of new project templates. There are two new templates with built-in navigation flows and the blank project template is enhanced.

Revamped Component Icons

The icons in the Toolbox panel are revamped with a sleeker and easily distinguishable design.

More Diverse Marketplace Library Components

A number of new items are added to the Marketplace.

Grid Profile View & Grid Category View

List ShopCard View & Grid Category View

Checkbox List & Radio Button List

Changelog

  • added: [UI-Editor] New Project Templates are available.

  • improved: [Framework] BottomTabbar badge is added.

  • improved: [Framework] Image zooming on ImageViews is now possible with the new Smartface extension ZoomableImageView.

  • improved: [Framework] Scale property is added to View that handles restrained sizing and animating.

  • improved: [Framework] GridView spanning full width / height is now possible with onFullSpan callback function.

  • improved: [UI-Editor] GifImageView & View are added on Toolbox panel.

  • improved: [UI-Editor] New Library components added on Marketplace

  • improved: [UI-Editor] autoMirrored support for ImageView on contx.

  • improved: [Cloud Services] Enterprise App Store long description HTML support

  • fixed: [Framework] ImageView image return method is fixed as assigning undefined if image is false.

  • fixed: [Framework] SnapToAligment is fixed to eliminate padding issues and unexpected twitches. This fix enhances horizontal scrolling.

  • fixed: [Framework] Layout Manager targetContentOffset is fixed on iOS to handle unexpected padding while scrolling.

  • fixed: [Cloud Services] Portal Account Pricing Report: module based license expiration date

  • known: [Framework] After setting some of MaterialTextBox properties(keyboardAppearance, isPassword, keyboardType, text) may cause unexpected cursor position. CursorPosition may need to be set again.

  • broken: [Framework] Page present method and dismiss methods are deprecated. From now on, Stack Router modal property can be used instead of page's present.