React Native: First impressions

Rajat Saxena
Jul 22, 2017 · 4 min read
React Native

If you’ve been following me for a while, you must be aware that these day’s I’m working on a new anonymous chat app Kiven Aa. If you are not, then what are you doing! Follow me!

Anyway, to make this app a reality, I planned to base the entire front-end/clients on React stack. That means React for the web client and React Native for mobile clients. Back-end’s a different story.

React for the web client, worked out great. I am very happy with the results. So, as soon as I was done (for the time being) with the web client, I picked up learning React Native. I was delighted at the idea that I can now build both iOS and Android apps, using the same code base. I mean who won’t be! Tell me!

I quickly loaded the “Getting Started” page on my laptop and started following up the instructions to set everything up as quick as possible. Then, I played around with the framework for a while and made up my mind

“I won’t be doing Kiven Aa mobile apps in React Native”

Ok, I will list down my learning about the platform, what worked and what not. So here we go…

Fine-grained control

So, I wanted to release several versions on my apps, like the ad-supported ones and the premium ones. I can easily do this in Android Studio, but I didn’t find relevant (read: helpful) material, which can help me in setting up such an arrangement in React Native (RN, from now on).

Since, RN is very new and evolving at an astonishing pace, I am sure this feature will also gets its fare share of documentation, but for the time being, it’s better to stick with native.

There are actually two different apps

Although you can share some business logic, using the power of ES6 modules etc. but there are two different files index.ios.js and index.android.js, which means the you’ve at-least write the UI part, two times. There’s also CREATE-REACT-NATIVE-APP (CRNA) which gives you a fully JS based RN app so that you can share even the UI code as well, but the catch is… you cannot use any native modules/libraries, on either operating systems. This is a deal breaker for CRNA, as many non-trivial apps will make use of at-least some native libraries or other native features of the platform.

Not a very good support for Google Adwords

As I started as an Android developer, I am naturally gravitated towards putting Google Adwords, for monetizing my apps. I wanted to do the same, this time. That was my initial business idea, to put Ads in Kiven Aa, in all three clients (Web and Mobile). But, when I started to implement some Google Adwords, I found out that RN does not offer an official Google Adwords component. There is one third-party component, which is quite famous among the community, but I was skeptical that it would offer me great deal of freedom and flexibility. So I decided to not use it.

Declarative vs Imperative Programming

One thing I really liked about programming in React is its use of declarative programming. You just have to concern yourself with what should the UI be like, at any particular moment. It’s up to the framework to make changes to UI. On the other hand, if you are working with native platforms, if you want to change the state of a button, you first have to find the button, get the reference to it and then change its state accordingly.

After programming in React, for a while. I am finding imperative programming, just a waste to time and human resources.

Hey Computer! I just told you that whenever the user type “hello”, activate the Send button. Can’t you understand and do that automatically, for me?

So, those were some of the things which I experienced while working with React Native. I haven’t shipped an app using the platform and for this time…

I’m moving back to the native development

I’ll return soon to the React Native stack. I promise!

If you liked this post, kindly recommend it to your network and follow me for more posts like this. You should also subscribe to my YouTube channel, if you like developing digital things.

Facebook|Twitter|YouTube

Till next time…

Rayn Studios

App Development & Coaching

Rajat Saxena

Written by

Developer, Entrepreneur & Founder of Rayn Studios

Rayn Studios

App Development & Coaching

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade