Launching an app is an exciting business endeavour but is also rife with tough decisions; many of which can quickly derail progress and send you into a financial tail spin.

One such decision is the technology or platform on which to build. While there are only really two players for mobile operating systems, iOS and Android, there are an array of choices on how to build upon them. This is a common question from our clients and one we encourage them not to take lightly.

In this article I’ll outline 4 major options with pros and cons of each. By the end, you’ll be ready to make an educated decision about which platform to build your app on.

The 4 mobile platforms

While there are technically more than 4 options out there, these are the leaders from which we choose time and time again. Each offers its own unique benefits (and pitfalls).

Platform specific (aka: Native)

Developing for each OS (operating system) in its native language is of course the most supported and most performant. It’s also the most expensive. This is because you’ll be writing the app in a separate language for each. The two players are iOS (written in Swift or Objective-C) and Android (written in Java or Kotlin). While there are developers that can code in both, you’re much more likely to end up hiring one for each, doubling your overhead. Native apps are the best choice when they have high performance or memory requirements, OS specific libraries not supported elsewhere or games.

Key takeaways:

👍 Most performant

👍 Best support for leveraging hardware functionality

👎 Most expensive

React Native

React Native (often abbreviated as RN) is a popular choice and is sort of a blend between Native and “Web”. The majority of the code written is shared across both iOS and Android with a few select cases when handling functionality specific to each operating system. This results in a significant reduction in cost and timeline. Because React Native is written in Javascript, it can quickly become unwieldy and hard to debug if not managed by experienced developers. Shooting yourself in the foot is amazingly easy. Still, with the right team, RN is a fantastic choice and one we use often.

Key takeaways:

👍 Majority of code is re-used across both OS’s

👍 Significant cost and time savings

👎 Hard to debug, easy to shoot yourself in the foot

PWA

Progressive Web Apps (PWA’s) are exactly what they sound like; apps that work via the web. Instead of installing the app on your phone from the App Store, you can access them via the browser on your phone. This has some significant advantages. The biggest is the ability to use stable and well known web languages with 100% code sharing. There are a few drawbacks however. Most notably you won’t be able to install the app from the app store and offline capabilities are very limited with iOS (Android has full support). We often use PWA’s when timelines and budgets are a concern or when a client is still validating the concept with a basic offering (also known as a MVP).

It should be noted there are ways of wrapping a PWA in a Native “shell” in order to install on the App Store or use hardware functionality. In these cases, we believe using React Native is a better choice than wrapping the PWA.

Key takeaways:

👍 Works on all devices with a single code base

👍 By far the cheapest

👎 No App Store, limited functionality and offline capabilities

NoCode

The #NoCode movement is relatively new to the industry and is a way of using other existing tools to “mashup” an app by piecing them together in interesting ways. As the name implies, there is no (or very little) coding involved. Each of the tools you use will have their own monthly licensing fee, which can add up quickly. We like to use NoCode for proof of concepts or when building tools for a client that will be used internally. A good example might be a an inventory tracking system for a shipping and receiving company. More often than not however, these are quickly outgrown and a custom app is developed.

Key takeaways:

👍 Fastest way to market

👍 New options popping up daily

👎 Monthly licensing can get expensive quickly, outgrown quickly

Where to go from here

When choosing a platform its important to ask a few questions:

  1. What is your budget?
  2. What is your timeline?
  3. Does the app need to work on iOS, Android or both?
  4. Does the app need offline capabilities?
  5. Will the app require hardware functionality such as GPS or Bluetooth?

If you have a tight timeline and budget, going with a hybrid approach using React Native or PWA is probably your best bet. If you have a bit of budget, hardware requirements and need it to run on both OS’s, React Native is a good choice. If you have specific hardware requirements not supported by other tools or high performance requirements then Native is basically your only option.

Hopefully after all that you have a better understanding of how to choose the best platform for your app. Its important to remember that, regardless of what you choose, you can always change it later. Yes sometimes that can be more expensive, but not launching at all or choosing the wrong platform to start will stop you before you even get started.

- Gavin Vickery, Founder at Input Logic

Looking for help designing and building your product? Get in touch, below!

Interested in working together?

Let's Chat