Developing native or using React Native
Many times customers and friends ask me about developing an app. They all have the same question: “Is it hard to develop an app?” I always respond with: “No it isn’t hard at all”. I tell them that everybody could write an app these days and I try to show them the Expo Snack web application. With a big face, they tell me that they are going to try it at home.
Some companies who I recommended to them to use React Native come back to me after a researching saying they do not want to use React Native, but we want a native application developed in swift and java. When I asked them why, they say that React Native is to slow and not everything is possible with React Native.
So I was like great, somebody has talked to an angry swift developer. Most companies do not really spend time on reaching and just believe everything the developer says. Some developers do not like learning a new framework, programming language extra. Therefore, they just shoot any negative comment they can find so that everybody in the meeting room feels colder than captain America frozen in ice.
Developing software is all about changes we learn from our mistakes and we move on. The same thing happens everywhere. Do you think car companies still make engines as they did in the 90's? No, they found out new ways, new tricks to make cars faster, better and more stable. The same thing is also happening in the software world. In addition, the companies who dare to take the risk and take time to research will stay in the race. How the others will still be busy fixing hotfixes for their hotfixes.
Uhm Auch, yes, I know. Well at least we have our friend the developer. Yes, the one that we fired, because we did not have any other projects for him. Well lest give him a call, maybe he will like to come back. In addition, if not, we just look for another developer that knows all of those languages. Lucky, we found one. Well our friends first day of work and the first question he asks Is where is the documentation? Yes, it is somewhere in the code. Yes, yes, it is here, you see documentation. The developer looks at the product owner and says the most painful line any product owner could here, believe me it is even pain fuller than the phrase “I want a divorce”. “We need to start from scratch” and there we go again a completely new project again from scratch.
Therefore, that is one against one, of to the next benefit React Native brings. Faster development, but how? In addition, why? Starting with the how, at Facebook they are really pushing the React Native library. They have built lots of API’s that offer the native functionality, of course, it maybe will not 100% fit your business functionality, but still it helps you a long way. Furthermore, a very cool and awesome project that was launch by the community called Expo helps even more with developing. They offer nice API’s that function as a layer above React Native. Expo makes it also possible to develop iOS apps without a need of an Apple computer. Yes, finally you can make that hard head developer that (definitely does not want to work with an iMac or a MacBook) develop iOS apps. Developing in React Native with Expo also offers multiplatform apps. You develop one app and it runs both on Android and Apple devices. Well I must say that this requires sometime a little bit of css tricks here and there. However, in the end, it is possible and works great. So first, we needed a developer that knew Java, Swift, and Object C. However, now we only need one developer that knows React Native.
Therefore, that wraps it up one for native and two for React Native. However, we are not finished. React Native still offers a great way to create beautiful apps. When using React Native. You can apply css. So, there is no styling when you go Native? There is also styling when you develop Native apps, but still it is not the same as css. Check the web and look for css examples, css has brought the beauty to modern day web applications. Thanks to the community, you can build the most beautiful applications without being a pro at designing. The resources you can find on css are far more than the ones you could find on styling with Swift. Css is practically becoming its own language.
After reading all the above, you must be thinking know. Why does not everybody develop in React Native, instead of choosing a native app? Well I have to bring it to you; sometimes its better develop a native app. Well as you see, I did mention some of the great things React Native development offers. There is still some down point, one of the most important one is. React Native does not offer all the API’s that a native language offers, like Swift. For some companies this can be a problem. In addition, React Native is sometimes slower than a native language, yes, the difference is little. However, if you are creating an app for suppose a bank or an insurance company. Then every second will matter.
React Native has some super high advantages and for a small company it will be the most efficient solution. In addition, for a big company, it just all depends on the number of users the app will target. In addition, an advice for all the product owners be realistic. We all would like to develop an app that will be the next WhatsApp or Twitter. However, will it happen soon? Do you also have the marketing budget for it or do you only have a budget for developing a very expensive app? Think realistic and focus on bringing a good stable product to the market. After that, you can think about redeveloping the app. Because believe me, if you do not refactor your app after the first release. You will be like our great friends at Wall Street running Windows XP, because the vb script application could not handle the new update. Many companies are using React Native and it works very good for them. For example, Bloomberg, Wix and even Instagram. However, some companies have used React Native and stopped using it. The most famous one is Airbnb. Airbnb was using React Native from the beginning. The where actually one of the pioneers that where heavily developing in React Native. They wrote a great article in about their experience with React Native and they have pointed out some things that are a down side of React Native. However, this does not mean it would not work for your business solution. Every company needs to research what will be the best choose for them and try it. Try taking the risk, because the biggest advantage you have. You already have nothing. Airbnb already had an app and a big ecosystem. Their demands where already set, the functionality required, the number of users it could handle, the speed. They already needed to meet does numbers.
I wrote this article to help the community, help the product owners make a good choose at developing an app. I advise also to listen to the developers and take their advices in choosing the right way in choosing a programming language. I want to thank Dan Abramov for his work at Facebook and developing and pushing React to a next level. Also, I want to thank the people at Expo.io. You really brought the community to a next level and super cool that it is still free, thumbs up for that. At the bottom of this article, you will find some resources that will help you get started with React Native. Leave some comments below and I hope you have enjoyed this article.
· Sullivan, A. (2019, March 23). Examining performance differences between Native, Flutter, and React Native mobile development. Retrieved June 10, 2019, from https://thoughtbot.com/blog/examining-performance-differences-between-native-flutter-and-react-native-mobile-development
· Peal, G. (2018, June 19). React Native at Airbnb. Retrieved June 10, 2019, from https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c
· Stackoverflow. (2019, January). Developer Survey Results. Retrieved June 10, 2019, from https://insights.stackoverflow.com/survey/2019#technology-_-programming-scripting-and-markup-languages
· Calderaio, J. (2017, February 22). Comparing the Performance between Native iOS (Swift) and React-Native, retrieved June 10, 2019, from https://medium.com/the-react-native-log/comparing-the-performance-between-native-ios-swift-and-react-native-7b5490d363e2
· Berkovich, S. (February 5). Should you use React Native to build your startup’s mobile app? retrieved June 10, 2019, from https://medium.com/snipe-gg/should-you-use-react-native-to-build-your-startups-mobile-app-c0baf9f4d9ad
· Starting with Expo.io — https://expo.io/
· Starting with React Native — https://facebook.github.io/react-native/docs/tutorial