When you build a mobile app, you have a choice to go native way, or crossplatform way. In this article, we will take a look at both of them and explain in which cases native stack is the best way to go.
But before we start, let’s give the definitions:
Native apps are apps that are written using native stack of the mobile operating system, for which the app is written. The app cannot be run on any other operating system.
Crossplatform mobile app – an app that is written using some medium language that encompasses functionality of multiple operating systems. This app will run on those multiple operating systems without any additional modifications.
How mobile apps are better than online apps
Before describing the differences between mobile app stacks, let’s think for a minute – do you even need a mobile app?
Online apps work on any platform, as they just need a browser. Some browsers like Google Chrome or Mozilla Firefox are ubiquitous, they have version for every possible platform and allow you to use all the most modern web technology for your needs.
What are the problems of online apps that can make you choose to build a mobile app?
- Then need always-on Internet access
- They work slower
- They cannot work in background (music players, navigation, etc)
- They require user to sign-in often
What are the strengths of mobile apps?
- They are always up-to-date
- They can track users’ behavior without causing any issues to the user
- They can give users different experience (completely different) based on geographical location; it is impossible on mobile stores
We really recommend you to build your first MVP as an online app. It allows you to have instant updates, track user behavior, and have the same experience on all platforms possible. Exactly what you need from an MVP! The only situation in which you have to go with a mobile app is when it’s impossible to as an online app – good examples are Uber, Dropbox, Spotify. They need to run in background, and mobile apps do it much better than online apps
Difference between iOS and Android
It is natural to think that the same app can work both on iOS and Android. Those are both mobile platforms, the devices are not so different, so what’s the problem?
In reality, Android and iOS are very different. It starts with design language – Android has shadows and builds its experience on multiple layers of widgets. The user knows which widget is on the top layer, interacts with it, then closes it and goes to the layer below. iOS does not have shadows and offers flat design.
Apart from design language, technically the platforms are also extremely different. Android provides developers with a so-called Java Virtual Machine called Dalvik. Dalvik runs each app in an isolated environment and ensures that no damage to user’s data is done. iOS
What are cross platform apps
Cross Platform apps are such apps that are built using some intermediate language (or framework, which consists of language plus developer tools) that can be translated into other languages.
The problem with such approach is almost obvious – such apps can only do well things that exist on all platforms covered by the intermediate language. The more platforms are covered – the more limited is functionality. The same is true for cross platform games, for example – some platform-specific games on PlayStation might use the touchpad on a joystick as a game-defining feature, but not a single cross platform game would choose to do so, as Xbox does not have such a touchpad.
In the most cases, when you have to build a mobile app, the crossplatform way is what you would want. We really want to emphasize that you shouldn’t go native way unless you really have to. English is the language of international communication for a reason – it does not have many grammatical rules, but does its job. The same goes for cross platform languages.
What is more expensive – native or cross platform apps?
Native apps are always more expensive. This simply follows from the fact that you need to have a separate app for each operating system.
If you target just one platform (great example here is Instagram), you still will have to cover other platforms as soon as your app becomes popular. And it would imply additional costs and trouble at times when you will be 100% busy with the app growth.
When are native apps better than cross platform apps?
This is a great question if you ask it – native apps are better only in some specific cases:
- When you need to squeeze every single performance unit from the device. It is usually the case with 2D and 3D games – the more cheap devices can run the game smoothly, the larger is the fanbase of the game
- When you need to make the app to use as little battery power as possible. It is hard to imagine such an app, as low-performance apps will consume close to no power both with native and cross platform approach, especially compared to other apps on the device
- When some platform-specific feature is used – on iPhone it can be Wallet, on Android it could be widgets on the main screen
Which developers do you need to build a native app?
You will need platform-specific developers:
- For iOS – Swift or Objective-C developers
- For Android – Java or Kotlin developers
Also you will need a UI/UX designer that is experienced in the target platform and knows its guidelines: HIG for Apple’s and Material Design for Google’s OS.