Author: Adem Çırak, Date: 11 September 2018
Time to read: 3 min.
I love React-native! When I saw React-Native first, I thought this will be a game changer. And it changed mobile development area some, I was right about it. However, when I used it first time (version 0.1xx) it was shit. It wasn't a full solution for crossplatform mobile application. It was for IOS with some underperforming Android support. But it changed in 4 years. Now, it is stabialized. It performs better on Android and now it can be used for content heavy applications. I am not complaining about anything, as I said, I love React-Native but it has some product pains. This article will be a summary for my pain in developing React-Native application for last 2 years.
Dependency You are -probably- dependent on libraries. I mean, some core features you used in native development are depended on some open source guy. This mean you can not guaratie quality of that component. If there is a bug, you need to fork and fix it. Some people also complain about depending on Facebook but I think it is normal. If you are developing Android or IOS native you are also depended on Google and Apple. So not a big deal.
Version Upgrade Have you ever tried to upgrade React-Native version? It has some CLI solutions but I bet you will get some build error. And also you will probably get Android support library version compability problem. These problems are making your development flow so ugly. For a project I spend 8 hours to upgrade react-native version. You also need to learn some gradle scripting to solve dependeny errors. To sum up, upgrading native packages are really hard.
Performance Your application will be ready slower than native applications and it's UI might have struggle if you don't code right. I don't think this is a big problem if you selected react-native for right application but it still exist esspecially in Android. If you are planing to develop an application with react-native please investiagate your requirements detailly.
Native Development Still Required As you can understand from version upgrade section, you also need to know some native. I was lucky to know Android but I am still facing lots of IOS related problems. You should be able to fix some certain native bugs, too.
Platform Design Spesifications IOS and Android users has different expectations (I mean UX). This mean you need to adjust your design for each platform. Some components have plarform design compability however most of them not. Lucky, React-Native support code seperation for IOS and Android devices. But don't forget while planing your project schedule.
Thats all! Thanks for reading my article folks. These are my negative thoughs on react native, hope you don't suffer things I mention above. Happy coding!