Thoughts on React Native and Expo

I’m a mobile dev beginner so building a mobile app was always going to involve learning new skills. My team (also fledgling mobile developers) and I decided to build a cross platform mobile app for our project and we all have some React experience developing web apps, so using the ubiquitous React Native SDK was a no-brainer. We found some resources online that suggested using the Expo framework, a set of tools built on top of React Native, to set up our project and create a development environment and we dove right in!

So far, Expo has been an EXCELLENT set of tools for beginner React Native users. It gets the boilerplate project code created with a simple command in the Expo CLI, making setup a breeze. Development is done without any native code, using JavaScript or TypeScript to interact with the React Native tools and components. Testing is also simple with the use of the Expo Go app that allows you to run your project on your phone by scanning a QR code spat out by the Metro Bundler development server. This doesn’t require a native build so it’s lightning fast. Despite not using any native code we can still access device and system functionality using Expo packages. So far I’ve been able to get my location via my phone’s location services, show it on a map, and choose a photo from my photo library for upload to Firebase cloud storage. Pretty cool! Unfortunately Expo doesn’t allow the use of native modules, but it does let you ‘eject’ your project to a state where the use of native code is permitted. Our relatively simple set of needs has made Expo a great way to familiarize ourselves with mobile development using React Native.

Speaking of React Native, our regular React.js skills allowed us to transition to its ecosystem without a hitch. The basic structure and conventions of an app are just about the same and learning the mobile-specific React Native components is intuitive and made even easier with excellent documentation. The difference in how user interfaces are rendered (HTML, CSS, and JavaScript for web and native UI components and APIs for mobile) all happens under the hood so the developer only has to concern themselves with the same basic React core library. The philosophy of creating reusable elements is still fully intact in React Native, making for a clean and elegant way of designing and implementing UI components. Running our app isn’t quite as simple as pulling it up in a web browser, but the Expo framework and Expo Go app streamline the process and keep us moving forward quickly and efficiently.

It’s been an utterly painless journey so far, let’s hope it continues that way!

Print Friendly, PDF & Email

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *