I am the person who thinks that it is almost impossible to create well-polished, nice-looking and attractive cross-platform mobile applications. I’ve seen Phone Gap- and Xamarin-based apps, but I’ve cried till the end of the day after that.

It sounds incredibly cool — if you’re a manager, you don’t need to hire two developers (for iOS and Android); and if you’re a developer, you don’t need to learn two languages (Java and Objective C). This is what advertisement says. But the reality is not always brighty and shiny — all these cross-platform development techniques guarantee you rapid development, but the result won’t suit your needs, I promise. In most situations it will be just waste of time and money, and you will probably need to rewrite your apps.

But, god damn, it is 2016. Is it still true?

Yes, but…

Today I am going to tell you about one more way to build mobile UIs. It is called React Native, and it allows you to create native-looking cross-platform applications easily and faster than ever before. React developers want to create platform that will allow people to create apps indistinguishable from true native apps, and despite of the fact that React Native is not ready yet today’s version (0.18.1) proves that it is possible.

React Native is written in JavaScript, and it is obvious that you should use JavaScript to create your apps too. But, of course, it is crazy to use JS in the 21st century, that’s why we’re going to use something better, for example, ClojureScript.

How?

If you want to write apps using React Native, forget your Android or iOS knowledge and experience. You need to start from scratch. But, most probably, this adventure will be at least fun. You will find yourself thinking like “Oh, what am I doing? It is 5 min work and I am able to finish it easily using Java/Objective C”. And it is true. But you will be awarded by amazing feeling that you’re doing something really cool (because I know you’ve lost this feeling writing your Java/Python/whatever code on your job).