For those who upgraded to 5.0.0 last month, it was a bit of a rough ride. A lot of cool features but a lot of weird corner case broken items. Fortunately since that point, they have released a several 5.0.x point releases which fixed several of the larger flaws. 5.1.0 actually fixes several of the non-critical smaller flaws and adds some cool new features... So if you were waiting to jump on the 5.x bandwagon, this should be the stable release you are waiting for!
The quick list of some of the new features in 5.1
Core Modules
Enable modal dialog chaining in IOS - this allows you to have another dialog follow the first; anyone who has tried this in the past; know this was always a pain on iOS.
isScrollEnabled - This allows you to disable scrolling in the scrollbar component.
androidSwipeEnabled - Allows you to disable swiping in the Android tabview control.
You can use the arrow keys to select an option, in this screen shot; the "Plain JavaScript" is chosen and so it is highlighted.
Android
Android AAB (Android App Bundle); support added!
New package.json flag; suppressCallJSMethodExceptions: true/false - enables suppression of the boolean errors when calling a native function. This could happen and crash the app. Now you can suppress them. (see http://fluentreports.com/blog/?p=581 for more information)
Java 8 Static method support on interfaces; allows NativeScript to call these Static functions.
extends should now work against standard javascript classes (i.e. non native Android classes); so that you can now do class MyVue extends Vue {}; class blahComp extends MyView {};
and it will work properly.
iOS
CStrings are a bit more resilient when passing to a function that wants them as a pointer to read and possibly write.
Updated JavaScript engine to JSC 12.0
CLI
Several bugs when using hmr are fixed.
Yarn Support
Adding lots more Analytics/Tracking (Don't forget to disable this for your privacy: tns usage-reporting disable && tns error-reporting disable)
Updating NativeScript
To get updated; you first need to do:
npm i -g nativescript@latest
That will get you the latest version of NativeScript CLI; once you have it; do a "tns --version" and verify it prints out "5.1.x". Then do a "tns doctor" to verify your environment is up to date and has all the newest support tools you need for a successful build.
To update a project; you need to do the following:
Latest Runtimes:
tns platform remove android && tns platform add android@latest
tns platform remove ios && tns platform add ios@latest
Latest Core modules:
npm r tns-core-modules --save
npm i tns-core-modules@latest --save
To install Webpack & HMR support:
npm i nativescript-dev-webpack@latest --save-dev
Note: you need to have nativescript-dev-webpack as a development dependency for HMR to work.
To install latest NativeScript Angular plugin
npm i nativescript-angular@latest --save
You will then need to install the actual angular bits; which as of this post v6 is currently supported.
The addition of all the additional analytics/tracking to the CLI reminded me; you can disable it permanently; if you value your privacy by doing:
tns usage-reporting disable && tns error-reporting disable
Known issues
- App Resume on Android can still crash in some situations. (Better than in 5.0)
- Console.log may stop working when using HMR
- HMR does NOT currently work with local plugin development out of the box. (See: https://github.com/NativeScript/nativescript-dev-webpack/issues/656)