Share

engineering

4min read

Introducing React Native At Polidea

Introducing React Native At Polidea

For engineers and designers at Polidea the most important aspects of mobile apps we create have always been responding to understanding what is the best customer interest - more often than not it’s highest quality, and the smoothest user experience possible, but sometimes time-to-market on several different platforms beating the smoothness and long-term maintenance cost (but without a lot of compromise on quality). Polidea’s highest value for the customers was the ability to advise what is the best approach for them - we had the luck and privilege that we could choose the projects we worked on - as we believe that high quality-requirements project have much more impact and those are the projects that our expertise and experience can help most. We think that those are essential conditions for providing the best mobile services for our clients.

This is why we never believed in hybrid technologies like PhoneGap or Cordova which usually boils down to writing web apps for smartphones. The end-result usually doesn’t give the user a native feel of a UI and the animation smoothness. Those platforms never passed our minimum bar of quality and user experience. Being great at writing pure iOS and Android apps using technologies that the vendors provide comes with a price tag - it requires more people engaged in development process and usually - more time. And that matters a lot to our customers. Sometimes, limited budget can be a real issue for potentially great product.

But here comes React Native. This relatively new piece of tech is a framework from Facebook that encapsulates iOS and Android platforms’ SDKs and enables the developer to write app’s business logic in Javascript. The biggest advantage is to keep a native experience for the end-users with the possibility to share the same code between different operating platforms. At Polidea, we have always adopted new technologies quite early - not when they go mainstream, but when they already have shown promising signs, and so we started experimenting with React Native when we realised that it’s more than just a preview by Facebook. Now - after almost a year - we have developed a fully featured app in App Store called Best Buddies build only using React Native, and fantastic react-native-ble-plx BLE library which incorporates our best experiences from RxBluetoothKit Swift BLE and RxAndroidBle Android frameworks.

Check if React Native
is the right tech for your project

Balance

There is no ultimate solution nor technology for creating mobile applications. React Native is just a tool as many others and it has some issues, some of them are quite big.

  • It’s very advanced, but not fully mature yet. It’s as good as Facebook needs it to be. Using React Native we rely on Facebook’s engineering team and we depend on how Facebook understands mobile.
  • Javascript. Since it has been enormous effort put to make writing using React Native a pleasant experience, Javascript is technically defective and unsafe language made for totally different purposes.
  • There are tons of dependencies that you have to rely on. React Native itself has more than 600 dependencies. You don’t have much influence on them when you’re in trouble.
  • There is still necessity of having experience with native platform. You should know its possibilities and limitations. There’s often some more sophisticated or advanced logic that has to be implemented natively.
  • We don’t know React Native roadmap. We don’t know how long will it be developed and maintained by Facebook (recall Parse).

On the other hand there are a few serious arguments that put React Native in a good light.

  • When introducing React Native, Facebook coined a term: „learn once, write anywhere”. Practically, it means that majority of developed codebase can be used cross-platform. This is the key argument in any discussion. Having two platforms covered with features in the same time by up to two times smaller team is a game changer.
  • Building from existing components is quick. As long as everything fits and process is smooth, writing an app in React Native is faster than usual approach.
  • Thanks to React Native short history it is modern software incorporating great architectural patterns that help developers thinking and reasoning about app’s business logic, not struggling against structuring whole project from scratch.
  • React Native has been created and is maintained mostly by Facebook and for Facebook. Top-notch engineers work hard to make the framework great.
  • React Native is open source and has huge community. There are lots of docs, support and tutorials on the web. There is big amount of tools as well, and third party libraries open for contribution.
  • React Native gives the great capability of replacing the code of your application on-the-fly - without waiting for application review and allows to run ad-hoc A/B testing.

Listing pros and cons is all about finding a right balance. But always something has to prevail. Today, we think that React Native with its undeniable business value opens new, great perspectives in many different contexts for developing mobile applications. Not all mobile projects are suitable for React Native, but there are a number of them that can benefit from it. Helping our customers to choose best technology solution to a problem at hand - and knowing the pros and cons of different approaches is something that is vital to our expertise in the subject

At Polidea, we strongly believe in writing native apps for iOS in Swift/ObjC and for Android in Java/Kotlin. Native has never let us down. But we are open minded and always try to be on the bleeding-edge when it comes to mobile technology. Now we are building team of experts in React Native because we believe in the core power of this piece of tech. Stay tuned for more case study involving RN.

Share

Maciej

CTO

Jarek

Principal Software Engineer

Did you enjoy the read?

If you have any questions, don’t hesitate to ask!

Did you enjoy the read?

If you have any questions, don’t hesitate to ask!