React Native Application

React Native Application

Tech: React Native, Redux, PouchDB

3form builds incredible and sustainable custom installations. In order for their internal sales team to share their portfolio of work, their previous native application needed a big update.

After assessing several tools, the Engine Digital team elected to use React Native, since our strength was in Javascript development, and less in Java or Swift. Not to mention the fact that React Native apps can be deployed to iOS or Android.

My role was as Lead Javascript Developer. There were several unknowns. How would the data be managed? Was syncing required? What functionality would the app need to do to improve on their current experience? Is offline mode important? After several weeks of collaboration across UX, Design, Development and the Client’s team, we were able to move forward with a concept.

The application would allow a sales person to authenticate, build custom presentations, manage music, integrate their own photos and run certain aspects in offline mode should they decide. We worked closely with the client to better understand their current API capabilities and constraints. React Native, while it uses Javascript, still had its learning curves. There were constraints to what components we could use and how we could use them, since React Native has certain guidelines in order to properly integrate with a native device build while providing optimal performance.

In order to allow for multi user capabilities, we applied local storage to each uniquely authenticated user per device. As well, we decided to use PouchDB, since it worked very nicely with Redux to manage and maintain state in both online and offline mode. To allow for cleaner actions and async requests, we went with Redux Sagas to avoid nested callbacks.

Because this tool is internal to the 3form team, it isn’t public.