Way to React

Way to React

About one year ago I only heard about ReactJS and React Native. To be more specific, I attended the conference WeAreDevelopers in Vienna and the most popular topics there were web and mobile development. Attendees talked about Angular, React, Vue, PHP, JavaScript. I listened to speakers and thought that I have to try somehow.

Luckily, after a couple of months, our client requested the development of a framework for iOS and Android, which has to run React Native plugins. My goal was to develop the framework and a sandbox application for iOS. They planned to use the framework with the existing application. The sandbox app is necessary for plugins’ developers. Another developer was working on the Android framework.

It was not a pure React development. Actually, the framework and the sandbox were written in Swift and some parts in Objective-C. We provided API to future React Native plugins: sensors, networking, Google Analytics, notifications, and some Host app specific API. 

The final version of the framework can request and display a list of available plugins, can ask a user to accept a license, can download React Native .jsbundles, install and update them on the fly. Also, it can revoke access to plugins. Undoubtedly, during development, I was forced to study React Native :) because I had to test the framework and the sandbox app. So, I learned basics, got some knowledge and wrote a few simple React Native plugins/apps for demo purposes. When this project was done, we delivered it to the client, and I switched to absolutely another project.

React Native was buried for a while.

Times go by and after 4-5 months I decided to study it again. Since I am a mobile iOS developer, but I know nothing about Android, I guessed that React Native could be a silver bullet for me. And the best way to study is just to write something.  I started my own project ReactiveCards.

I have to mention that I have experience in C/C++/C#/Delphi/PHP/JS/Obj-C/Swift/SQL, Windows/Linux/Mac/iOS, and so on. But I have never developed anything for Android. I have never used an Android phone, and, to be honest, I just do not like Android at all. :)

So, I started my project, I developed it for two months in iOS Simulator and tested it on my iOS devices. It is a pure React code. Certainly, I used some existing libraries, but my code is just javascript. I tried different things, such as working with SQLite, Text-To-Speech, Authorisation with social networks, Networking. I also acted as a backend developer and implemented API for my project on my web server.

After two months, I asked some Android developer to assist me: install Android Studio, set up an emulator and just show some basics. Right away I opened my project in Android Studio and… it worked. 

Sure, I am cheating. I had to fix some Android specific things. Probably, I spent a couple of hours to connect SQLite npm module and I was forced to change .gradle files, update Android SDK and so on. Nevertheless, I was impressed. It worked. It worked in the emulator. Everything: databases, voices, networking. I cannot believe my eyes and ears. I realized that I just ran my first Android app and I still do not know anything about Android. 

React Native made a miracle. 

Slightly later I built the release version for testing and sent the .apk file to my friends and they were able to install and test my first internal release. Unbelievable. Yes, I still do not have an Android device :) but I promise to buy one.

A few days ago I uploaded my application to GooglePlay and AppStore. Both versions are already available for end-users. Do not be strict if you decide to try it.


Currently, I work on an even more challenging project. Initially, my customer wanted just ReactJS web application. However, because I did not know a lot about ReactJS and I was captured by React Native, I convinced him to develop a universal Web/iOS/Android app. Now I am in the middle of the project and I believe that I am moving in the right direction. Certainly, this project contains platform specific code, mostly UI, but the rest of the app uses the same logic and source code for all platforms. Cannot say more details. Let’s complete it first. I hope that finally, all parts will work as expected.

I cannot predict what language or technology I will use next, but definitely, I am going to use React Native for myself again.

Sergey Chehuta, White Town s.r.o.

https://www.whitetown.com/reactivecards/


Denis Bogomolov

Top-notch iOS Developer, Speaker

7y

Happy to hear that you had good experience with RN. We in Showmax had research around it while ago and unfortunately it not worked well for us. Check more info in our blog: https://tech.showmax.com/2018/05/react-native-or-not-react-native/

To view or add a comment, sign in

More articles by Sergey Chehuta

  • 2 months after launching, I moved my side project from MVP to a stable product.

    Two months ago I launched a new project, state.sk It’s a URL shortener.

    1 Comment
  • How I Reduced AWS Costs by 100x

    Today, I can call myself a full-stack developer. However, when I joined the project, I was focused on iOS development…

    1 Comment
  • Fiscal Receipts apps

    I would like to share one more project with you. As you may know, every Slovak cash receipt contains a unique QR-code.

  • My first SwiftUI app has released

    It looks that SwiftUI is the next big thing in the iOS world. I have been studying it from the very beginning.

    1 Comment
  • SynSnap

    Today I would like to share with you the new project that I created during the lockdown. It’s named SynSnap.

    3 Comments
  • LocalizeTo

    Hello everybody. These days, as many of you, I am locked up in my home because of coronavirus.

  • React Native. I did it again

    Finally, I did it. I just released my first commercial React Native application.

    1 Comment

Others also viewed

Explore content categories