Skip to content

Latest commit

 

History

History
2142 lines (1268 loc) · 153 KB

CHANGELOG.md

File metadata and controls

2142 lines (1268 loc) · 153 KB

6.2.1 (2019-11-12)

Bug Fixes

  • dark-mode: formatted string and html view text color (#8031) (0c7f838)
  • ensure @CallSuper native methods call superFunc (#8025) (7fa9978)
  • dev-tools: use app root in getDocument() (#8071) (f686472)
  • gradient: import LinearGradient with alias (#8063) (eb33ede)

Features

  • application: add system appearance changed event to typings (#8034) (2a34368)

6.2.0 (2019-10-24)

Bug Fixes

  • action-bar: font icon support to NavigationButton (#7842) (4991e6d) (#7918) (bdb411f)
  • action-bar-ios13: action bar items population (#7965) (ce96dad)
  • application-settings-android: possible uninitialized sharedPreferences variable usage (#7813) (4f421ff)
  • css: parse css selectors with escape sequences (#7689) (5520213)
  • xml parsing when input value is reported as object instead of string (#7916) (a06a5f9)
  • css-android: restore elements' native features if offending css is removed while the app is running (#7789) (2beae5b)
  • css-calc: reduce_css_calc_1.default is not a function (#7787) (03d1ff0)
  • bottom-navigation-ios: incorrect layout on orientation change (#7927) (c9bfec1)

Features

  • action-bar-android: add properties to control the titleView content insets (#7805) (57a8605)
  • css: add attribute scoped css without global refresh (#7907) (f791a40)
  • css: Add HSL/HSLA support (#7730) (3cabdde)
  • dark-mode: add system appearance property, event and CSS classes (#7887) (5c9a217)
  • file-system: async read/write (#7671) (2146ac9)
  • dark-mode-ios: adapt dynamic system colors (#7826) (f82cf08)
  • platform-declarations: add android29 typings (#7923) (dc65402)
  • platform-declarations: generate typings from iOS 13.0 SDK (#7817) (3e8d635)
  • segmented-bar-ios: add support for the new selectedSegmentTintColor property (#7880) (ca7c46d)
  • overhaul and streamline Android page navigation transitions (#7925) (08e23bc)
  • Scoped Packages (#7911) (cc97a16)
  • update material components dependency to 92.3 (#7936) (866c2b0)

6.1.2 (2019-10-15)

Bug Fixes

  • expose orientation to application module (#7832) (4166e2d)
  • frame-android: IllegalStateException: The specified child already has a parent (#7948) (ff30c48)
  • tabs-ios9: no view controller managing visible view error (#7837) (7fe8d1c)

Features

6.1.1 (2019-09-11)

Bug Fixes

  • android-list-picker: NoSuchFieldException on api29 (#7790) (997d6de)
  • css-calc: reduce_css_calc_1.default is not a function (#7787) (#7801) (20c0773)

6.1.0 (2019-09-02)

Bug Fixes

  • dots can now be used in module names (#7655) (b6ff4d3)
  • css: parse css selectors with escape sequences (#7689) (#7732) (e3ed028)
  • ios-tabs: handle tabs extended layout for ios 10 (f7f0612)
  • ios-tabs: crash when add tabstrip in loaded event (#7743) (a66f2f2)
  • ios-tabs: handle nesting proxy view container (#7755) (92c3338)
  • handle empty folders in non-bundle-compat (#7649) (5fd7913)

Features

  • implement css-variables and css-calc (#7553) (673c808)
  • add CSS classes to app/modal root views to target platform/device/orientation/type (#7606) (3adba68)
  • GridLayout: Add synonym property column[Span] for col[Span] in GridLayout (#7641) (d3c39c1)
  • apply styles when adding them to the application scope (#7652) (1d12136)
  • expose application orientation (#7602) (e2c3c8c)
  • ios-bottom-navigation: add icon rendering mode (#7738) (ff6d89f)
  • android-tabs/bottom-navigation: fix tab resource icon size based on specification (#7737) (f436b6f)
  • tabs/bottom-navigation: introduce TabStrip.isIconSizeFixed property (#7691) (8039c2c)
  • tabs/bottom-navigation: add support for custom tabstrip (#7580) (acc3436)
  • tabs/bottom-navigation: inherit TabContentItem from ContentView (#7629) (72ca461)
  • tabs/bottom-navigation: flexible font icon usage (#7672) (c0b8db4)
  • tabs: emit tabStripItem tap event (#7693) (b0d1c91)
  • tabs/bottom-navigation: add TabStrip.itemTap event (#7711) (55c9cc9)

6.0.7 (2019-08-22)

Bug Fixes

6.0.6 (2019-08-08)

Bug Fixes

  • tns-core-modules-widgets: use correct version (6.0.6).

6.0.5 (2019-08-02)

Bug Fixes

  • bottom-navigation: codebehind creation (#7624) (056d0bf)
  • tabs-android: tabStripItem color not applied (#7617) (2518655)
  • prevent plugin podfile platform version clash (#7626) (49b3571)

6.0.5 (2019-08-02)

Bug Fixes

  • observable-array: splice to notify correct amount of added items (#7426) (5e14de6)
  • added missing openFile method in ios utils (#7431) (cb58cab)
  • full Unicode support in xml (#7428) (b8659e6)
  • timer: setTimeout/setInterval support for boolean period (#7569) (a569bb2)

Features

  • bottom-navigation-ios: limit to 5 items (5815246)
  • split globals to support smaller worker chunks (0ee0b67)

6.0.4 (2019-07-30)

Bug Fixes

  • ios: 'ui/tabs' not found for element 'Tabs'

6.0.3 (2019-07-29)

Bug Fixes

  • ios: move material design dependency to podfile (#7592) (291e3b4)

6.0.2 (2019-07-26)

Bug Fixes

  • android: remove wait for doubletap if no gesture recognizer (#7584) (9fd5ddc)
  • bottom-navigation: crash when tab selected with no item (#7527) (46c17ca)
  • tabs: tab bar not visible when nested in layout (#7544) (f00b370)
  • tabs-android: wrong tabStripItem selected (#7522) (ca22ba9)
  • tabs-ios: crash when setting tabStripItems through items property (#7548) (4511c76)
  • tabs-ios: unable to return to tab after tab with nested frame visited (#7574) (490cab0)

6.0.0 (2019-06-28)

Bug Fixes

  • bundle: support for file qualifiers with webpack (#7386) (9fcc1dd)
  • bundle: code-only typescript custom components with webpack (#7321) (9fcc1dd)
  • bundle: component builder support for codeFile / cssFile / import with webpack (#7324) (9fcc1dd)
  • bundle: different event order (NativeScript/nativescript-cli#4633) (8851835)
  • restore TextField.textChange and Switch.checkedChange event syntax in xml (#7403) (76b5089)
  • android: ignore gzip content-encoding for status code 204 (#7417) (4437cd6)
  • android-transition: exit transition not executed after app suspend resume (#7402) (f08b491)
  • css-state: _appliedSelectorsVersion assignment (#7405) (9ecf07f)
  • observable-array: splice to notify correct amount of added items (#7426) (5e14de6)
  • cancel contradictory gesture events (#7296) (b8a82f2)
  • allow span descendants in FormattedString (#7369) (01c4b8c)

Features

  • bundle: bundle workflow support (#7320) (ecd9fc3)
  • android: androidX support (#7039) (c5db112)
  • BETA/EXPERIMENTAL: bottom navigation and tabs components (#6967) (0c2c1cc)
  • add support for :focus pseudo class in TextField / TextView (#7396) (0bfddab)
  • animation: support animating width/height properties (#5147) (e7c575)

BREAKING CHANGES

  • AndroidApplication.currentContext in tns-core-modules/application module is now removed.

Use AndroidApplication.startActivity, AndroidApplication.foregroundActivity, or AndroidApplication.context properties instead.

  • start(...) method in tns-core-modules/application module is now removed.

Use application.run(...) method instead. Check the "Flexible Frame Composition" section in this document that explains the full migration path from application.start(...) to application.run(...) and the implications from this change

  • loadPage(...) method in tns-core-modules/ui/builder module is now removed.

Use createViewFromEntry(entry: NavigationEntry) method in tns-core-modules/ui/builder module instead.

  • tns-core-modules/ui/core/dependency-observable module is now removed.

Use tns-core-modules/ui/core/properties module instead.

  • ViewBase.showModal(), ViewBase.showModal(moduleName: string, context: any, closeCallback: Function, fullscreen?: boolean, animated?: boolean, stretched?: boolean): ViewBase, and ViewBase.showModal(view: ViewBase, context: any, closeCallback: Function, fullscreen?: boolean, animated?: boolean, stretched?: boolean): ViewBase method overloads are now removed.

Use ViewBase.showModal(moduleName: string, modalOptions: ShowModalOptions): ViewBase or ViewBase.showModal(view: ViewBase, modalOptions: ShowModalOptions): ViewBase instead.

  • Frame.androidOptionSelectedEvent and AndroidOptionEventData interfrace in tns-core-modules/ui/frame module are now removed.

Event not raised by NativeScript core framework anymore.

  • AndroidFrame.cachePagesOnNavigate in tns-core-modules/ui/frame module is now removed.

Not used internally in NativeScript core framework anymore.

  • stack() method in tns-core-modules/ui/frame module is now removed.

Use getFrameById(...) method if you want to retrieve a frame different than the topmost one instead.

  • AndroidActivityCallbacks.onCreate(activity: any, savedInstanceState: any, superFunc: Function) method overload in tns-core-modules/ui/frame module is now removed.

Use AndroidActivityCallbacks.onCreate(activity: any, savedInstanceState: any, intent: any, superFunc: Function) instead.

  • WebView.url property in tns-core-modules/ui/web-view module is now removed.

Use WebView.src property instead.

  • ios.getter(...) function in tns-core-modules/utils module is now removed.

Use the respective native property directly instead.

  • View.observe(...) method in tns-core-modules/ui/core/view module is now removed.

Use View.on(...) method instead.

  • The addedCount variable from ObservableArray.splice(...) change event is always the amount of added items.

Migration steps: The old addedCount can be obtained by const addedCount = event.addedCount - event.removed.length

  • Fix to cancel contradictory gesture events (e.g. tap and double tap) introduces the following behavior breaking change

Before:

  • iOS / Android:
    • double tap: child tap -> parent tap -> child double tap -> parent double tap
    • tap: child tap -> parent tap

After:

  • iOS:
    • double tap: child double tap
    • tap: child tap
  • Android:
    • double tap: child double tap -> parent double tap
    • tap: child tap -> parent tap

Migration steps: Move event handlers accordingly.

5.4.3 (2019-06-21)

Bug Fixes

  • clear the resolvedPage when entry is being cleared, change the passed View to be a weak reference (#7327) (dfe7621)

5.4.2 (2019-06-06)

Bug Fixes

  • hmr: support for multi module replacement (7c22ffe)
  • register layout child for nested custom components (#7230) (3604df8)
  • ios: potential memory leak with propertybag implementation (#7298) (1c22a73)
  • platform-declarations-ios: Change 2^64-1 enum values to -1 (6720139)

5.4.1 (2019-05-23)

Bug Fixes

  • android: CommonLayoutParams measure/layout child guard (#7271) (333ab36)
  • android: elevation should not require explicit dynamic elevation offset (#7250) (be6e408)
  • hmr: quick fade upon replace navigation (#7251) (0aca087)

5.4.0 (2019-05-14)

Bug Fixes

  • throw if failed to load component (#7186) (b7abb3d)
  • android/button: possible incorrect button visual state (#7190) (2a02360)
  • devtools-ios: Ensure UI modifications run on main thread (c60f74d), closes #7219
  • ios: add null check to TouchGestureRecognizer (#7182) (7d3f0d9)
  • ios: application.displayedEvent does not depend on trace to fire (#7141) (#7156) (4e56c89)
  • ios: image cache module not longer sets null in NSCache (#7171) (4f79d2e)
  • ios-modal: closeCallback not being called with popover presentation style (#7189) (aa44eb9)
  • ios-tabview: crash when setting tab text color (#7188) (77c45da)
  • text: crash when removing FormattedText (#7237) (37b53c6)

Features

  • android: elevation shadow support (#7136) (cf533a7)
  • android: implement a 'activityNewIntent' event (3efc06e)
  • android: implement BorderDrawable outline (ec07a99)
  • hmr: preserve navigation history on applying changes (#7146) (d35e14e)
  • switch: add property for off state background color (#7138) (f0146f0)

5.3.2 (2019-05-03)

Bug Fixes

  • no trace message on empty app.css (#7135) (170d2a8)
  • ios: application.displayedEvent does not depend on trace to fire (#7141) (f6f7b51)
  • ios: flat action bar incorrect layout after navigation (#7077) (1dc3952)
  • ios-http-get: http failure during parsing xml (#7175) (c227c50)

5.3.1 (2019-03-28)

Bug Fixes

5.3.0 (2019-03-21)

Bug Fixes

Features

  • local icon handling in actionbar and tabview (#7009) (cd66300)
  • android: add openFile to utils (#6895) (f8eee40)
  • hmr: style views at runtime (#7012) (3c2c1d9)
  • hmr: apply changes in page styles at runtime when app root is a frame (#6857) (44b8acd)
  • view expose missing backgroundSize, backgroundRepeat, and backgroundPosition properties on View class (#7032) (88f2242)

5.2.2 (2019-03-01)

Bug Fixes

  • android: resource ID #0xffffffec not found on nav (#6955) (33d6d1f)
  • android-animations: reuse animatorSet to prevent high memory usage (#6930) (7236d32)
  • ios: opaque bars break ui layout (#6929) (09fa085)
  • ios: resize of scrollview content breaks layout (#6965) (a9d2043)

5.2.1 (2019-02-19)

Bug Fixes

  • css: widget properties in css didn't work (#6889) (8330ac0)
  • frame-ios: tearDownUI when UINavigationController disappear (#6892) (57f07a3)
  • ios: searcbar hint color before hint property (#6902) (5dd01a3)
  • ios-textview: text alignment reset to default on blur (#6903) (0416f7e)

5.2.0 (2019-02-08)

Bug Fixes

  • android: raise resume event on activity.onPostResume() (#6766) (46c9de0)
  • android: animator restore logic on simulated nav (#6710) (c034d6e)
  • android: failure saving state in mixed parent/nested frame nav (#6719) (4dc35a5)
  • android: a crash on application restart after livesync changes (#6756) (1f1d722)
  • android: use passwordHint for password placeholder (25f4b56)
  • android: clear dialog fragment when closing modal view (#6852) (8c80044)
  • android: app crashes on ListView item template change (#6634) (2085d1e)
  • android: fix a crash if modal is destroyed before dismissed (#6723) (8a32102)
  • ios: native view frame optimizations in nested scenario (#6809) (08acd84)
  • ios: textview content clipped on every other newline (#6864) (23dc84d)
  • ios: tearDownUI and reset UINavigationController (#6817) (cea97c6)
  • action-bar: flat mode breaks ios safe area (#6862) (603c901)
  • tab-view: remove onBackPressed override (#6755) (984f162)
  • call onNavigatingFrom event only if it exists (#6773) (19dfd16)
  • app launch with application style hot module updates (7ced019)

Features

  • provide API to release the native object wrapped by a JS one (#6873) (8b4a9b3)
  • HMR: apply changes in application styles at runtime (42a1491)
  • dialog: add decimal input type for prompt dialog (#6805) (408614d)
  • image-cache: expose onError callback (#6458) (3481e6f)
  • android: option to make dialogs cancelable (#6765) (3a8c3fc)
  • add rebeccapurple to known css colors (#6819) (672c821)
  • add OnDiscardedError typings and event (#6777) (28db2af)

5.1.2 (2019-01-13)

Bug Fixes

  • list-view-android: app crashes on ListView item template change (#6634) (e03f5f9)

5.1.1 (2018-12-19)

Bug Fixes

  • android: animator restore logic on simulated nav (#6710) (54b6df6)
  • android: failure saving state in mixed parent/nested frame nav (#6719) (e5f110f)
  • android: nested fragment disappears on parent fragment removal (#6677) (c084660)

Features

  • tns-platform-declarations: Generate iOS typings from iOS 12.1 SDK (#6693) (1c0218e)
  • view: added iOS parameter for modal presentation style (#6409) (540b2b4)

5.1.0 (2018-12-05)

Bug Fixes

  • android-styling: correctly detect if drawable uses ColorFilter (#6342) (11d3884), closes #6341
  • listview: incorrect layout when scroll (#6656) (63be78a)
  • modals: regression with modals in angular (#6655) (30df4d9)
  • searchbar: isEnabled and isUserInteractionEnabled (#6636) (25c99d8)
  • tests: Sporadic failures after upgrade to WebKit 12.0 (#6635) (65e3a19)

Features

  • add hints options for username and password fields (#6416) (c834181)
  • ActionBar: apply text color when largeTitletextAttribute is set on iOS (#6631) (b58dff0)
  • modals: Enable modal dialog chaining in IOS (#6637) (64bccb9)
  • scrollbar: add isScrollEnabled property (#6640) (ae0fa90)
  • tabview: add androidSwipeEnabled property (#6652) (0b239d7)

5.0.5 (2018-11-26)

5.0.4 (2018-11-26)

Bug Fixes

  • android-fragment: child already has a parent (#6589) (5b9b335)
  • back-navigation: app freeze on going back in parent frame with states (#6595) (fc1f8c1)

5.0.3 (2018-11-20)

Bug Fixes

Features

  • add number and phone input types for prompt dialog (#6365) (7e7c050)

5.0.2 (2018-11-07)

Bug Fixes

  • android: back navigation on app suspend/resume (#6489) (999e378)
  • android: IllegalStateException with tabview and nested frames (#6495) (7d21b5c)
  • Resolve incorrect name of listener when unsubscribing (#6487) (af5eb73)

5.0.0 (2018-11-01)

Bug Fixes

  • don't crash on missing resources in tab-view and action-bar (#6388) (56a1b12)
  • nested fragments interact through child fragment manager (#6293) (3071720)
  • Page and Frame isLoaded undefined checks (#6255) (12fade7)
  • connectivity: making startMonitoring() behave on iOS as on Android (#6373) (a58fc52)
  • observable-array: reduce no longer ignores zero as initial value (#6402) (c0438df)
  • modals: application activityBackPressed event not fired for modals (#6261) (8575c60)
  • list-view: Layout list-view items on request (#6159) (ec24c5a)
  • tab-view: Title and icon positioning (#6362) (e3d5f0d)
  • tab-view: change androidOffscreenTabLimit to 1 when using bottom tabs for android(#6476) (371fc9b)
  • android: HEAD request should return statusCode (7e89f94)
  • android: nested frames on app suspend/resume (#6339) (0bf6dc2)
  • android: parallel navigations should not be triggered (#6275) (6c9fa16)
  • android: suppress reflection for default animations (#6141) (cc19b40)
  • android/platform: reinitialise screen metrics on orientation change (#6164) (2ee1d7d)
  • ios: listview scrollToIndex crash with async data (#6182) (a8d016c)
  • ios: nowrap label measure in horizontal stack layout (#6186) (a1c570c)
  • ios: TimePicker minuteInterval property (#6116) (88f7ed8)

Features

  • add ability to pass touch event through parent view (#6204) (2625683)
  • implement capitalization type option for prompt dialogs (#6325) (ae6a661)
  • application-settings: implemented allKeys method (#6371) (829d18b)
  • frame: add new actionBarVisibility property (#6449) (0002624)
  • frame: hardware back in parent frame when back states available (#6446) (af651d6)
  • grid: implement addChildAtCell (#6411) (a3f1493)
  • image-asset-ios: add autoScaleFactor option to switch auto scaling (#6127) (81e63ee)
  • styling: Add two functions to control applicationAdditionalSelectors (#6124) (85b8c01)
  • tslib: add tslib helpers to global (#6351) (1232d1e)
  • android: add Bluetooth connectivity type for Android (#6162) (f1bef48)
  • android: migrate to support library apis (#6129) (cf034dd)
  • android: platform declarations for Android API 28 (Android 9) (#6243) (b9fc373)
  • iOS: Safe Area Support (#6230) (982acdc)
  • iOS: update platform declarations (f54f71b)

BREAKING CHANGES

  • android: NativeScript core framework now extends support library APIs versus native framework classes as per Google's latest guidelines (#6129) (cf034dd):
    • NativeScript activities now extend android.support.v7.app.AppCompatActivity (vs android.app.Activity)
    • NativeScript fragments now extend android.support.v4.app.Fragment (vs android.app.Fragment)
    • NativeScript now works internally with android.support.v4.app.FragmentManager (vs android.app.FragmentManager)

The implications of these changes should be mostly transparent to the developer except for the fact that the support library Fragment / FragmentManager work with Animation APIs versus Animator APIs.

For Android API Levels lower than 28 the new Fragment API uses a different fragment enter animation by default. You can customise the transition per navigation entry or globally via the navigation transitions API Before: Default fragment enter animation was fade animation

After: Default fragment enter animation for API levels lower than 28 is now a fast "push fade" animation; default fragment enter animation for API levels equal to or greater than 28 remains fade animation

  • Layout class (tns-core-modules/ui/layouts/layout) is now removed as it is not used in {N} framework any more.

Before: Built-in {N} layouts GridLayout, StackLayout, WrapLayout, etc. extended Layout class

After: Built-in {N} layouts GridLayout, StackLayout, WrapLayout, etc. now extend LayoutBase class

To migrate your code follow the example below:

Before:

import { Layout } from "ui/layouts/layout";
// ...

let wrapLayout: Layout;

export function pageLoaded(args: EventData) {
     const page = <Page>args.object;
     wrapLayout = page.getViewById<Layout>("wrapLayout");
 }

After:

import { LayoutBase } from "ui/layouts/layout-base"; // or import { WrapLayout } from "ui/layouts/wrap-layout;
// ...

let wrapLayout: LayoutBase; // or let wrapLayout: WrapLayout;

export function pageLoaded(args: EventData) {
     const page = <Page>args.object;
     wrapLayout = page.getViewById<LayoutBase>("wrapLayout"); // or wrapLayout = page.getViewById<WrapLayout>("wrapLayout"); 
 }
  • android: change androidOffscreenTabLimit to 1 when using bottom tabs of tab-view(#6476) (371fc9b)

  • ios: widgets native view lifecycle refactoring - native view is now created right before they are added to visual tree (#6102) (46705ee):

The iOS widgets native view lifecycle now matches the Android widgets. Before, the iOS native view was created in the widget constructor and you could manipulate the native view right after the widget is instantiated. After the refactoring, the widget's native view will be created when it's added to the visual tree. The most correct way to manipulate the native view is in the loaded event handler.

Before:

import { Button } from "ui/button";
// ...

const button = new Button();
button.nativeView.someNativeAPIMethod();

After:

import { Button } from "ui/button";
// ...

const button = new Button();
button.on("loaded", () => {
    button.nativeView.someNativeAPIMethod();
});
  • ios: Widgets that inherit the ContainerView class now overflow the safe area by default (#6230) (982acdc):

These are: AbsoluteLayout, DockLayout, GridLayout, StackLayout, WrapLayout, FlexboxLayout, ScrollView, ListView, WebView and Repeater.

The change is that now if these widgets touch the edge of the safe area, they will be automatically expanded to the edge of the screen. This will change their width and height. Margins and paddings will still be applied only in the safe area. This behavior can be reverted to the old one by setting the iosOverflowSafeArea property of the widget to false.

4.2.1 (2018-09-18)

Bug Fixes

  • enable reportProgress property for NativeScirpt Angular's HTTPClient (#6154) (349850f)
  • ios: listview scrollToIndex crash with async data (#6182) (ca6cccb)
  • ios: touch delegate does not call base class touch methods (#6113) (284cd5)
  • ios: TimePicker minuteInterval property (#6116) (ca9bad6)
  • android: parallel navigation actions should not be triggered (#6275) (405ccae)
  • android: HEAD request should return statusCode (fe35567)
  • observable array reduce bug (#6219) (b028dd9)
  • Page and Frame isLoaded undefined checks (#6255) (4a11cf9)
  • android/platform: reinitialise screen metrics on orientation change (#6164) (040781c)
  • ios: nowrap label measure in horizontal stack layout (#6186) (efd5f8d)
  • list-view: Layout list-view items on request (#6159) (115a4c1)
  • modals: application activityBackPressed event not fired for modals (#6261) (13d4f34)

4.2.0 (2018-08-08)

Bug Fixes

  • action-bar: navController may be null (#6029) (324fdce)
  • android: label width shrinking on shorter text change (#5917) (0b9d4ae)
  • android: NavigationButton was read as "Button" by screenreaders (#5949) (0e04cb4)
  • android: prevent error during tear down (#5947) (b0afd3a)
  • animation: handle promise rejection and avoid throw (#5861) (9308bab)
  • animations: avoid steady mem consumption rise (#6004) (bcadcbe)
  • core/properties: typings for nativeValueChange (#5791) (357c8ec)
  • dialogs-ios: dialogs not showing in single page apps (non Frame based apps) (#6000) (0082dfb)
  • image: catch Response content may not be converted to an Image (#5856) (5cd8a1f)
  • ios: safeAreaLayoutGuide fallback for iOS 10 cases (#5960) (4b5754a)
  • ios: set current tab as topmost frame on load (#5908) (b122bd4)
  • ios: translate transform breaks sequential animation set (#5961) (6cfdc20)
  • ios-dialogs: unable to show dialog from modal view without a page (#5881) (e59d156)
  • modal: parent page invalid hierarchy handling [extended] (#5966) (b5b8d51)

Features

  • typings: add Android typings for API levels from 17 to 27 (#5890) (398c9b3)
  • Flexible Error/Exception handling (#5929) (3dc3a41)
  • Pass NativeScript app to the native app instead of presenting it over the root ViewController (#5967) (05c2460)
  • CSS: import of relative paths (#6023) (6ce1d22)
  • ListPicker: add textField, valueField and selectedValue properties (#6033) (9e2e8ec)
  • ListView: add animated scroll to index (#6077) (1fac718)

BREAKING CHANGES

  • typings:
    • There is no longer added I prefix in the names of the interfaces. For example, android.view.IMenuItem is now android.view.MenuItem. This matches the original name of the interface in the Android framework.
    • We are now generating only public methods, so all the methods which you override when extending Android class should be public.
    • You need to use Array<string> (lowercase string) instead of Array<String> (uppercase String) when overriding a method accepting string array type.

4.1.1 (2018-07-18)

Bug Fixes

  • require devtools-elements.js with the extension mentioned explicitly (#6079) (1a15aa2)

4.1.0 (2018-05-28)

Bug Fixes

  • android: fix sporadic issue with transition cleanup logic called twice (#5805) (a86d41e)
  • android: lollipop crash on changing activity context after navigation w/transition (#5700) (4f5887b)
  • android-connectivity: add ethernet connection type (#5670) (1536d15)
  • android-textfield: returnPress fired twice for GO/SEARCH/SEND (#5727) (ca444aa)
  • flexbox-ios: resolve text size issue for ListView with flexbox layout template (#5799) (a03065c)
  • flexbox: label text wrapping inside flexbox layout (#5781) (481043f)
  • ios-image-asset: getImageAsync() can retrieve assets stored remotely in iCloud (#5705) (9e3da8e)
  • ios-searchbar: fix searchbar auto sizing in iOS11 (#5658) (555e592)
  • list-view-ios: fix rowHeight property to apply proper item size for iOS (#5693) (b9806ba)
  • modal: exception when calling ViewBase.showModal(...) (#5737) (451589d)
  • modal: innerView.closeModal(...) not passing back context (#5833) (1365f13)
  • navigation: fix frame.navigate call inside page.navigatedTo handler (#5649) (cf950e1)
  • crash at application launch on Android P (#5831) (7851629)

Features

  • file-system: add ability to retrieve file size (#5710) (6bdb5b5)
  • tabview: add tab text font size property (#5752) (11f0d6e)
  • view: introduce LayoutChanged event on every View component (#5825) (0fc1547)
  • css: linear-gradient support for background and backgroundImage (#5534) (5a83a1c)

4.0.1 (2018, May 18)

Bug Fixes

  • feat(builder): enable reading xml from bundle (#5668) (1e682bf), closes #5668
  • fix(layout): IOS Layout not invalidated with custom root (#5724) (f1c0b85), closes #5724

4.0.0 (2018, April 10)

A detailed list of the new features and changes coming with NativeScript 4.0 ca be found here.

You can also check the NativeScript 4.0 is out blog post for highlights.

Bug Fixes

  • android-images: set decodeHeight/decodeWidth default values to dip (#5490) (6509efa)
  • animations: change throw -> trace to avoid unnecessary app crash (#5475) (fa80355)
  • animations: check if target is present before removing its animation (#4586) (4bd3a94)
  • animations: register both style's "name" and "cssName" (#3810) (3ea7365)
  • animations: remove default getters for transform properties (#4286) (26e2748)
  • css-animations: convert transform value properly (#4352) (b7c61ca)
  • date-picker: Date picker changed check (#4797) (d0b3e0c)
  • es6: object constructor assign (3ef45c1)
  • file-system-access: join paths without leading slash (1a497b1)
  • TextField not secure when keyboardType="number" (#5012) (3e6f465)
  • frame: add generic frame cleanup logic after modal dialog close (#5479) (2704915)
  • frame: recreate frame if no cached one found on app resume #5318 (#5330) (9d7f0e5)
  • frame: root tabview with modal frame when suspend/resume app (#5408) (2edef3d)
  • image: image aspect dimensions for ImageSource.fromAsset(...) (#5556) (7506905)
  • image-source: Fix test for base64 image source for android API 26 (#4741) (1171da2)
  • image-source: throw if source is not a correct native instance (#5273) (58d61ca)
  • image: apply tintColor correctly on iOS (#5546) (75ee84c)
  • inspector: Fix --debug-brk issue with Inspector (#5460) (0b34e67)
  • iOS: image._setColorTint is not a function fix (465b5bf)
  • ios-action-bar: enable NavigationButton text change on first navigation (#5458) (b878143)
  • ios-action-bar: NavigationButton cannot be hidden if navigating with transition (#5451) (c54e069)
  • ios-frame: do not update backstack when navigating the same page (#5426) (714af6b)
  • layouts: Set automaticallyAdjustsScrollViewInsets (#5311) (b492996)
  • livesync: attach __onLiveSyncCore to global object (#4215) (90a0da2)
  • minor: reword missing-xml-error to be clearer (#4947) (374f31c)
  • profiling: resetProfiles doesn't reset all profiles (#5425) (68d86fb)
  • slider: correct maxValue setter for android (#4346) (6184338), closes #4343
  • style: Styles are not applied to dialogs (#5612) (38e6f66)
  • style-scope: remove isFileOrResourcePath check (5746dc5)
  • text: Allow -1 to be a valid binding value for text views (#5563) (7cd8e7e), closes #5559
  • uilabel: line height setter should not break line break mode (#5544) (75bd1d2)
  • webpack: fix fragment css not being applied with webpack (#5172) (60773e7)
  • webpack: register wrap layout (#5573) (0012bfd)
  • xml parser: Fix text node data event. (67cfab2)
  • xml parser: Handle whitespace around attribute = (2a2c0e5)
  • ActionItems lacks proper support for VoiceOver on iOS (#2796) (#2799) (37d927b)
  • ActionBar's title not updating in OnLoaded event (1d63103)
  • add css-agent declarations (#4361) (c62e79e)
  • add dom-node declarations (#4359) (08af2ef)
  • cleanup modaltest paths (#5300) (8d59cc4)
  • DatePicker month off by 1 in Android (#4872) (1e47117)
  • Fix scroll-view tests for ios 9 and 10 (#5358) (464cdd5)
  • layoutParent crash with ProxyViewContainer (#5315) (923d48b)
  • Navigation test app added (4d23e37)
  • Require core modules used for inspector lazily (#4977) (0fe1806)
  • set default values to time widgets (#4383) (14098d4)
  • set tns-core-modules-widgets to 4.0.0 (eff264e)
  • throw if global css file is not found in webpack context (#5186) (9ce0819)
  • typo on android utils, getPalleteColor to getPaletteColor (#4687) (7b36461)
  • uuid for ios changed on IOS v7 (#4681) (92471c6)

Features

  • navigation: Flexible Frame Composition (#48)
  • angular xml: Support [prop] and (tap) bindings (fdd8c9b)
  • frame: handle back navigation when common layout is used as a root element (#5608) (70f0112)
  • frame: rework frame retrieval api (#5527) (dfa70dd)
  • ios: fire onDisplayed event when first frame is ready to be displayed (#5344) (1c78e47)
  • ios-image-source: standardize quality scale in image-source (#5517) (319c153), closes #5474
  • ios-list-view: introduce iosEstimatedRowHeight property. (#5568) (52c0448)
  • listview: add required interface for generalized list-view component (#5524) (b29f04f)
  • modal: introduce stretched param to showModal method (#5496) (0138873)
  • observable: Implement observable .once (#5309) (2166d1e)
  • style-scope: Resolve css sheets from tns_modules (414ebc6)
  • tab-view-android: enable tabs positioning at the bottom (#5385) (f8dce08)
  • view: expose method for android back override (#5537) (cf8dcfa)
  • webpack: mark the CSS type for stylable views explicitly (#5257) (1cbb1e8)
  • xml parser: Only allow angular syntax extensions if configured. (748b4f1)
  • Add methods to get the root view and set a different root view at run time (#5386) (b113b00)
  • Add require.context typings (#5156) (0986315)
  • Register ./app.css instead of app.css so it can be provided by webpack context (#5158) (d356339)
  • support intent replacement in the android activity (#5337) (01fab68)

BREAKING CHANGES

  • ios-layout Frame, Page and TabView measure/layout methods no longer used. We now rely on the iOS to position these controls. As a result width, height, minWidth, minHeight, margins won't be respected on these controls
  • ios-layout Layouts for ViewContollers now implemented with UILayoutGuide (requires iOS 9)
  • tabview TabViewItems are now loaded/unloaded on demand - when they will be displayed.
  • webpack: Extending classes requires marking the derived class with @CSSType The root classes are not marked with CSSType and classes derived from ViewBase and View will continue to work as expected. More concrete view classes (Button, Label, etc.) are marked with @CSSType now and store their cssType on the prototype suppressing the previous implementation that looked up the class function name. So clien classes that derive from one of our @CSSType decorated classes will now have to be marked with @CSSType.
  • android-images: change decodeHeight/decodeWidth properties to accept device independent pixels by default
  • image-source: Change the return type of setNativeSource method from boolean to void.

3.4.1 (2018, February 20)

New

  • (# 5337) Support intent replacement in the android activity
  • (# 5344)) (iOS) Fire onDisplayed event when first frame is ready to be displayed

3.4.0 (2017, December 20)

Fixed

  • (# 5047) Android: Click next moves the focus to next focusable TextField
  • (# 5046) Android: Fix search-bar bug
  • (# 5019) IOS: App crash on low memory notification with custom fonts
  • (# 4993) ScrollView base: Adding listener when you are supposed to remove it

New

  • (# 4871) Application Settings blocks UI thread
  • (# 2992) CSS background shorthand property

3.3.0 (2017, October 25)

Fixed

  • (# 4959) Android: a crash related to ConstantState drawable on API 23
  • (# 4950) Android: a crash when application is suspended
  • (# 4897) Android: Button listener missing owner
  • (# 4851) Android: DatePicker shows wrong month
  • (# 4895) Android: default page transtion in app.ts is not working for the initial page & breaks navigation
  • (# 4963) IOS: fix missing borderRadius on Image
  • (# 4740) IOS: Button:highlighted stops working after 2nd click
  • (# 4678) ListView w/"itemTemplates" (multiple templates) cannot be used with TabView

New

3.2.0 (2017, September 07)

Fixed

  • (# 4728) Android: A crash where some Drawables do not implement getConstantState
  • (# 4424) Android: Slider's value does not work when maxValue set
  • (# 4230) IOS: A crash when setting FontFamily to Font-Awesome on a Span
  • (# 4733) IOS: A TextView scrolling and sizing issue
  • (# 4302) IOS: Icon fonts does not work for TabViewItem
  • (# 4582) IOS: Label with formatted text and theme classes crashes
  • (# 4138) Cannot change TabView icon
  • (# 4419) Debugger.js exception for HTTP requests with no Content-Type
  • (# 4650) Image replacement is not respected during tns run android
  • (# 3963) ListView multiple item templates do not work inside a TabView
  • (# 4647) Rename utils.ad.getPalleteColor to getPaletteColor
  • (# 4725) Remove ListView selected state when rowHeight is set

New

  • (# 4808) Android: Keep nativeViews when navigating forward
  • (# 4464) Enable overlap for custom transitions
  • (# 2181) Focus and blur events

3.1.1 (2017, August 08)

Fixed

  • (# 4514) IOS: Text/xml content type not treated as text
  • (# 4450) IOS: TNS 3.1 breaks background-color through css binding
  • (# 4443) IOS: Can't load local files in a WebView on device
  • (# 4415) Style error when setting background after upgrading to NS 3
  • (# 4342) Unable to change the fontWeight.
  • (# 4322) Flashing border on scroll within ListView on Android when border-radius is applied
  • (# 4283) IOS: ActionBar will appear broken when internet sharing bar is displayed
  • (# 4046) Animating a view is broken and freezes the animated properties

New

  • (# 4522) Allow toggling of ScrollBar indicators on ScrollView
  • (# 2740) Improved ActionBar CSS Support
  • (# 1664) Implemented css line-height property

3.1.0 (2017, June 22)

Fixed

  • (# 4147) SearchBar style creates error
  • (# 4272) SearchBar is not displayed on Android API 24
  • (# 4287) Margin value with TextWrap overlapping problem
  • (# 4266) IOS: Wrapped text in Button not properly centered
  • (# 3354) IOS: TextView hint becomes text

New

  • (# 3614) TextField maxLength property support
  • (# 3957) http.getFile(url) should strip query string from saved file name

3.0.1 (2017, May 23)

Fixed

  • (# 4103) A problem with base64 encoded images in Image element
  • (# 4143) Background Image Failing
  • (# 4127) Binding to 'bindingContext' of View is not working
  • (# 4015) Crash: View already has a parent on Android 7.0 with Split screen + pageTransitions
  • (# 3747) Images randomly get swapped on Android
  • (# 3960) TabView with ScrollView and MapView crashes
  • (# 3983) TextField: "0000" hint truncated to "0"
  • (# 4135) TextField: If the secure property is true, the text property doesn't work properly
  • (# 4123) Android: Pressing ENTER key from hardware keyboard in TextView throws an exception
  • (# 4109) Android: Formatted string does not work if defined in XML
  • (# 4022) Android: TabView & ScrollView causes crash on resume
  • (# 4175) IOS: Switch not visible
  • (# 4141) IOS: ActionBar will be hidden after closeCallback of modal page
  • (# 4157) IOS: Hidden ActionBar will be shown by showModal()
  • (# 4151) IOS: Layout will not update on modal page

3.0.0 (2017, May 03)

BREAKING CHANGES

A full list of breaking changes could be found here.

Fixed

  • (# 3941) JS: Error: Failed to apply property [color] ... Invalid color: inherit
  • (# 3898) IOS: http-request header User-Agent always reports iOS 6
  • (# 3775) IOS: Slide page transition causes "snap" behaviour
  • (# 3654) IOS: Button text disappears with "swipe left" gesture
  • (# 3584) IOS: TextView hint din't display numeric
  • (# 3221) IOS: Applying class to secure TextField randomly change it's font-size
  • (# 3538) Page navigation with whole page 'background-image' is very slow
  • (# 3153) Out of Memory Issues still in 2.4
  • (# 3058) Image is broken in Empty cases
  • (# 2985) Listpicker width does not compute properly
  • (# 2724) tns-platform-declarations 2.3.0 ERROR on build [iOS]
  • (# 2095) declarations.*.d.ts files missing from published package

New

  • (# 3889) Add support for both 'focusLost' and 'textChanged' events for Text input (or) add a focusLost/blur Event
  • (# 3872) Can't load a local HTML file with querystring via WebView.src (WebView.url works but is removed)
  • (# 3118) Feature: New Dialog-Prompt-Input-Type for E-Mails
  • (# 3642) BREAKING: Make typings compatible with DOM and Node typings

2.5.3 (2017, June 29)

Fixed

  • (#4342) Unable to change the fontWeight for both iOS and Android

2.5.2 (2017, March 21)

Fixed

  • (#3790) Fix a crash in Android tabview when resetting font property

  • (#3675) Fix a crash when nesting a ProxyViewContainer in FlexboxLayout

2.5.1 (2017, February 16)

Fixed

  • (#3565) Fix a crash when ActionBar transparent background

2.5.0 (2017, February 1)

Fixed

  • (#3270) Android platform.screen.mainScreen props are not invalidated after orientation change

  • (#3232) CSS support for separatorColor property of ListView

  • (#3220) Background of the buttons inside dialog can be modified with CSS

  • (#3218) ListPicker foreground color doesnt change

  • (#3215) StackLayout isUserInteractionEnabled="false" value is not working

  • (#3210) Segmentedbar crash using a number as title

  • (#3181) Cursor position resets on toggling value of secure property of TextField on Android

  • (#3175) Invalid value 500 for property fontWeight in XML

  • (#3172) Pseudo selectors not applying when app resumes

  • (#3163) Issue with WHxxx calculations on android / wrong files loaded

  • (#3147) Setting setTypeface() to null object

  • (#3137) Ripple effect lost on Segmented-Bar with selectedBackgroundColor

  • (#3129) Modal dialogs don't have background color

  • (#3113) Transparent border rendered as black

  • (#3111) TextView new line closes virtual keyboard on Android

  • (#3098) Connectivity module always return undefined on android <= 4.4

  • (#3064) Setting automationText to a number crashes the app on Android

  • (#3060) CSS clip-path rect() shape function implemented incorrectly

  • (#3007) java.lang.NumberFormatException when applying clip-path with percentage values

  • (#2980) FlexboxLayout flex shrink factor is not multiplied by the flex base size

  • (#2941) Using IconFonts in ActionBar + navigation leeds to displaced icons

  • (#2870) [iOS] ActionBar w/translucent navigationBar set to false is creating whitish transition

  • (#2815) TabView.androidOffscreenTabLimit property

  • (#2672) Erratic action bar transition when using bound (or empty) title property

  • (#2179) iOS ActionBarItems overlapping before page load

  • (#2116) setInterval callback is not fired while touch events are being processed

  • (#1869) ActionBar icons in iOS (back, hamburger icon) with different height are "jumping" when changing the screens

  • (#1799) ActionBar drop shadow lost with background-color

  • (#1639) Custom components within other custom components: occasionally not loaded "in time" and ignoring css

New

  • (#2736) CSS support for styling status bar; backgroundColor added in ActionBarStyler

  • (#2693) CSS clip-path inset shape

  • (#2689) TabView.iosIconRenderingMode property

2.4.3 (2016, December 15)

  • (#3170) Export set function for cssFile and resources

2.4.2 (2016, December 7)

  • (#3242) Setting placeholder color on text field crashes is there is no hint

2.4.1 (2016, December 2)

  • (#3217) Properly extend Error so message and stack appear in error activity

2.4.0 (2016, November 16)

Fixed

  • (#2942) ListView with TextField in the Item template not showing Keyboard on Portrait mode

  • (#2911) CSS scale breaks background properties on iOS

  • (#2884) Dialogs stop working in android after another activity is shown

  • (#2879) Function get allTouches() is not working on iOS 10

  • (#2873) CSS padding requires background-color in latest tns-core-modules on Android

  • (#2850) [iOS only] Percentage margin of layouts not possible

  • (#2834) Animations: scale() syntax does not support only one argument

  • (#2813) The Camera module in Android doesn't handle permissions for you

  • (#2789) CSS border-width causes text to overflow TextView

  • (#2781) CSS border-color does not recognize rgb and rgba values

  • (#2751) Camera module not working on IOS 10 (only in devices) / It hangs and exit the app

  • (#2742) A failure in the modules on debugging with NativeScript inspector

  • (#2741) Memory leak when using slide transition on Android (API Level 23)

  • (#2735) Navigation is slow on Android with tns-core-modules version 2.3.0

  • (#2733) [2.3.0] Image gets covered with color of Page color property

  • (#2714) NativeScript IOS Apps Broadcast as iPad in UserAgent String EVEN on iPhone Using http.getJSON()

  • (#2712) Memory leak in GridLayout on Page Navigation

  • (#2661) Styling ActionBar in css file carries over to other view

  • (#2596) Cannot set View id to just a number

  • (#2571) [Android] memory leak for Images

  • (#2460) Taking several picture leads to OutOfMemory Exeption

New

  • (#3044) FlexboxLayout CSS properties

  • (#2986) Enhancement: Page Imports

  • (#2820) ListView item template selector

  • (#2796) ActionItems lacks proper support for VoiceOver on iOS

  • (#2739) Feature Request: SegmentedBar CSS Support

  • (#2738) Feature Request: Improved TabView CSS Support

  • (#2656) TextField Line Color

  • (#2621) Feature request: Add accessibility labels to views.

  • (#2608) Move the camera module to a plugin

  • (#1763) Default design/theme for the cross-platform UI. A-la Bootstrap?

  • (#1650) Flexbox Layout support

  • (#699) Suggestion : Add image rotate left/right

  • (#50) Support for pseudo/state selectors in CSS

2.3.0 (2016, September 16)

Fixed

  • (#2657) Handle native instances with weak refs in transition closures

  • (#2615) Button with text-decoration cannot change its text

  • (#2601) Text color of the Button not applied, when text-transform has been set.

  • (#2591) Label zero height issue fixed.

  • (#2586) Fixed issue when bind to bindingContext and other property.

New

  • (#2649) ImageView CSS color property support

  • (#2593) Content type with "+json" structured syntax suffix not parsed

  • (#2356) Integrate the iOS .d.ts generator

  • (#712) Ability to style EditableTextBase's hint property

2.2.0 (2016, August 10)

Fixed

  • (#2427) Refactor application of text decoration, text transform, letter spacing and formatted text
  • (#2414) CSS background-image on Label not loading in iOS
  • (#2413) Multiple HTTP response headers not returned correctly on Android
  • (#2391) App crash when editing text and text-view is removed
  • (#2362) Multiple ScrollViews on one page fires scrollEvent simultaneously
  • (#2173) iOS onSuspend + showModal() returning "Error: This value is not a native object"
  • (#2121) The navigation bar duplicates when going to TabView's "More" tab

New

  • (#2528) Letter spacing in EM units
  • (#2457) Feature Request - Nested Bindable Observables
  • (#1278) TabView button icons (iOS)
  • (#734) Add API to retrieve the following standard user directories under iOS
  • (#731) NavigationEntry.bindingContext property

2.1.0 (2016, June 30)

Fixed

  • (#2383) android LayoutParams are not overridden

  • (#2372) Custom title on Android fails with exception

  • (#2367) Android 6.0+ sets activity intent extras by default which breaks application resume

  • (#2344) Action bar doesn't handle events properly when a custom button

  • (#1655) Added CSS not cascadded after screen is built

  • (#2310) Sorting issue with Css Selectors with same specificity.

  • (#2301) Updated webinspector interfaces

  • (#2299) Binding converter calls.

  • (#2286) Visual glitch with manual iOS transitions

  • (#2268) Undefined can be set as localValue to dependency observable

  • (#2266) Animation value sync issues

  • (#2263) Crash when ListView is used in a modal dialog (Android).

  • (#2262) Crash in action bar on iOS 9.3

  • (#2256) Custom ActionItem gets displaced in iOS

  • (#2250) Ignore the case when getting a response header

  • (#2240) Possible regex issue with CSS class names

  • (#2225) The exit transition of the current page is not played when navigating with clearHistory.

  • (#2220) Close current modal page on livesync

  • (#2209) CSS-Animation w/ iteration-count:infinite is never reset causing OutOfMemory error

  • (#2191) SegmentedBar unbound items not firing selectedIndex change events

  • (#2177) iOS CSS Animation rotate() do not reset the value after 360 degrees rotation

  • (#2161) TranslateX and Animate in iOS strange behaviour on 2.0

  • (#2151) Add z-index to the public API

  • (#2053) WebView still visible in chrome://inspect after page is destroyed

  • (#1948) Navigation stops working after navigating with clearHistory and a transition

  • (#1899) Android layerType should not be changed if there is no need

  • (#1807) SearchBar.textFieldHintColor not respected on iOS

  • (#1425) Images have margin when added to Layout

New

  • (#1563) Enable modules snapshot for Android

  • (#2339) Implement the BorderDrawable class used in background.android.ts in Java

  • (#2322) Added support for debugging TypeScript in WebInspector

  • (#2307) Modules won't call android requestLayout anymore. Android will handle its layout when needed

  • (#2304) Rename com.tns.Async.xxx to org.nativescript.widgets.Async.xxx

  • (#2298) Move UILableImpl as TNSLabel in widgets.

  • (#2288) Decouple Fragment implementation logic from the Extend call.

  • (#2271) Extract the Activity implementation logic in a separate class.

  • (#2270) Avoid excessive requestLayout calls

  • (#2269) Label won't requestLayout when its text is changed if it has fixed size

  • (#2260) Optimized DependencyObject setValue performance

  • (#2244) Remove the android.app.Application extend from the core modules

  • (#2217) Enable hardware acceleration for views animations in Android.

  • (#2198) Image won't requestLayout when measured with 'exactly' spec

  • (#2174) ListView views will apply CSS once per view.

  • (#2144) Performance improvements

2.0.1 (2016, May 18)

Fixed

  • (#2133) Removed unnecessary view state creation.

  • (#2126) zIndex fixed for Android buttons

  • (#2113) Panning gesture in Android creates non-smooth delta coordinates.

  • (#2100) Fix navigatedFrom event raised when Activity is destroyed without act…

  • (#2099) Typo in Pointer.getY method for iOS

  • (#2084) App crashes when animating ActionBar

  • (#2077) Animations not working in 2.0.0 on android?

  • (#2076) 2.0 Corrupted navigation stack

  • (#2062) Cannot change the iOS status bar text color since 2.0

New

  • (#2108) Add Method to see if camera is available

  • (#2102) clip-path support added

2.0.0 (2016, April 27)

Fixed

  • (#2018) Bold and italic do not work on Android when no font family is specified

  • (#1982) UI not updated when propertyChange event of Observable is raised

  • (#1963) Default SegmentedBar items to textwrap false, expose option to configure

  • (#1958) Animate iterations property counts -1 on iOS when value is => 2

  • (#1916) TimePicker minHour, maxHour are throwing exception when hour is out of their range

  • (#1912) Text-transform not applied on text property change (label, button, etc.)

  • (#1905) Visual states not working properly when the animation is canceled in Android

  • (#1902) CSS text properties not applying on button when no other text element is used in page

  • (#1893) CSS animations from the application-wide .css file do not aply

  • (#1887) Parent directory not created by file-system.File.fromPath()

  • (#1878) Multiple actionView items do not handle tap event correctly

  • (#1864) Generic font families should use system fonts on iOS

  • (#1859) CSS text-transform is not correctly applied in a virtualized ListView

  • (#1822) verticalAlignment "middle" and "center" crash the app on Android

  • (#1820) All topmost().navigate instances stop working after AdMob interstitial close

  • (#1813) Add ability to set attributed text on button

  • (#1809) Unable to show dialog from a modal page

  • (#1794) Update TextBase/Button text property when formattedText changes

  • (#1792) NSRangeException when typing in a TextField with formatted text

  • (#1788) Difference in jpg resource syntax on iOS/Android

  • (#1787) Going back with the stock "Back" button on iOS always animates the transition

  • (#1776) Swipe back not working since 1.6

  • (#1775) Using RGBA in CSS

  • (#1772) Unable to open a page with FormattedText on iOS

  • (#1770) Color animations are broken on Android

  • (#1570) 1.6 navigation events firing out of order

New

  • (#1943) Publish @next builds

  • (#1862) Support for all font-weight CSS values with the best mapping possible

  • (#1760) Add public instance methods to View class for getting locations and sizes

  • (#1757) Support letter-spacing property in CSS

  • (#1686) Allow updates to application CSS

  • (#1660) Feature request: Add CSS ability for other properties

  • (#1608) Add support for CSS 3 animations and transitions

  • (#1451) Enable Android 6 way for requesting permissions

  • (#828) Create a 'source'-like property on the View class for debugging

  • (#515) CSS style property "z-index"

1.7.1 (2016, March 22)

Fixed

  • (#1614) App crashes after a while leaving it open and re-selecting it on Android

1.7.0 (2016, March 16)

Fixed

  • (#1737) TypeError from fetch module due to no headers received

  • (#1721) TextField returnPress event not working on Android

  • (#1695) HTTP module does not support multiple headers with same name

  • (#1693) "ui/frame".NavigationEntry.transitionAndroid is not supported

  • (#1692) Apply visibility via binding fails [Android]

  • (#1691) App crash if ActionBar includes an 'id' tag [Android]

  • (#1667) Tap event does not fire when using codeFile in different directory

  • (#1631) The dialogs.confirm throws exception when writing Angular 2 + {N} app

  • (#1624) Fixed jumpy navigation between pages in iOS

  • (#1583) Remove message escaping

  • (#1569) Regression: back button breaks app on clearHistory: true (android)

  • (#1559) Image rotation from camera

  • (#1543) [Android] View._onDetached called twice when app is suspended

  • (#1389) Frame navigate, while Android activity is paused, crash

  • (#1078) FormattedText styling not working in iOS

New

  • (#1602) Request: AppSettings - clearAll

  • (#1488) Ability to define a custom view in ActionItem

  • (#1330) Allow NativeScript application to define different base class for activity and application

  • (#1267) Implement icon font support for ActionBarItems

  • (#1076) Feature request: Physics

  • (#704) Support of Px,rem

1.6.0 (2016, February 17)

Breaking changes

  • Up to v 1.6.0, the background drawable attribute of the buttons in Android was always replaced. To keep the consistency with the default platform-specific background, the attribute is not changed now and the button is only styled.

Fixed

  • (#1534) FileSystemAccess.fileExists returns true for directory as well

  • (#1524) Label text="{{ anyField }}" should not print out "null" if the field is "null"

  • (#1520) When using remote background images, positioning CSS properties ignored

  • (#1467) Detect JSON response in XHR and auto-parse the response

  • (#1463) fetch/XMLHttpRequest re-URL-encodes first % character in query string

  • (#1443) Impossible to rotate 360 degrees on iOS

  • (#1426) App crash when TabView has more than 5 items and different font-style

  • (#1415) TabView crashes the app when "Don't keep activities" option is turned on

  • (#1405) Complete app crash when tapping around a Textfield at times

  • (#1396) Fixed bug in GridLayout

  • (#1381) Fix originX/Y not applied when set before layout in Android

  • (#1371) ListView Android bug and fix

  • (#1359) Getting error when restore/opening minimized app first time after installation

  • (#1349) FormattedText Span foregroundColor and backgroundColor cannot be set using known color

  • (#1340) Remove global dependency from fetch library

  • (#1326) Fix action-bar when app is put to background and restored (and Do not keep activities is TRUE)

  • (#1296) Change Android button background method

  • (#1290) ListView with rounded items cannot show the background of page

  • (#1280) text-transform breaks child colors

  • (#1275) ActionBar disappears when app closes with back button

  • (#1240) Android 5.x: setting View.opacity (setAlpha) removes its background

  • (#1232) WrapLayout crashes when itemWidth value is too high

  • (#1223) Android image that has a complex background (i.e., with rounded corners) cannot animate opacity correctly

  • (#1218) Setting and instantly animating a property fails for iOS

  • (#1177) Alert dialog in SegmentedBar selectedIndexChanged event blocks navigation

  • (#1127) Changing ActionBar title after page is loaded does not show the ActionBar

  • (#1123) iOS: ActionBar covers the page

  • (#830) The border-radius on Android 4.4.4 (Samsung Tab) not applied to

  • (#758) The platformModule.device.language results are different in iOS and Android for the same language

  • (#659) Problem with iOS resizing when there is an activity running in background (active call, hotspot, etc.)

  • (#518) Allow ActionItems to be directly specified between the ActionBar opening and closing tags

New

  • (#1433) Binary sync read/write added

  • (#1429) File download implemented

  • (#1366) Export listeners/events for GestureStateType "began" and "ended"

  • (#1363) Cross-platform animation-timing-function / easing

  • (#1357) Frame.goBack can now accept an entry to navigate back to

  • (#1352) Data URLs supported for Image object

  • (#1283) Can't access args.object.page from ActionBar ActionItem tap event

  • (#1242) Add Page showingModally event

  • (#1129) Why are iOS modal animations disabled by default? Can we pass an option to enable it?

  • (#811) Page navigation transitions

  • (#733) Add API to open a file at a given path with the default application

  • (#714) Automation ids

  • (#709) API Stability Index (proposal)

  • (#520) XML declaration better error reporting for malformed attribute content

  • (#412) Feature request: support percentages for width and height

  • (#98) Support for advanced CSS selectors

1.5.2 (2016, January 27)

Fixed

  • (#1447) Application fails with Segmentation fault on iOS when using ScrollView

1.5.1 (2015, November 14)

Fixed

  • (#1235) ObservableArray does not raise its change event when its `length' property is set

  • (#1228) URL with % fixed

  • (#1213) Android build error when space exists in the folder

  • (#1186) Fix currentEntry to return NavigationEntry instead of BackstackEntry

  • (#1179) ListView doesn't seem to clear\reset

  • (#1168) Alert with null value is not displayed

  • (#1160) iOS: The image supplied to Label.backgroundImage is rendered upside down.

  • (#1149) Correct TabView icon rendering mode

  • (#1142) ObservableArray does not provide removed items through EventData when an UPDATE action occurs

  • (#1139) Missing attributes in the NativeScript XSD schema

  • (#1018) Using the background-position with negative values

  • (#754) The backgroundColor of a Label is not animatable in iOS

New

  • (#1171) Expose API to get the focus point of pinch gesture

  • (#1140) Expose API for setting origin (a.k.a. pivot or anchor) point for view transformations

  • (#1136) Add Template factory function and use it in the ui/builder, Repeater and ListView components

  • (#1109) Min/Max and intervals values on date / time pickers

  • (#691) Visibility attribute on ActionItem element

  • (#685) Support CSS text-transform

  • (#501) Better XML declaration error reporting for non-existing element

1.5.0 (2015, November 24)

Breaking changes

  • The XML namespace (xmlns) of the validator XSD schema changed from xmlns="http://www.nativescript.org/tns.xsd" to xmlns="http://schemas.nativescript.org/tns.xsd". For convenience, the file can now get downloaded via the same URL.

Fixed

  • (#1089) HTTP toString will raise error if response cannot be converted to string

  • (#1082) Null reference exception in view.android.setOnTouchListener method

  • (#1081) File system writeTextSync will now unlock the file when it is done writing

  • (#1038) WebView with HTML string source does not render on old Android

  • (#1028) [iOS] SelectedIndex property of the TabView widget does not work

  • (#1021) The page.loaded and page.navigatedTo events are fired twice on iOS

  • (#1019) Search-bar color not applied correctly

  • (#1012) TextField/TextView CSS color not applied to cursor

  • (#1010) Slider CSS color/background-color support

  • (#1007) When application.start() is called twice on iOS, a meaningful error should be thrown

  • (#1004) ActivityIndicator CSS color support

  • (#1000) Border radius is not working on Android API 17

  • (#998) WebView images now will be loaded correctly with base URL

  • (#993) CSS does not support new lowercase element names

  • (#990) Android 6 WebView onReceivedError

  • (#986) [iOS] The Switch widget does not show up on the page

  • (#973) iOS owner pattern changed to use WeakRef in order to prevent memory leaks

  • (#966) Observable emits two propertyChange events when created with JSON

  • (#963) Always set base URL in WebView

  • (#955) Gestures event arguments for Android fixed

  • (#941) global.ios missing (consistency)

  • (#940) ListView: inconsistency retrieving bindingContext in tap handler

  • (#936) Subsequent animation of transition and rotation or scale will appear jumpy in iOS

  • (#889) vertical-align CSS inconsistency

  • (#820) The x and y components of an Android translate or scale animation are not animated together when delay is specified

  • (#801) Chained animations lose state on iOS

  • (#789) Error in page navigating events order

  • (#781) iOS page.showModal platform inconsistancies & bugs

  • (#715) Frame crashes on app restore occasionally

  • (#642) Ability to style other native widgets

New

  • (#1001) Embed utility fonts: Awesome, Icons, etc.

  • (#1102) Ability to specify an animation easing, i.e., curve in a platform-independent manner

  • (#1086) This will now allow the dialog to call the resolve function when cancelled by clicking outside

  • (#1057) Expose scroll event on ScrollView

  • (#1048) Event for start/end of an event

  • (#1041) Support binding for class property of views

  • (#1034) Support CSS white-space: nowrap and normal

  • (#1020) DatePicker and TimePicker stylers added

  • (#1014) Button wrapText property

  • (#977) Smarter LiveSync

  • (#954) Added simple showModal() overload

  • (#926) Context as to whether a navigation was back or not

  • (#922) Feature request: add loading wheel to Dialogs module

  • (#875) CSS feature request: text-decoration

  • (#856) Android 6 support

  • (#849) Implement dismissSoftInput() for search-bar

  • (#841) Distribute TypeScript definitions

  • (#767) Change Android navigation and tabs title color

  • (#727) Provide a way to get a reference to the currently showing modal page instance

  • (#693) ListView - the position of the item after scroll down is not correct

  • (#597) Some complex properties are inconsistent with rest of API - discussion

  • (#551) Ship a verified image picker plugin

  • (#364) Ability to use built-in system icons on ActionBarItems

1.4.0 (2015, October 12)

Fixed

  • (#904) Navigate clearHistory sometimes crashes Android with a null pointer exception

  • (#901) TypeError: using example from docs

  • (#893) isLoaded is set before calling applyStyleFromScope

  • (#873) The Repeater is re-creating its children multiple times during initialization

  • (#867) The utils.ad.async method is not implemented

  • (#857) Android action dialog actions are not shown if message is provided

  • (#851) takePicture crashes iOS simulator

  • (#848) WebView loads local data with UTF-8

  • (#843) [iOS] Page is layouted as there is no NavigationBar

  • (#839) Page background now spans under ActionBar

  • (#837) Blank text attribute on SearchBar crashes app

  • (#835) iOS animations combining several affine transform properties set only the first property on our view after they finish

  • (#832) Transformations such as scale, translate, rotate won't be incorrectly affected by the layout

  • (#819) WebView check for http/https should be case insensitive

  • (#817) The timers.clearInterval doesn't work on Android

  • (#814) Ternary if and parenthesis makes UI not update

  • (#808) Segmentedbar selectedIndexChanged doesn't work

  • (#805) Missing console.dump on iOS...

  • (#793) Label.backgroundColor cannot be animated in iOS

  • (#790) Cannot use number values in EditableText's hint field

  • (#777) iOS Border-radius on Label

  • (#774) If an animation instance is played more than once, the same promise is resolved each time leading to unexpected results

  • (#772) Placeholder with an id attribute doesn't call creatingView handler

  • (#763) 1.3 - Cannot build new project due to missing App_Resources

  • (#759) Android animations that animate a property to its current value do not run

  • (#756) Add support for Nordic characters: "æøå"

  • (#744) iOS 9 issues

  • (#732) Closing an alert on the iPad crashes the whole app

  • (#605) Guard for "undefined" in Observables on and off

New

  • (#890) Implement Page background option to span under status bar (iOS only)

  • (#766) Rename cssClass property to just class

  • (#740) Modules does not support iOS9

  • (#713) ReturnKeyType Listener

  • (#283) Cross-platform way to clear history

  • (#241) Set base URL in WebView to be able to load resources

Breaking changes

  • (#774) Animation class no longer has a finished property because an animation can be played multiple times. The play method now returns a new promise each time it is invoked. Use this to listen for the animation finishing or being cancelled. When upgrading to version 1.4.0 or above, simply remove .finished from your code.

Old Code (JavaScript):

animation1.play().finished.then(function () { console.log("Finished"); });

New Code (JavaScript):

animation1.play().then(function () { console.log("Finished"); });

Old Code (TypeScript):

animation1.play().finished.then(()=>console.log("Finished"));

New Code (JavaScript):

animation1.play().then(()=>console.log("Finished"));

1.3.0 (2015, September 16)

Fixed

  • (#680) Fix dialogs module parameter positions and add title as optional parameter

  • (#667) Layout is not updated once Page is shown modally and layout is requested

  • (#654) Multiple gestures not working for Android

  • (#651) Using http getJSON never completes when response is not JSON

  • (#623) CSS inconsistency...

  • (#616) TitleView in ActionBar not taking full width in Android 5.1

  • (#613) WebView - support for loading local files

  • (#590) CSS not working on Repeater when bindingContext set on 'navigatingTo'

  • (#587) Animation promise in iOS may never be resolved nor rejected

  • (#581) HtmlView only for single line?

  • (#557) Handlebar syntax in view with comma breaks silently

  • (#540) The border-radius CSS property not applying properly to image on Android

  • (#537) FileSystemAccess.prototype.readText has an async interface, but is synchronous

  • (#535) Random exception when using http.getJSON()

  • (#513) Android backgroundColor animation is not gradual

  • (#508) iOS Page lack of a background screws the page transitions

  • (#411) Setting invalid value for CSS properties causes app to crash

  • (#408) ScrollView does not scroll

  • (#360) Changing wrap layout paddings and its view margins runtime causes a crash on iOS

New

  • (#698) Implement events for the SegmentedBar similar to TabView

  • (#688) JSONP support for HTTP module

  • (#672) HtmlView doesn't open URLs

  • (#670) Add a cross-platform "openUrl"

  • (#634) Make SegmentedBarItem bindable

  • (#619) View.style is not consistent with Declarative UI .style property

  • (#615) View component consistancy

  • (#612) CSS @import: Make URL optional for local files

  • (#610) Hiding the ActionBar also hides the headers of a tab view

  • (#578) Add scrollToIndex method to ListView

  • (#558) Bind multiple events on one view

  • (#551) Implement an image picker

  • (#548) Expose public API controlling whether a Page should be added to the navigation backstack or not

  • (#541) Make TabViewItem properties data-bindable

  • (#530) Ability to set text size of searchBar

  • (#481) Support padding on TextField and Button elements

  • (#473) Add support for Notification Observers (iOS) and Broadcast Receivers (Android)

  • (#451) Improve the network stack

  • (#432) Expose all of the iOS UIApplicationDelegate methods as events in the application module

  • (#409) Support for modules that depend on Android AppCompat libraries

  • (#309) Support lower-case-dashed component declaration in the XML

  • (#305) Improve Android layout performance by reducing marshalling calls

  • (#255) Implement cross-platform animations support

  • (#169) Create a schema for the XML UI to enable IntelliSense inside AppBuilder and other IDEs

  • (#110) Add support for orientation changed event

  • (#69) Add rotate, translate & scale transforms properties on View

  • (#68) Create common UI module that includes most commonly used UI views

Breaking changes

  • (#473) The application.ios.removeNotificationObserver method now requires an observer instance to be supplied as the first argument. The observer instance is obtained from the application.ios.addNotificationObserver method:
var observer = application.ios.addNotificationObserver(UIDeviceBatteryLevelDidChangeNotification,
    function (notification) {
        console.log(notification);
    });
application.ios.removeNotificationObserver(observer, UIDeviceBatteryLevelDidChangeNotification);

1.2.1 (2015, August 18)

Fixed

  • (#575) Application crashes in Android when there is an ActionBar on the first page

  • (#576) The app.css now applied when there is page-specific CSS

1.2.0 (2015, July 24)

New

  • (#393) Create application.android instance immediately and move all Android-specific events to application.android

  • (#391) Implement cancellable back button pressed for Android

  • (#304) Expose additional properties of NavBar/ActionBar

  • (#294) Add an optional fullscreen parameter to Page.showModal method

  • (#263) Provide per page option for manipulating NavigationBar

  • (#191) Extend the set of support CSS properties in {N}

Fixed

  • (#423) Showing a modal page from another modal page results in error on iOS

  • (#422) Login dialog - iOS7: loginResult.userName returns password as a value instead of username

  • (#421) Page.showModal seems completely broken in iOS

  • (#406) Prompt dialog - iOS7: okButton returns result equal to false, cancelButton returns result equal to true

  • (#405) FPS module will now correctly count frames while scrolling in iOS

  • (#395) Using dialogs.action() causes app to crash on iPad

  • (#372) Simple location app doesn't perform until real GPS apps are also running

  • (#368) [Screen Builder] Model is not updated when an observable object property is used in two text fields

  • (#343) Not returning a view on the view parameter of the creatingView event handler of the placeholder crashes the application

  • (#322) Creating an observable by passing a JSON object in the constructor does not define the respective properties on the observable object instance

  • (#285) The visibility property inconsistent with CSS

  • (#270) BackgroundImage property does not respect the CornerRadius when set to Border

  • (#261) WebView crash when navigating back

Breaking changes

  • (#304) ActionBar/NavigationBar is now defined using the page.actionBar instead of page.optionsMenu. See an example...

Known issues

  • tns debug ios command is not working. The workaround is to use tns debug ios --framework-path "__path to the iOS runtime__". A fix for this is coming in 1.2.1 which will be released the week of July 27th.

1.1.0 (2015, June 10)

New

  • (#280) Change NativeActivity Pbase class in order to be compatible with Android runtime

  • (#244) Expose application-level events as real events See an example...

  • (#233) Application module event handlers are lacking in parameters See an example...

  • (#221) View parent exposed in itemLoading event

  • (#214) Repeater component added Read more...

  • (#207) Optimizations

  • (#199) TabView.selectedIndexChanged event

  • (#184) Hint property for TextView

  • (#176) Implement navigatingTo, navigatedTo, navigatingFrom and navigatedFrom events on page

Fixed

  • (#267) SegmentedBar CSS color not applied correctly when items are bound

  • (#257) Fix some crashes for ListView's iOS UITableView

  • (#242) Cannot attach gesture observer for more than one gesture (Android)

  • (#234) DatePicker and TimePicker property bindings do not work in Android 5.x

  • (#228) ListPicker for Android shows text after bound to an empty array

  • (#222) ListPicker showing number of items in list (Ticket938420)

  • (#196) Layout is incorrect after device rotation in iOS when there is navbar

  • (#193) Layout is broken when there is an optionsMenu on the first page in iOS

  • (#189) Changing bindingContext affects UI elements that has a binding to bindingContext

  • (#188) Remaining item when cleared page options menu in iOS

  • (#187) Custom source for UI element binding fails

  • (#186) Using object get property syntax for binding expressions

  • (#175) Implement weak event pattern on ListView (when bound to observable)

Breaking changes

  • (#242) View and GesturesObserver classes have some breaking changes related to gesture operations

1.0.0 (2015, April 29)

New

  • New options for camera module. Added a resizing options along with keep-aspect-ratio options. More information about how to use it can be found at the dedicated camera help article.
  • First-file search order changed. Now package.json is searched first, then index.js and bootstrap.js is being searched last.

Fixed

  • Taking a full size picture in Android with NativeScript camera module.
  • Pages no longer freeze on cancelling back-navigation via swipe gesture.
  • Items having verticalAlignment set to center now have correct layout bounds.
  • Camera for iOSs no longer throws a Null pointer error.
  • iOS dialog OK button now appears last.

Breaking changes

  • image-cache now stores native image instances, i.e., android.graphics.Bitmap or UIImage.
  • Image.src property is now of type any and can accept either a string containing an image url or a native image instance.
  • Gesture-related enum values changed to start with a small letter in order to be consistent with all other enums within NativeScript. For example, "gesturesModule.GestureType.Tap" should be used like "gesturesModule.GestureType.tap".
  • knownEvents modules within all UI controls are removed and replaced with a static string values. In that case, all possible events will be visible through the inheritance tree. These static strings have an Event suffix. Every place where viewModule.knownEvents.loaded is used should be changed to viewModule.View.loadedEvent or pageModule.Page.loadedEvent. This change is relevant to code-behind only (xml declaration will not be affected).

0.10.0 (2015, April 17)

Fixed

New

  • In addition to binding converters introduced in version 0.42 static (global) place for most common converters is added. This place is named application.resources. More information about how to use it can be found in the special help topic: Data binding.

  • Using plain objects (numbers, strings also an entire object) as binding context via $value. More information can be found at the dedicated Data binding help topic.

Breaking changes

  • Image: url property renamed to src.
  • Image: source property renamed to imageSource.
  • TabView: TabEntry renamed to TabViewItem.
  • Module local-settings changed to application-settings. Only the name of the module is changed (API remains the same), hence the require statements must be updated, i.e., require("local-settings") should be changed to require("application-settings").