From d3fae482ca2c5c4c6794d4dee995cc6262d8e61d Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Thu, 27 Apr 2023 19:53:12 +0200 Subject: [PATCH 01/27] * Added Compose for iOS * Updated the description of Kotlin Multiplatform and images * Removed outdated samples * Removed mentioning Kotlin/JS and use cases with it --- docs/topics/multiplatform/multiplatform.md | 54 ++++++---------------- 1 file changed, 13 insertions(+), 41 deletions(-) diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index fc9a6152022..c8e203e8307 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -17,61 +17,34 @@ while retaining the flexibility and benefits of native programming. Sharing code between mobile platforms is one of the major Kotlin Multiplatform use cases. With Kotlin Multiplatform for mobile, you can build cross-platform mobile applications and share common code between Android and iOS, such as business logic, connectivity, -and more. +and more. Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), which a Kotlin-based declarative UI framework developed by JetBrains, you +can also share UIs across Android and iOS and get fully cross-platform apps. -Check out the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) and -[Create a multiplatform app using Ktor and SQLDelight](multiplatform-mobile-ktor-sqldelight.md) tutorials, -where you will create applications for Android and iOS that include a module with shared code for both platforms. +Check out the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) and [Get started with Compose for iOS](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme) tutorials, +where you will create applications for Android and iOS with shared code for both platforms. -### Full-stack web applications - -Another scenario when code sharing may bring benefits is a connected application where the logic can be -reused on both the server and the client side running in the browser. This is covered by Kotlin -Multiplatform as well. - -See [Build a full-stack web app with Kotlin Multiplatform](multiplatform-full-stack-app.md) -tutorial, where you will create a connected application consisting of a server part, using Kotlin/JVM and a web client, -using Kotlin/JS. +![Sharing different levels and UI](multiplatform-sharing.png){width=700} ### Multiplatform libraries Kotlin Multiplatform is also useful for library authors. You can create a multiplatform library with common code and its -platform-specific implementations for JVM, JS, and Native platforms. Once published, a multiplatform library can be used +platform-specific implementations for JVM, web, and native platforms. Once published, a multiplatform library can be used in other cross-platform projects as a dependency. See the [Create and publish a multiplatform library](multiplatform-library.md) tutorial, where you will create a multiplatform library, test it, and publish it to Maven. -### Common code for mobile and web applications - -One more popular case for using Kotlin Multiplatform is sharing the same code across Android, iOS, and web apps. It -reduces the amount of business logic coded by frontend developers and helps implement products more efficiently, -decreasing the coding and testing efforts. - -See the [RSS Reader](https://github.com/Kotlin/kmm-production-sample/tree/c6a0d9182802490d17729ae634fb59268f68a447) sample -project — a cross-platform application for iOS and Android with desktop and web clients implemented as experimental features. +## Code sharing between platforms -## How Kotlin Multiplatform works +![Kotlin Multiplatform](kotlin-multiplatform.svg){width=700} -![Kotlin Multiplatform](kotlin-multiplatform.png){width=500} +Thanks to Kotlin Multiplatform, you can maintain a single codebase for networking, data storage and data validation, analytics, +computations, and the other logic of your applications. -* **Common Kotlin** includes the language, core libraries, and basic tools. Code written in common Kotlin works -everywhere on all platforms. -* With Kotlin Multiplatform libraries, you can reuse the multiplatform logic in common and platform-specific code. -Common code can rely on a set of libraries that cover everyday tasks such as [HTTP](https://ktor.io/clients/http-client/multiplatform.html), [serialization](https://github.com/Kotlin/kotlinx.serialization), and [managing -coroutines](https://github.com/Kotlin/kotlinx.coroutines). -* To interop with platforms, use platform-specific versions of Kotlin. **Platform-specific versions of Kotlin** -(Kotlin/JVM, Kotlin/JS, Kotlin/Native) include extensions to the Kotlin language, and platform-specific libraries and tools. -* Through these platforms you can access the **platform native code** (JVM, JS, and Native) and leverage all native - capabilities. - -### Code sharing between platforms - -With Kotlin Multiplatform, spend less time on writing and maintaining the same code for [different platforms](multiplatform-dsl-reference.md#targets) - – just share it using the mechanisms Kotlin provides: +Kotlin provides the following sharing mechanisms: * [Share code among all platforms used in your project](multiplatform-share-on-platforms.md#share-code-on-all-platforms). Use it for sharing the common -business logic that applies to all platforms. +part that applies to all platforms. * [Share code among some platforms](multiplatform-share-on-platforms.md#share-code-on-similar-platforms) included in your project but not all. Do this when you can reuse much of the code in similar platforms: @@ -95,5 +68,4 @@ Look through cross-platform application samples to understand how Kotlin Multipl * [Kotlin Multiplatform for mobile samples](multiplatform-mobile-samples.md) * [KotlinConf app](https://github.com/JetBrains/kotlinconf-app) -* [KotlinConf Spinner app](https://github.com/jetbrains/kotlinconf-spinner) -* [Build a full-stack web app with Kotlin Multiplatform](multiplatform-full-stack-app.md) + From 9383228cee1a8f685b2c403eb67dc7b7cf6fc81f Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Thu, 27 Apr 2023 20:08:57 +0200 Subject: [PATCH 02/27] * Updated images to SVG * Added Compose Multiplatform samples --- docs/images/multiplatform/kotlin-multiplatform.svg | 1 + docs/images/multiplatform/multiplatform+compose.svg | 1 + docs/topics/multiplatform/multiplatform.md | 8 +++++--- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 docs/images/multiplatform/kotlin-multiplatform.svg create mode 100644 docs/images/multiplatform/multiplatform+compose.svg diff --git a/docs/images/multiplatform/kotlin-multiplatform.svg b/docs/images/multiplatform/kotlin-multiplatform.svg new file mode 100644 index 00000000000..fc6dc3a14e2 --- /dev/null +++ b/docs/images/multiplatform/kotlin-multiplatform.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/images/multiplatform/multiplatform+compose.svg b/docs/images/multiplatform/multiplatform+compose.svg new file mode 100644 index 00000000000..5b45e8b817d --- /dev/null +++ b/docs/images/multiplatform/multiplatform+compose.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index c8e203e8307..fda23a3f18b 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -17,13 +17,15 @@ while retaining the flexibility and benefits of native programming. Sharing code between mobile platforms is one of the major Kotlin Multiplatform use cases. With Kotlin Multiplatform for mobile, you can build cross-platform mobile applications and share common code between Android and iOS, such as business logic, connectivity, -and more. Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), which a Kotlin-based declarative UI framework developed by JetBrains, you +and more. + +Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), which a Kotlin-based declarative UI framework developed by JetBrains, you can also share UIs across Android and iOS and get fully cross-platform apps. Check out the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) and [Get started with Compose for iOS](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme) tutorials, where you will create applications for Android and iOS with shared code for both platforms. -![Sharing different levels and UI](multiplatform-sharing.png){width=700} +![Sharing different levels and UI](multiplatform+compose.svg){width=500} ### Multiplatform libraries @@ -67,5 +69,5 @@ declarations](multiplatform-connect-to-apis.md). Look through cross-platform application samples to understand how Kotlin Multiplatform works: * [Kotlin Multiplatform for mobile samples](multiplatform-mobile-samples.md) -* [KotlinConf app](https://github.com/JetBrains/kotlinconf-app) +* [Compose Multiplatform samples](https://github.com/JetBrains/compose-multiplatform/blob/master/examples/README.md) From c2b490c6fc5f9bc56fda48288cc509a604084e03 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Thu, 27 Apr 2023 20:32:07 +0200 Subject: [PATCH 03/27] * Minor text edits --- docs/topics/multiplatform/multiplatform.md | 24 ++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index fda23a3f18b..5d870fe1bd4 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -15,12 +15,12 @@ while retaining the flexibility and benefits of native programming. ### Android and iOS applications -Sharing code between mobile platforms is one of the major Kotlin Multiplatform use cases. With Kotlin Multiplatform for mobile, -you can build cross-platform mobile applications and share common code between Android and iOS, such as business logic, connectivity, +Sharing code between mobile platforms is a major Kotlin Multiplatform use cases. With Kotlin Multiplatform for mobile, +you can build cross-platform mobile applications that share code between Android and iOS, such as business logic, connectivity, and more. -Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), which a Kotlin-based declarative UI framework developed by JetBrains, you -can also share UIs across Android and iOS and get fully cross-platform apps. +Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a Kotlin-based declarative UI framework developed by JetBrains, you +can also share UIs across Android and iOS to create fully cross-platform apps. Check out the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) and [Get started with Compose for iOS](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme) tutorials, where you will create applications for Android and iOS with shared code for both platforms. @@ -29,9 +29,9 @@ where you will create applications for Android and iOS with shared code for both ### Multiplatform libraries -Kotlin Multiplatform is also useful for library authors. You can create a multiplatform library with common code and its +Kotlin Multiplatform is also helpful for library authors. You can create a multiplatform library with common code and its platform-specific implementations for JVM, web, and native platforms. Once published, a multiplatform library can be used -in other cross-platform projects as a dependency. +as a dependency in other cross-platform projects. See the [Create and publish a multiplatform library](multiplatform-library.md) tutorial, where you will create a multiplatform library, test it, and publish it to Maven. @@ -40,15 +40,13 @@ a multiplatform library, test it, and publish it to Maven. ![Kotlin Multiplatform](kotlin-multiplatform.svg){width=700} -Thanks to Kotlin Multiplatform, you can maintain a single codebase for networking, data storage and data validation, analytics, -computations, and the other logic of your applications. +Kotlin Multiplatform enables you to maintain a single codebase for networking, data storage and data validation, analytics, +computations, and other application logic. Kotlin provides the following sharing mechanisms: -* [Share code among all platforms used in your project](multiplatform-share-on-platforms.md#share-code-on-all-platforms). Use it for sharing the common -part that applies to all platforms. -* [Share code among some platforms](multiplatform-share-on-platforms.md#share-code-on-similar-platforms) included in your project but not all. Do this -when you can reuse much of the code in similar platforms: +* Share common code among [all platforms](multiplatform-share-on-platforms.md#share-code-on-all-platforms) used in your project. +* Share code among [some platforms](multiplatform-share-on-platforms.md#share-code-on-similar-platforms) included in your project to reuse much of the code in similar platforms: ![Code shared for iOS targets](kotlin-multiplatform-hierarchical-structure.svg){width=700} @@ -58,7 +56,7 @@ declarations](multiplatform-connect-to-apis.md). ## Get started * Begin with the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) if you want to create iOS and Android applications with shared code -* Look through [sharing code principles and examples](multiplatform-share-on-platforms.md) if you want to create applications or libraries targeting other platforms +* Explore [sharing code principles and examples](multiplatform-share-on-platforms.md) if you want to create applications or libraries targeting other platforms > New to Kotlin? Take a look at [Getting started with Kotlin](getting-started.md). > From bf10906e9f150d9b5da4db870cb7a650a0c1d2cb Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Thu, 27 Apr 2023 20:36:16 +0200 Subject: [PATCH 04/27] * Moved images to other places in the doc --- docs/topics/multiplatform/multiplatform.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index 5d870fe1bd4..3c528030154 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -9,7 +9,9 @@ Share application logic while keeping native user experience.) The Kotlin Multiplatform technology is designed to simplify the development of cross-platform projects. It reduces time spent writing and maintaining the same code for [different platforms](#kotlin-multiplatform-use-cases) -while retaining the flexibility and benefits of native programming. +while retaining the flexibility and benefits of native programming. + +![Kotlin Multiplatform](kotlin-multiplatform.svg){width=700} ## Kotlin Multiplatform use cases @@ -22,11 +24,11 @@ and more. Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a Kotlin-based declarative UI framework developed by JetBrains, you can also share UIs across Android and iOS to create fully cross-platform apps. +![Sharing different levels and UI](multiplatform+compose.svg){width=500} + Check out the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) and [Get started with Compose for iOS](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme) tutorials, where you will create applications for Android and iOS with shared code for both platforms. -![Sharing different levels and UI](multiplatform+compose.svg){width=500} - ### Multiplatform libraries Kotlin Multiplatform is also helpful for library authors. You can create a multiplatform library with common code and its @@ -38,8 +40,6 @@ a multiplatform library, test it, and publish it to Maven. ## Code sharing between platforms -![Kotlin Multiplatform](kotlin-multiplatform.svg){width=700} - Kotlin Multiplatform enables you to maintain a single codebase for networking, data storage and data validation, analytics, computations, and other application logic. From 631d6b572c1c8738ef04578c8124dde2e260dbe3 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Thu, 27 Apr 2023 20:46:32 +0200 Subject: [PATCH 05/27] * Minor text edits --- docs/topics/multiplatform/multiplatform.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index 3c528030154..1624a4fbbed 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -18,8 +18,8 @@ while retaining the flexibility and benefits of native programming. ### Android and iOS applications Sharing code between mobile platforms is a major Kotlin Multiplatform use cases. With Kotlin Multiplatform for mobile, -you can build cross-platform mobile applications that share code between Android and iOS, such as business logic, connectivity, -and more. +you can build cross-platform mobile applications that share code between Android and iOS, such as networking, data storage +and data validation, analytics, computations, and other application logic. Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a Kotlin-based declarative UI framework developed by JetBrains, you can also share UIs across Android and iOS to create fully cross-platform apps. @@ -40,10 +40,10 @@ a multiplatform library, test it, and publish it to Maven. ## Code sharing between platforms -Kotlin Multiplatform enables you to maintain a single codebase for networking, data storage and data validation, analytics, -computations, and other application logic. +Kotlin Multiplatform enables you to maintain a single codebase for application logic while keeping advantages of native +programming, including great app performance and full access to the platforms SDKs -Kotlin provides the following sharing mechanisms: +Kotlin provides the following code sharing mechanisms: * Share common code among [all platforms](multiplatform-share-on-platforms.md#share-code-on-all-platforms) used in your project. * Share code among [some platforms](multiplatform-share-on-platforms.md#share-code-on-similar-platforms) included in your project to reuse much of the code in similar platforms: From 05397f8ef2ae03bba67c42e4d68d28d32216573a Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Fri, 28 Apr 2023 14:56:27 +0200 Subject: [PATCH 06/27] Updated Kotlin for Android: * added Jetpack Compose and Compose Multiplatform * added new facts from Google * added CTA with cross-platform development --- docs/topics/android-overview.md | 46 +++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/docs/topics/android-overview.md b/docs/topics/android-overview.md index 0e65b8800e7..85984a7e44e 100644 --- a/docs/topics/android-overview.md +++ b/docs/topics/android-overview.md @@ -1,26 +1,38 @@ [//]: # (title: Kotlin for Android) -Android mobile development has been Kotlin-first since Google I/O in 2019. +Android mobile development has been [Kotlin-first](https://developer.android.com/kotlin/first) since Google I/O in 2019. + +Over 50% of professional Android developers use Kotlin as their primary language, while only 30% use Java as their +main language. 70% of developers whose primary language is Kotlin say that Kotlin makes them more productive. Using Kotlin for Android development, you can benefit from: -* **Less code combined with greater readability**. Spend less time writing your code and working to understand the code of others. -* **Mature language and environment**. Since its creation in 2011, Kotlin has developed continuously, not only as a language -but as a whole ecosystem with robust tooling. Now it's seamlessly integrated in Android Studio and is actively used by many companies -for developing Android applications. -* **Kotlin support in Android Jetpack and other libraries**. [KTX extensions](https://developer.android.com/kotlin/ktx) add Kotlin language features, -such as coroutines, extension functions, lambdas, and named parameters, to existing Android libraries. -* **Interoperability with Java**. You can use Kotlin along with the Java programming language in your applications without needing to migrate all your code -to Kotlin. -* **Support for multiplatform development**. You can use Kotlin for developing not only Android but also [iOS](https://kotlinlang.org/lp/multiplatform/), backend, and web applications. -Enjoy the benefits of sharing the common code among the platforms. -* **Code safety**. Less code and better readability lead to fewer errors. The Kotlin compiler detects these remaining errors, making the code safe. +* **Less code combined with greater readability**. Spend less time writing your code and working to understand the code + of others. +* **Fewer common errors**. Apps built with Kotlin are 20% less likely to crash based + on [Google's internal data](https://medium.com/androiddevelopers/fewer-crashes-and-more-stability-with-kotlin-b606c6a6ac04). +* **Kotlin support in Jetpack libraries**. [Jetpack Compose](https://developer.android.com/jetpack/compose) is Android's + recommended modern toolkit for building native UI in Kotlin. + [KTX extensions](https://developer.android.com/kotlin/ktx) add Kotlin language features, like coroutines, + extension functions, lambdas, and named parameters to existing Android libraries. +* **Support for multiplatform development**. Kotlin Multiplatform allows development for not only Android but + also [iOS](https://kotlinlang.org/lp/multiplatform/), backend, and web applications. + [Some Jetpack libraries](https://developer.android.com/kotlin/multiplatform) are already multiplatform. + [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), JetBrains' declarative UI framework + based on Kotlin and Jetpack Compose, makes it possible to share UIs across platforms – iOS, Android, desktop, and web. +* **Mature language and environment**. Since its creation in 2011, Kotlin has developed continuously, not only as a + language but as a whole ecosystem with robust tooling. Now it's seamlessly integrated into [Android Studio](https://developer.android.com/studio) + and is actively used by many companies for developing Android applications. +* **Interoperability with Java**. You can use Kotlin along with the Java programming language in your applications + without needing to migrate all your code to Kotlin. * **Easy learning**. Kotlin is very easy to learn, especially for Java developers. -* **Big community**. Kotlin has great support and many contributions from the community, which is growing all over the world. -According to Google, over 60% of the top 1000 apps on the Play Store use Kotlin. +* **Big community**. Kotlin has great support and many contributions from the community, which is growing all over the + world. Over 95% of the top thousand Android apps use Kotlin. -Many startups and Fortune 500 companies have already developed Android applications using Kotlin – see the list at [the Google website for Kotlin developers](https://developer.android.com/kotlin). +Many startups and Fortune 500 companies have already developed Android applications using Kotlin, see the list +on [the Google website for Android developers](https://developer.android.com/kotlin/stories). -If you want to start using Kotlin for Android development, read [Google's recommendation for getting started with Kotlin on Android](https://developer.android.com/kotlin/get-started). +To start using Kotlin for: -If you're new to Android and want to learn to create applications with Kotlin, check out [this Udacity course](https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012). \ No newline at end of file +* Android development, read [Google's documentation for developing Android apps with Kotlin](https://developer.android.com/kotlin/get-started). +* Developing cross-platform mobile applications, see [Get started with Kotlin Multiplatform for Android and iOS](multiplatform-mobile-getting-started.md). \ No newline at end of file From 1b23a64c8020ee78f550e99237f8bb8ff9f8c21c Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 13:04:59 +0200 Subject: [PATCH 07/27] Added the Toolbox case for sharing UIs in desktop apps to Kotlin Multiplaform --- docs/topics/multiplatform/multiplatform.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index 1624a4fbbed..ea31afa5f3a 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -38,6 +38,21 @@ as a dependency in other cross-platform projects. See the [Create and publish a multiplatform library](multiplatform-library.md) tutorial, where you will create a multiplatform library, test it, and publish it to Maven. +### Desktop applications + +Compose Multiplatform enables sharing UIs across desktop platforms – Windows, macOS, and Linux. Many applications, including +[JetBrains Toolbox app](https://www.jetbrains.com/toolbox-app/), have already adopted this approach. + +Here is what Victor Kropp, the Toolbox Team Lead, says: + +> After transitioning our desktop application to 100% Kotlin, we noticed improved productivity within our team. +> +> Using a single language means that every developer can make a feature from start to finish without switching contexts. +> It is faster, less error prone, and improves knowledge sharing among developers. +> The entire application also uses the same representation for data in memory, eliminating the need for extra (de)serialization steps. + +Learn more about the [Compose Multiplatform for Desktop Toolbox case](https://blog.jetbrains.com/kotlin/2021/12/compose-multiplatform-toolbox-case-study/). + ## Code sharing between platforms Kotlin Multiplatform enables you to maintain a single codebase for application logic while keeping advantages of native From 49ced8e988dd46b2df69f9bceeed82dc5cac4b34 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 13:28:05 +0200 Subject: [PATCH 08/27] Removed Compose Multiplatform for Web from Kotlin for JavaScript --- docs/topics/js/js-overview.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/docs/topics/js/js-overview.md b/docs/topics/js/js-overview.md index 62938091119..173d7ff2cb5 100644 --- a/docs/topics/js/js-overview.md +++ b/docs/topics/js/js-overview.md @@ -112,18 +112,6 @@ over the rendering of arbitrary UI elements, vector shapes, gradients, and custo For updates and discussions about the framework, join the [#doodle](https://kotlinlang.slack.com/messages/doodle) and [#javascript](https://kotlinlang.slack.com/archives/C0B8L3U69) channels in the [Kotlin Slack](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up). -### Compose for Web - -_Compose for Web_, a part of Compose Multiplatform, brings [Google's Jetpack Compose UI toolkit](https://developer.android.com/jetpack/compose) -to your browser. It allows you to build reactive web user interfaces using the concepts introduced by Jetpack Compose. -It provides a DOM API to describe your website, as well as an experimental set of multiplatform layout primitives. -Compose for Web also gives you the option to share parts of your UI code and logic across Android, desktop, and the web. - -You can find more information about Compose Multiplatform on its [landing page](https://www.jetbrains.com/lp/compose-mpp/). - -Join the [#compose-web](https://kotlinlang.slack.com/archives/C01F2HV7868) channel on the [Kotlin Slack](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up) -to discuss Compose for Web, or [#compose](https://kotlinlang.slack.com/archives/CJLTWPH7S) for general Compose Multiplatform discussions. - ## Kotlin/JS, Today and Tomorrow In [this video](https://www.youtube.com/watch?v=fZUL8_kgHXg), Kotlin Developer Advocate Sebastian Aigner explains the From c01c95b2440de6aac5783a2e8b790227bd17960b Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 13:46:46 +0200 Subject: [PATCH 09/27] Add Compose Multiplatform to Sharing code between platform in Kotlin Native. --- docs/topics/native/native-overview.md | 29 ++++++++++++++------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/topics/native/native-overview.md b/docs/topics/native/native-overview.md index cff562c0b21..e92ddc59c19 100644 --- a/docs/topics/native/native-overview.md +++ b/docs/topics/native/native-overview.md @@ -54,28 +54,29 @@ are pre-imported and included as Kotlin/Native libraries in the compiler package ## Sharing code between platforms -[Multiplatform projects](multiplatform.md) allow sharing common Kotlin code between multiple platforms, including Android, iOS, JVM, JavaScript, and native. -Multiplatform libraries provide required APIs for common Kotlin code and help develop shared parts of a project in -Kotlin in one place and share it with some or all target platforms. +[Kotlin Multiplatform](multiplatform.md) helps share common code across multiple platforms, including Android, iOS, JVM, +web, and native. Multiplatform libraries provide the necessary APIs for common Kotlin code and allow writing shared parts +of projects in Kotlin all in one place. -You can use [Kotlin Multiplatform for mobile](https://kotlinlang.org/lp/multiplatform/) to create multiplatform mobile applications with code shared between Android and iOS. +You can use the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) tutorial +to create applications and share business logic between iOS and Android. To share UIs among iOS, Android, desktop, and web, +try [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), +JetBrains' declarative UI framework based on Kotlin and [Jetpack Compose](https://developer.android.com/jetpack/compose). ## How to get started -### Tutorials and documentation - New to Kotlin? Take a look at [Getting started with Kotlin](getting-started.md). Recommended documentation: -* [Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) -* [Multiplatform documentation](multiplatform-get-started.md) -* [C interop](native-c-interop.md) -* [Swift/Objective-C interop](native-objc-interop.md) +* [Get started with Kotlin Multiplatform](multiplatform-getting-started.md) +* [Interoperability with C](native-c-interop.md) +* [Interoperability with Swift/Objective-C](native-objc-interop.md) Recommended tutorials: + * [Get started with Kotlin/Native](native-get-started.md) -* [Create your first cross-platform mobile application](multiplatform-mobile-create-first-app.md) -* [Types mapping between C and Kotlin/Native](mapping-primitive-data-types-from-c.md) -* [Kotlin/Native as a Dynamic Library](native-dynamic-libraries.md) -* [Kotlin/Native as an Apple Framework](apple-framework.md) +* [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) +* [Mapping primitive data types from C](mapping-primitive-data-types-from-c.md) +* [Kotlin/Native as a dynamic Library](native-dynamic-libraries.md) +* [Kotlin/Native as an Apple framework](apple-framework.md) From e99041ed55ff2df502d76f29ee29bcb6bb785cd9 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 14:01:34 +0200 Subject: [PATCH 10/27] Added Compose Multiplatform to Get started with Kotlin Multiplatform for mobile --- .../multiplatform-mobile-getting-started.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md b/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md index 2955a6ffc68..73d6d510106 100644 --- a/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md +++ b/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md @@ -13,16 +13,22 @@ The Kotlin applications will work on different operating systems like iOS, Andro One of the major Kotlin Multiplatform use cases is sharing code between mobile platforms. You can share application logic between iOS and Android apps and write platform-specific code only when you need to implement a native UI or work with platform APIs. +[Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a JetBrains' declarative UI framework based on Kotlin +and [Jetpack Compose](https://developer.android.com/jetpack/compose), gives you the option to push the sharing capabilities +of Kotlin Multiplatform beyond application logic. It allows you to implement your user interface once and then use it for all the platforms you target – iOS, Android, desktop, and web. + * Check out our [Kotlin Multiplatform Mobile Is in Beta](https://www.youtube.com/watch?v=CngKDGBlFxk) video to learn about the current state and future plans for the technology. -* You can also see how [different companies](https://kotlinlang.org/lp/multiplatform/case-studies) are already using Kotlin for +* See how [different companies](https://kotlinlang.org/lp/multiplatform/case-studies) are already using Kotlin for cross-platform app development in production. +* Try [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), + JetBrains' declarative UI framework based on Kotlin and [Jetpack Compose](https://developer.android.com/jetpack/compose) + to share UIs among iOS, Android, desktop, and web. Get to know Kotlin Multiplatform and create a mobile app that works on both Android and iOS by completing these steps: > This tutorial describes how to share application logic between iOS and Android using Kotlin Multiplatform. -> To learn about the full capabilities of the technology, check out [other use cases](multiplatform.md#full-stack-web-applications), -> such as full-stack web applications or multiplatform libraries. +> To learn about the full capabilities of the technology, check out [other use cases](multiplatform.md). > {type="tip"} From 72488c11e77bcadf251bedb7c59638a22888b13b Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 14:55:53 +0200 Subject: [PATCH 11/27] Added Sharing UIs using Compose Multiplatform to Tutorials of the tutorial on Creaing a full-stack web app in Wrap up --- .../topics/multiplatform-mobile/multiplatform-mobile-wrap-up.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topics/multiplatform-mobile/multiplatform-mobile-wrap-up.md b/docs/topics/multiplatform-mobile/multiplatform-mobile-wrap-up.md index d3687b0984b..06db1a1d65c 100644 --- a/docs/topics/multiplatform-mobile/multiplatform-mobile-wrap-up.md +++ b/docs/topics/multiplatform-mobile/multiplatform-mobile-wrap-up.md @@ -48,7 +48,7 @@ additional cross-platform mobile development tasks:
  • Make your Android app cross-platform
  • Create a multiplatform app using Ktor and SQLDelight
  • -
  • Build a full-stack web app with Kotlin Multiplatform
  • +
  • Share UIs between iOS and Android using Compose Multiplatform
  • See the curated list of sample projects
  • From b4e626c8cc5d7298940d23f3973bcc32920dcc79 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 15:08:54 +0200 Subject: [PATCH 12/27] Added Sharing UIs using Compose Multiplatform to Start from scratch in Get started with Kotlin Multiplatform; removed the Create a full-stack web app tutorial from the list --- .../multiplatform/multiplatform-get-started.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/topics/multiplatform/multiplatform-get-started.md b/docs/topics/multiplatform/multiplatform-get-started.md index b01bd77393f..da6d2562dfb 100644 --- a/docs/topics/multiplatform/multiplatform-get-started.md +++ b/docs/topics/multiplatform/multiplatform-get-started.md @@ -13,19 +13,16 @@ Learn more about [Kotlin Multiplatform benefits](multiplatform.md). ## Start from scratch -* [Create and publish a multiplatform library](multiplatform-library.md) teaches how to create a multiplatform -library available for JVM, JS, and Native and which can be used from any other common code (for example, shared with -Android and iOS). It also shows how to write tests which will be executed on all platforms and use an efficient implementation +* [Create and publish a multiplatform library](multiplatform-library.md): This tutorial teaches how to create a multiplatform +library available for the JVM, web, and native platforms, which can be used from any other common code (for example, shared with +Android and iOS). It also demonstrates how to write tests that will be executed on all platforms and use an efficient implementation provided by a specific platform. -* [Build a full-stack web app with Kotlin Multiplatform](multiplatform-full-stack-app.md) - teaches the concepts behind building an application that targets Kotlin/JVM and Kotlin/JS by building a client-server - application that makes use of shared code, serialization, and other multiplatform paradigms. It also provides a brief - introduction to working with Ktor both as a server- and client-side framework. - -* [Create your first cross-platform app](multiplatform-mobile-create-first-app.md) shows how to create a mobile +* [Create your first cross-platform app](multiplatform-mobile-create-first-app.md): This tutorial shows how to create a mobile application that works on Android and iOS with the help of the [Kotlin Multiplatform Mobile plugin for Android Studio](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile). - Create, run, and test your first multiplatform mobile application. + Learn how to create, run, and test your first multiplatform mobile application. + +* [Share UIs between iOS and Android using Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme): This tutorial shows how to create a Kotlin Multiplatform application that uses the [Compose Multiplatform UI framework](https://www.jetbrains.com/lp/compose-multiplatform/) for sharing UIs between iOS and Android. ## Dive deep into Kotlin Multiplatform From f949f3211c799d4401dfb216b1f22863fcc97a18 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 15:24:19 +0200 Subject: [PATCH 13/27] Added a question about sharing UIs to Multiplatform FAQ. --- .../multiplatform-mobile/multiplatform-mobile-faq.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md b/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md index 9a3612a068e..ec79a50c49c 100644 --- a/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md +++ b/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md @@ -12,6 +12,14 @@ designed for mobile development, such as CocoaPods integration and the [Android You may want to watch this introductory [video](https://www.youtube.com/watch?v=mdN6P6RI__k), in which Kotlin Product Marketing Manager Ekaterina Petrova explains in detail what Kotlin Multiplatform for mobile is and how you can use it in your projects. With Ekaterina, you'll set up an environment and prepare for creating your first cross-platform mobile application with Kotlin Multiplatform. +### Can I share UIs with Kotlin Multiplatform? + +Yes, you can share UIs using [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a JetBrains' declarative UI framework based on Kotlin and [Jetpack Compose](https://developer.android.com/jetpack/compose). +This framework allows you to create shared UI components for platforms like iOS, Android, desktop, and web, enabling you +to maintain a consistent user interface across different devices and platforms. + +Check out the [Compose Multiplatform FAQ](https://github.com/JetBrains/compose-multiplatform/blob/master/docs/FAQ.md#compose-multiplatform-faq). + ### What is the Kotlin Multiplatform Mobile plugin? The _[Kotlin Multiplatform Mobile plugin](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile)_ From 247fe1c098021a555f0aec91f4e2e36b235c319c Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 15:32:35 +0200 Subject: [PATCH 14/27] Removed JS from the diagram in Kotlin Multiplatform. --- ...n-multiplatform-hierarchical-structure.svg | 60 +++++++++---------- docs/topics/multiplatform/multiplatform.md | 2 +- 2 files changed, 30 insertions(+), 32 deletions(-) diff --git a/docs/images/multiplatform/kotlin-multiplatform-hierarchical-structure.svg b/docs/images/multiplatform/kotlin-multiplatform-hierarchical-structure.svg index ef71f387e62..7552a86bc74 100644 --- a/docs/images/multiplatform/kotlin-multiplatform-hierarchical-structure.svg +++ b/docs/images/multiplatform/kotlin-multiplatform-hierarchical-structure.svg @@ -1,32 +1,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index ea31afa5f3a..5d107f03092 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -63,7 +63,7 @@ Kotlin provides the following code sharing mechanisms: * Share common code among [all platforms](multiplatform-share-on-platforms.md#share-code-on-all-platforms) used in your project. * Share code among [some platforms](multiplatform-share-on-platforms.md#share-code-on-similar-platforms) included in your project to reuse much of the code in similar platforms: - ![Code shared for iOS targets](kotlin-multiplatform-hierarchical-structure.svg){width=700} + ![Code shared across different platforms](kotlin-multiplatform-hierarchical-structure.svg){width=700} * If you need to access platform-specific APIs from the shared code, use the Kotlin mechanism of [expected and actual declarations](multiplatform-connect-to-apis.md). From 386a5e804b08f36a8f2abdda53b5e296a2dcd90b Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Thu, 4 May 2023 12:55:20 +0200 Subject: [PATCH 15/27] Updated Kotlin for Android after review from Google --- docs/topics/android-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topics/android-overview.md b/docs/topics/android-overview.md index 85984a7e44e..71e84b1b8a4 100644 --- a/docs/topics/android-overview.md +++ b/docs/topics/android-overview.md @@ -35,4 +35,4 @@ on [the Google website for Android developers](https://developer.android.com/kot To start using Kotlin for: * Android development, read [Google's documentation for developing Android apps with Kotlin](https://developer.android.com/kotlin/get-started). -* Developing cross-platform mobile applications, see [Get started with Kotlin Multiplatform for Android and iOS](multiplatform-mobile-getting-started.md). \ No newline at end of file +* Developing cross-platform mobile applications, see [Get started with Kotlin Multiplatform for Android and iOS](multiplatform-mobile-getting-started.md). From 43812846f0d94beecafc89dd4c50148982c71688 Mon Sep 17 00:00:00 2001 From: Danil Pavlov Date: Thu, 11 May 2023 20:18:08 +0200 Subject: [PATCH 16/27] update: techwriters review --- .../multiplatform-mobile-faq.md | 8 ++-- .../multiplatform-mobile-getting-started.md | 4 -- .../multiplatform-get-started.md | 24 ++++-------- docs/topics/multiplatform/multiplatform.md | 39 +++++++++---------- 4 files changed, 32 insertions(+), 43 deletions(-) diff --git a/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md b/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md index ec79a50c49c..a064d1fc5cb 100644 --- a/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md +++ b/docs/topics/multiplatform-mobile/multiplatform-mobile-faq.md @@ -14,11 +14,13 @@ With Ekaterina, you'll set up an environment and prepare for creating your first ### Can I share UIs with Kotlin Multiplatform? -Yes, you can share UIs using [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a JetBrains' declarative UI framework based on Kotlin and [Jetpack Compose](https://developer.android.com/jetpack/compose). -This framework allows you to create shared UI components for platforms like iOS, Android, desktop, and web, enabling you +Yes, you can share UIs using [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), +JetBrains' declarative UI framework based on Kotlin and [Jetpack Compose](https://developer.android.com/jetpack/compose). +This framework allows you to create shared UI components for platforms like iOS, Android, desktop, and web, helping you to maintain a consistent user interface across different devices and platforms. -Check out the [Compose Multiplatform FAQ](https://github.com/JetBrains/compose-multiplatform/blob/master/docs/FAQ.md#compose-multiplatform-faq). +Check out the [Compose Multiplatform FAQ](https://github.com/JetBrains/compose-multiplatform/blob/master/docs/FAQ.md#compose-multiplatform-faq) +to learn more. ### What is the Kotlin Multiplatform Mobile plugin? diff --git a/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md b/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md index 73d6d510106..b2b4d39dc60 100644 --- a/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md +++ b/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md @@ -13,10 +13,6 @@ The Kotlin applications will work on different operating systems like iOS, Andro One of the major Kotlin Multiplatform use cases is sharing code between mobile platforms. You can share application logic between iOS and Android apps and write platform-specific code only when you need to implement a native UI or work with platform APIs. -[Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a JetBrains' declarative UI framework based on Kotlin -and [Jetpack Compose](https://developer.android.com/jetpack/compose), gives you the option to push the sharing capabilities -of Kotlin Multiplatform beyond application logic. It allows you to implement your user interface once and then use it for all the platforms you target – iOS, Android, desktop, and web. - * Check out our [Kotlin Multiplatform Mobile Is in Beta](https://www.youtube.com/watch?v=CngKDGBlFxk) video to learn about the current state and future plans for the technology. * See how [different companies](https://kotlinlang.org/lp/multiplatform/case-studies) are already using Kotlin for diff --git a/docs/topics/multiplatform/multiplatform-get-started.md b/docs/topics/multiplatform/multiplatform-get-started.md index da6d2562dfb..7b84155b78e 100644 --- a/docs/topics/multiplatform/multiplatform-get-started.md +++ b/docs/topics/multiplatform/multiplatform-get-started.md @@ -13,35 +13,27 @@ Learn more about [Kotlin Multiplatform benefits](multiplatform.md). ## Start from scratch -* [Create and publish a multiplatform library](multiplatform-library.md): This tutorial teaches how to create a multiplatform -library available for the JVM, web, and native platforms, which can be used from any other common code (for example, shared with -Android and iOS). It also demonstrates how to write tests that will be executed on all platforms and use an efficient implementation - provided by a specific platform. - -* [Create your first cross-platform app](multiplatform-mobile-create-first-app.md): This tutorial shows how to create a mobile +* [Create and publish a multiplatform library](multiplatform-library.md). Complete a project for JVM, web, + and native platforms, which can be used from any other common code (for example, shared with Android and iOS). + Learn how to write tests that can be executed on all platforms and use an efficient implementation provided by a specific platform. +* [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md). Create your first cross-platform application that works on Android and iOS with the help of the [Kotlin Multiplatform Mobile plugin for Android Studio](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile). - Learn how to create, run, and test your first multiplatform mobile application. - -* [Share UIs between iOS and Android using Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme): This tutorial shows how to create a Kotlin Multiplatform application that uses the [Compose Multiplatform UI framework](https://www.jetbrains.com/lp/compose-multiplatform/) for sharing UIs between iOS and Android. + Learn how to create, run, and add dependencies to multiplatform mobile applications. +* [Share UIs between iOS and Android](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme). + Create a Kotlin Multiplatform application that uses the [Compose Multiplatform UI framework](https://www.jetbrains.com/lp/compose-multiplatform/) + for sharing UIs between iOS and Android. ## Dive deep into Kotlin Multiplatform Once you have gained some experience with Kotlin Multiplatform and want to know how to solve particular cross-platform development tasks: * [Share code on platforms](multiplatform-share-on-platforms.md) in your Kotlin Multiplatform project. - * [Connect to platform-specific APIs](multiplatform-connect-to-apis.md) using the Kotlin mechanism of expected and actual declarations. - * [Set up targets manually](multiplatform-set-up-targets.md) for your Kotlin Multiplatform project. - * [Add dependencies](multiplatform-add-dependencies.md) on the standard, test, or another kotlinx library. - * [Configure compilations](multiplatform-configure-compilations.md) for production and test purposes in your project. - * [Run tests](multiplatform-run-tests.md) for JVM, JavaScript, Android, Linux, Windows, macOS, iOS, watchOS, and tvOS simulators. - * [Publish a multiplatform library](multiplatform-publish-lib.md) to the Maven repository. - * [Build native binaries](multiplatform-build-native-binaries.md) as executables or shared libraries, like universal frameworks or XCFrameworks. ## Get help diff --git a/docs/topics/multiplatform/multiplatform.md b/docs/topics/multiplatform/multiplatform.md index 5d107f03092..888c31d1271 100644 --- a/docs/topics/multiplatform/multiplatform.md +++ b/docs/topics/multiplatform/multiplatform.md @@ -18,16 +18,21 @@ while retaining the flexibility and benefits of native programming. ### Android and iOS applications Sharing code between mobile platforms is a major Kotlin Multiplatform use cases. With Kotlin Multiplatform for mobile, -you can build cross-platform mobile applications that share code between Android and iOS, such as networking, data storage -and data validation, analytics, computations, and other application logic. +you can build cross-platform mobile applications that share code between Android and iOS to implement networking, +data storage and data validation, analytics, computations, and other application logic. -Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a Kotlin-based declarative UI framework developed by JetBrains, you -can also share UIs across Android and iOS to create fully cross-platform apps. +Check out the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) and +[Create a multiplatform app using Ktor and SQLDelight](multiplatform-mobile-ktor-sqldelight.md) tutorials, +where you will create applications for Android and iOS that include a module with shared code for both platforms. + +Thanks to [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), +a Kotlin-based declarative UI framework developed by JetBrains, +you can also share UIs across Android and iOS to create fully cross-platform apps. ![Sharing different levels and UI](multiplatform+compose.svg){width=500} -Check out the [Get started with Kotlin Multiplatform for mobile](multiplatform-mobile-getting-started.md) and [Get started with Compose for iOS](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme) tutorials, -where you will create applications for Android and iOS with shared code for both platforms. +Try this [Compose Multiplatform mobile application](https://github.com/JetBrains/compose-multiplatform-ios-android-template/#readme) +template to create your own mobile application with UIs shared between both platforms. ### Multiplatform libraries @@ -40,30 +45,24 @@ a multiplatform library, test it, and publish it to Maven. ### Desktop applications -Compose Multiplatform enables sharing UIs across desktop platforms – Windows, macOS, and Linux. Many applications, including -[JetBrains Toolbox app](https://www.jetbrains.com/toolbox-app/), have already adopted this approach. - -Here is what Victor Kropp, the Toolbox Team Lead, says: - -> After transitioning our desktop application to 100% Kotlin, we noticed improved productivity within our team. -> -> Using a single language means that every developer can make a feature from start to finish without switching contexts. -> It is faster, less error prone, and improves knowledge sharing among developers. -> The entire application also uses the same representation for data in memory, eliminating the need for extra (de)serialization steps. +Compose Multiplatform helps share UIs across desktop platforms like Windows, macOS, and Linux. Many applications, +including the [JetBrains Toolbox app](https://blog.jetbrains.com/kotlin/2021/12/compose-multiplatform-toolbox-case-study/), +have already adopted this approach. -Learn more about the [Compose Multiplatform for Desktop Toolbox case](https://blog.jetbrains.com/kotlin/2021/12/compose-multiplatform-toolbox-case-study/). +Try this [Compose Multiplatform desktop application](https://github.com/JetBrains/compose-multiplatform-desktop-template#readme) +template to create your own project with UIs shared among desktop platforms. ## Code sharing between platforms -Kotlin Multiplatform enables you to maintain a single codebase for application logic while keeping advantages of native -programming, including great app performance and full access to the platforms SDKs +Kotlin Multiplatform allows you to maintain a single codebase of the application logic for [different platforms](multiplatform-dsl-reference.md#targets). +You also get advantages of native programming, including great performance and full access to platform SDKs. Kotlin provides the following code sharing mechanisms: * Share common code among [all platforms](multiplatform-share-on-platforms.md#share-code-on-all-platforms) used in your project. * Share code among [some platforms](multiplatform-share-on-platforms.md#share-code-on-similar-platforms) included in your project to reuse much of the code in similar platforms: - ![Code shared across different platforms](kotlin-multiplatform-hierarchical-structure.svg){width=700} + ![Code shared across different platforms](kotlin-multiplatform-hierarchical-structure.svg){width=700} * If you need to access platform-specific APIs from the shared code, use the Kotlin mechanism of [expected and actual declarations](multiplatform-connect-to-apis.md). From 944d101b864040cc834ea8d4fb656f37c2b4fef5 Mon Sep 17 00:00:00 2001 From: Danil Pavlov Date: Fri, 12 May 2023 16:51:04 +0200 Subject: [PATCH 17/27] fix: broken link --- docs/topics/native/native-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topics/native/native-overview.md b/docs/topics/native/native-overview.md index e92ddc59c19..6dfa1b24ed3 100644 --- a/docs/topics/native/native-overview.md +++ b/docs/topics/native/native-overview.md @@ -69,7 +69,7 @@ New to Kotlin? Take a look at [Getting started with Kotlin](getting-started.md). Recommended documentation: -* [Get started with Kotlin Multiplatform](multiplatform-getting-started.md) +* [Get started with Kotlin Multiplatform](multiplatform-get-started.md) * [Interoperability with C](native-c-interop.md) * [Interoperability with Swift/Objective-C](native-objc-interop.md) From 3a690dc2674b6c9285434e479b284a9d58856522 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 14:01:34 +0200 Subject: [PATCH 18/27] Added Compose Multiplatform to Get started with Kotlin Multiplatform for mobile --- .../multiplatform-mobile-getting-started.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md b/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md index b2b4d39dc60..73d6d510106 100644 --- a/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md +++ b/docs/topics/multiplatform-mobile/multiplatform-mobile-getting-started.md @@ -13,6 +13,10 @@ The Kotlin applications will work on different operating systems like iOS, Andro One of the major Kotlin Multiplatform use cases is sharing code between mobile platforms. You can share application logic between iOS and Android apps and write platform-specific code only when you need to implement a native UI or work with platform APIs. +[Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), a JetBrains' declarative UI framework based on Kotlin +and [Jetpack Compose](https://developer.android.com/jetpack/compose), gives you the option to push the sharing capabilities +of Kotlin Multiplatform beyond application logic. It allows you to implement your user interface once and then use it for all the platforms you target – iOS, Android, desktop, and web. + * Check out our [Kotlin Multiplatform Mobile Is in Beta](https://www.youtube.com/watch?v=CngKDGBlFxk) video to learn about the current state and future plans for the technology. * See how [different companies](https://kotlinlang.org/lp/multiplatform/case-studies) are already using Kotlin for From 089fbf6be9944b942d577d79e95f68de024f2392 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 21:01:36 +0200 Subject: [PATCH 19/27] Removed multiple Kotlin/JS docs as agreed with Egor Tolstoy and Nastya Kapanina since we don't want to motivate users to create new Kotlin/JS projects. --- docs/images/get-started/js-new-project-1.png | Bin 239835 -> 0 bytes docs/images/get-started/js-new-project-2.png | Bin 109622 -> 0 bytes docs/kr.tree | 6 +- docs/topics/js/js-get-started.md | 159 --- docs/topics/js/js-overview.md | 93 +- docs/topics/js/js-project-setup.md | 9 +- docs/topics/js/js-samples.md | 72 -- .../multiplatform-full-stack-app.md | 986 ------------------ .../multiplatform/multiplatform-library.md | 1 - 9 files changed, 5 insertions(+), 1321 deletions(-) delete mode 100644 docs/images/get-started/js-new-project-1.png delete mode 100644 docs/images/get-started/js-new-project-2.png delete mode 100644 docs/topics/js/js-get-started.md delete mode 100644 docs/topics/js/js-samples.md delete mode 100644 docs/topics/multiplatform/multiplatform-full-stack-app.md diff --git a/docs/images/get-started/js-new-project-1.png b/docs/images/get-started/js-new-project-1.png deleted file mode 100644 index f3c5c9dbd53c71f95c38cb87236f13a4cd8eb279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239835 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%0D!f43lPFWpp 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
    - - - -``` -{validate="false"} - -This file is placed in the `common` resources instead of a `jvm` source set to make tasks for running the JS application -in the browser (`jsBrowserDevelopmentRun` and `jsBrowserProductionRun`) accessible to the file as well. It's helpful if -you need to run only the browser application without the backend. - -While you don't need to make sure that the file is properly available on the server, you still need to instruct Ktor to -provide the `.html` and `.js` files to the browser when requested. - -#### Relevant Gradle configuration for the frontend {initial-collapse-state="collapsed"} - -The Gradle configuration for the application contains a snippet that makes the execution and packaging of the -server-side JVM application dependent on the build of your frontend application while respecting the settings -regarding `development` and `production` from the environment variable. It makes sure that whenever a `jar` file is -built from the application, it includes the Kotlin/JS code: - -```kotlin -// include JS artifacts in any generated JAR -tasks.getByName("jvmJar") { - val taskName = if (project.hasProperty("isProduction") - || project.gradle.startParameter.taskNames.contains("installDist") - ) { - "jsBrowserProductionWebpack" - } else { - "jsBrowserDevelopmentWebpack" - } - val webpackTask = tasks.getByName(taskName) - dependsOn(webpackTask) // make sure JS gets compiled first - from(File(webpackTask.destinationDirectory, webpackTask.outputFileName)) // bring output file along into the JAR -} -``` - -The `jvmJar` task modified here is called by the `application` plugin, which is responsible for the `run` task, and -the `distributions` plugin, which is responsible for the `installDist` task, amongst others. This means that the -combined build will work when you `run` your application, and also when you prepare it for deployment to another target -system or cloud platform. - -To ensure that the `run` task properly recognizes the JS artifacts, the classpath is adjusted as follows: - -```kotlin -tasks.getByName("run") { - classpath(tasks.getByName("jvmJar")) // so that the JS artifacts generated by `jvmJar` can be found and served -} -``` - -### Serve HTML and JavaScript files from Ktor - -For simplicity, the `index.html` file will be served on the root route `/` and expose the JavaScript artifact in the -root directory. - -1. In `src/jvmMain/kotlin/Server.kt`, add the corresponding routes to the `routing` block: - - ```kotlin - get("/") { - call.respondText( - this::class.java.classLoader.getResource("index.html")!!.readText(), - ContentType.Text.Html - ) - } - static("/") { - resources("") - } - route(ShoppingListItem.path) { - // ... - } - ``` - -2. To confirm that everything went as planned, run the application again with the Gradle `run` task. -3. Navigate to [`http://localhost:9090/`](http://localhost:9090/). You should see a page saying "Hello, Kotlin/JS": - - ![Hello, Kotlin/JS output](hello-kotlin-js-output.png){width=500} - -### Edit configuration - -While you are developing, the build system generates _development_ artifacts. This means that no optimizations are -applied when the Kotlin code is turned into JavaScript. That makes compile times faster but also results in larger JS -files. When you deploy your application to the web, this is something you want to avoid. - -To instruct Gradle to generate optimized production assets, set the necessary environment -variable. If you are running your application on a deployment system, you can -configure it to set this environment variable during the build. If you want to try out production mode locally, you can -do it in the terminal or by adding the variable to the run configuration: - -1. In IntelliJ IDEA, select the **Edit Configurations** action: - - ![Edit run configuration in IntelliJ IDEA](edit-run-configurations.png){width=700} - -2. In the **Run/Debug Configurations** menu, set the environment variable: - - ```none - ORG_GRADLE_PROJECT_isProduction=true - ``` - - ![Set the environment variable](set-environment-variable.png){width=700} - -Subsequent builds with this run configuration will perform all available optimizations for the frontend part of the -application, including eliminating dead code. They will still be slower than development builds, so it would be good to -remove this flag again while you are developing. - -## Build the frontend - -To render and manage user interface elements, use the popular framework [React](https://reactjs.org/) together with the -available [wrappers](https://github.com/JetBrains/kotlin-wrappers/) for Kotlin. Setting up a full project with React -will allow you to re-use it and its configuration as a starting point for more complex multiplatform -applications. - -For a more in-depth view of typical workflows and how apps are developed with React and Kotlin/JS, see -the [Build a web application with React and Kotlin/JS](js-react.md) tutorial. - -### Write the API client - -To display data, you need to obtain it from the server. For this, build a small API client. - -This API client will use the [`ktor-clients`](https://ktor.io/clients/index.html) library to send requests to HTTP -endpoints. Ktor clients use Kotlin's coroutines to provide non-blocking networking and support plugins like the Ktor -server. - -In this configuration, the `JsonFeature` uses `kotlinx.serialization` to provide a way to create typesafe HTTP requests. -It takes care of automatically converting between Kotlin objects and their JSON representation and vice versa. - -By leveraging these properties, you can create an API wrapper as a set of suspending functions that either accept or -return `ShoppingItems`. Create a file called `Api.kt` and implement them in `src/jsMain/kotlin`: - -```kotlin -import io.ktor.http.* -import io.ktor.client.* -import io.ktor.client.call.* -import io.ktor.client.plugins.contentnegotiation.* -import io.ktor.client.request.* -import io.ktor.serialization.kotlinx.json.* - -val jsonClient = HttpClient { - install(ContentNegotiation) { - json() - } -} - -suspend fun getShoppingList(): List { - return jsonClient.get(ShoppingListItem.path).body() -} - -suspend fun addShoppingListItem(shoppingListItem: ShoppingListItem) { - jsonClient.post(ShoppingListItem.path) { - contentType(ContentType.Application.Json) - setBody(shoppingListItem) - } -} - -suspend fun deleteShoppingListItem(shoppingListItem: ShoppingListItem) { - jsonClient.delete(ShoppingListItem.path + "/${shoppingListItem.id}") -} -``` - -### Build the user interface - -You've laid the groundwork on the client and have a clean API to access the data provided by the server. Now you can -work on displaying the shopping list on the screen in a React application. - -#### Configure an entry point for the application - -Instead of rendering a simple "Hello, Kotlin/JS" string, make the application render a functional `App` component. For -that, replace the content inside `src/jsMain/kotlin/Main.kt` with the following: - -```kotlin -import kotlinx.browser.document -import react.create -import react.dom.client.createRoot - -fun main() { - val container = document.getElementById("root") ?: error("Couldn't find container!") - createRoot(container).render(App.create()) -} -``` - -#### Build and render the shopping list - -Next, implement the `App` component. For the shopping list application, it needs to: - -* Keep the "local state" of the shopping list to understand which elements to display. -* Load the shopping list elements from the server and set the state accordingly. -* Provide React with instructions on how to render the list. - -Based on these requirements, you can implement the `App` component as follows: - -1. Create and fill the `src/jsMain/kotlin/App.kt` file: - - ```kotlin - import react.* - import kotlinx.coroutines.* - import react.dom.html.ReactHTML.h1 - import react.dom.html.ReactHTML.li - import react.dom.html.ReactHTML.ul - - private val scope = MainScope() - - val App = FC { - var shoppingList by useState(emptyList()) - - useEffectOnce { - scope.launch { - shoppingList = getShoppingList() - } - } - - h1 { - +"Full-Stack Shopping List" - } - ul { - shoppingList.sortedByDescending(ShoppingListItem::priority).forEach { item -> - li { - key = item.toString() - +"[${item.priority}] ${item.desc} " - } - } - } - } - ``` - - * Here, the Kotlin DSL is used to define the HTML representation of the application. - * `launch` is used to obtain the list of `ShoppingListItem`s from the API when the component is first initialized. - * The React hooks `useEffectOnce` and `useState` help you use React's functionality concisely. For more information on how - React hooks work, check out the [official React documentation](https://reactjs.org/docs/hooks-overview.html). To learn - more about React with Kotlin/JS, see the [Build a web application with React and Kotlin/JS](js-react.md) tutorial. -2. Start the application using the Gradle `run` task. -3. Navigate to [`http://localhost:9090/`](http://localhost:9090/) to see the list: - - ![New shopping list rendering](new-shopping-list-rendering.png){width=500} - -#### Add an input field component - -Next, allow users to add new entries to the shopping list using a text input field. You'll need an input component that -provides a callback when users submit their entry to the shopping list to receive input. - -1. Create the `src/jsMain/kotlin/InputComponent.kt` file and fill it with the following definition: - - ```kotlin - import org.w3c.dom.HTMLFormElement - import react.* - import org.w3c.dom.HTMLInputElement - import react.dom.events.ChangeEventHandler - import react.dom.events.FormEventHandler - import react.dom.html.InputType - import react.dom.html.ReactHTML.form - import react.dom.html.ReactHTML.input - - external interface InputProps : Props { - var onSubmit: (String) -> Unit - } - - val inputComponent = FC { props -> - val (text, setText) = useState("") - - val submitHandler: FormEventHandler = { - it.preventDefault() - setText("") - props.onSubmit(text) - } - - val changeHandler: ChangeEventHandler = { - setText(it.target.value) - } - - form { - onSubmit = submitHandler - input { - type = InputType.text - onChange = changeHandler - value = text - } - } - } - ``` - - The `inputComponent` keeps track of its internal state (what the user has typed so far) and exposes an `onSubmit` - handler that gets called when the user submits the form (usually by pressing the `Enter` key). - -2. To use this `inputComponent` from the application, add the following snippet to `src/jsMain/kotlin/App.kt` at the - bottom of the `FC` block (after the closing brace for the `ul` element): - - ```kotlin - inputComponent { - onSubmit = { input -> - val cartItem = ShoppingListItem(input.replace("!", ""), input.count { it == '!' }) - scope.launch { - addShoppingListItem(cartItem) - shoppingList = getShoppingList() - } - } - } - ``` - - * When users submit text, a new `ShoppingListItem` is created. Its priority is set to be the number of exclamation - points in the input, and its description is the input with all exclamation points removed. This turns `Peaches!! 🍑` - into a `ShoppingListItem(desc="Peaches 🍑", priority=2)`. - * The generated `ShoppingListItem` gets sent to the server with the client you've built before. - * Then, the UI is updated by obtaining the new list of `ShoppingListItem`s from the server, updating the application - state, and letting React re-render the contents. - -#### Implement item removal - -Add the ability to remove the finished items from the list so that it doesn't get too long. You can modify an existing list rather -than adding another UI element (like a "delete" button). When users click one of the items in the list, the app deletes it. - -To achieve this, pass a corresponding handler to `onClick` of the list elements: - -1. In `src/jsMain/kotlin/App.kt`, update the `li` block (inside the `ul` block): - - ```kotlin - li { - key = item.toString() - onClick = { - scope.launch { - deleteShoppingListItem(item) - shoppingList = getShoppingList() - } - } - +"[${item.priority}] ${item.desc} " - } - ``` - - The API client is invoked along with the element that should be removed. The server updates the shopping list, which - re-renders the user interface. - -2. Start the application using the Gradle `run` task. -3. Navigate to [`http://localhost:9090/`](http://localhost:9090/), and try adding and removing elements from the list: - - ![Final shopping list](finished-shopping-list.gif){width=500} - -## Include a database to store data - -Currently, the application doesn't save data, meaning that the shopping list vanishes when you terminate -the server process. To fix that, use the MongoDB database to store and retrieve shopping list items even when -the server shuts down. - -MongoDB is simple, fast to set up, has library support for Kotlin, and provides simple, [NoSQL](https://en.wikipedia.org/wiki/NoSQL) -document storage, which is more than enough for a basic application. You are free to equip your application with a different -mechanism for data storage. - -To provide all of the functionality used in this section, you'll need to include several libraries from the Kotlin and -JavaScript (npm) ecosystems. See the `jsMain` dependency block in the `build.gradle.kts` file with the full setup. - -### Set up MongoDB - -Install MongoDB Community Edition on your local machine from the [official MongoDB website](https://docs.mongodb.com/manual/installation/#mongodb-community-edition-installation-tutorials). -Alternatively, you can use a containerization tool like [podman](https://podman.io/) to run a containerized instance of MongoDB. - -After installation, ensure that you are running the `mongodb-community` service for the rest of the tutorial. You'll use -it to store and retrieve list entries. - -### Include KMongo in the process - -[KMongo](https://litote.org/kmongo/) is a community-created Kotlin framework that makes it easy to work with MongoDB -from Kotlin/JVM code. It also works nicely with `kotlinx.serialization`, which is used to facilitate communication -between client and server. - -By making the code use an external database, you no longer need to keep a collection of `shoppingListItems` on the -server. Instead, set up a database client and obtain a database and a collection from it. - -1. Inside `src/jvmMain/kotlin/Server.kt`, remove the declaration for `shoppingList` and add the following three - top-level variables: - - ```kotlin - val client = KMongo.createClient().coroutine - val database = client.getDatabase("shoppingList") - val collection = database.getCollection() - ``` - -2. In `src/jvmMain/kotlin/Server.kt`, replace definitions for the GET, POST, and DELETE routes to a `ShoppingListItem` - to make use of the available collection operations: - - ```kotlin - get { - call.respond(collection.find().toList()) - } - post { - collection.insertOne(call.receive()) - call.respond(HttpStatusCode.OK) - } - delete("/{id}") { - val id = call.parameters["id"]?.toInt() ?: error("Invalid delete request") - collection.deleteOne(ShoppingListItem::id eq id) - call.respond(HttpStatusCode.OK) - } - ``` - - In the DELETE request, KMongo's [type-safe queries](https://litote.org/kmongo/typed-queries/) are used to - obtain and remove the correct `ShoppingListItem` from the database. - -3. Start the server using the `run` task, and navigate to [`http://localhost:9090/`](http://localhost:9090/). On the first - start, you'll be greeted by an empty shopping list as is expected when querying an empty database. -4. Add some items to your shopping list. The server will save them to the database. -5. To check this, restart the server and reload the page. - -### Inspect MongoDB - -To see what kind of information is actually saved in the database, you can inspect the database using external tools. - -If you have IntelliJ IDEA Ultimate Edition or DataGrip, you can inspect the database contents with these tools. -Alternatively, you can use the [`mongosh`](https://www.mongodb.com/docs/mongodb-shell/) command-line client. - -1. To connect to the local MongoDB instance, in IntelliJ IDEA Ultimate or - DataGrip, go to the **Database** tab and select **+** | **Data Source** | **MongoDB**: - - ![Create a MongoDB data source](mongodb-data-source.png){width=700} - -2. If it's your first time connecting to a MongoDB database this way, you might be prompted to download missing drivers: - - ![Download missing drivers for MongoDB](download-missing-drivers.png){width=700} - -3. When working with a local MongoDB installation that uses the default settings, no adjustments to the - configuration are necessary. - You can test the connection with the **Test Connection** button, which should output the MongoDB version and some - additional information. - -4. Click **OK**. Now you can use the **Database** window to navigate to your collection and look at everything stored in it: - - ![Use the Database tool for collection analysis](database-tool.png){width=700} - -#### Relevant Gradle configuration for Kmongo {initial-collapse-state="collapsed"} - -Kmongo is added with a single dependency to the project, a specific version that includes coroutine and serialization -support out of the box: - -```kotlin -val jvmMain by getting { - dependencies { - // ... - implementation("org.litote.kmongo:kmongo-coroutine-serialization:$kmongoVersion") - } -} -``` - -## Deploy to the cloud - -Instead of opening your app on `localhost`, you can bring it onto the web by deploying it to the cloud. - -To get the application running on managed infrastructure (such as cloud providers), you need to integrate it with the -environment variables provided by the selected platform and add any required configurations to the project. Specifically, -pass the application port and MongoDB connection string. - -> During application deployment, you might need to change the firewall rules to allow the application to access the -> database. For more details, see the [MongoDB documentation](https://docs.atlas.mongodb.com/security/ip-access-list/). -> -{type="note"} - -### Specify the PORT variable - -On managed platforms, the port on which the application should run is often determined externally and exposed through -the `PORT` environment variable. If present, you can respect this setting by configuring `embeddedServer` -in `src/jvmMain/kotlin/Server.kt`: - -```kotlin -fun main() { - val port = System.getenv("PORT")?.toInt() ?: 9090 - embeddedServer(Netty, port) { - // ... - } -} -``` - -Ktor also supports configuration files that can respect environment variables. To learn more about how to use them, -check out the [official documentation](https://ktor.io/docs/configurations.html#hocon-overview). - -### Specify the MONGODB_URI variable - -Managed platforms often expose connection strings through environment variables – for MongoDB, this might be -the `MONGODB_URI` string, which needs to be used by the client to connect to the database. Depending on the specific -MongoDB instance you're trying to connect to, you might need to append the `retryWrites=false` parameter to the connection -string. - -To properly satisfy these requirements, instantiate the `client` and `database` variables -in `src/jvmMain/kotlin/Server.kt`: - -```kotlin -val connectionString: ConnectionString? = System.getenv("MONGODB_URI")?.let { - ConnectionString("$it?retryWrites=false") -} - -val client = - if (connectionString != null) KMongo.createClient(connectionString).coroutine else KMongo.createClient().coroutine -val database = client.getDatabase(connectionString?.database ?: "shoppingList") -``` - -This ensures that the `client` is created based on this information whenever the environment variables are set. -Otherwise (for instance, on `localhost`), the database connection is instantiated as before. - -### Create the Procfile - -Managed cloud platforms like Heroku or PaaS implementations like [Dokku](https://github.com/dokku/dokku) also handle -the lifecycle of your application. To do so, they require an "entry point" definition. These two platforms use -a file called `Procfile` that you have in the project root directory. It points to the output generated by the `stage` task -(which is included in the Gradle template already): - -```shell -web: ./build/install/shoppingList/bin/shoppingList -``` - -### Turn on production mode - -To turn on a compilation with optimizations for the JavaScript assets, pass another flag to the build -process. In the **Run/Debug Configurations** menu, set the environment variable `ORG_GRADLE_PROJECT_isProduction` to `true`. -You can set this environment variable when you deploy the application to the target environment. - -> You can find the finished application on GitHub on the [`final` branch](https://github.com/kotlin-hands-on/jvm-js-fullstack/tree/final). -> -{type="note"} - -#### Relevant Gradle configuration {initial-collapse-state="collapsed"} - -The `stage` task is an alias for `installDist`: - -```kotlin -// Alias "installDist" as "stage" (for cloud providers) -tasks.create("stage") { - dependsOn(tasks.getByName("installDist")) -} - -// only necessary until https://youtrack.jetbrains.com/issue/KT-37964 is resolved -distributions { - main { - contents { - from("$buildDir/libs") { - rename("${rootProject.name}-jvm", rootProject.name) - into("lib") - } - } - } -} -``` - -## What's next - -#### Add more features {initial-collapse-state="collapsed"} - -See how your application can be expanded and improved: - -* **Improve the design**. You could make use of `styled-components`, one of the libraries that have Kotlin wrappers - provided. If you want to see `styled-components` in action, look at - the [Build a web application with React and Kotlin/JS](js-react.md) tutorial. -* **Add crossing out list items**. For now, list items just vanish with no record of them existing. Instead of deleting - an element, use ~~crossing out~~. -* **Implement editing**. So far, an entry in the shopping list can't be edited. Consider adding an edit button. - -#### Join the community and get help {initial-collapse-state="collapsed"} - -You can join the official Kotlin Slack channels, [#ktor](https://slack-chats.kotlinlang.org/c/ktor), [#javascript](https://slack-chats.kotlinlang.org/c/javascript), -and others to get help with Kotlin related problems from the community. - -#### Learn more about Kotlin/JS {initial-collapse-state="collapsed"} - -You can find additional learning materials targeting -Kotlin/JS: [Set up a Kotlin/JS project](js-project-setup.md) and [Run Kotlin/JS](running-kotlin-js.md). - -#### Learn more about Ktor {initial-collapse-state="collapsed"} - -For in-depth information about the Ktor framework, including demo projects, check out [ktor.io](https://ktor.io/). - -If you run into trouble, check out the [Ktor issue tracker](https://youtrack.jetbrains.com/issues/KTOR) on YouTrack – -and if you can't find your problem, don't hesitate to file a new issue. - -#### Learn more about Kotlin Multiplatform {initial-collapse-state="collapsed"} - -Learn more about how [multiplatform code works in Kotlin](multiplatform.md). diff --git a/docs/topics/multiplatform/multiplatform-library.md b/docs/topics/multiplatform/multiplatform-library.md index aacc7f7e98c..2e7458c24d3 100644 --- a/docs/topics/multiplatform/multiplatform-library.md +++ b/docs/topics/multiplatform/multiplatform-library.md @@ -599,4 +599,3 @@ For more details, see the [Gradle documentation](https://docs.gradle.org/current * Learn more about [publishing multiplatform libraries](multiplatform-publish-lib.md). * Learn more about [Kotlin Multiplatform](multiplatform-get-started.md). * [Create your first cross-platform mobile application – tutorial](multiplatform-mobile-create-first-app.md). -* [Build a full-stack web app with Kotlin Multiplatform – tutorial](multiplatform-full-stack-app.md). From 0acf49e1cb6109cee6f8ae0b8884092bfb7d1fc6 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Mon, 1 May 2023 21:08:48 +0200 Subject: [PATCH 20/27] Updated the question about web development in FAQ --- docs/topics/faq.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/topics/faq.md b/docs/topics/faq.md index 0ead3f1f41b..c5873d8f764 100644 --- a/docs/topics/faq.md +++ b/docs/topics/faq.md @@ -54,10 +54,7 @@ For more information, check out [the resource on server-side development](server ### Can I use Kotlin for web development? -Yes. In addition to using for backend web, you can also use Kotlin/JS for client-side web. Kotlin can use definitions from -[DefinitelyTyped](https://definitelytyped.org) to get static typing for common JavaScript libraries, and it is compatible -with existing module systems such as AMD and CommonJS. -For more information, check out [the resource on client-side development](js-overview.md). +Yes. In addition to using for backend web, you can also use Kotlin/Wasm for client-side web. Learn how to [get started with Kotlin/Wasm](wasm-get-started.md). ### Can I use Kotlin for desktop development? From ff55ce7f81d27f9041b2e8b8520f59b71bf0c215 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Tue, 2 May 2023 19:43:48 +0200 Subject: [PATCH 21/27] Reverted the title back to `Set up a Kotlin/JS project` --- docs/topics/js/js-project-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topics/js/js-project-setup.md b/docs/topics/js/js-project-setup.md index e2e1759f131..09ff73728c8 100644 --- a/docs/topics/js/js-project-setup.md +++ b/docs/topics/js/js-project-setup.md @@ -1,4 +1,4 @@ -[//]: # (title: Understand a Kotlin/JS project) +[//]: # (title: Set up a Kotlin/JS project) Kotlin/JS projects use Gradle as a build system. To let developers easily manage their Kotlin/JS projects, we offer the `kotlin.js` Gradle plugin that provides project configuration tools together with helper tasks for automating routines From fc5df32f56b94149af6f3684ecce038af4296acb Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Tue, 2 May 2023 19:44:10 +0200 Subject: [PATCH 22/27] Removed creating a frontend app in Get started. --- docs/topics/getting-started.md | 43 ---------------------------------- 1 file changed, 43 deletions(-) diff --git a/docs/topics/getting-started.md b/docs/topics/getting-started.md index 97a47c84fa1..21060e30dfe 100644 --- a/docs/topics/getting-started.md +++ b/docs/topics/getting-started.md @@ -118,49 +118,6 @@ If you've encountered any difficulties or problems, report an issue to our [issu - - -Kotlin provides an ability to transpile your Kotlin code, the Kotlin standard library, and any compatible dependencies to JavaScript. - -Here you'll learn how to develop and improve your frontend web application using [Kotlin/JS](js-overview.md). - -1. **Create your first frontend web application:** - - * To start from scratch, [create a basic browser application with the IntelliJ IDEA project wizard](js-project-setup.md). - * If you prefer more robust examples, complete the [Build a web application with React and Kotlin/JS](js-react.md) tutorial. It includes a sample project that can serve as a good starting point for your own projects, and contains useful snippets and templates. - * Check out the list of [Kotlin/JS samples](js-samples.md) for more ideas on how to use Kotlin/JS. - -2. **Use libraries in your application.** Learn more about [adding dependencies](js-project-setup.md#dependencies). - - |Library | Details | - |--------|---------| - |[stdlib](https://kotlinlang.org/api/latest/jvm/stdlib/) | The Kotlin standard library included in all projects by default. | - |[kotlinx.browser](browser-api-dom.md)| The Kotlin library for accessing browser-specific functionality, including typical top-level objects such as document and window. | - |[kotlinx.html](typesafe-html-dsl.md) | The Kotlin library for generating DOM elements using statically-typed HTML builders.| - |[Ktor](https://ktor.io/) | The Kotlin multiplatform library for networking. | - |[KVision](https://kvision.io/) | A third-party object-oriented web framework for Kotlin/JS.| - |[fritz2](https://www.fritz2.dev/)| A third-party lightweight, high-performance, independent library for building reactive web apps in Kotlin that are heavily dependent on coroutines and flows.| - |[Doodle](https://nacular.github.io/doodle/) | A third-party vector-based UI framework that uses browser's capabilities to draw user interfaces.| - |Compose for Web, a part of [Compose Multiplatform](https://www.jetbrains.com/lp/compose-mpp/) | The JetBrains framework that brings [Google's Jetpack Compose UI toolkit](https://developer.android.com/jetpack/compose) to the browser. | - |[kotlin-wrappers](https://github.com/JetBrains/kotlin-wrappers) | Provide convenient abstractions and deep integrations for one of the most popular JavaScript frameworks. Kotlin wrappers also provide support for a number of adjacent technologies like `react-redux`, `react-router`, or `styled-components`. | - -3. **Learn more about Kotlin for frontend web development:** - - * The [new Kotlin/JS IR compiler](js-ir-compiler.md). - * [Using dependencies from npm](using-packages-from-npm.md). - * [Using Kotlin code from JavaScript](js-to-kotlin-interop.md). - -4. **Join the Kotlin frontend web community:** - - * ![Slack](slack.svg){width=25}{type="joined"} Slack: [get an invite](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up) and join the [#getting-started](https://kotlinlang.slack.com/archives/C0B8MA7FA) and [#javascript](https://kotlinlang.slack.com/archives/C0B8L3U69) channels. - * ![StackOverflow](stackoverflow.svg){width=25}{type="joined"} StackOverflow: subscribe to the ["kotlin-js" tag](https://stackoverflow.com/questions/tagged/kotlin-js). - -5. **Follow Kotlin** on ![Twitter](twitter.svg){width=25}{type="joined"} [Twitter](https://twitter.com/kotlin), ![Reddit](reddit.svg){width=25}{type="joined"} [Reddit](https://www.reddit.com/r/Kotlin/), and ![YouTube](youtube.svg){width=25}{type="joined"} [Youtube](https://www.youtube.com/channel/UCP7uiEZIqci43m22KDl0sNw), and don't miss any important ecosystem updates. - -If you've encountered any difficulties or problems, report an issue to our [issue tracker](https://youtrack.jetbrains.com/issues/KT). - - - * If you want to start using Kotlin for Android development, read [Google's recommendation for getting started with Kotlin on Android](https://developer.android.com/kotlin/get-started). From b6a01694430c5de1a5a52e603f96e98205a18720 Mon Sep 17 00:00:00 2001 From: "Ekaterina.Volodko" Date: Tue, 2 May 2023 19:48:30 +0200 Subject: [PATCH 23/27] Reverted the topic name in the link in Kotlin for JavaScript --- docs/topics/js/js-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topics/js/js-overview.md b/docs/topics/js/js-overview.md index a7ba3719f40..b042c8e9e56 100644 --- a/docs/topics/js/js-overview.md +++ b/docs/topics/js/js-overview.md @@ -5,7 +5,7 @@ to JavaScript. The current implementation of Kotlin/JS targets [ES5](https://www The recommended way to use Kotlin/JS is via the `kotlin.js` and `kotlin.multiplatform` Gradle plugins. They let you easily set up and control Kotlin projects targeting JavaScript in one place. This includes essential functionality such as controlling the bundling of your application, adding JavaScript dependencies directly from npm, and more. To get -an overview of the available options, check out [Understand a Kotlin/JS project](js-project-setup.md). +an overview of the available options, check out [Set up a Kotlin/JS project](js-project-setup.md). ## Kotlin/JS IR compiler From 31eb0d778a6db742619005e2ce1a6e9a9fa342ea Mon Sep 17 00:00:00 2001 From: Andrey Polyakov Date: Wed, 3 May 2023 15:25:38 +0200 Subject: [PATCH 24/27] fix: fix broken links --- docs/topics/getting-started.md | 13 ++++++------- docs/topics/whatsnew14.md | 1 - docs/topics/whatsnew1420.md | 2 -- docs/topics/whatsnew1720.md | 2 -- 4 files changed, 6 insertions(+), 12 deletions(-) diff --git a/docs/topics/getting-started.md b/docs/topics/getting-started.md index 21060e30dfe..f13aa08823a 100644 --- a/docs/topics/getting-started.md +++ b/docs/topics/getting-started.md @@ -137,16 +137,15 @@ Here you'll learn how to develop and publish a multiplatform library: 1. **Create a multiplatform library:** * Complete the [Create and publish a multiplatform library](multiplatform-library.md) tutorial. It shows how to create a multiplatform library for JVM, JS, and Native platforms, test it and publish to a local Maven repository. - * Build a full stack web application using [this tutorial](multiplatform-full-stack-app.md). 2. **Use libraries in your application.** Learn more about [adding dependencies on libraries](multiplatform-add-dependencies.md). - |Library| Details | - |---------------------------------------------------------------------------------------------------------|-------| - | Ktor | [Docs](https://ktor.io/docs/) and [sample](multiplatform-full-stack-app.md#build-the-backend). | - | Serialization | [Docs](serialization.md) and [sample](multiplatform-full-stack-app.md). | - | Coroutines | [Docs](coroutines-overview.md). | - | DateTime | [Docs](https://github.com/Kotlin/kotlinx-datetime#readme). | + |Library| Details | + |---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------| + | Ktor | [Docs](https://ktor.io/docs/). | + | Serialization | [Docs](serialization.md) | + | Coroutines | [Docs](coroutines-overview.md). | + | DateTime | [Docs](https://github.com/Kotlin/kotlinx-datetime#readme). | > You can also find a multiplatform library in the [community-driven list](https://libs.kmp.icerock.dev/). > diff --git a/docs/topics/whatsnew14.md b/docs/topics/whatsnew14.md index 9f7e3325230..3204b622a79 100644 --- a/docs/topics/whatsnew14.md +++ b/docs/topics/whatsnew14.md @@ -308,7 +308,6 @@ In the future, we are going to make the Kotlin Project Wizard even more flexible You can try out the new Kotlin Project Wizard by working through these tutorials: * [Create a console application based on Kotlin/JVM](jvm-get-started.md) -* [Create a Kotlin/JS application for React](js-get-started.md) * [Create a Kotlin/Native application](native-get-started.md) ### Coroutine Debugger diff --git a/docs/topics/whatsnew1420.md b/docs/topics/whatsnew1420.md index 2bc7fbc32dc..b7df3580878 100644 --- a/docs/topics/whatsnew1420.md +++ b/docs/topics/whatsnew1420.md @@ -146,8 +146,6 @@ templates for Kotlin/JS applications: It provides options to enable integrations for style-sheets, navigational components, or state containers. - **Node.js Application** - a minimal project for running in a Node.js runtime. It comes with the option to directly include the experimental `kotlinx-nodejs` package. - -Learn how to [create Kotlin/JS applications from templates](js-get-started.md). ### Ignoring compilation errors with IR compiler diff --git a/docs/topics/whatsnew1720.md b/docs/topics/whatsnew1720.md index 37e491db2ad..5d1c99b4f44 100644 --- a/docs/topics/whatsnew1720.md +++ b/docs/topics/whatsnew1720.md @@ -746,8 +746,6 @@ Since the previous release, the Kotlin documentation has received some notable c ### New and updated tutorials * [Get started with Kotlin Multiplatform Mobile](multiplatform-mobile-getting-started.md) – learn about cross-platform mobile development with Kotlin and create an app that works on both Android and iOS. -* [Build a full-stack web app with Kotlin Multiplatform](multiplatform-full-stack-app.md) – create an app using Kotlin throughout the whole stack, with a Kotlin/JVM server part and a Kotlin/JS web client. -* [Build a web application with React and Kotlin/JS](js-react.md) – create a browser app exploring Kotlin's DSLs and features of a typical React program. ### Changes in release documentation From ef352e6ebf1f99ef1553d0de2f35618ca2342b6b Mon Sep 17 00:00:00 2001 From: Andrey Polyakov Date: Wed, 3 May 2023 15:28:28 +0200 Subject: [PATCH 25/27] fix: fix table --- docs/topics/getting-started.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/topics/getting-started.md b/docs/topics/getting-started.md index f13aa08823a..ac76d640713 100644 --- a/docs/topics/getting-started.md +++ b/docs/topics/getting-started.md @@ -140,12 +140,12 @@ Here you'll learn how to develop and publish a multiplatform library: 2. **Use libraries in your application.** Learn more about [adding dependencies on libraries](multiplatform-add-dependencies.md). - |Library| Details | - |---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------| - | Ktor | [Docs](https://ktor.io/docs/). | - | Serialization | [Docs](serialization.md) | - | Coroutines | [Docs](coroutines-overview.md). | - | DateTime | [Docs](https://github.com/Kotlin/kotlinx-datetime#readme). | + | Library | Details | + |---------------|:-----------------------------------------------------------| + | Ktor | [Docs](https://ktor.io/docs/). | + | Serialization | [Docs](serialization.md). | + | Coroutines | [Docs](coroutines-overview.md). | + | DateTime | [Docs](https://github.com/Kotlin/kotlinx-datetime#readme). | > You can also find a multiplatform library in the [community-driven list](https://libs.kmp.icerock.dev/). > From 6884bd1a1f834ff6689249be849d0650fea39aa8 Mon Sep 17 00:00:00 2001 From: Danil Pavlov Date: Wed, 10 May 2023 15:24:28 +0200 Subject: [PATCH 26/27] update: tutorial restored --- docs/kr.tree | 2 + docs/topics/getting-started.md | 17 +- docs/topics/js/js-react.md | 39 +- .../multiplatform-full-stack-app.md | 986 ++++++++++++++++++ docs/topics/whatsnew14.md | 1 + docs/topics/whatsnew1420.md | 2 + docs/topics/whatsnew1720.md | 2 + 7 files changed, 1027 insertions(+), 22 deletions(-) create mode 100644 docs/topics/multiplatform/multiplatform-full-stack-app.md diff --git a/docs/kr.tree b/docs/kr.tree index 64f953e3be5..bac4d269645 100644 --- a/docs/kr.tree +++ b/docs/kr.tree @@ -130,6 +130,7 @@ + @@ -262,6 +263,7 @@ + diff --git a/docs/topics/getting-started.md b/docs/topics/getting-started.md index ac76d640713..ca53139947b 100644 --- a/docs/topics/getting-started.md +++ b/docs/topics/getting-started.md @@ -138,15 +138,14 @@ Here you'll learn how to develop and publish a multiplatform library: * Complete the [Create and publish a multiplatform library](multiplatform-library.md) tutorial. It shows how to create a multiplatform library for JVM, JS, and Native platforms, test it and publish to a local Maven repository. -2. **Use libraries in your application.** Learn more about [adding dependencies on libraries](multiplatform-add-dependencies.md). - - | Library | Details | - |---------------|:-----------------------------------------------------------| - | Ktor | [Docs](https://ktor.io/docs/). | - | Serialization | [Docs](serialization.md). | - | Coroutines | [Docs](coroutines-overview.md). | - | DateTime | [Docs](https://github.com/Kotlin/kotlinx-datetime#readme). | - +2. **Use libraries in your application:** + + * [Ktor](https://ktor.io/docs/) + * [Serialization](serialization.md) + * [Coroutines](coroutines-overview.md) + * [DateTime](https://github.com/Kotlin/kotlinx-datetime#readme) + + > Learn more about [adding dependencies on libraries](multiplatform-add-dependencies.md). > You can also find a multiplatform library in the [community-driven list](https://libs.kmp.icerock.dev/). > {type="tip"} diff --git a/docs/topics/js/js-react.md b/docs/topics/js/js-react.md index 7fd046ecb8d..39249e250b6 100644 --- a/docs/topics/js/js-react.md +++ b/docs/topics/js/js-react.md @@ -444,7 +444,8 @@ and contains the code from the `unwatchedVideos` list. 2. In `App.kt`, use the `VideoList` component by invoking it without parameters: ```kotlin - // ... + // . . . + div { h3 { +"Videos to watch" @@ -456,7 +457,8 @@ and contains the code from the `unwatchedVideos` list. } VideoList() } - // ... + + // . . . ``` For now, the `App` component has no control over the content that is shown by the `VideoList` component. It's hard-coded, @@ -526,7 +528,8 @@ First, add an alert message that pops up when users click on a list entry. In `V `onClick` handler function that triggers an alert with the current video: ```kotlin -// ... +// . . . + p { key = video.id.toString() onClick = { @@ -534,7 +537,8 @@ p { } +"${video.speaker}: ${video.title}" } -// ... + +// . . . ``` If you click on one of the list items in the browser window, you'll get information about the video in an alert @@ -562,7 +566,8 @@ using the [`useState` hook](https://reactjs.org/docs/hooks-state.html). ```kotlin val VideoList = FC { props -> var selectedVideo: Video? by useState(null) - // ... + + // . . . ``` {validate="false"} @@ -634,7 +639,8 @@ as state to the `App` component: ```kotlin val App = FC { var currentVideo: Video? by useState(null) - // ... + + // . . . } ``` @@ -826,7 +832,8 @@ change, move them into the application state: var watchedVideos: List

    FhF?h{QlI|69( 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 A2><{9 diff --git a/docs/kr.tree b/docs/kr.tree index 4b984eedfdc..64f953e3be5 100644 --- a/docs/kr.tree +++ b/docs/kr.tree @@ -130,7 +130,6 @@ - @@ -244,8 +243,7 @@ - - + @@ -264,8 +262,6 @@ - - diff --git a/docs/topics/js/js-get-started.md b/docs/topics/js/js-get-started.md deleted file mode 100644 index e1991618eb2..00000000000 --- a/docs/topics/js/js-get-started.md +++ /dev/null @@ -1,159 +0,0 @@ -[//]: # (title: Get started with Kotlin/JS for React) - -This tutorial demonstrates how to use IntelliJ IDEA for creating a frontend application with Kotlin/JS for React. - -To get started, install the latest version of [IntelliJ IDEA](https://www.jetbrains.com/idea/download/index.html). - -## Create an application - -Once you've installed IntelliJ IDEA, it's time to create your first frontend application based on Kotlin/JS with React. - -1. In IntelliJ IDEA, select **File** | **New** | **Project**. -2. In the panel on the left, select **Kotlin Multiplatform**. -3. Enter a project name, select **React Application** as the project template, and click **Next**. - - ![Create a react application](js-new-project-1.png){width=700} - - By default, your project will use Gradle with Kotlin DSL as the build system. - -4. Accept the default configuration on the next screen and click **Finish**. Your project will open. - - ![Configure a frontend application](js-new-project-2.png){width=700} - -5. Open the `build.gradle.kts` file, the build script created by default based on your configuration. It includes - the [`kotlin("js")` plugin and dependencies](js-project-setup.md) required for your frontend application. Ensure that - you use the latest version of the plugin: - - ```kotlin - plugins { - kotlin("js") version "%kotlinVersion%" - } - ``` - -## Run the application - -Start the application by clicking **Run** next to the run configuration at the top of the screen. - -![Running a frontend app](js-run-app.png){width=500} - -Your default web browser opens the URL [http://localhost:8080/](http://localhost:8080/) with your frontend application. - -![Web browser with JS application](js-output-1.png){width=600} - -Enter your name in the text box and accept the greetings from your application! - -## Update the application - -### Show your name backwards - -1. Open the file `Welcome.kt` in `src/main/kotlin`. - The `src` directory contains Kotlin source files and resources. The file `Welcome.kt` includes sample code that renders - the web page you've just seen. - - ![Source code for frontend application](js-welcome-kt.png) - -2. Change the code of `div` to show your name backwards. - - * Use the standard library function `reversed()` to reverse your name. - * Use a [string template](strings.md#string-templates) for your reversed - name by adding a dollar sign `$` and enclosing it in curly braces – `${state.name.reversed()}`. - - ```kotlin - div { - css { - padding = 5.px - backgroundColor = rgb(8, 97, 22) - color = rgb(56, 246, 137) - } - +"Hello, $name" - +" Your name backwards is ${name.reversed()}!" - } - ``` - -3. Save your changes to the file. - -4. Go to the browser and enjoy the result. - You will see the changes only if your previous application is still running. If you've stopped your application, [run it again](#run-the-application). - -![Web browser with a reversed name](js-output-2.png){width=600} - -### Add an image - -1. Open the file `Welcome.kt` in `src/main/kotlin`. - -2. Add a `div` container with a child image element `img` after the `input` block. - - > Follow IDE suggestions to import all the required elements of the `react.dom.html` package. - > - {type="note"} - - ```kotlin - div { - img { - src = "https://placekitten.com/408/287" - } - } - ``` - -3. Save your changes to the file. - -4. Go to the browser and enjoy the result. - You will only see the changes if your previous application is still running. If you've stopped your application, [run it again](#run-the-application). - -![Web page with an image](js-output-3.png){width=600} - -### Add a button that changes text - -1. Open the file `Welcome.kt` in `src/main/kotlin`. - -2. Add a `button` element with an `onClick` event handler. - - > Make sure that you import the relevant `react.dom.html.ReactHTML` element. - > - {type="note"} - - ```kotlin - button { - onClick = { - name = "Some name" - } - +"Change name" - } - ``` - -3. Save your changes to the file. - -4. Go to the browser and enjoy the result. - You will only see the changes if your previous application is still running. If you've stopped your application, [run it again](#run-the-application). - -![Web page with a button](js-output-4.png){width=600} - -## What's next? - -Once you have created your first application, you can complete long-form Kotlin/JS tutorials -or check out the list of Kotlin/JS sample projects for inspiration. Both types of resources contain useful snippets and -patterns and can serve as a nice jump-off point for your own projects. - -### Tutorials - -* [Build a web application with React and Kotlin/JS — tutorial](js-react.md) -guides you through the process of building a simple web application using the React framework, shows how a type-safe Kotlin -DSL for HTML makes it easy to build reactive DOM elements, and illustrates how to use third-party React components and -obtain information from APIs, all while writing the whole application logic in pure Kotlin/JS. - -* [Build a full-stack web app with Kotlin Multiplatform](multiplatform-full-stack-app.md) -teaches the concepts behind building an application that targets Kotlin/JVM and Kotlin/JS by building a client-server -application that makes use of shared code, serialization, and other multiplatform paradigms. It also provides a brief -introduction to working with Ktor both as a server- and client-side framework. - -### Sample projects - -* [Full-stack Spring collaborative to-do list](https://github.com/Kotlin/full-stack-spring-collaborative-todo-list-sample) -shows how to create a to-do list for collaborative work using `kotlin-multiplatform` with JS and JVM targets, Spring -for the backend, Kotlin/JS with React for the frontend, and RSocket. -* [Kotlin/JS and React Redux to-do list](https://github.com/Kotlin/react-redux-js-ir-todo-list-sample) implements -the React Redux to-do list using JS libraries (`react`, `react-dom`, `react-router`, `redux`, and `react-redux`) -from npm and Webpack to bundle, minify, and run the project. -* [Full-stack demo application](https://github.com/Kotlin/full-stack-web-jetbrains-night-sample) guides you through -the process of building an app with a feed containing user-generated posts and comments. All data is stubbed by -the fakeJSON and JSON Placeholder services. diff --git a/docs/topics/js/js-overview.md b/docs/topics/js/js-overview.md index 173d7ff2cb5..a7ba3719f40 100644 --- a/docs/topics/js/js-overview.md +++ b/docs/topics/js/js-overview.md @@ -5,7 +5,7 @@ to JavaScript. The current implementation of Kotlin/JS targets [ES5](https://www The recommended way to use Kotlin/JS is via the `kotlin.js` and `kotlin.multiplatform` Gradle plugins. They let you easily set up and control Kotlin projects targeting JavaScript in one place. This includes essential functionality such as controlling the bundling of your application, adding JavaScript dependencies directly from npm, and more. To get -an overview of the available options, check out the [Kotlin/JS project setup](js-project-setup.md) documentation. +an overview of the available options, check out [Understand a Kotlin/JS project](js-project-setup.md). ## Kotlin/JS IR compiler @@ -23,56 +23,6 @@ applications that mix TypeScript and Kotlin code and to leverage code-sharing fu To learn more about the available features in the Kotlin/JS IR compiler and how to try it for your project, visit the [Kotlin/JS IR compiler documentation page](js-ir-compiler.md) and the [migration guide](js-ir-migration.md). -## Use cases for Kotlin/JS - -There are numerous ways to use Kotlin/JS. Here is a non-exhaustive list of -scenarios in which you can use Kotlin/JS: - -* **Write frontend web applications using Kotlin/JS** - * Kotlin/JS allows you to **leverage powerful browser and web APIs** in a type-safe fashion. Create, modify, and interact - with the elements in the Document Object Model (DOM), use Kotlin code to control the rendering of `canvas` or WebGL components, - and enjoy access to many more features that modern browsers support. - * Write **full, type-safe React applications with Kotlin/JS** using the [`kotlin-wrappers`](https://github.com/JetBrains/kotlin-wrappers) - provided by JetBrains, which provide convenient abstractions and deep integrations for React and other popular JavaScript frameworks. - `kotlin-wrappers` also provides support for a select number of adjacent technologies, like - `react-redux`, `react-router`, and `styled-components`. Interoperability with the JavaScript ecosystem means that - you can also use third-party React components and component libraries. - * Use the **[Kotlin/JS frameworks](#kotlin-js-frameworks)**, which take full advantage of Kotlin concepts and its expressive power - and conciseness. - -* **Write server-side and serverless applications using Kotlin/JS** - * The Node.js target provided by Kotlin/JS enables you to create applications that **run on a server** or are - **executed on serverless infrastructure**. This gives you all the advantages of executing in a - JavaScript runtime, such as **faster startup** and a **reduced memory footprint**. With [`kotlinx-nodejs`](https://github.com/Kotlin/kotlinx-nodejs), - you have typesafe access to the [Node.js API](https://nodejs.org/docs/latest/api/) directly from your Kotlin code. - -* **Use Kotlin's [multiplatform](multiplatform.md) projects to share code with other Kotlin targets** - * All the functionality of Kotlin/JS can also be accessed when using the Kotlin `multiplatform` Gradle plugin. - * If your backend is written in Kotlin, you can **share common code** such as data models or validation logic - with a frontend written in Kotlin/JS, which allows you to **write and maintain full-stack web applications**. - * You can also **share business logic between your web interface and mobile apps** for Android and iOS, and avoid - duplicating commonly used functionality, like providing abstractions around REST API endpoints, user authentication, - or your domain models. - -* **Create libraries for use with JavaScript and TypeScript** - * You don't have to write your whole application in Kotlin/JS – instead, you can **generate libraries from your - Kotlin code** that can be consumed as modules from any code base written in JavaScript or TypeScript, regardless of the - other frameworks or technologies you use. This approach of **creating hybrid applications** allows you to leverage the - competencies that you and your team might already have around web development while helping you **reduce the amount - of duplicated work**, making it easier to keep your web target consistent with other targets of your application. - -Of course, this is not a complete list of all the ways you can use Kotlin/JS to your advantage, but merely some cherry-picked -use cases. We invite you to experiment with different combinations and find out what works best for your project. - -Whatever your specific use case, Kotlin/JS projects can use compatible **libraries from the Kotlin ecosystem**, -as well as third-party **libraries from the JavaScript and TypeScript ecosystems**. To use the latter from Kotlin code, -you can either provide your own typesafe wrappers, use community-maintained wrappers, or let [Dukat](https://github.com/kotlin/dukat) -generate Kotlin declarations for you. Using the Kotlin/JS-exclusive [dynamic type](dynamic-type.md) allows -you to loosen the constraints of Kotlin's type system and skip creating detailed library wrappers, though this comes at the expense of type safety. - -Kotlin/JS is also compatible with the most common module systems: UMD, CommonJS, and AMD. The ability to [produce and consume modules](js-modules.md) -means that you can interact with the JavaScript ecosystem in a structured manner. - ## Kotlin/JS frameworks Modern web development benefits significantly from frameworks that simplify building web applications. @@ -112,46 +62,7 @@ over the rendering of arbitrary UI elements, vector shapes, gradients, and custo For updates and discussions about the framework, join the [#doodle](https://kotlinlang.slack.com/messages/doodle) and [#javascript](https://kotlinlang.slack.com/archives/C0B8L3U69) channels in the [Kotlin Slack](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up). -## Kotlin/JS, Today and Tomorrow - -In [this video](https://www.youtube.com/watch?v=fZUL8_kgHXg), Kotlin Developer Advocate Sebastian Aigner explains the -main Kotlin/JS benefits, shares some tips and use cases, and talks about the plans and upcoming features for Kotlin/JS. - -