You are considering creating an app, but as a non-expert, you don’t even know where to start. You may not even know what type of app you want to develop. Which app development options do you have? In this article, I’ll explain the different options you have for developing an app and what impact your choice has on development costs, time, and performance.
Who should read this article?
This article is intended primarily for decision-makers, not for developers. That’s why I am not going to talk about every little technical detail here but about what each CEO is interested in: possibilities, costs, and the advantages/disadvantages each option has to offer.
There are mainly two questions you should ask yourself:
- For which operating system or platforms should the app be available?
- Does the app require high performance?
Before we look at these questions in detail and answer them, let us briefly outline the different app development options for a better overview.
Overview of app development options
Traditionally, apps are developed in the respective native programming language of the operating system, which means, for every operating system, you need to code a different app. However, since a few years ago, there has already been the option to create apps in only one programming language and make it work in every operating system (“Write once, run anywhere”), which helps reduce the time and development costs dramatically.
I’ll explain the options in descending order — from higher to lower performance and costs:
1 - Native
The most expensive, but also the most powerful variant:
a. What: With this option, apps are programmed for the respective operating systems — in the programming language of the respective operating system.
b. Advantages: The developer can use absolutely everything the operating system and the device has to offer. The apps guarantee maximum speed and performance.
c. Disadvantages: The app has to be developed separately for each operating system, which means more costs and time.
d. For whom: For those who want a particularly powerful app, e.g., games or apps that require high CPU performance.
2 - Compiled App
a. What: Here, the app is programmed only once in one language for all operating systems and then possibly adapted to the respective operating systems. Those adaptations may need to be coded in the native language of the operating system.
b. Advantages: Write once, and run anywhere. However, as mentioned above, there may be some constraints.
c. Disadvantages: Compared to native apps, the performance may be lower, and you may not be able to access all features that the operating system and device have to offer. Depending on the complexity of the app, a large part of it may also be separately programmed in the native programming language of each operating system, which increases costs and time.
d. For whom: This option is for app ideas that require similar performance to a native app.
e. Frameworks: React Native, Xamarin, NativeScript, Flutter
3 - Hybrid app
The present and future of app development.
a. What: Here the app is developed only once in a programming language. The adjustments that have to be made here for the respective operating systems are minimal and scarcely worth mentioning.
b. Advantages: Write once, use anywhere - guaranteed without additional development costs.
c. Disadvantage: For very complex apps, the performance could be a bit weaker than with a native or compiled app. Besides, some features offered by an operating system may be only partially accessible or not accessible at all.
d. For whom: This option is ideal for those who do not need a very complex app with high CPU performance - which applies to almost all apps.
e. Frameworks: Ionic, Apache, Cordova, PhoneGap
4 - Progressive Web Apps (PWA)
a. What: To develop a PWA, you program an ordinary mobile-friendly website that installs like an app on Android, iOS, MacOS, and Windows.
b. Advantages: Write once, run anywhere. A PWA is by far the cheapest variant of app development. The installation can also be done directly on the website without the use of an app store.
c. Disadvantages: There are some limitations to the size of the app. The power that a PWA can deliver is comparable to a hybrid app. Some features offered by an operating system may be only partial or not accessible at all.
d. For whom: This option is ideal for app projects that require a more straightforward and smaller app and do not require many native features of the operating systems.
So, what kind of app do I need?
Now that we have considered all options, we can answer the above-mentioned questions accordingly.
For which operating system/platform should the app be developed?
If you only want to develop for one operating system, some of the disadvantages of Native App development are discharged, since the app must be coded in only one language anyway. Therefore, Native or Compiled are the best options here.
However, if your app does not require a lot of CPU power and the features you need for your operating system could be delivered from a PWA, you should consider whether it’s worth developing a hybrid app or PWA instead of native.
But if the app has to be developed for iOS, Android, Mac, Windows, and even as a website, all options are open. So it is only a question of budget/performance: If the app is supposed to deliver particularly high performance and you have the necessary budget, you should develop it as a native app plus a website. If not, go for a Hybrid App or even a PWA, and you will reduce your costs dramatically.
Is the performance required high?
If your app requires high performance in complex operations, then you should go for a native or compiled app depending on your budget. If it is rather simple, doing no complex functions on the device and, therefore, not requiring any particularly high performance, a hybrid app or even a PWA is the right solution.
Examples of app development options
Progressive Web Apps Since PWAs are conquering the market, you will find more and more examples every time. On this webpage, you can find a selection of PWAs: https://pwa.rocks/.
The most commonly used framework for hybrid app development, Ionic, offers a showcase with some hybrid apps: https://showcase.ionicframework.com/apps/top.
React Native, the most popular framework for compiled apps, has a showcase that includes some of the most popular compiled apps, including Facebook, Instagram, Skype, or Uber: https://facebook.github.io/react-native/showcase.html.
It’s hard to find just a small selection of native apps. Almost every app you can’t find in the upper showcases is native.
This is an translation of the original article in German: Welche App-Entwicklungsoptionen gibt es?
Follow me on Twitter: @asanchezdev