While Kotlin Multiplatform offers a powerful toolkit for cross-platform development, navigating its ecosystem can sometimes pose challenges. From selecting the right libraries and APIs to addressing platform-specific nuances, developers can find themselves in search of clarity amidst the diverse options available.
We received 319 responses from community members from all around the world.
To better understand the landscape of Kotlin Multiplatform development and foster awareness of its resources within the community, we've crafted this survey. Our aim is to gather insights from developers like you regarding your experiences, preferences, and pain points when working with Kotlin Multiplatform.
We are excited to announce the results of the Kotlin Multiplatform Developer Survey 2024, which aims to shed light on the state of Kotlin Multiplatform development in 2024.
We extend our gratitude to all participants for contributing to the survey!
For how long have you been using Kotlin Multiplatform?
The largest group of respondents (76 out of 319, or 23.8%) have been using Kotlin Multiplatform for less than 6 months. This indicates a strong recent interest and adoption of Kotlin Multiplatform among developers.
The second largest group (67 out of 319, or 21%) have been using Kotlin Multiplatform for between 12 to 36 months. This suggests a stable user base that has been using the technology for a year or more.
A significant portion of respondents (60 out of 319, or 18.8%) indicated they haven't used Kotlin Multiplatform at all. This shows that while Kotlin Multiplatform is gaining traction, there is still a considerable number of developers who haven't adopted it yet.
The group that has been using Kotlin Multiplatform between 6 to 12 months (59 out of 319, or 18.5%) is almost as large as the group of non-users. This reflects a continuous growth trend as developers transition from new to intermediate users
The smallest group (57 out of 319, or 17.9%) consists of users who have been using Kotlin Multiplatform for more than 36 months. This indicates a smaller, but dedicated, group of long-term users who have likely been early adopters.
If you are aware of Kotlin Multiplatform, what is your level of understanding regarding its capabilities?
For all the users that didn't use Kotlin Multiplatform yet. A majority of respondents (53.3%) know the basics of Kotlin Multiplatform, indicating a foundational awareness among those aware of it. A significant portion (31.7%) has only heard of Kotlin Multiplatform but doesn't know much about it, suggesting room for deeper education and engagement. A smaller group (11.7%) has a comprehensive understanding, reflecting a knowledgeable minority, while a very small percentage (3.3%) is unsure of what Kotlin Multiplatform is, highlighting an opportunity to improve awareness.
Have you considered using Kotlin Multiplatform for your projects?
The chart reveals that 46.7% of respondents have considered Kotlin Multiplatform and plan to explore it further, indicating significant interest and potential future adoption. Meanwhile, 23.3% have considered it but opted for a different solution, reflecting the presence of competing technologies. Another 20% have not considered Kotlin Multiplatform at all, showing there is still a considerable portion of the audience that could be reached. Lastly, 10% were not aware of Kotlin Multiplatform until now, pointing to an opportunity for increasing awareness and education about its capabilities.
If you have considered Kotlin Multiplatform but decided against it, what were the reasons for your decision?
The chart indicates that 28.6% of respondents would be encouraged to consider Kotlin Multiplatform if it demonstrated clear advantages over their current technology stack. Similarly, 28.6% indicated 'Other' as a reason, suggesting varied individual factors. Better integration with existing tools and workflows would motivate 21.4%, while 14.3% seek more documentation and learning resources. Only 7.1% would be swayed by success stories or case studies from similar projects, highlighting a need for practical, demonstrable benefits and better support to drive adoption.
What would encourage you to consider Kotlin Multiplatform for future projects?
Among some of the other answers provided, we got Kotlin/WASM target for building web applications, especially in combination with Compose Multiplatform, direct Swift interop and binary size.
Which IDEs are you using for Kotlin Multiplatform?
Some folks answering the survey mentioned VSCode and Vim as other IDEs that they are using for KMP development. This was a question that accepted multiple answers.
How are you using Kotlin Multiplatform?
What motivated you to adopt Kotlin Multiplatform?
Which Kotlin Multiplatform targets are you actively developing for?
CLI and TV are some of the other targets we could find in the survey.
How big is your team size?
Which code sharing do you currently use?
How familiar are you with Kotlin?
Your colleagues are using/want to use Kotlin Multiplatform in your project - how does that make you feel?
Almost all the responses talked about feeling great. Some folks feel relieved, safe, satisfied. One person feels shocked since he/she doesn't have any colleagues.
How would you rate the overall developer experience with Kotlin Multiplatform?
Is there any comment you would like to add about the developer experience?
Some common themes and issues mentioned in the responses include:
- Configuration complexity and lack of detailed documentation.-
- Debugging challenges, especially with shared code.
- Desire for better Gradle build documentation and smoother setup.
- Missing Swift-only APIs and lack of Swift interop.
- Concerns about the small ecosystem and limited third-party library support.
- Need for improved iOS developer experience, including tooling and support.
- Frustration with slow build times and problematic tooling.
- Gradle setup issues and dependency management difficulties.
-Desire for better documentation, tutorials, and up-to-date resources.
- Challenges with integrating with iOS frameworks like SwiftUI.
- Gradle plugin issues and the need for better tooling.
- Desire for direct Swift interoperability and better support for Swift PM.
- Issues with fleet tooling and IDE support, especially for iOS.
- Need for more standardized configurations and smoother Swift integration.
- Overall satisfaction with the potential of Kotlin Multiplatform but recognition of ongoing challenges and room for improvement.
What challenges have you faced while working with Kotlin Multiplatform?
- iOS Development: Limited topic coverage in official sample applications.
- Touchscreen Issues: Challenges with touch functionality on desktop applications using KMM.
- IDE Problems: Issues with the Integrated Development Environment.
- Build Setup: Difficulty with configuring the build process.
- Interoperability: Challenges with obj-c/Swift interop and integrating third-party libraries like PSPDFKit.
- Testing: Difficulties with testing KMP projects.
- Tooling Failures: Problems with tooling stability and failures.
- Gradle Complexity: Complexity and instability of Gradle configuration.
- Limited MacOS Availability: Challenges in running and testing iOS due to limited MacOS availability.
- Lack of Support: Lack of support from colleagues and iOS developers.
- Kotlin Coroutine Support: Suboptimal support for Kotlin coroutines.
- Structural Changes: Difficulty in making structural changes in big projects like merging multiple Git repos.
Do you use any specific libraries or frameworks designed for Kotlin Multiplatform?
Some of the libraries not included in the original response but added by the participants in the survey are Koin, Realm, Multiplatform Settings, Wire, BigNum, Apollo.
How would you describe the level of community support for Kotlin Multiplatform?
Are there any features or improvements you would like to see in future Kotlin Multiplatform releases?
Better Swift interoperability and performance are among the comments added.
Have you participated in the Kotlin Multiplatform community or contributed to any open-source Kotlin Multiplatform projects?
What factors influenced your decision to choose Kotlin Multiplatform over other cross-platform solutions?
How do you handle platform-specific code within your Kotlin Multiplatform projects?
Folks are also using Koin for platform specific code.
Would you like to recommend a person you follow or admire in the Kotlin Multiplatform community?
Besides recommending the team at JetBrains and Touchlab, people recommended the folks behind. We would like to have more representation of women in upcoming survey.
How old are you?
The average age from the respondent is 35.86 years.
In which country do you currently live?
*Kotlin Multiplatform State of the Art Survey 2024 is not affiliated with the Kotlin Foundation nor JetBrains.