Now is a great time to give React Native 5 minutes (or more honestly, several hours). Let's dig in why.
I say with confidence as a former UIKit author: React's model for the UI layer is vastly better than UIKit's. React Native is a *huge* deal.— Andy Matuschak (@andy_matuschak) January 28, 2015
The declarative way React makes you think about UI is different and arguably better. You get a taste of this when you use UICollectionViews and data sources. Instead of rendering and laying each cell manually, you declare how each cell should render given its data. The underlying views are handled by the library.
React takes this paradigm to the next level by applying this to every piece of UI code. You write your UI by mapping application state to view components and React takes care of keeping the view in sync.
I love Swift. Its design is beautiful and it’s a joy to use. Objective C is fine.
Have you tried putting an image to the right of the title in a UIButton? It might be obvious to you now but good thing StackOverflow exists. Want to really customize a UINavigationBar? Phew, Google + StackOverflow.
In React Native, nothing is magic.
Magic is bad.
While higher-level components like UICollectionView and UIStackView make it easier, using Auto Layout or manually laying out views can be tedious. With React Native, you’ll find most layouts require a lot less work with flexbox. No longer worry about debugging Auto Layout constraints.
The React Native inline style language unifies APIs and the component nature of React makes building composable UIs the standard. Quickly style text without NSAttributedString. Instead of using UIButton configurators or button factory methods, you create a
<Button> component that can be used everywhere in your app. And again, all this knowledge carries to web and Android!
Using React Native for the first time, I couldn’t help but feel I was playing with one big experimental hack. There must be a deal-breaker that makes React Native annoying or unusable.
However, if you approach React Native with an open and curious mindset, you’ll find interesting problems instead of framework failures. You might find that you need to jump into the React Native source for answers. You might even need to make a change to the library. But you'll also feel the power you have and find that everything has an answer.
At first, I was dismissive of React Native. Now, I’m a little too excited and looking for others to join the cult.
I hope you give it a shot. My better half is thinking about it.
Curious about React? Try this short and interactive tutorial to learn the high-level concepts of React.