Today is a day of celebration for the Kotlin community. We are delighted to have invited over 1,200 developers to join us at our KotlinConf in San Francisco. In his keynote at the conference, Kotlin’s lead designer Andrey Breslav shared some of Kotlin’s biggest developments to date, which we will now share with you.
Kotlin 1.2 RC
The first part of the keynote was to announce the RC version of Kotlin 1.2. New features in this release include experimental support for multi-platform projects, allowing you to share code between modules for the JVM and JavaScript, and some language improvements, including support for array literals in comments. Check out Kotlin 1.2 Beta is out for more information on new features in version 1.2.
The compiler is now incompatible with binaries compiled in earlier versions of Kotlin 1.2, and you will need to recompile them in this version. If the code is compiled with Kotlin 1.0.x or 1.1.x, the compiler is fully compatible.
Although coroutines are still labeled experimental, we want to clarify exactly what this state means. Coroutines can be used in production, and our internal development has used coroutines, and we have not found any problems in use. And the reason we stay experimental is because it gives us the ability to repeat the design. Note that even if we make changes to the API, the current API will still be supported, and even if it will be marked deprecated, we will provide the necessary migration tools. According to our current plan, Kotlin 1.3 will remove the experimental state of coroutines.
It is high time that we asked for your help. Although we’ve done a lot of testing with this version internally at JetBrains and with other teams, there are far more problems with daily use than we encountered during testing. So please try to build your own project using Kotlin 1.2 RC and if you run into any problems please don’t hesitate to contact us. Your help will be crucial in ensuring a smooth final release.
Kotlin / Native iOS Support
Our next big announcement is support for iOS development using Kotlin/Native, released as part of Kotlin/Native 0.4. This support is still in the early stages, but it’s already there, and it’s an important step toward enabling Kotlin development on all platforms.
To make sure Kotlin development was ok, we wrote two apps and released them to the App Store:
1. Spinner application: a simple game built using OpenGL. It runs on iOS and Android, and most of the code is shared between the two versions. The iOS version also has some other features, such as the Game Center integration.
2. KotlinConf application: Shows you the schedule of this conference with a fully native UIKit-built iOS UI.
Both of these sample applications are open source and can be used as templates to build your own cross-platform mobile applications in pure Kotlin.
Kotlin / Native IDE Support
Of course, any language development needs an IDE to support it, and as of today, Kotlin/Native also has IDE support.
Right now we are releasing the first preview of the Kotlin/Native plugin for CLion, which is our C/C ++ IDE. The plug-in supports CMake as a build system. It includes full code editing capabilities for the Kotlin plug-in for IntelliJ IDEA, as well as initial support for project creation, testing, and debugging.
To try out the plugin, install CLion 2017.3 EAP and search for “Kotlin/Native” in the JetBrains plugin list.
In the future, we will publish a separate blog post detailing the plug-in and its features. Of course, the CLion plugin is just one step in our Kotlin IDE support. Stay tuned for further announcements next year
Ktor 0.9
Server-side development is also a key part of our multi-platform growth. And now we’re announcing our own: version 0.9 of Ktor, a great asynchronous coroutine based Web framework built using Kotlin.
Ktor has been used by JetBrains and many projects in the community, and we now believe it is a solid foundation for building high-performance Web applications. Check out the Quick Start guide on ktor.io, give it a try, and let us know what you think so we can do better with version 1.0.
Creating Modern Web Apps with React and Kotlin
The biggest news today for using Kotlin for Web front-end development is the release of the official Kotlin Warppers for React.js, And create-react-Kotlin-app, a toolkit for creating modern Web applications in Kotlin using react. js. With create-React-Kotlin-app, you can instantly generate and start working on client applications without worrying about project setup and build configuration, and you can appreciate the benefits of using statically typed languages and the power of the JavaScript ecosystem.
For usage, run NPM install -g create-react-kotlin-app and view the getting Started guide.
Multiplatform Projects Demo
To show how everything in our multi-platform development fits together, we’ve built one application using all the latest versions of our technology stack: the KotlinConf application. It consists of the following components:
1. Background built by Ktor
2. Browser app developed with react. js and Kotlin React Wrappers
3. Android apps built using Anko and Android Architecture Components
4. IOS apps built using UI Kit
On the back end, browser applications and Android applications share code using Kotlin multi-platform project technology. For asynchronous programming, all components use coroutines. To exchange data between the server and client, we use the new kotlinx.serialization library.
You’ll find the app’s source code a treasure trove that you can use in your own work, too.
Making address: https://github.com/jetbrains/kotlinconf-app
(including front-end, Android, iOS and back-end code)
Learning Kotlin
With the spread of Kotlin, more and more people are interested in learning Kotlin’s language. To simplify things, we’ve released a new version of the EduTools plug-in to learn Kotlin by solving interactive exercises in your favorite IDE. The new version adds support for Android Studio (previously only supported IntelliJ IDEA) and includes a new UI for building your own courses.
Let’s take a look at how to learn Kotlin with Android Studio!
1. Open Android Studio 3.0 and click Plugin as shown in the figure
2. Click Install JerBrains Plugins and search for EduTools installation
3. After installation, you will be asked to choose learning or teaching for the first time. We choose Learning
4. Choose a course
5. After the selection is complete you will be presented with a series of tutorials on Kotlin
There will be a course prompt on the right, we can check, error prompt, reset and other operations through the right operations
6. When you’ve completed a series of tutorials, congratulations! You’ve finished getting started with Kotlin!
Future Directions
As for the future of the language, our main goal right now is to achieve better multi-platform processing and greater code reuse across the platforms Kotlin supports. We plan to use the same API to extend the library set available on all platforms to include I/O, networking, serialization, date handling, and more.
In the compiler, the main focus of 1.3 will continue to be internal changes, rather than externally visible language features. Internal changes can improve performance, improve type inference, generate more efficient code for all target platforms, and better IDE plug-in responsiveness. We hope we can still polish up the release with some nice new language features.
Let’s Kotlin !
As you can see, Kotlin’s direction is to focus on a platform-wide development language, and one day we may be able to use Kotlin to develop all kinds of applications. I’m going to take a look at how Kotlin is used to develop iOS apps
Explore new and interesting things
Android, Kotlin, Design, product, Thinking, games.
Long press attention
If you find it interesting, share it