Kotlin
A concise multiplatform language developed by JetBrains
Results of the First Kotlin Multiplatform Survey
The Kotlin team has always relied on feedback from the community for making decisions about the future of the technology. You will always be our go-to people who know best how to make Kotlin even more enjoyable to work with!
This past November, we conducted our first-ever Kotlin Multiplatform survey with the goal of understanding how the recent changes in the technology have shaped the ways developers use it. This initiative was well received by the community, resulting in an astonishing 1163 replies and 614 fully filled-out surveys, which are the basis for this report. We want to say thank you to everyone who took the time to share their feedback with us.
As a result of this survey, we were able to get a much more complete understanding of our users, how the technology is generally used, and what problems need to be solved to help those using Kotlin Multiplatform for work, personal, or university projects and those who are thinking about adopting Kotlin Multiplatform.
This is the first report of its kind and it will help shed light on the current state of Kotlin Multiplatform. We will also share our thoughts and conclusions about what is going on with the technology and reveal some of our plans for future changes and improvements that will be done in response to the present state.
User portrait
Developers with an Android background prevail among those who use Kotlin Multiplatform. But the number of developers with backend experience is big too. Surprisingly, as many as 8% of the respondents are from an iOS background.
We are very happy that Android developers enhance their knowledge and skills with the capabilities of Kotlin Multiplatform, which helps them go beyond Android development. It is also nice to see that the technology is attracting such a wide variety of users from different backgrounds and that it provides everyone with so many opportunities.
With 61.4% of the respondents having more than 5 years of development experience, we can conclude that Kotlin Multiplatform is interesting to those who have a lot of knowledge in programming. It is an honor for us to be chosen by developers with so much experience. But if you are still a middle or junior level developer, please do not worry — making Kotlin Multiplatform friendlier for everyone is our top priority and we will take steps toward helping less experienced developers get started with Kotlin Multiplatform too.
How Kotlin Multiplatform is used
42.2% of the respondents use Kotlin Multiplatform for sharing code between iOS and Android. This means they are using KMM, which recently branched into a separate project and went Alpha with big investments from the Kotlin team. Mobile targets + WebClient conjunction and backend + WebClient are popular too, but what is most unexpected is that the technology is being used by 16.3% for all existing targets that are aiming to have their code as universal as possible. One example of the all-targets approach is Space by JetBrains, which has recently been released and is built almost entirely on Kotlin.
Kotlin Multiplatform is a popular choice for creating open-source libraries and internal SDKs, but we are very excited to see that the technology is trusted by 41.1% of respondents to build user-facing applications with shared code or at least parts of them. It means that sharing code with Kotlin not only helps many developers save time and effort with a consistent and fast development process, but also satisfies the needs of their users.
"Is Kotlin Multiplatform ready for production?" That is one of the questions we are most frequently asked. According to the survey results, more than 56% of the respondents have already released an application with a shared module or are about to release one in the near future. This means that even though the technology is still in Alpha, it is trusted for use in production and it is already giving many companies and independent developers around the world the benefits of reusing code between platforms.
Data serialization and algorithms are the most popular parts to share between mobile platforms, with internal utilities, data storage, algorithms, and data synchronization just slightly behind. You can find more information about particular companies and their use cases in the case study section of the Kotlin Multiplatform Mobile developer portal.
KMM was designed to help developers reuse their business logic between mobile platforms and still keep the native UI. It is great to see that the original purpose is not stopping developers and KMM is being used for multiple different purposes, from reusing networking logic to sharing the UI.
Check out our step-by-step guide on how to create your first application with a shared codebase.
Main pains
Nothing is perfect and Kotlin Multiplatform is no exception. The strict Kotlin/Native memory model, build setup, problems with libraries, and IDE support tend to bother our users the most. It is good to be on the same wavelength because all of the pain points that are being highlighted are already being included in our roadmap. We hear you and we will try to do something about these issues to make Kotlin Multiplatform as easy and fun to work with as possible.
Tooling
More than half of the respondents use Android Studio to unleash the capabilities of Kotlin Multiplatform. IntelliJ IDEA Ultimate and IntelliJ IDEA Community Edition are the next most used tools with 27.3% and 16.7% respectively. The only way we can improve the developer experience with the IDEs is by creating better tools, but in order to do so, we need more feedback and usage data. We encourage you to help us and enable statistics sharing with JetBrains (if you use IntelliJ IDEA) and Google (if you use Android Studio).
52.6% of our respondents would like to use CocoaPods for exporting Kotlin Multiplatform framework to the iOS app. We are very happy with the amount of feedback we have had about this technology, and we have some great ideas on how we can improve the developer experience of working with it.
We were surprised to discover that 25% are interested in having Swift Package Manager integration. We will pay more attention to this in the future and will reconsider our backlog in order to take further actions to satisfy the needs of our users.
Onboarding and documentation
We were very interested to find out how developers approached their first Kotlin Multiplatform project. The results show that creating a project with the IDE wizard, using the official step-by-step guides, and cloning the official samples are the most popular ways for developers to start exploring the technology. It is good to know that in order to get started, developers use the KMM portal and the official documentation, but they don’t forget about resources that the community creates and maintains around the world either, as these also provide a great understanding of how to start benefiting from sharing code between platforms.
Improving the experience developers have with Kotlin Multiplatform is our top priority. In order to increase the level of satisfaction with Kotlin Multiplatform, we need to continue to improve and maintain the documentation. From the answers we received, we see that we are lacking particular use-case samples, ready-for-production examples, and articles the most. To cope with this challenge, we have created a documentation improvement backlog that will reduce the lack of these types of content about Kotlin Multiplatform. The focus will first be on common user scenarios that are not well covered in documentation articles, such as testing, and then on creating hands-on tutorials and samples for building apps from scratch and also for apps that have an integrated multiplatform module.
Conclusion
With all the feedback that has been gathered through the first Kotlin Multiplatform User survey, we understand that we are on the right track. The technology is evolving fast and it is already helping many companies and independent developers share code between platforms while they create user-facing applications.
We are very happy that the community has welcomed our attempt to understand how developers use Kotlin Multiplatform and we had more than a thousand replies. This information provided us with many insights and helped us reconsider the fields that had previously not been so clear. We plan to organize this activity on a regular basis and conduct a Kotlin Multiplatform User survey around twice a year.
Once again we would like to say a huge thank you to everyone who participated in this survey! We believe that together we can make Kotlin Multiplatform the best technology to work with.