The first major announcement made during the keynote was the announcement of the Kotlin 1.2 release candidate (RC). This release includes a number of new features, including experimental support for multiple multi-platform projects, allowing developers to share code between modules for the JVM and JavaScript, and a number of language improvements — including support for using array literals in comments. More about version 1.2 of fresh content, please click here (https://blog.jetbrains.com/kotlin/2017/09/kotlin-1-2-beta-is-out/) see the Kotlin 1.2 Beta release posts.

The compiler is no longer available for binaries compiled from earlier versions of Kotlin 1.2, and you will need to recompile them using this version. Of course, code compiled using Kotlin version 1.0.x or 1.1.x will be fully compatible with that version of the compiler.

Although the coroutine mechanism is still an experimental feature, we wish to clarify here exactly what is meant by “experimental” states. The coroutine is ready for production and we are using it to handle development tasks, and we have not found any major issues in use. The reason we kept it experimental was so we could iterate on it. Please note that although we have made a change to the API, the current API will be supported even after it is marked “deprecated.” We will also provide the necessary migration tools. As currently planned, the coroutine feature will officially end experimental status in Kotlin 1.3.

Now we need your enthusiastic help. While we’ve done a lot of testing with this version internally at JetBrains and with other teams, real-world usage is much broader than we can cover. So try Kotlin 1.2 RC on your own projects and let us know if you have problems. Your help is vital to ensure that the final release is delivered. In addition, please invite your relatives and friends to participate in this test, thank you.

Our next big announcement is iOS development with Kotlin/Native support — which will be a part of Kotlin Native 0.4. While this support is still in early beta, it is real and marks an important step in moving Kotlin toward full platform development.

To demonstrate this possibility, we wrote two apps and released them on the Apple App Store:

1. Spinner app (GitHub) is a simple game developed with OpenGL. It runs on both iOS and Android (link to Play Store), and most of the code in both versions is shared. The iOS version has several additional features, such as game center integration.

Spinner app:

https://itunes.apple.com/us/app/kotlinconf-spinner/id1291282375?mt=8

https://play.google.com/store/apps/details?id=com.jetbrains.konan_activity2

Making:

https://github.com/jetbrains/kotlinconf-spinner

2. The KotlinConf app (GitHub) is responsible for showing the conference schedule and has a fully native iOS UI made with UIKit.

KotlinConf app:

https://itunes.apple.com/us/app/kotlinconf/id1299196584?mt=8

Making:

https://github.com/jetbrains/kotlinconf-app

Both of these sample applications are open source and can be used as templates to build your own cross-platform mobile applications using only Kotlin.

Of course, you also need IDE help in actual production. Starting today, Kotlin/Native will also get IDE support.

We are currently releasing a raw preview of the Kotlin/Native Plugin for CLion (our C/C++ IDE). The plug-in supports using CMake as a build system. It contains the full set of code editing features from the Kotlin IntelliJ IDEA plug-in, as well as initial support for project creation, testing, and debugging.

To experience this plugin, install CLion 2017.3 EAP and search for “Kotlin/Native” in the JetBrains plugin list.

There will be a separate blog post in the next few days that will cover more details about this plug-in and its features. Of course, this CLion plugin is just the first step on our Kotlin IDE support road; Stay tuned for more announcements next year!

Server-side development is also a key part of our multi-platform roadmap. Now, we’re officially announcing our own version: Version 0.9 of Ktor. This is an excellent set of asynchronous coroutine based Web frameworks, built entirely by Kotlin.

Ktor is already being used in many projects, and we are sure it will be a solid foundation for building high-performance Web applications. For those who are interested, check out the Quick Start guide on Ktor. IO here. Please try it out and share your thoughts with us to help us get better prepared for version 1.0.

Ktor:

http://ktor.io/

Quick Start Guide:

http://ktor.io/quickstart/index.html

In terms of front-end development with Kotlin, today’s big announcement was the official release of the Kotlin packaging tool for React.js. Also worth mentioning is create-react-Kotlin-app, a set of tools for creating modern Web applications in Kotlin using react.js. With create-React-Kotlin-app, you can quickly focus on client application development without having to worry about project setup and configuration builds, while taking advantage of statically typed languages and the powerful resources of the JavaScript ecosystem.

To get started, run NPM install -g create-react-kotlin-app, then see the getting Started guide.

React.js:

https://reactjs.org/

create-react-kotlin-app:

https://www.npmjs.com/package/create-react-kotlin-app

To show how we can pull together the pieces of our multi-platform roadmap, we built an app with all the latest versions of our technology stack: KotlinConf. It consists of the following components:

  • The backend uses Ktor;

  • The browser application uses react. js and Kotlin React packaging tools.

  • Android application uses Anko and Android Architecture Components;

  • IOS apps (as described above) use UIKit.

Kotlin’s multi-platform project technology is used to share code between backend, browser application and Android application. In asynchronous programming, all components use coroutines. For data exchange between server and client, we also used the new kotlinx.serialization library.

You’ll find a treasure trove of application source code that you can incorporate into your own work projects on demand.

As Kotlin’s influence continues to grow, more and more of his friends are interested in learning the language. To simplify the learning process, we’ve released a new version of the EduTools plug-in designed to help you learn Kotlin in an interactive hands-on way through your most familiar IDE. The new version adds support for Android Studio (previously only supported IntelliJ IDEA) and includes a new UI that allows users to build their own courses.

As for the future direction of the Kotlin language, our main goal right now is to achieve better and more extensive code reuse across the platforms that Kotlin supports. We plan to expand the collection of library resources available across all platforms while covering I/O, networking, serialization, and date processing with the same API.

On the compiler side, our main focus for version 1.3 remains on the level of internal change — not externally visible language features. Internal tweaks can improve performance, improve type inference, generate more efficient code for all target platforms, and further improve the responsiveness of IDE plug-ins. We hope to release more great new language features in the future to take future releases to the next level, but we can’t make any substantive commitments at this point. I hope you enjoy your Kotlin adventure!

KotlinConf Keynote Recap

Mobile Frontier is InfoQ’s vertical community focused on mobile development technology. Please email your submission to [email protected], marked “Mobile Development Front Submission”.

With the development of the mobile Internet in recent years, the business of a single APP has become more and more complex, leading to the doubling of the number of collaborative engineers, the code is becoming more and more bloated, and the maintenance cost of the code increases exponentially. To this end, ArchSummit has planned a special topic called “Mobile Development Engineering Practice”, which has invited Liang Shixing, a researcher of Meituan Dianping, to explain the client architecture and Ali UC Luo Bin to reveal the browser container architecture and big front end integration planning. At present, 20% off registration last week, more than hundreds of technical cases, welcome to click to read the original text to understand.