As there are so many technologies to choose from when it comes to creating new FinTech apps, different developers are entitled to have different preferences. However, some companies are completely OK with working with whatever their clients tell them with no second thoughts and some specialise in particular frameworks and programming languages. We tend to belong to the latter ones and we have some strong reasons for it, so we decided to explain why we chose React Native as our go-to cross-platform framework and why our clients benefit from this decision.
Table of contents
- What is a framework?
- What React Native is and what it’s not
- Why was React Native created
- From social media to FinTech
- React Native versus the world
- Flutter
- Apache Cordova
- Xamarin
- How to choose?
What is a framework?
A framework is a structure that you can build software on. It serves as a foundation, so you’re not starting entirely from scratch. Frameworks are typically associated with a specific programming language and are suited to different types of tasks.
Let’s say an automotive manufacturer wants to introduce a new model in their lineup. Do they always start designing it completely from scratch? In fact, it almost never happens. The companies need to optimise their processes in order to minimise the costs and time needed to launch new models. In order to do so, they most often have a selection of “platforms” and ready-to-use solutions, so new models are built in the most part from modules. If you’ve ever wondered why there is a BMW logo on the new Toyota Supra’s parts – this is why. The BMW Z4 and Toyota Supra share the same platform and many key components. Thanks to such “recycling” of solutions, these cars could be introduced to the market easier than if they had to be designed independently.
The same applies for software development. If there are ready-to-use solutions on which you can base your work, why not use them? React Native is one of such frameworks. Moreover, it is a cross-platform framework, which means a React Native development company can use it to create apps that run on different hardware platforms, such as UWP, iOS and Android.
What React Native is and what it’s not
React Native is not the same thing as React (sometimes also referred to as ReactJS). The first one, the one we’re focusing on today, is the entire cross-platform framework and formerly the heart of the latter – which is just a JavaScript library. The difference between them is important and they complement each other perfectly.
Why was React Native created
Some projects grow so fast and to such unexpected sizes that they become totally bloated. They get slower and more difficult to maintain over time. In 2011 Facebook became an absolute monster with a gigantic user base. But this was not all. Facebook also had a number of professional services, such as Facebook Ads. Developing it all became so troublesome something had to be done in order to avoid a disaster in near future.
The biggest problem, according to Mark Zuckerberg, was focusing too much on HTML. The CEO himself noticed that the app could perform much better if it switched to native. In addition, such a change would bring a number of benefits to the developers. However, developing a native app for different platforms would require a coordinated effort from many teams in order to make it work identically on iOS and Android. A framework that would allow parallel development of at least two versions at the same time was needed.
The answer was already on the way, fortunately. First, Jordan Walke, an engineer at Facebook was already working on the answer. In 2011 he used XHP, which is an HTML component library for PHP in order to create FaxJS and improve Facebook’s news feed. FaxJS some time later evolved into what we know today as ReactJS.
The evolution of the Facebook application started, but it was definitely not enough, as processing data and presenting data to the user in an efficient way are two sides of the same coin. The frontend part needed to be upgraded too.
The most important problem to solve was how to generate UI elements from JavaScript code running natively on a user’s device, instead of relying on HTML5 which was not efficient enough. To find the answer, Facebook organised a hackathon in the summer of 2013 and Jordan with his team took part in it. They prototyped a universal mobile app development framework capable of meeting the goals and, in fact, it was so promising that they were all delegated to develop it further. They called their project React Native and it appeared to be so needed by the market that in just 3 years it became the second largest project on GitHub. The wind of change was blowing strong in the app development world.
But wait…
Now, how does a technology derived from a social media giant work for other industries, for instance by FinTech development companies? It’s simple – React Native is just so universal and scalable that it is equally as good for tiny startups and huge corporate financial systems. Developing them all has a lot in common, because every app needs to meet basic requirements: to be a simple, fast, stable, secure and cross-platform application. React Native was designed with these principles in mind from the very beginning and it’s a very modern technology.
Because it’s simplistic in its principle, It makes it easy for developers to start working with it and to jump into work in existing and complex projects. React Native projects are well organised by nature. It makes starting new projects a breeze, but more importantly, onboarding new team members can be done much faster than in the case of legacy solutions that often require months of preparation, before a new dev can actually start writing fresh code. React Native makes everything scalable.
As a relatively new technology, React Native was created with modern hardware architectures in mind. It is tuned to facilitate the GPU in order to render user interfaces, instead of simply relying on the CPU which can be used for other tasks.
React Native offers the maximum performance, while being cross-platform. This is probably the most important feat that CFOs can dream of. Imagine doing the same work only once, instead of at least three times over again. It’s three times cheaper. With React Native, Code needs to be written only once to work on all popular platforms, including iOS, Android and UWP, but also Windows, macOS or even Meta VR goggles. Then, even more savings come, when we realise that many elements of an app can be generated from pre-made components. When it comes to security, it’s also better to base the work on solid foundations of a well-tested framework, such as React Native. In this case, thousands of security experts are looking for vulnerabilities and fixing them 24/7. Plus there is a huge and vibrant community of developers, enthusiasts and advocates of React that are willing to spend their time helping their colleagues all over the world.
React Native versus the world
React Native is not the only cross-platform frontend framework on the market, there are some alternatives.
Flutter
Flutter is a user Interface toolkit for crafting elegant, natively compiled mobile, web, and desktop apps from a unique codebase. However, Flutter uses the Dart coding language which makes it harder to recruit skilled engineers to build apps with it, as React’s TypeScript is much more popular (and no one is saying that this language is worse or better, we’re just stressing the popularity factor).
Flutter is an alternative backed by Google and it’s a bit less mature (it’s 2 years younger). All in all, it’s a very similar technology with similar capabilities, but it has a higher learning curve. Both are good, but require different skills from the team.
Apache Cordova
A mobile app development framework from Nitobi. The framework was renamed PhoneGap following the 2011 acquisition of Nitobi by Adobe Systems. Cordova lets developers build hybrid web apps for mobile devices with languages such as JavaScript, HTML5, and CSS3.
Cordova has a bit different development philosophy than React Native. It is not uncommon to start developing a pure web application, later bundle it as a Cordova application, and reuse as much code as possible for all the (mobile) platforms we want to target. It means a lot of freedom and flexibility when it comes to sudden changes in projects. Unfortunately, it does not offer the performance of React, because it uses single-threaded JavaScript. While there may be some tricks developers can employ here and there, in the end, they are bound by the mobile browser’s limits.
Moreover, React Native apps offer a more native look at the cost. Cordova is simply better in turning web applications into mobile applications, but it’s not as efficient in creating powerful and attractive apps from scratch.
Xamarin
Developers can use Xamarin for writing applications with native user interfaces and sharing code on several platforms like iOS, Android, Linux, macOS, and Windows. I uses a popular C# language and it’s backed by Microsoft.
The key difference between React Native and Xamarin is that the latter recompiles the whole app to be native, not just renders a UI element as native. However, it can cause some problems, as Xamarin applications grow massive, as they need libraries that translate C# calls into native. Also, they can only be developed with Visual Studio tools, which actually are easy to use, but also pose many limitations. To finish the list of why many developers hate Xamarin, is that it works only in the Windows environment and requires app store approvals for each update.
According to the engineers, the performance of both frameworks is similar and both offer similar scalability abilities, but Xamarin offers a more native user epxerience when it comes to UI at the expense of a lower availability of high-quality UX libraries. But which one to choose? There is no simple answer here.
How to choose?
There are dozens of factors that need to be considered when choosing a frontend framework. There are many options on the market and some of them don’t even differ much. However, it all depends on your organisation, after all. Do you already have a seasoned development team? What technologies is your team fluent at? Will they then need to learn something new before they start working on your new project or are they ready to work with the chosen framework? At Code & Pepper we believe that instead of looking for tiny differences that can affect the results, it’s much better to be experts at what we do. After realising dozens of applications we know all the limitations of React Native in frontend development and we know how to use it best.