React Native is a framework that allows us to build native mobile apps using JavaScript and React.

 

It uses the same design as React, letting you compose a rich mobile UI from declarative components.

 

Unlike hybrid, progressive web, or mobile web apps, which rely on web technologies and offer much less than fully mobile apps, React Native offers full functionality in terms of features, user experience and performance.

Download our

React Native Portfolio

Mobile app development services using React Native

EASY CROSS-PLATFORM NATIVE MOBILE APP DEVELOPMENT

The chief advantage of React Native is the ability to share over 95% of the codebase between the iOS and Android versions of your app.

Launch on both platforms easily without leaving any potential users in the dust.

NATIVE MOBILE APP FUNCTIONALITY

Apps developed with React Native are real native mobile apps just like apps written in Java or Swift.

React Native uses the same fundamental UI building blocks as regular iOS and Android apps. We just put those building blocks together using JavaScript and React.

EXTENSIVE COMMUNITY MAKES REACT NATIVE DEVELOPMENT A BREEZE

Initially developed by Facebook, React Native was created from the ground up to allow dev teams to create mobile apps with great UX and performance.

Today, the React Native community provides hundreds of tried-and-tested solutions, speeding up development and removing roadblocks.

REACT NATIVE CONSULTING

Get all your React Native questions answered.

Examples of React Native projects at STX Next

Have a look at what our React Native developers delivered for our clients.

Zappi

An app that connects temp teachers with cover managers at schools. Using the React Native app, teachers can find jobs, navigate to the school and get paid for their work through a geofencing solution. They can also receive push notifications and SMS alerts about new offers.

Deuce Tennis

The Deuce Tennis app allows tennis players to find partners to train with and courts to play on. The mobile app allows users to browse available tennis courts, book sessions, and invite friends to play with them. The app also features notifications and an admin panel.

Signal Kit

Signal Kit is a complete communication suite for the K-12 community. With cloud-based mass communication, internal collaboration, business intelligence and industry leading oversight. It features push notifications, Deep Linking/Universal Links, and access to the phone camera and camera roll.

Our mobile technology stack

React Native

TypeScript

Redux

Apollo

Firebase

Jest

Detox

Fastlane

TravisCI

Lottie

Redux Saga

React Navigation

Axios

Enzyme

React Native FAQ

What is React Native?

React Native is a development framework that allows dev teams to create native iOS/Android mobile apps using JavaScript.

 

By using React Native, you don’t have to code in specialized native mobile languages such as Java/Kotlin (for Android) and Obj-C/Swift (for iOS).

 

Instead, you can put together the same fundamental UI building blocks as regular iOS and Android apps using JavaScript and React.

 

How does React Native work?

Just like React Virtual DOM, React Native creates an internal representation of the rendered UI. This tree-shaped structure helps calculate differences between each layout change, optimizing the rendering process.

 

Developers use React’s declarative API in their JavaScript source code, which is later translated to fully native components, which are different for iOS and Android. This means that a React Native developer does not need to know to what exact type of components his code is being translated into.

 

Working on such a higher level of abstraction can lead to increased productivity and unified development for both platforms.

 

How does React Native compare to fully native mobile app development?

Unlike “pure native” mobile development for Android and iOS, React Native apps are developed using JavaScript. This makes it much more friendly to web frontend developers.

 

However, a React Native developer should also be familiar with basic Obj-C, Swift and Java syntax as well as iOS/Android tools such as Xcode, Android Studio, Gradle and CocoaPods.

 

This makes a React Native developer’s skillset very unique: they need to know everything that a Web React Frontend developer knows plus all of the additional aspects within native app development.

 

The final outcome of React Native is a fully native app, same as an app completely written in Java or Swift.

 

How does React Native compare to hybrid and mobile web app development?

Although both React Native and hybrid mobile development frameworks like Ionic use similar technologies, the end product can be very different.

 

We should keep in mind that apps developed with React Native are fully native mobile apps, just like their Swift or Java counterparts. It is not an app wrapped in a web view.

 

Therefore, the user will easily distinguish between those two types of apps just by interacting with them. A hybrid app will not be as intuitive and it will have less access to the phone’s features.

 

You can achieve the best user experience only using native mobile apps, and React Native apps are one of those.

 

Is development using React Native faster than other technologies?

React Native offers many nice tweaks to the mobile development workflow, including live reload and hot reload, which allows developers to make changes to the source code of the app without needing to recompile it. It is blazing fast and significantly speeds up the software development process.

 

React Native also offers other useful tools like the React DOM inspector and performance monitors.

 

Additionally, keep in mind that apps written using React Native will share the codebase for Android and iOS, making them much easier to maintain and develop.

 

On top of that, the React architecture itself also helps increase developer velocity compared to other technologies.

 

Is the codebase shared between both platforms?

From the very beginning of React Native in 2015, it was not aimed to follow the “write once, run everywhere” motto.

 

Instead, the React Native approach to a shared codebase was “learn once, write everywhere”, which means that React Native respects differences between platforms, like permission handling, navigation, push notifications or styling.

 

However, based on our experience we can say that over 95% of the app JavaScript codebase can be shared between iOS and Android. But it’s worth keeping in mind that there are some platform differences when implementing features like Push notifications, permission handling, etc.

 

Is React Native efficient in terms of development and maintenance costs?

Yes it is! Having a common codebase for both iOS and Android is the main reason why React Native is a better option for multiplatform apps than having separate Java and Swift apps.

 

Also, the React component-based architecture helps easily add new features to the app by adding more “building blocks”. Sometimes mobile development expertise may be required to design a solution that will work equally well for both platforms, which might be a problem for less experienced developers.

 

Can the user distinguish if the app is developed with React Native?

React Native behaves exactly the same as any other fully native app. The user cannot judge just by user experience that the app was created with React Native instead of plain Java or Swift. It is, however, a much different—and superior— experience compared to apps based on HTML.

 

How is the user experience better with React Native compared to web-based technologies like Ionic?

React Native uses platform-specific, native components, same as other native apps do, while hybrid-web based technologies rely on HTML and a web view.

 

Because of this, React Native is much more responsive, animations are more smooth and transitions between screens are more fluent.

 

User input in React Native can also be handled much better because of platform-specific input components that fit great with the rest of operating system, creating a consistent ecosystem.

 

Is React Native’s performance the same as in fully native mobile apps?

React Native apps run in a multithreaded environment: the native thread, called the UI thread; and the JavaScript thread, where our code is being executed.

 

Thanks to such architecture, we can say that React Native offers comparable performance to fully native apps. Butter-smooth 60 frames per second are achievable even on very old devices that have been discontinued for a few years.

 

What can be done using React Native?

Much more than with hybrid-web mobile apps and almost everything that you can do with fully native apps. At STX Next, we successfully implemented features like push notifications, camera and camera roll access, deep linking, background geolocation, native maps support, Bluetooth LE connectivity, Lottie animations, SVG, extra storage encryption, and integration of various crash reporting and analytics tools.

 

But these are only examples from our work. Much more can be achieved using React Native, including fingerprint authentication, support for native payment platforms or barcode scanners just by using modules supported by the community.

 

If there is no module for something that your product might need, it is always possible to create React Native bindings for it.

 

What cannot be done using React Native?

React Native is not designed for games. It lacks a physics engine and there are technologies that would fit this use case much better.

 

Also, because of its architecture, it would be really hard or even impossible to create a fully working system widget in pure React Native.

 

However, what you cannot create using just React Native you can instead build using either Java or Swift and then connect it to React Native as a module.

 

There are also some less popular modules, that do not have their counterparts in React Native, but it is always possible to create bindings for them.

 

Can React Native have a shared codebase with web React apps?

It is possible up to a point. The business logic can be shared between React and React Native as long the apps are designed for such architecture. The render function cannot be shared because React Native operates on a different kind of basic components than React.

 

Is React architecture scalable? How does it compare to other technologies?

Thanks to component-based architecture and separation of concerns, React can be one of the best-scaling frontend technologies. This also applies to React Native of course. Maintaining a single codebase for multiple platforms is also a great benefit if your app is bound to grow larger and larger.

 

Who is behind React Native? Which big companies are supporting it?

React Native is being developed by Facebook. Initially an internal project, React Native became open source in March 2015. It is also supported by other companies including: Wix (a cloud-based web development platform), Airbnb, Microsoft and many others, who contribute to open source libraries for React Native.

 

What are examples of popular mobile apps built with React Native?

React Native is not only popular within the startup environment but also big (really big!) players are using and actively supporting it. Some of the apps that use React Native are: Facebook Messenger, Instagram, Skype, Pinterest, Uber, and Salesforce.

 

Does React Native have a bright future?

None of us have a crystal ball, but by looking at popularity charts, job offers and SEO stats we can say that React Native has a lot of momentum. It has also successfully passed its incubation stage, making it a mature, production-ready technology.

 

It’s worth noting that not all technologies get to that point. Some of them stay unstable forever and never get a big market share or dedicated developers. Such technologies end up abandoned or developing at a sluggish pace.

 

Fortunately, React Native already has all of it: great developer support, a huge market share and big companies behind it so its future might be the brightest of all its rival technologies.

Is React Native developer-friendly?

React is one of the most liked technologies by developers (Stack Overflow). Its declarative and component-based nature makes it easy to learn and debug.

 

However, React Native has a little higher entry threshold, because in addition to knowing React, the developer should also know at least the basics of mobile development and the differences between the platforms.

 

All in all, React Native combines the agility and flexibility of web technologies with the final outcome of a fully native mobile app.

 

Is React Native actively supported by the open source community?

Yes it is! Actually, React Native has one of the most robust open source communities, which support hundreds of projects related to React Native.

 

Having such support is a great asset when working on software development due to the variety of open source modules that we can use in our apps. It speeds up the development process and optimizes costs because we can take production-ready components, libraries and modules developed by other people and companies instead of creating them from scratch.

 

This allows us to focus on providing business value instead of creating tools to provide it.

Standalone services

Start small to make big improvements in your software product.

Code review

Limited free offer. Find costly issues in your code and identify areas for improvement and optimization.

UX Audit

Limited free offer. Evaluate the overall user experience and usability of your existing product.

MVP app in 5 weeks

Fixed price offer. Turn your app idea into a functional MVP in just 5 weeks.

Prototyping

Simulate future functionality and design before development begins.

Discovery workshops

Dive deep into your product concept to establish everything you need to start development.

Solution architecture

Design a solution architecture to meet your goals for efficiency, cost and scalability.

GOT QUESTIONS?

GET IN TOUCH!

Matthew Harris

Director of International Partnerships

+48 512 914 236

Christian Mendoza

Business Development Team Leader

+48 519 087 316