React Native: single code for Web, Android and iOS?
Writing code for several platforms is a very difficult. Programmers know it, and the last twenty years, the idea of “universal framework” is embodied in different technologies. Starting from Java and ending with PhoneGap, all developers wanted “write once, run anywhere”. But nothing happened.
The long-standing dream: write once, run anywhere
Fifteen years ago, the word “program” was synonym with “program for Windows”, the vast majority of computers ran on Windows, programs were created under concrete platforms and cross-platform decisions were rather a funny thing, than by a necessity.
And then a few things happened. Mac has grown in popularity, purchase and rental of software was simplified. Everyone started to use programs, not just “computer people”. And suddenly an old slogan “write once, run anywhere” has become very popular. All companies needed cross-platform apps.
React brings an adaptive design from web to mobile
Using React, interface typeset semantically as on the Web. Rather than manipulate elements of the interface iOS or Android, the designer creates the interface of the logical component, “screen”, “header”, “list”, “button”. And then a few lines of code convert component “progress” in the set of HTML tags for the Web, ProgressBarAndroid for android and ProgressViewIOS for ios.
This approach is very convenient: interface typeset of universal blocks, and then finalized for each platform only where it is really necessary.
How it looks in practice?
First of all I want to note a small number of interface elements that are available “out of the box”. It’s easy to “wrap” any native element, but it will require knowledge of java, objective-c, or swift. The alternative – to use one of the hundreds of enthusiasts created items available on github. But open source is a very specific – sometimes problems from carelessly written elements more than if you do them yourself.
We can say that now React Native can be used for rapid prototyping of mobile versions of your web applications. And if you have already written a web application on ReactJS, the transfer rate significantly increases. Creating complex applications with the publication in stores already possible, you can see it in the gallery. But be prepared for the fact that the final “bringing to mind” will be delayed and will require to go into Java and Objective-C.