Tools For React Native App Development: Expo Review

There’re plenty of open-source developer tools, which results in the
various apps we at Apiko browse and download today. The feel and the look of a
certain app depends on what scope of work was done starting from the very
backbone. That’s why the powering technology choice, the way of writing the
code and additional resources that were used during the creation process
matters. In this article we’d like to make a review of Expo.io - a UI
library and a set of tools for React Native app development, and tell you why devs (including
our team) ❤️ this product for native app development with the use of
JavaScript.

What exactly Expo is and what it’s used for

Think of Expo as of a toolkit created for React Native app developers that
contains ready-made UI elements for smoother and faster native iOS or
android app development.

The tool’s documentation page for developers states the same: “Expo is a
set of tools, libraries and services which let you build native iOS and
Android apps by writing JavaScript.”

Besides, Expo is one of the great open source developer tools out
here.

We guess a 2-minute explanation perfectly fits in here:

Why do developers like to use Expo? Why is Expo just the right technology
for development?

First and foremost, Expo boosts the very beginning of React Native app
development. How exactly?

You can use native modules separately, to provide the scope of
functionality you need for a native app development, i.e. access to
camera, microphone, contacts, finger scanner, location, oauth
(social login), notifications,etc. Be ready, though, to possibly
face modules incompatibility issues and fix them, which would take
you more time.

In its turn, with utilizing
Expo SDK
(that contains modules with the functionality already mentioned above and
more) you can make the process of react native app development less buggy
and robust.

All of the modules Expo SDK has, by the way, are a good match for native
iOS or android app development. Utilizing Expo SDK you don’t have to figure out how to deal with the insignificant bugs after the React Native version update. Expo team have already taken care of the small troubles that might bother you in the process of native app development. Besides, Expo SDK updates
every month (for now, it runs on v22.0.0). Pay attention also to which Expo
versions correlate with React Native’s versions.

Expo SDK and React Native cross-compatible versions

You can see the rich list (left) of functionality Expo SDK for native
android or iOS app development

Expo contains already embedded graphic elements of navigation, like SVG
icons, that are implemented with the help of
react-native-svg
module. You can also initiate the use of
react-native-elements
for the React Native app examples you’re working on, the module with the
complete abundance of ready-made UI elements, like:

The modules fit for native iOS app and android app development

With the help of ExpoSnack,
you can share the very bones of your React Native app example(s)
with the team to check the things out or receive a useful piece of
advice. Apart from this, there’s a way to download and look at the
beta (or release-prepared) version of the app by scanning a QR code
or receiving the link to the app within Expo environment.

ExpoSnack

You can download the Expo app and scan the QR code to receive the app on
your phone

React Native developers state that with Expo the updates come at
ease. When not using Expo, RN updates happen to take from several
hours to several days. Another reason why some React Native app
developers utilize the old version(s) of RN is because during the
update some packages might cause you incompatibility troubles.
This creates significant obstacles to test the new React Native features when in the process of react native app development. With such technology
for development as Expo in your ‘handcuff’, you are guaranteed by
Expo team that everything will be fine.

All of these aspects mentioned make Expo the right technology for mobile
apps development.

You can showcase your Expo apps in Expo apps library. We’ve created Perfi, an open-source
financial app for which we’ve used React Native and Expo. You can
download and check it out here:
expo.io/@danilichev/perfi

Featured Expo projects

We’ve enlisted our app in the Expo app library

Generally speaking, Expo is the collection of ready-made plugins which you
simply need to adjust to your device

Expo is supported by people who stand behind React Native
development. That makes the most of work with Expo + React Native.
Given the fact that both Expo and React Native are listed in
GitHub, it makes them perfect open source developer tools to use
and make contributions to.

With the use of
ExpoKit, a Java and Objective-C library, you can create nicely-performant
apps. Generally speaking, this allows to add to your
Javascript React Native project
native features and functionality. As ExpoKit’s documentation
states, Expo is aimed for JavaScript app development, but : “If you
created an Expo project in XDE and you want a way to add custom
native modules[...]”. The tool provides some “out-of-the-box native
capabilities”. As the result, Expo can be enlisted among the native
app development tools.

Create a secure React Native app examples with Expo

SecureStore
is a security measure that allows to securely store data on the
device (if put simply, the tool makes content on the device
‘private’ or ‘public’ for browsing and/or use). There’s an entire
map of options you can implement: from the data access only when
the device is unlocked to a requirement to enter the specific
password.

Among all other tools for developers, Expo is probably one of the most
respected ones out here.

Final words

As you can see, Expo has proved its necessity when creating React Native
app examples. The tool makes React Native app developers’ work several
times faster and easier. This is the reason why we choose and use Expo for
our React Native projects. If you’re looking for how to build a native app
with React Native, Expo might be the technology for development you need.

We'll be incredibly happy if you let us know what the other useful tools for React Native, JavaScript app developers are. We're always open for productive communication.