NativeScript 1.3 is now officially available for download! If you have an app using 1.2 or an older version please read the upgrade instructions.
With this release we added more stability, more speed and several major features to NativeScript. NativeScript framework is now more mature and we are sure that NativeScript is your best bet for your mobile strategy. To be inline with the latest announcements from Apple,we do also support tvOS, and we would like to thank the Apple team for including all the tech we needed as a part of tvOS! A blog post is coming next week on the #tvOS topic.
To see all the fixes and code changes, please go to our documentation and see the full list of changes. In 1.3 the team and the community together closed 174 issues in the last 7 weeks. Here are the main highlights:
New NativeScript getting started guide.
Cross-platform abstractions are now a separate npm plugin to enable easier updates.
Introduction of a cross-platform Animation API.
Support for CocoaPods
Support for Gradle builds, enabling support for the latest native Google AAR libraries and also super-fast Android builds.
New Getting Started guide
As with every development framework, to get started is often the most difficult thing. We did several iterations with customers and companies we are working with in order to make it as easy as possible to get started with NativeScript. The new NativeScript getting started guide is here, if you have any feedback or suggestions about what we can improve - please let us know - it is of utmost importance for us to make the getting started experience as smooth as possible. Special thanks to @tjvantoll, @jenlooper, @nikolay.diyanov and @admatha for taking the getting started experience to a whole new level.
NPM package for NativeScript cross-platform abstractions
If you worked with NativeScript before, I’m sure you know about the ‘tns_modules’ folder. In the previous versions this folder was part of the NativeScript project template and contained the entire cross-platform APIs. This way it was difficult to update or to accommodate a fix in these modules. Not any more! Now this code follows our strategy to use npm for modules and is hosted on http://npmjs.org/tns-core-modules. This way, when there is a new version of the module you need to simply execute a single command
to get the latest cross-platform abstractions.
npm update tns
New cross-platform Animation APIs
Animations were the most requested feature in the NativeScript ideas portal. We spent quite a lot of time to implement what we think is an easy to use APIs for you to implement cross-platform animations in your apps.
It was a long discussion over GitHub about what approach and how to implement the API, so if you are interested to read more the issue is here.
Support for CocoaPods
This is huge addition to NativeScript, but first let me tell you what a CocoaPod is as I’m sure many of you are not aware of it. CocoaPods is the dependency manager for Swift and Objective-C iOS Cocoa projects. It has over ten thousand libraries and can help you scale your projects elegantly. You can check http://cocoacontrols.com repository which contains 3894 UI components in this moment. This is a massive number of components you can use directly in NativeScript.
Like NativeScript, CocoaPods is also open source and is available on https://github.com/CocoaPods/CocoaPods/
In order to work seamlessly with the CocoaPods, we needed to update our CLI tools to support Xcode workspaces. Now using a pod is really easy and it’s just a matter of configuration. As this is very important topic there is a dedicated blog post on the topic. Please read how to use CocoaPods in NativeScript.
Support for Gradle
This is another big addition for NativeScript, but let me first explain you what Gradle is and how it make your life easier as this is used primarily in the Android ecosystem.
Gradle is the *relatively* new build system for Android projects. As you probably know Google is working on their own IDE, called Android Studio, for building native Android projects and they are moving away from Eclipse and ant-based projects. As a replacement they are now using Gradle as a build system and this is the recommended build system when working with native Android projects. Most of the new Google libraries (like the Google Design library) are now shipped only as Gradle libraries and thus it was time for us to move to Gradle too .
It may sound like this is only an internal change for NativeScript, but there are two major benefits for you.
First, now the Android builds are incredibly fast because Gradle actually supports incremental builds.
Second, you will now be able to use AAR Google packages which is the recommended by Google Android team way to consume native libraries in Android.
Please read more about the Gradle builds in the dedicated blog post by Todor Totev.
These are the major new features, but as I said in the beginning, a ton of work was done to stabilize the framework. Several real-case scenarios were implemented by customers and deployed to the marketplaces - all this led to a much more mature NativeScript framework.
Even more polish work will be done in our 1.4 release which is already planned and we are working on it. 1.4 is kinda special release, because it will be a short cycle - 3 weeks only and will be dedicated entirely on polishing things to accommodate the feedback we’ve got during our internal company hackathon dedicated on NativeScript. GitHub issues is the place to visit to understand what will come:
CLI 1.4 planning
NativeScript framework 1.4 planning
Android Runtime 1.4 planning
iOS Runtime 1.4 planning
Please follow @NativeScript on twitter, or watch NativeScript GitHub repo to get the latest updates from the team.
We would love to hear your feedback, so please share your thoughts and give us any feedback in the comments section below.