It’s been just a month and a half since our last major release and 6.1 is already available - packed with new exciting features.

Support for Kotlin

Kotlin is a modern statically typed programming language with aims to boost developer productivity and happiness. Since its inception by Google and JetBrains in 2011, has become a first-class citizen in the Android ecosystem, and is now the preferred way to develop Android apps.

Because of this, NativeScript developers are increasingly looking to consume Kotlin libraries in their app—especially those teams and companies that are switching from native development to NativeScript. So, it was no brainer for us that we had to provide support for these use cases. And here it is …

Imagine that you have this Car written in Kotlin and wrapped it as a jar library:

package com.example class Car private constructor(val color: Color) { companion object { fun createRedCar() = Car(Color.RED) fun createGreenCar() = Car(Color.GREEN) fun createBlueCar() = Car(Color.BLUE) } fun makeSound() = "Beep from the Kotlin car!" } enum class Color { RED, GREEN, BLUE }

And let’s say you want to interact with your Car in your NativeScript application. It’s as simple as:

let car = com.example.Car.Companion.createGreenCar(); let carColor = car.color; console.log("!!!! VM: car color is: " + carColor); let carSound = car.makeSound(); console.log("!!!! VM: car sound is: " + carSound);

Material Design Components

Material Design is a design language, which has affected all aspects of application development where UI is involved since it was created in 2014. It provides opinions on every aspect of the look and feel of your application—from colors, through transitions and animations, to components and their behavior. And because it was developed by Google, material design has long been the expected standard for Android applications, but lately, it has been getting good adoption in iOS applications as well—especially for those that are looking for UI parity between the both platforms.

To facilitate this trend in the mobile world, Martin Guillon, which you might know as @farfromrefug, created a set of Material Components for NativeScript. This is an awesome initiative, and as such, we decided to support him by providing technical help, testing infrastructure, and documentation. All of this is already in motion, but meanwhile - you are most welcome to use his components and/or collaborate with Martin to make these components even more awesome.

Here is a quick run through of all currently available Material Components:



Run on WiFi

Not sure what the biggest problem is in your office, but on the NativeScript floor we often have trouble with … cables. That’s right - we have all of those phones to develop and test against, but we usually struggle with finding the appropriate cable.

Well, that’s no more. 6.1 comes with support to run your app on a real devices via WiFi for both iOS and Android.



And all of a sudden - all your colleagues’ phones became your slaves. The set up is really simple and takes only a few minutes to get it done on iOS or Android.

More Improvements to the Tabs and BottomNavigation Components

Several months ago the team started an effort to completely revamp how tabs and bottom navigation work in NativeScript. As a result, we shipped beta version of the components in 6.0 and those components are now out of beta with 6.1.

The Tabs component now supports using a custom tab strip if the built-in one doesn’t serve your needs. There are also improvements in the styling, UX, more events exposed and other cool stuff. A dedicated blog post on these improvements will be out in the next several days.

Latest iOS, XCode, macOS, and Android

Are you ready for the another set of phones and new versions of mobile operating systems? We are! NativeScript 6.1 brings compatibility with the latest technology stack, so you can be sure that we got your back.

The big announcement in the Apple world is going to happen on the 10th of September, and chances are that we will see new devices, as well as official releases of the iOS and macOS betas shortly after that.

One important change for iOS is the Dark Mode. Our expectation is that not all apps have proper UI when going into the Dark, so if you want to retain the current look and feel of the app no matter the user’s dark mode setting, you can opt-out your application.

Also, Android Q has been around for a while as a beta version, and we expect it to be promoted to final any minute now.

Community Contributions

With this release we were very happy to accept several very significant contributions from the community that I would like to point out:

Implement CSS Variables and CSS Calc by @m-abs: https://github.com/NativeScript/NativeScript/pull/7553

Respect animated option for showModal() by @BradMartin: https://github.com/NativeScript/NativeScript/pull/7686

Allow tns to use NPM configuration by @NathanaelA:

https://github.com/NativeScript/nativescript-cli/pull/4992

In addition, many other fine people also contributed part of their time and effort to make the framework better. Let’s have a round of applause for them:

What’s Next?