Wake up on Kotlin / Flutter and ReactNative
Today I invite you to share the results of a little watch that I was able to do on the development of mobile applications. In order to better understand certain tools, I decided to try to create the same application with different tools in order to compare them. I decided for this session to test 3 different approaches:
- Native development with Android & Kotlin
- Development with Flutter
- Development with React Native
You can find the lives of my experiments on the secondary channel.
Native Android development with Kotlin
Kotlin is an object-oriented and functional programming language, with static typing that can be compiled for the Java Virtual Machine, and is today considered the recommended language for Android application development. The language is learned relatively quickly quickly (the syntax is quite familiar) and the documentation has a very good set of content that allows you to gradually learn the basics of android development.
- Very good documentation
- Interoperable with Java and its ecosystem
- Well-defined patterns to structure the code
- Very good development experience with Android Studio
- We only target one platform
- Composing views can be complex (To do with jetpack compose)
- You have to recompile to see the changes
- Errors that are sometimes difficult to debug (in the case of an error in the XML for example)
Cross-platform development with Flutter
Flutter is a technology that allows you to develop cross-platform applications with a single code. It relies on the Dart language, which is an object-oriented programming language with static typing that can be used with just-in-time (JIT) compilation during development and ahead-of-time (AOT) for production. .
For rendering, Flutter uses its own engine and doesn't rely on native components.
- A single interface whatever the platform
- Hot reloading
- Many components offered by default
- Simple operation (component splitting)
- The syntax is not very readable for declaring views
- The navigation system is not clear
- Renderer performance can be inconsistent and difficult to debug.
- Easy to learn if you know react
- A well-supplied ecosystem
- You will have to look for third-party bookstores very quickly
- Still not in version 1.0
- It will be necessary to pay attention to the performances
- Some components do not have the same appearance depending on the platform
Beyond the feedback on the different approaches, the important thing here is to show you how the day before and how we can quickly explore the specificities of certain technologies to get an idea of how they work. This monitoring work is important because it allows us to understand the needs to which these technologies meet and when their use is optimal.
- Kotlin, if you only target Android and want to use native elements.
- Flutter, if you want an identical cross-platform interface and if you use Material Design.
- React native, if you already know React.