NativeScript / NativeScript/android

Add complementary Kotlin support

Open
#1,468 0 comments 0 reactions 1 assignee View on GitHub

@vmutafov is already working on this.

Since Sep 2, 2019.

feature
Dominant language
C++
Stars
563
Forks
144
Avg merge
10h 46m
Merged PRs (30d)
14

Description

Currently, the way to use Kotlin features in a NativeScript app is by using them as used in a Java code e.g. https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html

There should be a more convenient way of using some features in JS/TS code, thus I propose the following additions to NativeScript's Kotlin support:

  • Add support for calling Kotlin non-boolean properties as used in Kotlin itself
  • Add support for calling Kotlin boolean properties as used in Kotlin itself
  • Add support for requesting an instance of a Kotlin object without accessing the INSTANCE field
  • Add support for calling Kotlin extension functions/properties on a given type as used in Kotlin without using the generated static methods
  • Add support for mapping JS/TS lambdas and functions to Kotlin's functional interfaces (https://github.com/JetBrains/kotlin/blob/master/spec-docs/function-types.md)
  • Add support for calling Companion objects' method as used in Kotlin without needing them to be declared as @JvmStatic
  • Add support for overriding Kotlin properties when extending a Kotlin class using the JS/TS property syntax instead of overriding the getProperty/setProperty methods
  • Add support for calling Kotlin functions which accept an unsigned number as a parameter

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.