How we built two native apps with one codebase
Back to all posts
Back to all posts
Technology

How we built two native apps with one codebase

Hillary Snyder
Aug 30, 2019

React Native makes our engineering efficient and scalable. This translates to more competitive prices and a better user experience.

Offering two native app experiences across the Android and iOS platforms is critical to our customers. However, it can be costly to do so. Building dual apps means employing nearly double the number of engineers, as it requires hiring specialists for both Android and iOS. This eventually translates into higher prices for customers and may result in potential inconsistencies in user experience across platforms. 

At MoveSpring, we pride ourselves on offering a best-in-class product for a price that organizations of all sizes, and budgets, can afford. We are constantly looking for ways to improve the efficiency of our teams while maintaining the highest quality product. Insert React Native. This flexible programming framework allows us to create two native mobile apps with one codebase. Now, let’s get into a bit more about React Native, and how it helps our team build a better, more cost-efficient product.

Fewer developers, less code, and more time for new features.

React Native is a framework of user interface elements (think: buttons, navigation, charts), written in JavaScript, that converts to native views on Android and iPhone. In summary: we write code for one app that is transformed into a native experience on both Android and iPhone.

Android and iPhone software is written in two, different coding languages, which typically means developers have to write two, separate apps, each in a different platform language. This can be a huge undertaking for a team, as they will often have to hire or train developers on the different platform languages. 

React Native is written in JavaScript, a language that is already commonly used on web. In fact, we used the JavaScript language to build our MoveSpring web apps. By utilizing React Native, we can continue the same commonly used JavaScript language on both web and mobile, creating cross-platform consistency. This also makes feature development fast and easy to deploy across all our products.

Best part? We can do it with fewer engineers and almost zero redundant work. Less code also means lower server costs, making this a major time, and money, saver.

Native apps are critical to the mobile user experience.

Many companies, including several of our competitors, use a mobile web view of their desktop website and call it an “app.” However, this is not a native app, and the difference matters. 

Imagine this experience: You open up your phone, tap to open the Facebook app, and you're presented with the same exact Facebook layout as you see when using your laptop...but it has been shrunk down to fit your tiny, little phone screen. Everything is small! There is font you can barely read and you have to pinch and zoom to tap a button.

Just like Facebook, there is a reason we build a different, native experience for our mobile app. Users simply don't interact with their phones in the same way they do their computers. Because of this, apps shouldn't be clunky desktop experiences miniaturized into a mobile webpage. In native mobile apps, the experience is fast, intuitive, and designed specifically for mobile use. Things are easy to read, actions take milliseconds to load, and buttons are easy to tap.

So why doesn’t everyone create native mobile apps? Creating mobile web views are faster, cheaper to produce, and require less maintenance than native applications. While this can seem like a great thing for companies wanting to get their app off the ground, these types of apps have major limitations and create a subpar user experience. 

One of the biggest limitations is that web views tend to be slower and less responsive than native applications. In addition, these apps cannot leverage the base functionality of Android and iPhone devices like native apps can. This is important for things like syncing to Apple Health or Google Fit, which allows us to tap into a connection that already exists on a user’s phone. Finally, because this web view has to work for Android and iPhone, it means they have to limit their feature set so that it can work on both platforms. This results in functionality with minimal value.

Making fitness fun, on any device.

Overall, React Native has not only provided us with a better experience for our developers, but for our users as well. As we continue to grow our products, React Native will be key to continuously delivering new features that help make fitness fun for everyone, on any device.