3 things Apple must learn from React Native

Scott Fitsimones
2 min readMay 6, 2018

--

I was a loyalist to the development ecosystem Apple built. Attending WWDC in 2015 and 2017, I saw firsthand how Apple strived to create a great experience for developers — with things like Xcode’s great autocomplete, UIKit’s array of beautiful, consistent components, and future-defining tools like ARKit and CoreML.

I always took as gospel that building an app natively is the holy grail, and left the “build once, deploy anywhere” tools like Xamarin and Facebook’s React Native to companies willing to compromise user experience for development speed and maintainability.

After building my first React App, I’ve realized that Apple should be scared. React Native has a few winning features that make it a compelling choice.

Modular components

React Native makes creating and organizing small components — say a custom button — a breeze. You can create and pass in props for the action and text.

In Xcode, good luck achieving the same functionality as elegantly. If you’re using storyboard, you probably have some global variables, typecasting, and callback functions just to pass in data. Want to subclass UIButton? You’re in for a wild ride.

Hot reloading

Hot reloading (saving the code file triggering the app to update in 2 seconds) saves so much time when it comes to layout design.

Building from Swift in Xcode, the simulator takes 15–20 seconds. Making a bunch of UI or Storyboard changes? It’s going to be a long afternoon unless you’re already a Storyboard expert.

Lightweight, portable environment

React Native apps can be built and run from anywhere. Want to use a lightweight text editor? Check. Want to edit on linux or windows? Check.

Meanwhile, Xcode is a heavyweight app that takes 10 seconds to open and only runs on Mac. Not great if you’re trying to make a small tweak to your and see how it looks.

Conclusion: Is React Native better than Xcode and Swift?

It still depends on the application. For a simple app like browsing rooms for rent in SF, React Native is the winner.

For an app like Snapchat, which requires camera access, ARKit filters, and Geolocation, native development still can’t be beat. At the end of the day, Native developers get access to the biggest toolkit, the latest and greatest, but if you’re building an app with some views, text inputs, and API calls, you should be using React Native.

--

--