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.
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.
- 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.
- Maciej OczkoHead of EngineeringMaciej manages technology learning in the company. We keep him responsible for adopting the best technical solutions for our customers needs. He also runs different projects as lead developer
- Jarek PotiukPrincipal Software Engineer & PartnerWith more than 10 years of experience in the industry, Jarek is an experienced technologist. Previously, he was the CTO at SkyCash, responsible for successful implementation of its mobile payment platform. He has also worked for Google as Tech Lead / Manager helping to grow the first Polish Google R&D center in Krakow and as Head of Technology in Computaris - building advanced back-end systems for Telecom Operators.