17.01.2019

React Native vs. Swift – Which One To Pick When Building An iOS App?

Article by
Miłosz Kaczorowski
6 min read

React Native and Swift are both relatively new technologies that support the mobile app development for iOS devices. While React Native is a framework for JavaScript, Swift is a brand-new programming language. So which one to pick when thinking about building a new iOS app?

The text covers:

  1. What is Swift?
  2. What is React Native?
  3. Why compare them anyway?
  4. Comparison
  5. Some thoughts on Fortran and history of computing (seriously!)

iPhone is undoubtedly more than a device – it is a cultural and social phenomenon initially powering the smartphone revolution ignited by device’s first release in June 2007. Since then, the device’s popularity skyrocketed, as the brand saw an impressive share of 13,2% in global smartphone unit sales. It is especially impressive when seen in the context – Apple is a premium brand, while these figures include also a no-name or budget brands, sold on emerging markets.

iOS-powered devices see the biggest popularity in strong economies of the US, Canada, Scandinavia, and Australia. At the end of 2017 78% of US teens owned an iPhone and 80% claimed that their next smartphone will be also iOS-powered.

Considering that, it is no surprise, that Apple is strong enough to force own frameworks and programming languages – and that’s basically what Swift is.

What is Swift?

Swift is a modern, general-purpose and multi-paradigm programming language designed by Apple to build their iOS-powered devices and all the following ecosystem. Apps can be designed to run also on macOS (for Apple computers), watchOS (AppleWatch), tvOS (Apple TV digital media player) and, what may be a bit surprising z/OS, that is powering IBM Mainframe computers.

The language is currently distributed on Apache License, that makes it available for the community to use. It’s a relatively new project, launched in June 2014, seven years after first iPhone’s launch.  

What is React Native?

React Native is a Facebook-supported framework designed to build device-agnostic mobile applications. Contrary to native apps that use different programming languages for each platform, React Native is based on JavaScript and allows users to share the code between various platforms, including Android, iOS and web apps. Up to 70% of the code may be shared between the apps, significantly reducing the development time in cross-platform mobile app development.

React native is widely used and established technology, leveraged by Facebook and Walmart apps among others.

Choosing React Native For Your Mobile Tech Stack

React Native vs. Swift – why should we compare them?

Mobile apps are becoming not only a mere tool to solve a problem. It is getting more about lifestyle and establishing the bond with user – if they have an app installed, the brand is constantly in their pocket or under their hand. According to IDC data, 80% of smartphone owners check their device no later than 15 minutes after getting up – effectively before even brushing teeth. Considering that, having an app is a must.

Nevertheless, building the app is a cost – sometimes a huge one, when it comes to cutting-edge cross platform mobile development. Cutting costs without losing quality may be a huge gain for companies. Moreover, when developing apps, companies need to address the needs of both iPhone and Android-powered devices, effectively preparing two separate software pieces designed to perform the same task – the most sturdy form of cross-platform mobile app development.  

But optimization may come with costs that are not to accept easily. Considering that, comparing the possibilities of React Native vs. Swift is accurate.

What to take into consideration?

Developing an outstanding app is a sum of many factors, yet there are few indicators that have the greatest value. Let the React Native vs. Swift comparison begin!

But first, here is a TL;DR version 😉

React Native vs Swift – platform comparison

User Interface

Swift, being the iOS-native language designed by Apple to power apps has obviously no issues with integrating into the iOS design and leveraging all the UX principles. On the other hand, building the app with Swift is, in fact, coding a native app from scratch. Thus, every element needs to be polished separately.

React Native, on the other hand, uses JavaScript as a power behind the scene and leverages the internal APIs to run native elements. Considering that, the user interface is indistinguishable with the native one, yet easier to code. What’s more, due to web development-legacy of JavaScipt, the apps have no issues with being displayed on various screen sizes – and that may be a point when building an app for iPhone and iPad at the same time.

Speed of coding

Swift is, well… Swift when it comes to coding, as the language took off the legacy of Objective-C used before, making the process easier and getting rid of drawbacks. It is a convenient way to build an iOS app.

On the other hand, React Native is a framework for JavaScript, that is a simple-yet-powerful working horse of web apps. The language is also easy to learn and from 1995 when the language was introduced, various support tools were designed.

The game changes when it comes to building the Android app. With React Native it may be even copy-paste process (to some extent). If the app was built with Swift, the process starts from the beginning.

Performance

Intuition suggests that the native app should be better performing than the framework-based one. But it is not that simple.

Various tests seen among web show, that when comparing two identical apps performing the same actions, the differences vary from the task. React Native is slightly better when coming to CPU usage optimization, but dealing with graphical effects may be more troublesome for the framework. To tackle the challenge, React Native enables developers to embed the native code into the app, delivering the code chimera using different tools and assets to deal with different tasks.

But the sole fact of differences being not significant is a great testimony for React Native.

Community and support

JavaScript is currently one of the most popular programming languages, used in web and hybrid mobile app development. In fact – it remains the most popular programming language for the sixth year in the row and is used on over 95,1% of internet websites.  

It is hard to challenge the position of JavaScript when being established in 2014, even when backed by Apple.

Stability

React Native, despite being powered by one of the most renowned programming language, is not producing really native app. Its work is based on leveraging the internal APIs and libraries to make the app work. Thus, it is about adding a middle-man between the code and the platform.

On the other hand, Swift produces a native app, that may leverage all the platform’s possibilities. As mentioned above, Swift performs better when dealing with graphic effects and computational-heavy tasks. So when it comes to juicing-out the platform, Swift may be the better choice.

But is every app juicing-out the iPhone? And how many Swift developers are skilled enough to build the app that is optimized enough to perform in a more stable way than React Native one?

Documentation

Both React Native and Swift are supported and maintained by tech giants. React Native is a Facebook-backed project, and Swift cames from Apple. Considering that, both projects are well-documented and organized.

The maturity of the platform

Both projects are relatively new, with Swift been launched in 2014 and React Native in 2015 (being a direct descendant of React.js which has been in use inside Facebook since 2011 and gone open source in 2013). These technologies are emerging, yet there are few significant differences.

Swift is a new programming language designed to be the next step after Objective-C. Designing a programming language is always a thorny process, as it is a backbone of every piece of software.

React Native, on the other hand, is the new technology powered by the established one – the JavaScript. Thus it is easier to check the code and spot the problems with the framework itself and spotting the bugs is easier.

Summary – a programming language resilience

Programming and IT-business are based on a bit schizophrenic paradigm of building new stuff with old tools. Despite tech-giants’ efforts and emerging programming languages seen as prodigies, aged, sometimes even antiquated stuff doesn’t leave the field. At least not easily

Fortran may be an example of extreme example of programming language resilience. Launched in 1957, four years before Yuri Gagarin’s space flight and nine years before landing on the moon.

Oh, and 28 years prior to the first edition of the Windows operating system. And yet, Fortran is still in use, especially in heavy-computing fields like weather prediction and astronomy.

The same fate appears to be shared by JavaScript, that powers the modern web despite being over 20 years old. With React Native it has a chance to be used further as a working horse of mobile devices, especially considering the dynamics of React native development companies.

Preparing the app with Swift may come with some performance boosts and enables the developer to leverage all the possibilities provided by iOS. But in most cases, the gain appears to be not-that-significant when comparing the React Native vs. Swift possibilities.

Not to mention the fact, that there is a whole world of Android users waiting for the app. Is building a new one from scratch really that good idea, especially with some React Native development company ready to provide support?


Did you enjoy the read?

We highly recommend to check out our other articles. If you are looking for a career opportunity, feel free to browse our job offers. Do you want to have your digital project estimated? Just click on a button below.

Estimate project Browse job offers
im-logo We are IDEAMOTIVE

We are software developement house located in the hearth of Europe - Warsaw, Poland. Our main areas of expertise include Ruby on Rails, React and React Native.

Consult Your product with our experts

Get an estimate or contact us