Oh yes, it just happened! They didnt value enough time and efforts it could require, they didnt care should they had to improve their entire codebase. So, lets see what may be so upsettingly wrong with React Native that forced this giant Online American Vacation Rental Business to part ways.
Merely to offer you a heads up, here’s how its likely to decrease:
First, were likely to understand why React Native was chosen by way of a big company, such as for example Airbnb, to begin with.
Next, well find out, why this decision ended up being so expensive for them later, despite the fact that, it seemed so justifiable at that time.
Then, we shall analyze the way the solutions supplied by React Native slowly and steadily started becoming potential problems for them.
Conclusively, after having understood all the above-mentioned points, well make an effort to study from Airbnbs mistakes. Well, actually well stay away from them by learning how exactly to identify a proper framework that fits well together with your projects needs.
Theres a wide variety of frameworks available for sale today. React Native is merely one option, we’ve Ionic(for Angular), Flutter and much more. Therefore, along with understanding the solutions these framework provide, we should also understand the issues they impose. Moreover, another great question to ponder upon is, should you even opt for among the frameworks mentioned previously, or for anyone who is developing actual native apps using numerous programming languages, such as for example Objective C/C#, or Java/Kotlin(for Android)?
Till the entire year 2012, Airbnb was only a React website. They didnt have any mobile application whatsoever. However, sooner a lot more than later, they realized that having a mobile application may be the need of the hour. Even though, people seem super more comfortable with booking their accommodations on Airbnbs website utilizing their laptops/desktop in the home, once they happen to be their destination, a mobile app might can be found in handy to gain access to their booking information or even to even make changes to a preexisting booking or even to book a fresh stay. Because the most people dont carry their laptops on holiday, so, all they will have usage of are their smartphones. Now, one resort for them is always to use Airbnbs web application on the internet browsers of these phones, which doesnt make much sense. Therefore, the team at Airbnb realized they actually need a mobile application.
Next, they spent the initial 4 years developing native code, yes, trust me, they actually developed native Android and IOS applications, however, not many people find out about that. Actually, rumors had it, that of Airbnbs code was written in React Native, but thats incorrect at all. On the other hand, Airbnb was very successful with native mobile applications. If they started using React Native in 2016, however up to now, only 20% of the code is written with React Native. Fyi, Airbnb has 800,000 lines of code. So, clearly, not absolutely all of this is written with React Native. Though Airbnb wasnt immature enough to look at a fresh framework entirely, for his or her well-established code base, it still became an issue ultimately.
Now, perhaps you have used or heard about Airbnbs Experiences? That has been the big cause of the introduction of React Native to Airbnbs application in 2016. The explanation behind launching Experiences at Airbnb was that can not only allow users to book BnBs but may also permit them to book one-of-a-kind experiences by means of, events, or various other exciting classes that folks might be thinking about(perhaps if they search for a different city). This feature even triggered a conversation between the members of the program development team at Airbnb about should they should continue developing very hard yet very efficient native applications, or as long as they shift their concentrate on something similar to React Native that could be implemented easily and can spread their components into different applications. Now, because of few people in charge of developing the native mobile applications, testing them, and making rapid changes to help keep them updated with the specific website(that was being developed rapidly), maintaining these native mobile apps became an issue for them because they didn’t have the budget(enough developers) for that. Moreover, they didn’t have the resources to employ a huge selection of developers, designed for Android and IOS.
Now, Airbnb was offered 2 options, i) they generate more investments, aggrandize the business, and use these funds to include more people with their native mobile application development teams, ii) they already had a huge selection of developers well-versed with React. So, you will want to use these developers to generate reusable components that could be utilized in React Native, which may, ultimately, deliver a near-native experience in mobile applications. Obviously, they went with the latter option. This decision, even in those days, created a stir, since it had plenty of proponents along with opponents.
Now initially, it went well for them, however, because the company began to grow bigger they wished to use native top features of mobile applications, to be specific, they wished to utilize the native maps very precisely and incredibly efficiently, for companies like Airbnb, detecting locations precisely is quite crucial, for them, literally, everything depends upon maps! They wanted things such as geolocation, internationalization, and several other complex features, that aren’t often needed by other styles of applications. This is the key reason why React Native didnt bode well for them anymore.
You can find 2 big explanations why companies like Airbnb choose frameworks such as for example React Native, i) they dont have plenty of dedicated developers to focus on Android and IOS applications, however, they do have many full-stack/web developers, therefore its convenient to allow them to reuse their expertise to supply a native mobile application with their customers without needing to add a supplementary cost on the business. Easy, right? At the very least, thats what they think! ii) when companies can say for certain they wont need many native functionalities, and also should they need some native functionalities, they wont be very extensive and just a couple bridges would make it happen.
Now, the above-mentioned reasons may seem justifiable in the original phase of an organization, but, once you need more technical native features, it becomes stressful for the developers to keep up mobile apps as these frameworks dont really provide all of the features/conveniences supplied by the native programming languages(it isnt a complete switch). Once we saw before, some features need developers to create native code in C, Objective C, or Java/Kotlin. Now, when the majority of the firms hit this wall of limitations, they expect their web designers to start out coding in native(very different) programming languages that is clearly a large problem because so many of these dont know the very first thing about these languages, there exists a huge learning curve connected with it. However, even though the developers start doing that mid-way through their projects, the logic behind choosing popular frameworks has collapsed. As, now these frameworks favour led to duplication of code, more work, more efforts, and much more time; the unlike why these were chosen.
Airbnb faced exactly the same challenges. That they had to show to developers from other teams(who have been well-versed with native programming languages), every time they faced obstacles while adding more technical features with their React Native apps. As you can plainly see, how this might lead to an enormous wastage of their own time. A developer focusing on another project in another team takes time to regulate themself from what the React Native team was focusing on. Lets take an example, lets say, Team A approaches an extremely experienced Android developer from Team B for help on an issue they’re facing with a project. Team Bs manager allows this experienced developer to utilize Team A for 10 days. Great! What goes on next? Now, this Android developer spends the initial 34 days understanding the issue, that could be anywhere; even yet in the area of the code of the web application itself, rather than specifically in the Android native code. Should this happen to function as case, unfortunately, a senior developer finished up wasting a complete week for no justification; and when not, then your developer who helps another team doesnt really get anything from it, you can find no incentives for them. This makes the surroundings of the business very political because now developers are anticipated to greatly help other teams anytime(problems may appear a good day prior to the release).
As though those problems werent big enough, yet, the list doesnt end here. Another issue with React Native is that its a never-ending investment. Its just 24 months old and developing rapidly on a continuing basis. It still has plenty of internal problems and Facebook is working very difficult to create it better each day.
If youve reached this portion of the article, and when youve thoroughly read precisely what was mentioned previously, I am certain you may be thinking, Is React Native that bad?, and the solution is not any, its not too bad! The real reason for all of the problems is that Airbnb had to utilize some native features that not absolutely all companies rather than all applications have to use. If you are planning, if you can work with an option to React Native that may assist you to solve each one of these problems, I hate to break it for you, but theres no alternative! Its an either-or sort of a predicament, where you must select from writing native code using native mobile-app development programming languages or perhaps a framework such as for example React Native, Flutter, etc.
Now, lets address the most crucial question here, After having learned what happened with Airbnb, in the event you or if you refuse to choose React Native? And the solution is, this will depend on your own application. This will depend on what sort of features and functionality the application should offer.
In the event that you just have a straightforward website that presents some analytics, perhaps some data that users can connect to. Your very best bet is always to use something similar to React Native. In the event that you dont like this use Ionic or Flutter or another thing, but dont write native code. Writing native code will undoubtedly be very costly, here. However, if you want to use native features like usage of the devices WI-FI, speak to Alexa, use geolocation, etc. In a nutshell, if you want to have native control on some crucial features supported by way of a mobile device, dont even consider using React Native or any frameworks. I am certain, by now, you understand why! As simple as that!
So, thats it because of this article, thanks for reading. I am hoping it had been worth your time and effort. Leave your ideas down in the comments section. Happy learning!