4. August 2020

Basics of app development

Whether mobile, web or multi-platform app, the development of small applications is not magic. Before an app is commissioned, however, a few important requirements must be clarified.

Because not all apps are the same – and the terms should be clear. Before commissioning an app, it should be carefully considered on which systems and with which functions the app should actually work. Before you order an app, you should think carefully about which systems and functions the app should actually work on.

  • Just quickly program an app?
  • That can be very easy: Especially when using freelance developers, this can be done relatively quickly and cost-effectively.
  • And even in-house programming is no problem, if you only have the right people.

When planning apps for Smartphone, Tablet, Mac and Windows PC, however, there are a few basics to consider and a few things to be clarified beforehand. Because app development is not magic – but it’s not child’s play either. The more solid the basis, the easier it is later to support new systems or models or to put the app on a completely new operating system basis.

What content should be delivered?

In the first instance it should be clarified which content should be delivered with the app. First and foremost, the question is what kind of software is involved. While complex programs – such as games or system-related tools – are usually comparatively difficult to port, there are of course a number of apps that, apart from a few APIs of the system, primarily use an adapted version of their own website.

Many social media services such as Facebook and Twitter have such apps, and the various shopping platforms also work with this type of “simple” app, even if they are basically just slightly better web apps: The actual app is little more than a customized browser in which the content is delivered exclusively by one provider.

These so-called hybrid apps are simple to program and easily portable; after all, the core of the development, the creation of the native app, has already been done by the development environments of the mobile system in the form of the respective browser. Developers can access the functions of Safari (Mac/iOS), Webview and Chrome (Android) or Edge (Windows 10) already implemented in the system.

The development effort consists primarily of the adaptation of the website, which keeps the development effort for the actual app within limits. At the same time, however, you are represented in the app marketplaces by your application and can also actively promote it.

Consider the advantages and disadvantages of native apps

This type of hybrid app is of course not always ideal. For example, if the app requires a lot of system functions but delivers only a few information, the use of a native mobile app is almost always recommended. This is developed from scratch in the respective programming language or the Software Development Kit (SDK) of the respective platform.

Under MacOS and iOS this is for example the free programming environment XCode from Apple, with the Android-SDK Google offers a corresponding software for mobile devices with the in-house Android system. Microsoft makes it especially easy for developers with the Software Development Kit for Windows 10, because apps can be developed with the same code base for all types of (Microsoft) systems: Mobile and desktop apps are thus created in one go.

A native app has the advantage that it does not depend on an Internet connection, can access numerous system-related programming interfaces in the system and at the same time works optimally on the respective system platform. A disadvantage is the significantly increased porting effort compared to web and hybrid apps, for example, if parallel development is to be carried out for Windows, Android and iOS.

This is also the reason why, for example, Windows 10 is currently falling behind as a smartphone operating system: developers often have no desire or budget to support this comparatively unimportant platform. Exotic systems like Ubuntu-Mobile or Firefox OS suffer from the same problems.

Web apps without a native basis

A third way is the use of so-called web apps: This is software that works exclusively in the browser. Usually written in HTML5 or Java, these apps are largely independent of the operating system on which they are to run. All that is needed is a halfway modern browser, which is now part of the scope of delivery of every operating system.

The advantage of this solution is obvious: Instead of spending money and time on planning and programming native apps, the app is simply created as a browser app. This allows it to work with almost any operating system. Google, for example, relies heavily on this technology. While the software giant also uses native or hybrid apps on iOS, Android and Windows, most Google services work in the web browser, whether on Windows, MacOS, Linux, iOS, Android or other systems.

So why not always rely on web apps? Well, web apps have a number of disadvantages compared to native and hybrid apps. Data exchange between the operating system and the web app is often difficult and access to system functions (e.g. the iPhone camera) is usually almost impossible. In addition, web apps naturally depend on a functioning online connection.

However, this is still problematic. There are dead spots everywhere, WLAN hotspots are still expensive in many hotels and when travelling by plane, the flight mode is usually mandatory. In such situations web apps are largely useless.

On which devices should the apps work?

One advantage of Web Apps that should not be neglected is the fact that the application can be programmed on the server side and can be adapted via style sheet. Instead of natively supporting the numerous screen resolutions, which can cause display problems especially on Android systems, you can easily maintain the web application on the server and make bug fixes here. App updates including the time-consuming check routines in the Apple, Google and Microsoft stores are no longer necessary.

Before you order an app, however, you should carefully consider on which systems and with which functions the app should actually work. It is also important to clarify beforehand whether the app should be offered for a fee or free of charge. If the actual product is an online service, we recommend using a web app in combination with a hybrid app. If the app itself is the product, native apps are generally more obvious, since the customer receives added value with offline use, which he may pay for.

Only when everything is clear can you get started

Once these three questions – what should the app deliver, how should it work and where should it work – have been clarified, it is much easier to compile a precise specification sheet during project planning. Not only does this make it possible to effectively assign a developer, it also helps to avoid exploding costs and excessive time expenditure.

Especially in app development, it is often important to have precise deadlines in order not to be outdone by the competition. With decent planning, these can be met much better.