Releases: NativeScript/NativeScript
Releases · NativeScript/NativeScript
@nativescript/core@8.5.2
@nativescript/core@8.5.1
@nativescript/core@8.5.0
Bug Fixes
- android: box shadow and border radius white border resolution (#10125) (ea45758)
- android: dialogs activity usage (#10246) (7edd21a)
- android: knownFolders.externalDocuments improvement (#10186) (a7f1305)
- android: Label now defaults to vertical-align middle (#10233) (a23c8bd)
- android: native-helper utils types are now correct (#10231) (6779cdc)
- android: path must be convex (#10238) (89fc249), closes #10235
- android: ScrollView BadParcelableException (#10213) (a26a03e)
- core: add equalityComparer to border-radius properties (#10185) (571d515)
- core: added item template handling for external renderers (#10196) (b993a83)
- core: autofillTypes correction (#10210) (fd35d6c)
- core: classes .ns-light and .ns-dark apply to dialogs (#10201) (48ef249)
- core: CSS animation parsing (#10245) (ab436db)
- core: Frame to Page property propagation (#10225) (4e62b00)
- core: improved handling for unsupported '!important' css rule (#10243) (e560cb1)
- core: Observable event types consistency (#10181) (485fb61)
- core: RootLayout shade cover asynchronous execution (#10228) (a19568c)
- core: unset css values of type Property (#10199) (dcf6a36)
- global declarations fix (#10247) (2f4c318)
- ios: embed systemAppearance handling (#10219) (ee92512)
- ios: embedding sdk (#10211) (9179ff8)
- ios: guard against no nativeView in createBackgroundUIColor (#10229) (9ed3c9b)
- ios: sdk embedding (#10216) (0183f7e)
- ios: support for a11y font scale (#10207) (95f3772)
- types-android: min api types from 17 to 31 (#10209) (e613ecf)
- webpack: notify CLI even if there are compilation errors (#10141) (6059984)
Features
- core: export foregroundEvent and backgroundEvent (#10226) (6fd6943)
- core: Shared Element Transitions (#10022) (59369fb)
- files: read & write using js buffers (#10093) (0173769)
- ios: Swift Package Manager support in config (#10252) (09832ad)
- ios: types for latest 16.2 sdk (#10253) (318fb36)
- webpack: support tsconfig.app.json when present (#10221) (ebb827f)
Performance Improvements
Breaking Changes
Most projects will be unaffected by these but in an effort to be clear as possible, we will note the following:
- Event binding callbacks prefer a properly typed argument:
Potential issue:
error TS2339: Property 'newValue' does not exist on type 'EventData'.
2611 if (e.newValue) {Possible causes:
Application.on(Application.orientationChangedEvent, (event) => {Solution:
Application.on(Application.orientationChangedEvent, (event: OrientationChangedEventData) => {- Android labels are vertical align middle by default.
This means that potentially if you were using margins to position, for example on font icon labels, they may appear mis-positioned intially after updating. You should be able to remove custom margin handling to simplify.
- Page transitions have improved their API to provide more platform control and introduced a breaking change to the method signatures on iOS. If you had created a custom by extending the
Transitionclass:
- BEFORE:
animateIOSTransition(containerView: UIView, fromView: UIView, toView: UIView, operation: UINavigationControllerOperation, completion: (finished: boolean) => void): void {
toView.transform = CGAffineTransformMakeScale(0, 0);
fromView.transform = CGAffineTransformIdentity;
switch (operation) {
case UINavigationControllerOperation.Push:
containerView.insertSubviewAboveSubview(toView, fromView);
break;
case UINavigationControllerOperation.Pop:
containerView.insertSubviewBelowSubview(toView, fromView);
break;
}
var duration = this.getDuration();
var curve = this.getCurve();
UIView.animateWithDurationAnimationsCompletion(
duration,
() => {
UIView.setAnimationCurve(curve);
toView.transform = CGAffineTransformIdentity;
fromView.transform = CGAffineTransformMakeScale(0, 0);
},
completion
);
}
- AFTER:
animateIOSTransition(transitionContext: UIViewControllerContextTransitioning, fromViewCtrl: UIViewController, toViewCtrl: UIViewController, operation: UINavigationControllerOperation): void {
const toView = toViewCtrl.view;
const fromView = fromViewCtrl.view;
toView.transform = CGAffineTransformMakeScale(0, 0);
fromView.transform = CGAffineTransformIdentity;
switch (operation) {
case UINavigationControllerOperation.Push:
transitionContext.containerView.insertSubviewAboveSubview(toView, fromView);
...
@nativescript/webpack@5.0.14
@nativescript/core@8.4.7
@nativescript/core@8.4.6
@nativescript/core@8.4.5
@nativescript/core@8.4.4
@nativescript/core@8.4.3
Bug Fixes
- android: WebView url and event handling (#10147) (#10148) (8444087)
- ios: prevent layout in viewSafeAreaInsetsDidChange until first viewDidLayoutSubviews (#10151) (760bbd0)
- ios: prevent transitionCoordinator usage during modal presentation (#10153) (d138ac0)
- ios: TextField keyboard handling with emoji, autofill, and shortcuts (#10154) (00944bb)
@nativescript/core@8.4.2
Bug Fixes
- android: backwards compat Java cast Float to Long for ApplicationSettings.getNumber (#10140) (7c1590a)
- core: update metadata filtering for IOS 16 (#10133) (c461f1b)
- ios: box shadow border radius (#10142) (6948f7c)
- ios: navigatingTo event handling (#10120) (a4f28b8)
- ios: reset additional insets if they're zero (#10134) (8b7d5ab)
- listview: delegate handling removed from unloaded (#10138) (04c3d9a)
- utils: ios to filter out null values (#10117) (4723114)