Guest post courtesy of our FinTech partner, Hydrogen

Introduction

This past summer, we released our blockchain-based Two-Factor Authentication (2FA) Hydro App for iOS and Android! From the project’s inception, we had several important product, design, and API decisions to make during our 4-month agile development process. The mobile team worked as a “bridge” and coordinated between our product, design, and blockchain teams, whose efforts together resulted in a successful app launch.

Using React & React Native

With an in-house team with React experience, we naturally chose the React Native solution for building a hybrid, shared platform that is written in JavaScript and builds code for both iOS and Android.

At Hydrogen, we are big fans of React because of its unidirectional, modular, and component-oriented nature that allows us to work with data in a more efficient, organized manner.

We found it helpful to make a distinction between regular components (i.e. “presentational” or “pure” components) and navigational screens (i.e. “container” or “stateful” components) when building the application piece-by-piece.

Our team separated out tasks and built individual React components, eventually bringing them together at the end of each iteration of the development cycle.

Some thoughts on React Native:

Thinking For Mobile

From the very beginning, we focused on the mobile nature of our 2FA, blockchain-based app. We decided to save the wallet (i.e. the keystore) and the HydroID locally on the device so that users can generate and restore their wallets via the device (using device-specific unique IDs as passwords for the lightwallet library) and their 12 seed words. We were even able to significantly reduce the loading time of the wallet creation (by ~58% on iOS and ~67% on Android) after modifying the original lightwallet.

Moreover, we honed in on smaller details to improve the user experience:

Testing and Analytics

Testing on iOS and Android presented exciting challenges. We initially took advantage of the built-in simulators in Xcode and Android Studio, but soon came to realize that we needed to start testing on actual devices, especially on Android phones because of their varying screen sizes, physical availability and locations of “home” and “back” buttons, and OS versions.

As for analytics, we integrated Fabric Crashlytics (crash reporting solution with real-time analytics for iOS and Android) with react-native-fabric (React Native library for Fabric Crashlytics) to observe user growth, session time, and stability/crash rates on the app.

Continuous Improvement

While we are very excited about the official release of the app, there is still plenty of room to make the product better! So — what is the Hydrogen mobile team up to these days?

Hydro App

Thanks for reading! As always, we welcome all of your thoughts, comments and feedback!