Whether mobile, web or multi-platform app, developing small applications is not magic. Before commissioning an app, however, there are some important prerequisites that need to be clarified. After all, not all apps are the same – and the terminology should be clear.
Just quickly program an app? That can be very easy: Especially when using freelance developers, it can be done relatively quickly and inexpensively. And in-house programming is no problem either, if you just have the right people.
When planning apps for smartphones, tablets, Macs and Windows PCs, however, some basics need to be considered in advance and a few things need to be clarified. Because app development is not magic – but it’s not child’s play either. The more solid the basis, the easier it will be later to support new systems or models or to place the app on a completely new operating system basis.
What content should be delivered?
In the first instance, it should be clarified which content is to be delivered with the app. First and foremost is the question of what kind of software is involved. While complex programs – such as games or system-related tools – are usually comparatively complex to port, there are of course also many apps that primarily use an adapted version of their own website, except for a few APIs of the system.
Many social media services like Facebook and Twitter have such apps, and the various shopping platforms also work with this kind of “simple” app, even if they are basically only somewhat better web apps: The actual app is little more than a customized browser in which the content of only one provider is delivered.
These so-called hybrid apps are easy to program and easy to port; 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 primarily consists of adapting the website, which limits the development effort for the actual app. At the same time, however, you are represented by your application in the app marketplaces and can also actively promote it.
Consider the advantages and disadvantages of native apps
Of course, this type of hybrid app is not always ideal. For example, if the app requires a lot of system functions, but only delivers a small amount of 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, for example, this is the free programming environment XCode from Apple; with the Android SDK, Google offers corresponding software for mobile devices with the in-house Android system. Microsoft makes it particularly 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 wash.
A native app has the advantage that it is not dependent on an Internet connection, can access numerous system-related programming interfaces in the system, and at the same time also works optimally on the respective system platform. The disadvantage is the significantly increased porting effort compared to web and hybrid apps, for example, when developing for Windows, Android and iOS in parallel.
That is also the reason why, for example, Windows 10 is currently falling behind more and more 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 base
The advantage of this solution is obvious: Instead of spending money and working 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. Although the software giant also uses native or hybrid apps on iOS, Android and Windows, most Google services also work easily in the web browser – regardless of whether they run 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 (such as the iPhone camera) is usually largely prevented. In addition, web apps naturally depend on a functioning online connection.
However, this is still problematic. There are wireless holes everywhere, WLAN hotspots are still expensive in many hotels, and flight mode is usually mandatory on air travel. In such situations, web apps are largely useless.
On which devices should the apps work?
A non-negligible advantage of web apps is the fact that the application can be programmed server-side and customized via stylesheet. Instead of natively supporting the numerous screen resolutions that can cause display problems, especially on Android systems, you can conveniently maintain the web app on the server and make bug fixes here. App updates including the time-consuming checking routines in the Apple, Google and Microsoft stores are no longer necessary.
Before commissioning an app, however, it is important to carefully consider the systems and functions on which the app will actually work. It is also important to clarify in advance whether the app is to be offered for a fee or free of charge. If the actual product is an online service, the use of a web app in combination with a hybrid app is recommended. 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 – 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 put together a precise set of specifications during project planning. Not only does this allow for effective hiring of a developer, but it also helps prevent skyrocketing costs and excessive time. Especially in app development, precise deadlines often matter to avoid being outpaced by competitors. With decent planning, these can be met much better.