Kotlin will displace Java in the Android ecosystem.
Survey report on the adoption of Kotlin for Android.
Make a submission
Accepting submissions till 12 Sep 2021, 06:24 AM
Fragments conducted an online survey with Android developers and teams about Kotlin adoption between March and April 2021. The survey aimed at answering two questions:
Survey respondents were primarily drawn from Android engineers and Android teams in startups, mid-sized organizations and enterprises.
Survey results show that:
Kotlin’s adoption will increase in 2-3 years, with the likelihood that the next generation of entrants in Android software development will be Kotlin native. This will displace Java’s dominance as a programming language for building Android apps.
The results also reinforce that Kotlin is primarily used for UI development. The language’s features and ability for backend engineering is still under-utilized, at least among developers and teams who mainly build Android apps (since the survey respondents are from this demographic).
More importantly, the survey reveals that engineering managers are concerned about moving large Java codebases to Kotlin because of the concern that they will not be able to hire Kotlin programmers and ramp up their teams.
Despite the growing demand for Kotlin and the backing of big tech firms such as Google/Android, there still exist skill gaps in the adoption of Kotlin in India. Kotlin has far-fetched benefits beyond Android as well mainly,
Organizations appear to be reticent in moving their codebase to Kotlin, especially when the codebases are large. This slow move is compounded by the apprehension that hiring Kotlin programmers will be difficult and that upskilling entire teams will be difficult. The current skill gaps likely exist because most developers depend on learning the language by themselves, without access to formal training, and without community forums where experiential case studies about Kotlin can be shared freely.
We conclude that for organizations to make better progress towards adoption of Kotlin, they have to invest in training and upskilling their employees because Kotlin will be the future for Android development.
Madhusudhan Sambojhu is founding partner and engineering lead at able.do.
Anand Venkatnarayanan has worked as a cybersecurity engineer for two decades. He is currently editor at Privacy Mode programme and non-executive director at Hasgeek.
Bhavani Seetharaman is Research Associate at Hasgeek.
Zainab Bawa is co-founder, director and Chief Operating Officer (COO) at Hasgeek.
Bhavani Seetharaman and Zainab Bawa have written this report. Madhusudhan Sambojhu actively reviewed the report and helped in nuancing the findings and conclusions.
Anish TP illustrated the report.
We would like to thank:
Madhusudhan Sambojhu
@madz314
Submitted Sep 9, 2021
The following questionnaire that was circulated for this research. The questionnaire consisted of multiple choice and descriptive questions. Average response time was close to four minutes.
Name (optional)
Company name (optional)
Which OS are you comfortable developing apps in?
Which programming languages and frameworks are you comfortable working with?
Are you primarily a Java developer?
Does your organization have an in-house app development team?
Does your organization have a Native, iOS, Flutter or PWA app?
Which programming language is used for the app that your company has developed?
If Kotlin is used in your organization, why was it chosen as the framework for app development?
Since how long have you been working with Kotlin?
If your organization does not use Kotlin, did it evaluate Kotlin as an option for app development?
What percentage (%) of your codebase is in Kotlin?
How do you write code in Kotlin?
What is the one key challenge that you or your team has faced in migrating the codebase from Java to Kotlin?
Do you use new tooling for Kotlin such as Jetpack Compose?
Is Kotlin empowering you to build UI using patterns?
Do you build data pipelines using Kotlin?
What are your primary learning resources for Kotlin?
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}