With a headache I couldn’t even get up, laying in bed and realizing that I am already working with React Native for a year now. So maybe it’s time to write some down, and time is now :P

Using React Native is actually quite easy. You will have troubles for sure, but none of them will stop you from getting things down.

Situation

We only have 2 front-end developers, and we are small team(4 people). We know nothing about Android or iOS native development, but we already know a Web-view app is not going to be “Native” easily.

Two choices

We were looking for every possible way to avoid having too many knowledge learning at beginning. You don’t want your head to be exploded when the project is not even start yet.

But after research, there are only two choices: Native Script or React Native. And I think there are two reasons why we didn’t pick Native Script:

Community

React Native clearly is the famous one, and the company like Facebook just make you feel safe. The community is very active, and many react native libraries could be found on the GitHub. And also a very useful website like https://js.coach/react-native could search them quickly.

But Native Script is unclear to me when the first time I found their website, not just about finding libraries, their tutorials are confusing. It should be a good thing that you could just using JavaScript, but the tutorials just make you confused: Would this be a huge disadvantage if I don’t use TypeScript and Angular? What if my have some issues that the only solution found in community is using TypeScript and Angular? So I have to rewrite my project?

And because our team is zero-based, learning TypeScript and Angular at same time is not a very good idea.

Debug tool

When I was researching how to share code between NativeScript and Web , I used NativeScript debug tool to log error messages (right side is NativeScript project)

I don’t know what situation is now, but one year before when I looked at Native Script, the debug tool is clearly not useful at all. It makes me feel like if I pick this framework on our project, I have to debug JavaScript by using “alert();” function if you know what I mean. Native Script only has a terminal with all kinds of message, it’s really hard.

So maybe because I didn’t dig enough, but I didn’t have very much time and this was the farthest result I could get.

Surprise

So our project start with React Native. And surprisingly it went well, especially when you are using Redux with it: painful to write, easy to maintain.

One year before, we don’t know any native development at all. One year later, at least I am sure I still only know a few. I never touched native side, although there is always some problem: Android Emulator is not able to access host file, Android Emulator is adding “UTF-8” at content-type in restful API requests , iOS is not able to access users’ cellphone number, iOS is not able to send SMS in the background and so on.

But we learn fast and there are also many solutions you can find on internet. So we finished our main features in 4 months and now our app is already in App Store. Also we use almost same code in Android platform, so we will go live on Google play soon.

At last, thanks to Kartenmacherei for giving me this opportunity to learn React Native and working with talent teammates to make the app go live.

The journey is full of challenges and joy.

My name is Tyreal Gray, and I am a Javascript app developer now :P