Kotlin is the new hotness of Android development. But was it always this way? Let’s take a look at its past…
- If you want to learn about the history behind Kotlin, check out this article from last year. You can also download a high-quality PDF or ePub version of it from our website.
- IntelliJ IDEA has been around for over a decade now. In all that time, we’ve added support for a lot of languages and frameworks – usually when they’re already quite popular and well known in certain circles. So when Google announced support for Kotlin in Android Studio, many were surprised by JetBrains’ lack of an announcement to the same effect until later. Although to be fair, the first stable Kotlin plugin for IntelliJ IDEA was released just two days after Google’s announcement.
- At this point, you may be asking yourself why we didn’t develop an Android-specific Kotlin variant alongside Google. The answer is simple – it wouldn’t have made sense at the time. Remember that Kotlin 1.0 had been released only six months before; the language was still very immature and not nearly as robust or well adapted to Android development as it is now (although, keep in mind that the team behind Kotlin simply couldn’t make any promises about its suitability for Android projects ahead of its official release). And remember that our plugins are developed with JetBrains’ full-blown Java IDE in mind – the very same one that’s used to develop Android Studio itself.
- The Kotlin plugin has come a long way since its first stable release, but it wasn’t until this year (2017) that we were confident enough in its ability to become our main language for Android development at JetBrains. Let’s take a look at what has changed over time and how much was adapted specifically with Android developers in mind. To know more check RemoteDBA.com.
- Kotlin support for IntelliJ IDEA is now currently bundled by default with both Community Edition and Ultimate Edition of IntelliJ IDEA 2017.3 EAP (you can also install this plugin directly from the repository). Furthermore, it became available as an early access preview for PyCharm and WebStorm in 2017.1, and we’re hoping to release the stable version of this plugin later this year.
- Android Studio support was initially available as an external plug-in, however, its status was later changed to experimental and eventually removed altogether. Although it’s still possible to download this plugin from our website if you really need it (it is compatible with IntelliJ IDEA 15+).
- As Kotlin 1.0 had just been released when Google announced official support for it on Android, not all of JetBrains’ products were able to immediately add their own support too – some even went against the grain by providing features that didn’t exist in Kotlin itself yet, such as bytecode generation. It wasn’t until 1.3 and 1.4 that we were finally able to catch up and release stable support for Kotlin in all our IDEA-based products (WebStorm, IntelliJ IDEA, CLion).
The following chart shows the progression of releases for each product:
- Although JetBrains’ Android Studio plugin was deprecated after Google’s official announcement (similarly to Android’s original support which was provided by a different team), we decided not to remove it entirely from our website at the time because we knew it would still be useful to some people – basically anyone who didn’t want or couldn’t switch to using Kotlin/JVM. This is still the case today and it seems like this plugin will continue to live until both platforms are ready to fully support Kotlin (such as the next major update for Android Studio, or IntelliJ IDEA 2018 which will be based on IntelliJ Platform 2017.3).
- While I’m sure some of you are eager to hear which features were added to our IDE first, let’s first take a look at the tools that made it into 1.0 before we go any further:
- Support for all basic language constructs (if/else, loops, variable declarations etc.) Auto-closing curly braces inferred by IDE Code completion for properties and local variables Standard library – lots of shared functionality with JVM now may refer to: class keyword instead of hard coding class names Refactorings
- Besides these core features, the following are also supported out of the box: Constructors, getters/setters, copy constructors Generics Lambda expressions Multi-catch exceptions Vals and vars Functional patterns (no need for explicit return types) Type inference for generic instance creation.
Although not all of the features listed above are supported by Android itself, they may refer to: Something of, from, or related to a thing A part of a natural language utterance which has semantic or pragmatic content A relative pronoun in nominal phrases Very similar syntaxes for both platforms made it possible to share most IDE-related code between JVM and Android.
Read More: Hybrid App Development Guide for 2021