Salsita has scores of talented developers who are well versed in various programming languages and technologies. For this interview, I spoke with Full Stack Developer Martin Gajdičiar, who gave me a peek into the world of React Native.

What do you like about React Native?

I like that I can use the same code to develop for both major mobile platforms: iOS and Android. The great thing is that I can re-use my existing React/JavaScript skill set because React Native is targeted at developers coming from the JavaScript world. Expo—an open-source framework built on top of React Native—gives you a nice, quick start, so when you are a React Native novice it shields you from some non-JavaScript stuff, like platform-specific build configurations and deployment of your mobile app. Another great thing is since you write React Native in JavaScript, you can reuse a lot of your code if you decide to build a web-based counterpart to your React Native mobile app.

If your team consist mostly of JavaScript developers and you are going to develop a mobile app, I’d consider React Native as a first choice. The learning curve compared to pure Android and iOS app, (you’d have to write in Kotlin and Swift) will be, in my opinion, much smaller. I was impressed by the speed of React Native apps and could not tell the difference between a React Native app and native mobile app. React Native + Expo is a good fit for smaller apps when you need to develop quickly and you don’t care about having the latest React Native features available immediately. There are more things involved in deciding whether you should use Expo or not, but it is a good fit for most of apps.

What don't you like about it and how did you overcome this?

The rapid evolution of React Native comes at a cost: almost every release contains a breaking change or causes some issues with third-party plugins, which don’t react fast enough to new changes. That means you will spend a lot of time doing fixes when you decide to upgrade React Native. You should also keep your React Native app up-to-date to avoid headaches when updating several versions at once.

Official React Native documentation is great, but you have to be very careful about which third-party libs you choose. They should be actively maintained with a quality codebase and good docs. That’s a general rule for any platform, not just React Native. It is even more critical in the case of React Native since updates are happening frequently and one outdated lib might make your life a lot more difficult.

Platform-specific configurations (if you don’t use Expo), especially Apple developer experience (you have to have a Mac to be able to build your React Native app for iOS), can sometimes be a pain for a person coming from a web development background. There are some tools which can ease the pain, like Fastlane, but you still need to learn and understand some platform-specific (iOS/Android) stuff. The good thing is that once you get a grip, you can toss Expo and have full power over your builds and deployment.

The mobile world is very different from web development. You’ve got different devices by different manufacturers (Android) running different versions of an operating system. Some of them have weird notches and multiple cameras, so you will have to deal with weird device-specific bugs and issues. And what is sometimes working perfectly on Android will not work on iOS and vice versa. React Native is trying hard to make all of this easier, but there is still a long way to go.

Would you advise businesses to use React Native?

I’d advise to give React Native a try if your team has already JS experience and you want to build a mobile app targeted at both iOS and Android. React Native is rapidly evolving, so it is getting better and better. The community is supportive and Expo can help you get started. There are even many great third-party plugins available. Of course, the React Native world is not always rainbows and butterflies. Your team will have to show some dedication when solving specific iOS/Android issues, but judging by my experience the outcome is worth the hassle.

Where do you see React Native in the near future?

Considering the rapid development and number of improvements during the past year, and also adoption by some bigger companies like Tesla and Wix, I’m excited to see where React Native will be next year. It is certainly here to stay and I expect it will only strengthen its position on the market, since adoption by bigger players will put pressure on React Native teams to fix existing issues and deliver a better platform.

Some people say that progressive web apps (PWAs) are the future, but I think there is a long way to go to make that happen. It will also be interesting to see how Ionic Native will perform next year.

Is there anything else you'd like to say about React Native?

Starting with React Native can be challenging if you have zero experience with the mobile world. Especially if you are building some non-standard app, e.g., utilizing different device sensors, doing custom animations, etc. The key is to stay persistent and it will pay off in the end.

ABOUT MARTIN GAJDIČIAR

Martin Gajdičiar is a Full Stack Developer at Salsita whose main field of focus is React and React Native. He works with various technologies and frameworks ranging from mobile applications to enterprise systems. He treats each product as his own and always pushes for elegant solutions and new ideas. Martin strives to make well-designed apps with satisfied end users; nothing is better than cracking a tough problem. Off screen he likes to read Nordic noir and spend time with his wife.

Visit Salsita’s website to learn about our React Native Projects or get in touch with us to discuss your mobile app projects.