For those living in a dungeon hacking out code; guess what was released by those fine wizards at Telerik today! Yes, you got it - v2.2.0 of NativeScript is now available! Upgrade Instructions below.
As usual; if you run into any issues I will be putting any common issues at the bottom of this post as I and others run into them....
New or Fixed Features:
- Android now properly supports some the of the Java classes that were broken in 2.1 (Major)
- Nested Bindables
- Letter Spacing is now all in EM Units (CSS:
letter-spacing
) - CSS supports new properties, more selectors and even pseudo selectors (Major)
- Android Launch Screen Support
- Observable's are now auto-nesting (this can cause a breaking changes -- see known issues below)
A Lot of other smaller bug fixes and enhancements went into place; unfortunately the really big feature for 2.2.0 has slipped -- threads. It was bigger than a single point release could handle; I've seen progress on both Android and iOS on this front; so I have high hopes it will make it in 2.3.0...
Upgrading:
First of all to upgrade is done is a couple steps:
> npm install -g nativescript
> npm install tns-core-modules@latest --save
For Android:
> tns platform remove android
> tns platform add android
For iOS
> tns platform remove ios
> tns platform add ios
Then you can type tns info
and verify that everything says v2.2.x
Common Issues
Nested Observables might throw an error
(iOS) TypeError: Cannot set property 'disableNotifications' of undefined
(Android) TypeError: undefined is not an object
If you have objects like
var x = new Observable({
y: new ObservableArray([])
});
This will probably throw the above error; eliminate the nesting; and make the structure like this:
var x = new Observable({
y: []
});
Github issue: https://github.com/NativeScript/NativeScript/issues/2457
x86_64 bit Emulator on iOS might crash on code that is fine.
Error:
Service exited due to signal: Segmentation fault: 11
Solution: Switch to a 32bit emulator like the iPhone 4s.
Github Issue: https://github.com/NativeScript/ios-runtime/issues/622
Angular 2 cssClasses Incompatibility
ORIGINAL EXCEPTION: TypeError: _this.cssClasses(...).set is not a function
You need to upgrade your NativeScript-Angular version to the latest version; the older version which worked with v2.1.0 of NativeScript is incompatible with v2.2.0. You should be able to do a
> npm install nativescipt-angular@latest --save
ty ty..just a typo to point out: tns plaform add android
Thanks; will fix.