NativeScript Versions Save

⚡ Empowering JavaScript with native platform APIs. ✨ Best of all worlds (TypeScript, Swift, Objective C, Kotlin, Java). Use what you love ❤️ Angular, Capacitor, Ionic, React, Svelte, Vue and you name it compatible.

8.3.2-core

1 week ago

Bug Fixes

  • android: FragmentCallbacksImplementation memory leak (#9977) (286d36b)
  • android: FragmentClass memory leak (#9983) (0548aaf)
  • core: Added ObservableArray constructor declarations to allow setting multiple arguments (#9980) (d82f3d9)
  • revert "fix(ios): not responding after rotation (#9931)" (#9984) (54d3006)

8.3.1-core

3 weeks ago

Bug Fixes

8.3.0-core

4 weeks ago

Bug Fixes

  • android: connectivity reporting none on resume (#9915) (413fa2e)
  • android: content uri handling improvements (#9936) (9fcd440)
  • android: device language and region from system configuration. (#9868) (ad01e6b)
  • android: font icons had incorrect fallback size (#9914) (e8bed44)
  • android: Textfield focus fix (#9885) (fbd1e23)
  • core: allow View subclass to force onLayoutChangeListener (#9886) (6ccf5a2)
  • core: android wrong background state + current value accessors (#9883) (58a7206)
  • core: ensure platforms/android/core.aar is not included in pack (a1dff9a)
  • core: import fix (45dcada)
  • core: metadata filtering (#9946) (4a5e2e2)
  • core: navigatingToEvent allows access to resolvedPage now (#9954) (38142a6)
  • core: trace log using a wrong parameter (#9951) (cd5d2c2)
  • ensure reusable ProxyViewContainer re-adds native children (#9882) (0a082b3)
  • export 'dataSerialize' from utils (#9909) (a85a72d)
  • incorrect font icon size conversion to device pixels. (#9910) (d3718e5)
  • ios: apply proper border radius to box shadow and view sublayers (#9881) (b7e6128)
  • ios: do not convert tap event data to device pixels twice (#9935) (3681fd4)
  • ios: label measure correct height when using custom numberOfLines (#9945) (2ff0891)
  • ios: memory leak after using 'showModal' passing any Page as parameter (#9939) (4db4e4a)
  • ios: memory leak after using the 'presentViewControllerNavigation' (#9934) (957af32)
  • ios: proper disposal and recreation of iOS native views (#9879) (f548fdc)
  • live-sync: navigation history is now maintained (#9889) (665009b)
  • RootLayout: resilience around shadeCover options (e5fffa1)
  • TabView: item styling improvements for iOS 15+ (#9888) (7ccc949)
  • ui-mobile-base: Android http request body was not sent if method was DELETE (#9887) (57e4973)
  • webpack: NativeClass decorator should run after angular transformers in AOT mode (#9908) (c9f77a0)
  • webpack: unit test runner with node 18+ (#9952) (97a21bb)

Features

  • android: runOnMain, postFrameCallback & removeFrameCallback (#9943) (49343cb)
  • application: expose inBackground and suspended (#9897) (8987bab)
  • core: iterable ObservableArray (#9824) (df74a8b)
  • core: maxLines support for all text components (#9884) (7ff7233)
  • ios: Utils.getRootViewController (29004d9)
  • mac: support for Mac Catalyst with ui-mobile-base (fc77c92)
  • RootLayout: add opened and closed events (#9893) (7b11b6a)
  • types-minimal: paired down typings optimized for smaller footprint editing environments (#9947) (f49e412)
  • Utils: dataSerialize, dataDeserialize, numberHasDecimals, numberIs64Bit (cab5947)

Performance Improvements

  • cache UIFont construction based on FontDescriptor (#9948) (8756df3)

BREAKING CHANGES

  • core: ObservableArray push will now handle arguments just like Array.prototype.push. Certain existing methods will now return ObservableArray instance instead. Callback arguments that contained an array argument themselves will now contain an ObservableArray argument.
  • android: Exposes language and region values from android system configuration. If you were working around locale handling because this wasn't originally the case you can likely remove extra conditions as this should reflect more accurately now.
  • ios: tapData.getX() and tapData.getY() will now return correctly in DIP, so any extra conversions (like calling toDevicePixels) twice must be changed.
  • core: When using navigatingToEvent event.entry, the backstackEntry object is now returned which has an entry property on it if you still need it.

8.2.5-core

1 month ago

Bug Fixes

  • color: output from rgbToHsv and rgbToHsl is now correct (#9933) (ef70956)
  • ios: not responding after rotation (#9931) (aee1d05)

Features

  • core: allow removal of specific CSS variables (#9896) (32567ef)

8.2.4-core

2 months ago

Bug Fixes

  • Utils: dispatchToUIThread (9089b2c)
  • webview: android not loading local content (#9923) (834b4bf)

Features

  • types-minimal: minimal types for only the latest Android and iOS sdks (#9927) (80e6b81)

8.2.3-core

3 months ago

Bug Fixes

  • android: ensure android application is created before setting listeners (#9876) (54f454f)
  • android: improve content uri handling (#9874) (a272296), closes #9871
  • file access cross platform stub (338ae56)
  • removed unecessary console.log (#9877) (74e42fc)

Features

  • added Utils.executeOnUIThread (36a55da)

8.2.2-core

4 months ago

Bug Fixes

  • ActionItem: rendering threw errors if it had a nested child. (#9821) (efa80c7)
  • android: gesture events fix (#9842) (2664783)
  • css: borderColor parse handling for hsl(a) color values (#9857) (da3bd2c)
  • ios: navigation button now allows using custom icon (#9835) (f88c158)
  • RootLayout: close popup views on live-sync (#9834) (6941466)
  • Utils.queueGC debounce and throttle with reuse of different settings (#9852) (9ce7455)

Features

  • RootLayout: added topmost method to retrieve view at top (#9826) (3bb8fc2)
  • TouchManager: touchDelay property for nested tap control (c05145b)

Performance Improvements

  • Improved live-sync functionality for RootLayout (#9836) (3537858)

8.2.1-core

5 months ago

Bug Fixes

  • wrong thread when in Async task in a worker (794a779), closes #9819

8.2.0-core

5 months ago

Bug Fixes

  • android: a11y - do not provide content description for TextView elements (#9673) (dbaf203), closes #9588
  • android: api17 crash on a11y service (#9792) (2efcdf5)
  • android: boolean keyboardType should not set inputType (#9795) (9e6371f)
  • android: edge cases and compatibility with fragments 1.2.x (#9782) (6b41268)
  • android: fragment creation loaded/unloaded protection (ac2e944)
  • android: nested frames were sometimes not recreated (#9725) (902a4c6)
  • android: nested frames were sometimes not recreated (#9748) (cb648e3)
  • android: NullPointerException on navigation (#9669) (9b5d125), closes #8441
  • android: prevent error when detaching from unloaded ScrollView (#9666) (e59f3ff)
  • android: text-transform: capitalize behavior (#9598) (aa1c631), closes #7059
  • android: when hiding the keyboard make view lose focus to match ios behavior (#9786) (b78996a)
  • application instance creation occurs only within Application.run (a518249)
  • core: animation iteration correct for android css animations and iOS rotation (#9628) (608bb1e), closes #7712
  • core: Application handling of nativeApp instance (6c06c77)
  • core: parse template literal syntax with nested identifiers as expression. (#9744) (57cc4ed)
  • ensure android can access native app instance before bootstrap (f10cffc)
  • fs: wrong common paths (51b92f3)
  • ios: do not redraw if background image is 'none' (#9800) (402a7bb)
  • ios: force layout of view when changing the safe area insets (#9773) (a1ba1f6)
  • ios: proper UITabBarAppearance handling (6c71ce2)
  • ios: tabview background color with appearance api in iOS 15+ (#9617) (2749221)
  • ios: UIImage memory leaking after Image is disposed (#9777) (19d8869)
  • memory leaks around image picking/saving to device (7dcfecf)
  • qualifier matcher did not support multiple qualifiers for a single file. (#9720) (3d03f8f)
  • setup script to build only what's necessary (b05650c)
  • tear down views after a modal is closed (#9801) (b38337e)
  • time-picker: correction for super.disposeNativeView (c41e702)

Features

  • android: content uri support for File (#9807) (c68d002)
  • android: tab view icon rendering mode (#9605) (66d8aff)
  • android: update ui-mobile-base to gradle7 (#9778) (c7df2d0)
  • background/foreground events (#9763) (b553a90)
  • bindable: allow "global" context for expressions inside bindings (#9734) (2cbb135)
  • binding expression parser additions and improvements (#9791) (716b831)
  • config: add new option for pathsToClean (08d5656)
  • config: cli.additionalPathsToClean to clean other paths with 'ns clean' (#9808) (3ec8c42)
  • core: add event when disposeNativeView is called (f038e6b)
  • core: support RGB alpha notation (#9699) (388d7ea)
  • datepicker: ability to show time via showTime property (#9570) (ab4e47a)
  • gestures: GestureEvents.gestureAttached added to modify native recognizers when needed (168a169)
  • improved background handling (#9615) (dde9e02)
  • improved converter and function call parsing mechanism for XML expressions (#9805) (c5856c6)
  • ios: allow dynamic ProMotion frame refresh rate changes (#9775) (b292495)
  • new expression parser for xml bindings (#9729) (90ceed1)
  • proper handling for bindings with converters that were undefined (#9813) (a1772c0)
  • root-layout: support gradient colors on shade cover (#9626) (d756eb5)
  • switch: :checked pseudo and color fixes (#9790) (6437352)
  • testID property for use with e2e testing without interfering with a11y (#9793) (8be543b), closes #9748
  • touch animations demo in toolbox (d7916d7)
  • types-android: updated types + api32 (#9774) (2393dad)
  • types-ios: iOS 15.2 (#9710) (25679a6)
  • types-ios: iOS 15.4 (#9806) (39164ef)
  • types-ios: reduced ios types to common types for optimized ts resolution (#9809) (6cd8b8e)
  • ui: TouchManager for ease in adding interactivity (26953ec)
  • Utils for queueGC, debounce and throttle (40c5984)

Performance Improvements

  • ios: autoreleasepool for image extensions (fbefea4)
  • ios: prevent crash with image release (1fb687d)
  • ios: uifont and formatted string optimizations plus uiimage scaling (#9761) (9d3977e)
  • ios: UIImage memory leaks (#9783) (988f372)

Breaking Changes

For vanilla NativeScript users (using .xml views), several adjustments were made to the xml binding expressions parsing and you may need a few adjustments, for example:

BEFORE:

{{ default ? ' something' : ' something else' }}

AFTER:

Note: renamed default to variable name.

{{ enableSubmit ? ' something' : ' something else' }}

This is related to the fact that default is a reserved keyword and the expression parsing uses natural language syntax now.

BEFORE:

Note: This would apply to example usage: {{ variable | someConv }}

getResources().someConv = {
   toView: function () {}
}

AFTER:

getResources().someConv = function () {}

This is related to improving/simplifying the convertors syntax with bindings.

5.0.6-webpack

5 months ago

Features

--env.e2e support to go along with the new testID property in core