Making a Case for React Native (with case studies!)
Now is a very exciting time for web and mobile development. Remember the old days when creating a website and hosting it was a laborious process? We currently have an ever-increasing range of tools and open-source technologies to smooth the process, from services that host your app with a single command (git push heroku master), to web frameworks that auto-generate dynamic HTML-pages (Ruby on Rails), to front-end libraries that enable an endless array of experiences in response to users’ behavior (Angular, React, etc.).
No reasonable engineering team would argue that these abstractions create an inferior product and that the only “real” way to build a website is by doing everything from scratch. Similarly, it’s time that we start embracing tools that enhance the mobile development experience, in particular, React Native.
The Naysayer
In my experience, there are 2 reasons why companies shy away from React Native and pursue other mobile development solutions. Disclaimer: React Native may not be for every company, but these reasons are often misunderstood. Here they are:
- They believe the technology is not proven enough.
- They believe that it is wiser to simply build a “real” native iOS and Android app.
I will be using real examples throughout this piece. Here is one to start:
Many months ago, I was approached by a startup CEO in the fantasy sports industry. The company had just gotten funding and wanted to build out a mobile app. The CEO explained that while their current prototype was using Cordova, they were open to other solutions. I took the interview, thinking that I would surely be able to convince him to give React Native a try. What I found was that the CEO was set against React Native, feeling that it was a risky and unproven technology. Besides,Cordova seemed to be working just fine. Disappointed, I walked away from the interview.
Why not Cordova / PhoneGap?
Unlike React Native, Cordova and other HTML-mobile frameworks have severe deficiencies compared to native apps. Often, the touch interactions don’t feel genuine. The animations can sometimes be choppy. It can get the job done, but when compared to native functionality, it’s not as smooth. Check out our introduction to React Native where we explain more about this.
So what’s wrong with a real (Java/Swift) native app then?
There’s absolutely nothing wrong with developing a native app in Java or Swift. Facebook’s flagship mobile app is mostly written in Java and Objective C. It’s just that this may be a less-than-optimal strategy for a startup or young company, and even mature companies can benefit from a hybrid (native and React Native) approach.
If a later-stage company already has a Java or Swift codebase for their mobile app, they may be better off continuing in that way, or gradually phasing in new features with React Native (more on this later). But if a resource-strapped startup attempts to build both an iOS and Android app (since the smartphone market is increasingly more distributed among the two systems), and ignores a technology that could help them iterate and ship faster — that just seems ridiculous.
Here’s another real-world example:
Another startup CEO (pre-funding) and I had lunch. This CEO’s company was in the social sharing space, and was looking for mobile developers to build out the app further. I told the CEO I was interested in hearing more about the company, and that I might be able to suggest some developer friends for the role. At lunch, I found that they had developed a prototype in Swift, and that it would take many more months before an Android version would be ready. The social nature of the app required support for both Android and iOS, but the decision to build purely native versions slowed down the release process significantly. I tried to suggest looking at React Native, but the words seemed to fall on deaf ears.
“React Native is battle proven” — Some Examples
As an organizer for the React Native NYC meetup, I get to personally know all kinds of companies that are using React Native, all for different use cases. Honestly, the fact that Facebook uses React Native in production is enough proof that it is a reliable framework, but I would like to share 3 real-life cases that demonstrate React Native’s value to companies large, medium, and small.
I first met Jesse and Bruno from Delivery.com at React Native NYC’s first meetup at Priceline. While they weren’t scheduled to speak, I pressured them to give an ad-hoc presentation after learning that Delivery had just released an updated version of their iOS app with portions of it using React Native. I later learned from them that management was so pleased with the team’s output with React Native that they gave the go-ahead for a full-on Android version with React Native. Jesse and Bruno demoed the new Android app, currently in beta, at our last meetup. For tips on incorporating React Native into an existing iOS codebase and why you should be considering this at a large company, I highly recommend their blogs.
2. Brainscape
As an eager-to-learn polyglot, I’ve been a fan of Brainscape’s mobile apps for years. At an entrepreneurship meetup, I got the chance to meet Andrew Cohen, the CEO and founder, and we later met for coffee to discuss entrepreneurship and the mobile scene. I learned that while very successful in the iOS market, Brainscape had yet to release a compatible Android version, and so was considering React Native. Eventually, they would give it a try, and now, just a few months later, they have a beta version ready. Building the new Android version in React Native means that feature parity going forward will be much easier to maintain and that the current development team can work across platforms.
3. Hyr
I received an email a few months ago from Tom Bollich, a former CTO and founding member of Zynga. He was starting a new venture in New York and wanted to know more about the React Native scene. Over lunch, I got to learn more about his experience in the tech industry (the guy knows his stuff!) and about Hyr, his new startup (an AI platform which connects traditional companies - like restaurants and bars - with independent labor to fill shifts, on demand). From our discussion, I could discern that Tom had done his homework and decided that React Native would give his team an edge in the product development process. Tom’s is a great use-case for up-and-coming startups leveraging new technology to deliver a superior product. Keep an eye out for these guys!
Conclusion
There you have it: a large private company using React Native in both an existing project and a new Android app, a successful mid-sized company using React Native to expand their offerings to Android, and a hot startup by a serial entrepreneur utilizing React Native for fast iteration and deployment. Can we just agree that the technology is proven now?!?
Take the time to get to know React Native and see if it can help your company improve its mobile development process / product. You can check out the official Facebook documentation, or the tutorial Nick Brown and I created at www.buildreactnative.com. Help spread the word and happy coding!
Follow @tomgoldenberg on Twitter.
#StudentVoices
CEO at D?A Yaz?l?m A.?.
8 年?irket olarak React Native ile ilk uygulamalarimizi ??kartmaya ba?lad?k.
Senior Software Developer
8 年Suha, React'a mi basladin? :)
Company Director 1987- Sound Inventor No.2508273
8 年Please Contribute To B.J.Ltd's Exodus2Rec B.RocketRec Bigbyron Music,Unifix Samples,Sounds,Nioses&Effects10%For 25 Yrs Of Service Into Are Bank Santander Uk Account No.21416660 Card Number 4757 1459 2576 0225 Sort No. 09-01-27 A.s.a.p Its Anervrsary For The Sound, Huge Celebrations Soon
Nice article showing benefits of React Native. We are using React Native for about ten months and very happy with it. This is not only my experience, four developers in our mobile team also love it. We have experience in native iOS / Android development as well as in Xamarin / Xamarin.Forms. React Native is very different from HTML based mobile development platforms, its widgets are all native. On the other hand, you get the flexibility and speed of web development. I strongly encourage mobile developers to give it a try.
Helpt digitale transformatie te versnellen. Dat doen we door ambitieuze merken te ondersteunen met software architectuur, ontwikkeling en alle daarom heen in het digitale landschap.
8 年Niels Lanting