AirBnB is done with react. What would Ackee say?
You might have read my previous series of blogs on React Native. And I feel sad, that it remained a bit misunderstood. By all means, React Native is an interesting technology; I just meant to point out its weaknesses and a way it’s being misused by the agencies around us. And as we see now after a while, according to AirBnB and Udacity who stopped using react for their app development, I was right.
Even this blog shouldn’t be about hating this technology itself. I just want to point out that it is used in an improper way and often accompanied with lying marketing that helps the companies to impose it to their clients. At the end of the day, both previously mentioned blogs about AirBnB and Udacity describe pretty clearly why these two companies find no benefits in this technology anymore and why they finally support the ideas that Ackee’s been sticking with for quite a while now.
Some statements React Native uses to promote itself aren’t exactly correct:
You’ll be fine with only one developer
No, you won’t. Native modules need both Android and iOS developers. Moreover, you also need a nifty React developer. To find all these abilities in one person is nearly impossible so instead of two positions you need to cover three.
You’ll save money
No, you won’t. It is true that a big amount of code it shared across platforms so you need to write less of it yourself. However you need to spend more time on framework updates and RN unpredictable errors debugging or on maintaining your code base in 3 languages or may be even on learning these 3 languages. From a long-term perspective no company found using ActiveReact effective enough neither technically nor financially.
You can write it all in React
If we speak about micro-applications that are developed in less then two months, it is possible. However as for bigger projects, the opposite is true; see articles mentioned above. You will always need to coordinate and manage human resources for three platforms and also for your codebase. There have been a few attempts to write big applications completely in RN but the outcome does not look quite convincing to users or investors.
So, is this React Native a bad thing?
Not at all! If you are considering a small, maybe internal, app that will take approximately 1-2 months of development and won’t be difficult to adapt to possible platform restrictions and if you have enough developers that will be able to manage your app, it is a reasonable choice.
Ironically, one of the biggest RN advantages of one code generating the same apps for iOS and Android, fades away while creating bigger projects. In products like this you might want to have a different version of the app for each platform or for new function testing.
Is there a future for React Native?
Regarding the fact, that all these big players stopped using it, React Natives’ future is uncertain. By all means, RN evolvement will be beneficial, because it certainly has its place on the mobile devices development market. However Ackee will definitely stick with the native development. As a CTO I feel a big responsibility laying on me not only regarding the company’s reputation, but also regarding money given to us by our clients who have decided to invest into a software development under our roof. And in such a situation I always recommend our clients safer and more sustainable solution so that we can meet their goals. In big projects we have developed we don’t find this hypothetical short-term advantage appealing enough to undergo such a risk.
Conclusion
It is important to mention that once we created one app in React Native as well; knowingly and all the way from the begging. It was a small and independent project for a non-profit company and we found it quite suitable for React. We were overly happy with the result – it worked perfectly for the purpose we had chosen this technology for. However we also have an experience with apps written in React we are managing and if we had had a chance we would have chosen differently. And that is also the reason, why I wrote this blog.