Why I really like React Native

Carlos Vega
Unhandled Exception
4 min readFeb 23, 2015

--

and I haven’t even started using it

React is the next big thing in web development. It’s been around for some years now and it’s getting really hot these days. There are all sort of frameworks popping out here and there to make it easier to implement the complimentary flux architecture. I stumbled across this article about it in 2013 and immediately went to check it out.

I did not like it.

It really bothered me that you could include that HTML-ish thing (JSX) into your js files. You know, we’ve been told for years that we should separate these technologies and move all the javascript out and now, out of nowhere, we end up moving the HTML inside the js files.

Seriously, WHAT THE F*CK? —Me, 2013

Some months after that I ended up swallowing my own words while using my beloved angular in a project that demanded a lot of markup and heavy user interaction.

As I started to dig deeper into the requirements I realized about the big performance hiccups that were awaiting around the corner. Of course, I did a quick Google search trying to discover ways to increase angular’s rendering performance. And React popped up as an option.

DAMN! Look at those numbers — I cried in joy, while staring at the performance benchmark.

Then it was all love, I used react + angular, achieved my goal and started to love how these Facebook guys did their stuff. This thing was rock solid. It was production ready and it was being battle tested in one of the most brute environments: their own product.

This was a not so short introduction of how I discovered react and why I keep an eye on it.

This year, something really BIG happened. If you’re reading this you probably know that I’m talking about React Native.

First, you need to know that I love programming. I love doing front end as well as back end stuff. I really enjoy the process of discovering a solution for a problem and implementing it the best way I can think of.

I like stuff to work well. And that’s my main concern with hybrid web applications. They just not perform as well as their native counterparts. I agree that in some cases it might be ok to use them (I’ve used them before to prove an idea or even to develop apps that doesn’t require a lot of interactions).

I don’t agree with the “write once, run everywhere” silver bullet everyone is pursuing. It’s just not gonna happen because iOS and Android have a whole lot of conceptual, architectural and design differences.

If you want to develop a web app that feels like a native app you’re gonna have a bad time. Those users are really into their platform of choice. That’s why apple fanboys camp outside the stores in the cold waiting for the newest device. These guys know how an app should feel, look and behave. You’re not gonna be able to match that for all the cases, and please let’s just not talk about “legacy” devices (that we need to support in most cases).

I agree that in some cases a hybrid app is the answer (as I said before, if you need to prototype and test an idea) but if you want to guarantee the best UX you want to go native. And this is where React Native kicks in.

Learn once, write anywhere.

Yeah, that sounds better!

Me, 2015

I don’t wanna write a single code base that runs in every phone -if I wanted that, I could just create a web app that can be accessible from any *modern* browser. I want to be able to guarantee the best experience with the minimal effort.

I like the idea of learning one way to do stuff and then doing different things on each platform to get the best out of every single device. I also like the idea of giving the user what he/she expects (in terms of UI and performance) while maintaining the separation of concerns between each platform.

It’s not about giving everyone the same thing, but actually providing everyone what they already know and love. This might represent a bit more of work for us, but that’s the idea: we get paid to provide simple solutions to complex problems.

I really like the idea of the web (the modern, standardized web) as an alternative that, eventually, will lead to an unified view of technology. I love web technologies and how we can provide rich user experiences. It’s just that we’re not even close to get there in the mobile industry. Google, Microsoft and Apple are pursuing their own interests and they will continue to do so for a long time.

In conclusion, I really think that this “learn once, write anywhere” philosophy is going to be a thing in the years to come. I also think React Native won’t compete with the plain old alternatives (obj-c/swift and java). They can co-exist, just as web and native mobile development do right now.

What do you think? Will React Native become a thing?
Drop me a comment.

Disclaimer: I’m not a native English speaker, so feel free to point out grammatical and/or syntactical errors. Every respectful comment is deeply appreciated.

--

--

Carlos Vega
Unhandled Exception

Software engineer in love with web development. Avid reader and occasional blogger. He will blog about anything that crosses his mind. Costa Rica.