React Native… it's come a long way

Michael Hayes
Add Jam.
Published in
4 min readAug 2, 2019

--

Back in 2016, I published a blog post called “React Native: It’s not all sugar and spice”. It was the early days of React Native, and while it clearly had a host of benefits and a bright future, it wasn’t all sunshine and daisies.

There were real challenges and drawbacks to using React Native, but now that we’re three years on — what’s changed?

It’s grown up a bit

Back then React Native was just over a year old, and I noted the immaturity of the ecosystem. Now, things are widely different. React Native itself has continued to improve, add features, increase performance and documentation. The ecosystem has matured alongside that, with a host of great tools, frameworks and supporting services available, widely used and — importantly — battle-tested.

For a start, there’s Expo, which makes it super easy for a web developer comfortable with React to get going on mobile. It abstracts away the horrors of Xcode and Android Studio and even has its own build service for your app so that you don’t have to deal with the pain points of signing and building an app bundle.

With Expo, you can literally deploy an app to the iOS App Store without ever using Xcode — something that was unthinkable just three years ago.

Sure, Expo has its limits, but when you hit them you can easily ‘eject’ your codebase and at that point make the leap to using unfamiliar native tools and processes.

Development Experience

The development experience with React Native has improved exponentially. The release cycles are no longer at breakneck speed, and the longer cycles make it easier to manage. Even upgrading versions is getting easier with assistants and helpers like the recently launched Upgrade Guide, making it much easier to update your code to the latest release.

Another tool we highly recommend in development is Reactotron, a desktop app for inspecting React JS and React Native apps. With it, you can view your application state, show API requests & responses, dispatch common actions from the app interface, hot-swap your app’s state using Redux or mobx-state-tree, track your sagas and, most usefully, drop design mockups that show as an image overlay in the simulator.

VS Code

It’s not strictly limited to React Native, but it’s amazing how quickly VS Code has become the de facto editor for many developers and teams.

Personally, I find it in a magical middle place, somehow lightweight and fast but also feature-packed with git integration and a host of useful plugins. Compared to Atom, it’s much much faster, and compared to Vim or even Sublime it’s more feature-packed.

Plus, it's cross-platform and free so your team can all work from the same tools. It’s amazing to think that Microsoft is behind it.

Services

Another change comes in the form of the number of services catering to React Native. App Center, again from Microsoft, has a host of useful services including Continuous Integration, Analytics, Push Notifications and backend as a service all with SDKs for React Native — making it pretty much plug and play.

Other tools we’ve used, such as Bitrise CI, are also easy to get started with in React Native. Three years ago, many services were just beginning to support React Native and SDKs would be limited, poorly documented or just non-existent, so you had to roll your own.

The Future

About 12 to 18 months ago, React Native was in a bit of a limbo. The releases had stopped and some big names like Airbnb pulled back from the community. Fast forward to today and React Native has frequent releases, a growing sense of stability and seems to have a bright future.

In fact, the ‘React way’ is becoming so popular we’re now getting SwiftUI, a ‘React like’ declarative framework for making native apps on iOS.

React Native has proven to be a cost-saver across several projects, allowing us to move faster, further and across both major platforms — so we will continue to use it.

Will we use React Native for every project? No.

Some projects are still better suited to fully native development. If we’re making a product that only targets one platform, touches anything AR or Bluetooth, or wants to use native frameworks like HomeKit or HealthKit it makes sense to make a native app instead.

If you’re looking to start a project with React Native — or something else — get in touch with the Add Jam team and kickstart your idea today.

--

--

Founder of @add_jam, creating products on iOS, Android & the Web. I’m a huge F1 & motorsport fan. Also founder of the @RookieOven coworking space in Glasgow.