I read the Big Nerd Ranch guide to Kotlin and it talked in several places about Kotlin/Java interop, but never JS or native. I already had a solid background in Java, so I have gotten used to using Java classes in my Kotlin code. I am trying to write a Kotlin program which will be run on a site where most - if not all - functionality is written in JavaScript, and I am trying to understand how to write my code to make sure that it is interoperable. Will I be able to continue using Java classes in my Kotlin/JS code? What are the differences between writing Kotlin/JVM code and Kotlin/JS code? What should a (ex-) java programmer know when learning to interop with JS using Kotlin? If there are a few chapters on this in any good books written in the recent past, that would be helpful also.
Differences in writing Kotlin/JVM and Kotlin/JS?
2.1k Views Asked by Sam At
2
There are 2 best solutions below
0
CryptoFool
On
Kotlin/JS compiles Kotlin code, including its own standard library, into Javascript code. At the end, that's all you have is Javascript. What you don't have is any connection to the Java Virtual Machine. Kotlin's standard library provides no magic to bridge Javascript code to the JVM so that it can utilize Java classes. So NO, you can't utilize Java classes in standard Kotlin/JS.
Related Questions in KOTLIN
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- ussd reader in Recket Native module
- making android analyze with coverity sast tool
- Jooq - Insert does not update object with generated id
- Doesn't work TrafficStats.clearThreadStatsTag() in Kotlin
- Difference between map and function returning when in Kotlin
- Every Time i run the app it gives me an error related to gradle
- How Do I Create A Path In The pubspec.yaml File?
- Android jetpack compose webview, image selector not works
- Why doesn't CIOEngine have a dispatcher in kotlin script?
- preventing duplicate text
- onCompletion(mp: MediaPlayer?) is unintentionally called after USB storage is connected
- When using a Room database on an Android application, is it possible to pre-populate data
- Jetpack compose - how I can hookup LiveData property from ViewModel with TextField in activity?
- Failed to getEnergyData
Related Questions in KOTLIN-MULTIPLATFORM
- How do I keep my compose multiplattform app on top of fullscreen program?
- How to make Kotlin Multiplatform (for Desktop) into a "Single Instance App"?
- How to add customized Color to Kotlin Multiplatform Compose?
- Showing a dynamic List in SwiftUi using data models from kotlin via kotlin multiplatform
- Declaring a dependency in gradle on another... sourceSet?
- Deeplink in IOS With Voyager KMP
- Xcode won't compile in kmm project
- Can we use java/kotlin code in flutter with dart code?
- When I start my Compose application the colors are tale and it does not look right
- Allowing text input in multiple rows for a Kotlin Compose app
- MissingResourceException in iOS app with Kotlin Multiplatform library
- Usage of suspendCancellableCoroutine in fetching user location in KMM project
- Android Ktor Client making infinite calls
- Kotlin multi-platform and implementation independent dependency injection
- Status Bar Color Change in Compose Multiplatform
Related Questions in KOTLIN-JS
- How to create an anchor in Jetpack Compose Web?
- How to do synchonous HTTP requests using ktor-client-js version 2.x (without lots of boilerplate code)
- KotlinJS React - Context and Reducer
- Persistent error: Unresolved reference: runBlocking when using kotlinx-coroutines-core-js:1.7.3
- Include external ES modules in the bundle
- How to use JS/React Libraries with Kotlin/JS?
- how to initialize style in i html element in kotlin/js?
- Using Splide Javascript Library in KotlinJS frontend
- Kotlin multiplatform js react - how to use redux Store Provider?
- Is it possible to use in JavaScript interface created in Kotlin.js?
- When using kotlinx.html's DSL to create HTML, (how) is it possible to refer to nested elements?
- How to call suspending function in class that implements an interface with non-suspending functions in Kotlin/JS
- No output when compiling kotlin-js IR using kotlinc cli
- How do I get toLocaleTimeString() to work for a timezone that isn't mine?
- How to call suspend fun in kotlin/js/react, and update State
Related Questions in KOTLIN-INTEROP
- How to resolve "Not enough information to infer type variable" when one type variable not inferrable AND using wildcard on the other?
- how to make kotlin interface property with default value to be used in java code
- What's the use for Kotlin's @JvmSynthetic on a file target?
- Kotlin to Java interoperability in hierarchial interfaces
- How can an exhaustive when throw NoWhenBranchMatchedException?
- Kotlin Objective-C interop usage of Protocol initialization in Kotlin interface
- Kotlin Multiplatform - Objective-C interoperability architecture issue Undefined symbols for architecture x86_64
- Kotlin/Native GTK Interop
- Differences in writing Kotlin/JVM and Kotlin/JS?
- Converting Java To Kotlin: Type mismatch. Required: MenuSlidingTabStrip.OnTabSelectedListener? Found: (Nothing, Nothing) → Boolean
- Include Kotlin/Native KDocs documentation in built .frameworks for iOS/XCode
- Dealing with (U)Int in Kotlin Native C interop
- Kotlin/Native: How to convert cArrayPointer to Array
- How to adjust Swift classnames for Kotlin Multiplatform project with Cocoapods?
- Can I know when my library is called from Java or Kotlin?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
As Steve already mentioned, you can't utilise java classes in Kotlin/JS.
Think of Kotlin/JS as Typescript. It provides a different syntax to write code that ultimately compiles to JS.
Here are the notable differences of writing Kotlin/JS code vs Kotlin/JVM code
I found reading about Kotlin Multiplatform helped clarify a lot about the capabilities of kotlin.
I know this was not specifically asked, but giving my 2cents to people considering Kotlin/JS (as of Sep'20)
definejavascript functions/classes in kotlin before using them (see here). So if you foresee leveraging a lot of existing javascript modules, it won't be an ideal way forward.