Have you ever considered React Native vs Kotlin for Android app development? Between React Native and Kotlin, which one would be the best option for delivering your Android application in 2023?
I took sometime to scour the internet… Trying to find a meaningful comparison between React Native and Kotlin.
But guess what? I was terribly disappointed. Most people comparing Kotlin vs React Native assume that the developer already know the Java language.
In other articles I also found people comparing Kotlin multi-platform, a completely experimental project, with React Native, a stable and robust solution. So, in this article today, I am going to compare React Native with Kotlin. But from the perspective of Android app development, not cross platform.
Previously, I have also compared React Native vs Swift user experience in another article. By the end of this article, I hope to have helped you decide whether to build your Android app using the Kotlin language or React Native framework.
We’ll compare these two amazing technologies from the perspective of performance, developer productivity, etc…
I’ll also finish this article by telling you which one, between Kotlin vs React Native, is best for developing your Android app. So stay tuned. Before we dive right in, let’s first start by defining these two terminologies.
React Native is a mobile development framework designed by Facebook to help you develop native applications for both iOS and Android platforms.
It enables you to reuse up to 70% of your code between these two mobile platforms. While being a cross platform mobile development framework, it focuses on delivering a great UI by leveraging native components, using the JavaScript language. This makes it a really great option for developing an Android app… Or does it?
Let’s find out.
Kotlin is a statically typed programming language, developed by JetBrains, that was endorsed by Google as the official language for native Android app development.
It’s been widely embraced by developers as a clean and concise language. This means that while enabling you to write high performance Android applications that are native to the platform, it lets you do so with minimal code.
As if this is not enough, the JetBrains team is also working on a Kotlin multi-platform project that will enable development for both iOS and Android using only Kotlin. But will it fly?
Let’s wait and see.
Now that we know what each of the technologies are, let’s dive right in and find out what each one of them have to offer in terms of Android app development.
When comparing React Native vs Kotlin technology stack, let’s look at the technologies or skills you’ll need to develop an app on either.
React Native, being a JavaScript framework, is based on the JavaScript programming language for all development. It also uses the JSX syntax to render its UI which being a JavaScript technology comes with all the benefits of the JavaScript language. This means you’ll need knowledge of JavaScript to work with React, and here are the best Udemy React tutorials to get you started.
Kotlin is a mobile app programming language that is native to the Android platform itself.
This means that while developing your Android application you’ll be able to write native code that communicates directly with and has entire access to native device hardware. From this point of view, therefore, both Kotlin and React Native do not give your flexibility in terms of choosing what tools to work with.
When it comes to choosing a development environment, I stick to simplicity.
Is it easy and quick to set up the development environment? A platform with fewer hoops and jumps wins. React Native development can be done with any IDE or text editor, which means you can use your favorite text editor still. I also found that installing React Native through NPM package manager is really a fast and seamless process. I usually do it in under 3 hours.
Kotlin also gives you the flexibility of developing on multiple IDEs and text editors, though the IntelliJ IDEA works out best for me. Installing and setting up a development for Kotlin didn’t take any longer. Although some development tools come fixed with a particular IDE, React Native and Kotlin come square on flexibility with this one.
There are times when just getting something out there is more important.
However, after sometime the ability of your application to perform complex operations without compromising on the user experience and power savings is key. When comparing React Native with Kotlin, we’ll look at the their abilities to deliver high performance apps.
The answer might be obvious in this case, or is it? All factors remaining constant, a native app will always beat a cross platform app in terms of performance. Let’s see why.
React Native, while being able to deliver an Android app with near native look and feel, it does this through multiple layers. You’ll need to write JavaScript code which, interfacing through a bridge, is able to invoke native Android component APIs that deliver the functionality you need.
Apart from this, React Native is heavily reliant on 3rd party libraries to implement these functionalities. These libraries often suffer from bugs and inconsistent behavior across platforms.
Kotlin being a programming language that is native to the Android platform communicates directly with the native components. Apart from the fact that Kotlin does not need another layer to communicate with device hardware, it also compiles to native binaries that make for faster execution at runtime. Before it’s release, also, the Kotlin language underwent multiple testing which makes it a more stable tool here.
Even though, some would argue that the shortcomings of React Native can be resolved by integrating native code…
I think this beats the whole idea of avoiding native code when using JavaScript. So when comparing React Native vs Kotlin performance, Kotlin Android will always outperform React Native Android applications.
When it comes to developer productivity I think of…
How long will it take me to build something useful? This includes the time it takes to learn the framework or technology as well as the features of the technology that serve to make my work easier.
React Native is built upon Reactjs, which is a JavaScript library. So you must have intermediate knowledge of JavaScript or at least the Reactjs framework to be able to pick it up, otherwise it presents a very steep learning curve.
On the flip side, React Native presents a “hot reload” feature which enables faster development by instant updates to code changes without the need to recompile code. The fact that you can also safely reuse upto 70% of your JS code for an iOS app is also a very big plus.
Kotlin, on the other hand, is a relatively easy language to pick.
However, building your Kotlin app will take you longer as compared to React Native. This is because incremental compilation of code every time you make changes takes longer and longer, as auto-reload implementation in Kotlin is still very shaky. However, Kotlin also has the advantage that you’ll need to write relatively less code to implement the same feature than in React.
So in this respect, you’ll be able to get more productive faster in React Native.
In fact, if you already have some knowledge of JavaScript, as most people already do, getting started with React Native will get you productive faster.
Before you jump in either to start using Kotlin or React Native for your Android app…
Is there enough support available for either of these technologies? What do you do when you are stuck? Are there even enough learning resources to get you started?
Let’s face each of these questions and answer them one by one right here, before you decide to go with either Kotlin or React for your Android app.
React Native is developed and maintained by one of the biggest tech companies, Facebook. They have a team of engineers always working to fix bug and improve this framework. A part from the React Native documentation being good enough to get you started, there are a lot of online courses, tutorials and blog posts for learning react native online.
When I checked I found 129,503 GitHub repositories that are tagged as React Native and 63,785 questions tagged React Native on Stackoverflow as of this writing. This just speaks to the fact that React Native has a very huge and responsive community that will help you out when you are stuck.
Kotlin, as a language, has the backing of a great tech company, JetBrains.
The team at JetBrains is known to develop some of the best IDEs out there. From this, I am convinced that they will do whatever it takes to constantly improve the Kotlin language and make it a better Android development tool than RN.
The Kotlin documentation is also relatively great… with all the guides and the best Kotlin Udemy tutorials you need to get you started. YouTubers are also constantly making tutorials for Kotlin. A quick check on GitHub shows that there are 76,577 repos tagged Kotlin with 31,622 questions on Stackoverflow.com tagged Kotlin, as of this writing.
While each of the Kotlin numbers are doubled by React Native, I’m really impressed.
From these numbers it’s clear that Kotlin and React Native both enjoy great community support, so whichever you choose… you are in safe company.
Rumbling about numbers all day is interesting but….
Who is buying the hype?
When comparing Kotlin vs React Native popularity, I wanted to look into which big tech companies are using either of these technologies to build their Android apps. React Native is already being used many big tech including: Facebook(obviously), Facebook Ads, Bloomberg, AirBnB, UberEats, Instagram, Gyroscope, Mintra, Discord, Discovery VR, Townske, SoundCloud Pulse, Wix & Walmart.
Kotlin is also being used for Android development by many companies including: Pinterest, Uber, Trello, KickStarter, Coursera, Corda, Capital One, Evernote, BaseCamp 3, Netflix, Amazon, Twidere for Twitter, Shadowsocks & KotlinConf app.
All of these apps have sizeable users and great functionalities.
So, who can argue against that? Raise your hand! I’d also look at the comparison of React Native vs Kotlin popularity in terms of the demand for the developers. So I went ahead and checked for jobs online that require theses skills and found 1,996 Kotlin jobs on Indeed.com as well as 3,046 React Native jobs on Indeed.com that mentioned these skills are a requirement.
The React Native numbers are still higher than Kotlin.
But, hey, who said they were supposed to be the same? I see some developers argue that the demand for Kotlin developers is still very low compared to React Native developers for Android apps. Them numbers speaks for themselves… Kotlin developers are in high demand.
So in my opinion the demand for both Kotlin and React Native developers is at an all time high. The question might then be… Is there enough supply of Kotlin developers to fill this market gap?
Now that we’ve compared React Native with Kotlin in details…
Do you feel empowered enough to make a choice for yourself between Kotlin vs React Native for Android app development? If not, here are 3 reasons why I think Kotlin is the best for Android compared to RN.
The Kotlin language underwent a lot of multiple testing even before it was released back in the year 2011. It means you’ll hardly encounter any problems while working with Kotlin, as everything works as expected. I wouldn’t say the same for React Native.
The Kotlin language comes with simplicity, conciseness mixed with power.
Apart from fast compilation times, the library you need to write your Kotlin Android apps is pretty small, which leads to a lower method count . Would you confirm that for me with React Native?
Pinterest and Basecamp already moved their Android code to Kotlin. The official Kotlin website also presents a growing list of companies that are implementing Kotlin without any problems. While the same is true with RN, this confirms that Kotlin is a real deal too.
The talk between cross platform and native mobile app development is a whole debate for another day.
I have written another article comparing hybrid vs native app development. For the sake of this Kotlin vs React Native comparison, however, I think the best way to get to know which platform works for you is to try it.
React Native is no longer dominant when it comes to mobile app development.
Languages like Kotlin, have come out strongly to challenge the dominance of React Native when it comes to Android app development. Additionally, the JetBrains team is working day and night on the Kotlin multi-platform project. If this works out, choosing Kotlin for mobile app development will be a no brainer…
Or will it? Let’s wait and see. In the meantime, have you used either Kotlin or React Native for Android app development before? Please share your experience in the comments below.