Benefits of using cross-platform tools for mobile development at a small start-up

Saving money, time, and sanity.

Welcome App is an application available on iOS and Android that is used to connect newly arrived immigrants, or newcomers, with locals. It was first released as a web app in late 2015, and available on the App Store and on Google Play since early 2016. Most users are located in Sweden and a smaller part in Norway.

Welcome’s purpose is to reduce the amount of effort that is required by newcomers to integrate into society, so that they will reach social and economic integration faster. Our belief is that the people who are socially integrated are also in a great position to become economically integrated, which is why our strategy focuses on bridging the social gap between immigrants and locals.

The Application

The Welcome app has gone through two major builds — the first version was built using Ionic, and the current one is using React Native.

However, this post isn’t a technical comparison between Ionic and React Native, but rather a brief mention of the benefits that comes by using cross-platform development tools in mobile application development at a small start-up.

Types of applications

Let’s take a quick step back to explain the development landscape and how it has evolved recently. As we know, the two largest mobile platforms today are iOS and Android. In order to write applications for these platforms, you can either write them in their native language, like Swift for iOS and Java for Android, or wrap a regular webpage in what is called a web view. Using additional tools, web views can gain control of native functionality like the phone’s camera. Since they are neither purely native applications nor regular web pages made for mobile phones, they are called hybrid applications. So, to conclude, applications can be either web pages, native, or a hybrid of the two. And to tie back to the previous section — Ionic is a tool for creating cross-platform hybrid applications, while React Native is a tool to create cross-platform native applications.

Benefits

DRY

Don’t Repeat Yourself. Having a single point of authority for all knowledge is one of the core principles for programmers. One benefit of writing cross-platform code is that business logic needs to be expressed, updated, and tested in one place instead of two. And less code usually means fewer bugs. You could even argue that the best code is no code at all. This means less time to implement, maintain and debug.

Context Switching

Acquiring and maintaining deep knowledge in a certain language and platform requires time and dedication. Additionally, shifting between multiple languages and platforms, like Swift on iOS and Java on Android, might be fun and refreshing, but it certainly is not effortless for most of us.

Duplicating code and context switching between platforms takes precious moments away from time that could be spent on prototyping a new feature, testing, or improving your deployment pipelines.

Feature Parity

A common solution for this lack of time and focus is to hire or grow people who specialise on a certain platform. A negative consequence of that is that you may end up with applications with a different feature set, and maybe even different behaviours for the same features.

Cost

And it’s not cheap. During part of my time as an Engineering manager at Spotify, acquiring talented people was an exercise that, with some boundaries, was done without any budgetary restrictions. People said that head counts were basically free. If we found someone that we believed would strengthen our team, we had free reigns to hire. And while that was the right strategy for Spotify at the time, it is seldom possible for a start-up to let their line managers act like they have an infinite budget. On the contrary, budget is most likely tight, and enabling developers to work cross-platform can potentially save a lot of money.

The gist

Tools like Ionic and React Native are surely no silver bullets, but they have helped us to quickly prototype on a mobile application without compromising on quality or functionality, while not risking to end up with different behaviour or feature sets in our clients. All while sticking to pretty tight fiscal requirements.

We are looking for more talented, humble and inclusive developers who want to join us in realising our vision. Please reach out if you are interested!