App development: History, types and Dev costs

App development includes the conception, planning, programming, and maintenance of mobile apps and other applications.

App development definition

In general, an app, short for application, can be any type of application and belongs to software. It is inseparable from and runs on the hardware, the physical components of a computer, or another device. Conversely, hardware is dependent on software, which can be divided into three areas.

The system software is like the script for the computer, which determines how it should do which tasks, which are performed by its hardware, the physical components. The programming software can be used to develop and support programs. However, this is used more by developers and in the field of software development than by end users. The software used by end users is called application software, which coordinates and executes functions, tasks, and activities to solve “user problems.” Applications can be assigned to the application software and also divided into several types.

Desktop Applications

Text, photo, audio, and video editing programs and media players that run on a PC are among the desktop applications. Some of these are already pre-installed on the device or can be downloaded separately.

Mobile Apps

When we talk about apps, we usually mean mobile apps that are run on mobile devices such as smartphones, tablets, and “smart” devices such as Smart TVs or cars with integrated software.

Web Apps

Especially in the last few years, so-called web applications have become established. These are designed for use in the browser and do not require manual downloading or installation but are merely cached in the browser. Unlike desktop applications, web apps have limited access to device hardware. In some cases, using a microphone or a webcam, for example, is possible after confirmation, but interfaces are usually missing for further use.

Examples of web apps are mailing and messenger services, navigation services, and online games. Original desktop applications such as Microsoft Word are also being used more and more online in the browser. This goes hand in hand with a trend towards device and computer independence and greater use of the cloud.

The history of apps

Development of the smartphone

Contrary to the assumption that smartphones are still young, the first touchscreen telephone came onto the market as early as 1993: the IBM Simon was basically a pocket computer and even had an e-mail function. Then, in 1999, Research In Motion introduced the first Blackberry 850 with a physical computer keyboard.

The smartphone wave finally started in 2007 with Apple’s first iPhone. This had various apps which were pre-installed. A year later, the App Store was introduced, making it possible for the first time to download apps via a central store, i.e., a kind of management environment. Previously, installation files had to be searched for individually on the Internet, and it was difficult to verify the sources. In 2008, the first smartphone with the Google operating system Android from the manufacturers HTC and T-Mobile appeared, which was cheaper than the iPhone. It slowly developed from a niche product into a trending device that was compatible with the masses.

Creation of apps

Originally, the first mobile devices were largely uniform: they contained alarm clocks, calculators, or e-mail programs as apps. However, since these were already included at the factory, they were only slightly individual. Eventually, the breakthrough came with the advancement of hardware, and apps made their way into the mainstream through the App Store.

Mobile phones could be customized for the first time thanks to downloadable apps, and their usability expanded almost indefinitely. Moreover, they make it possible to expand it with countless functions that correspond to the exact wishes and needs of users.

Operating systems for mobile apps

Android app development

Android is an operating system developed by Andy Rubin in 2003 and acquired by Google in 2005. It was originally intended as software for digital cameras, but today it is mainly used for mobile phones and Smart TVs from a wide variety of manufacturers. In terms of user experience, Android is considered to be a very simple and accessible operating system.

The app can be downloaded from the Google Play Store. Android has an associated runtime environment, Android Runtime (ART), and the integrated development environment Android Studio, which was developed by JetBrains, which offers a highly professional but paid IDE (Integrated Development Environment) for almost all languages, such as PhpStormWebStorm or GoLand.

Android app developers use programming languages ​​like Java, Kotlin, C, and C++. C# can also be used via the Xamarin development framework. When developing apps for Android, Java is either used beforehand or compiled to that effect. Java is widespread and widely used, but because many different devices use different versions of Android and the hardware and software development is not done from a single source, the functionality of the developed apps is difficult to overview and control.

Development of iOS apps

iOS, where the “i” is a trademark and OS stands for Operating System, was developed by Apple and is used only for Apple devices. Together with watchOS and tvOS, it enables the operation of iPhones and iPads, Apple Watches, and Apple TVs.

Apps can be downloaded from the App Store. In addition, the XCode integrated development environment can be used for app development, but it is only available for the Mac, so developers need a Mac to compile developed apps.

Common programming languages ​​for developing iOS apps are Swift and Objective-C, both of which are used via the Cocoa framework. Objective-C is the older of the two languages but is still used. Swift has been on the market since around 2013 and is considered to be faster and more performant. The apps are compiled directly into machine code. C and C++ can also be used for app development, and Java, Ruby, and others can also be used indirectly. Since Swift and Objective-C are only designed for iOS, it is less common among developers than Java, for example, but programming is for fewer devices, namely only Apple devices, but it is also more targeted, and the results are easier to check.

The user interface of iOS apps is usually characterized by a minimalist and elegant user interface. However, when it comes to the user experience, the main focus is on high connectivity with the hardware and other devices in the Apple universe.

App development for Windows

Windows is originally known as the operating system for desktop computers. However, the operating system of the same name came onto the market for the Windows Phone, which has since been discontinued.

It was developed by Microsoft, and the apps are accordingly available in the Microsoft Store. The associated development tool is Visual Studio, which allows the development of desktop applications or web apps in addition to apps. Windows Runtime existed for a long time, but since Windows 10, this has been replaced by UWP, the Universal Windows Platform, as the runtime environment. In addition to C++ and C#, the most common programming languages ​​are JavaScript and Microsoft Visual Basic. Due to the congruence of development for desktop or web applications and the high accessibility of Visual Studio.

For users, too, the use of Windows apps is very PC-related and is more reminiscent of a pocket PC than a smartphone.

App development for Blackberry

This operating system was developed by the Canadian company of the same name, Blackberry, which initially launched the software together with the device. Blackberry has been a pure software provider since around 2016 when the production of mobile phones was discontinued.

Apps, music, and videos can be downloaded via Blackberry World, the associated digital store. About 20% of the apps available there are emulated Android apps. Android Runtime can also be used as a runtime environment, and the app development is based on common programming languages ​​such as Java, C++, and many more.

Overall, developers have a great deal of freedom because of this choice. Still, Blackberry mobile phones were more of the early days of smartphones and have now been pushed out by other providers so that Blackberry apps are hardly ever used anymore.

Types of mobile apps

Native apps

Mobile apps can be divided into native and hybrid. An app is native as soon as it is individually developed for a specific platform, such as iOS, in this case, using Swift, for example, or Android, using Java, for example. There is an app for every platform that was developed from the ground up.

Native apps can usually be downloaded from the associated app stores and installed on the appropriate devices. When used, they occasionally access the device hardware, such as the camera.

Since the code of native apps is precisely tailored to the operating system, this means more complex and time-consuming development since the same app has to be programmed several times for different operating systems. However, this is an advantage for usability, which automatically leads to user loyalty and more frequent use of the app.

Today, different apps are rarely built for different operating systems. In most cases, development frameworks such as Xamarin, React Native, or Flutter are used, which enable cross-platform development. A uniform programming language for several platforms is used during the development process, for example, JavaSript, which is then compiled into the respective native code. If the code contains elements that cannot be translated, these are implemented using interfaces to JavaScript.

Hybrid apps

Before current cross-OS technologies were used, hybrid apps were considered the solution to no longer developing separately for the respective operating systems. Instead, they can be run on a wide variety of devices via a kind of web container in which a website is run, even if they were originally only developed for one operating system. Common web technologies such as HTML, CSS, and JavaScript, as well as frameworks such as Cordova, Ionic, and Phonegap, are used. Originally, this was at the expense of usability since the app then did not use the native elements. Still, the technologies have now progressed so far that the difference between a native and a hybrid app is hardly noticeable when used. For developers, this has an additional advantage.

What is the purpose of mobile apps?

Apps form the basis of today’s mobile devices. They make it possible, for example, to tailor smartphones to one’s own needs and to turn a phone into more than just a phone. Like a multifunctional Swiss army knife, they combine all the necessary functions in one device so that you can communicate, research, get information, navigate, shop, pay, and consume and produce media anytime and anywhere.

In addition, an app can complement a website or, depending on the industry, even replace it entirely. Due to the triumph of smartphones and tablets and the increasing focus on mobile devices, it became necessary to make websites mobile-friendly. For a long time, they were displayed incorrectly on smartphones: Fonts were illegible, elements such as buttons or input fields were too small and therefore not operable, and the overall picture was no longer correct due to the aspect ratios and the display size. To solve this problem, three ways have emerged.

Mobile version of websites

One possibility is to create a separate mobile version in addition to the desktop version of a website that only runs on mobile devices. The layout and design are translated for a display in portrait format, and functions are adapted accordingly. This process was particularly common in the early days of smartphones and was usually associated with displaying the desktop version with a link to the “mobile-optimized” version. They require a constant internet connection and are designed more for one-time use or information retrieval on the go.

The big disadvantage of this approach is that two independent websites have to be looked after and maintained. In addition, a mobile version does not guarantee that it will be displayed correctly for all display sizes. Being prepared for all eventualities in terms of display size would mean developing a large number of different mobile versions, which would simply be too much administrative effort.

Responsive web design

Responsive web design is a good way to avoid the high cost of mobile websites. An existing website is redesigned or optimized in such a way that the layout reacts to the respective display size or user interaction with automatic shifting and rearranging of the elements.

In most cases, relaunching a website to implement a responsive design requires significantly less development effort than optimization. Moreover, even with the new development in favor of the layout, the backend is not affected since only the display is affected.

This method has prevailed through the emergence of frontend frameworks such as Twitter Bootstrap or Zurb Foundation and has now become the industry standard. This is due to a large number of different display sizes available today, which also make it necessary to test the developed responsive design on as many different screens as possible. While it was previously sufficient to test the website on one or two additional devices, today, it can be up to ten. In addition, the integration of images and videos should be well thought out since accessing content while on the move is usually associated with a limited data volume. Websites with a responsive design also need a constant internet connection – unlike apps.

App creation

The third way to make your own content available for mobile devices is to create an associated but independent app for the website. With the advent of responsive web design, a decrease in the use of apps was expected, as it was the optimal solution when the goal was website optimization for mobile use, especially since app development involves a higher development effort. However, this development did not take place, and the opposite occurred: the use of apps has actually increased in recent years and will continue to do so in the future.

In addition to the optimized display, an app offers the additional advantage of having additional functions that can directly encourage user interaction. Anyone who offers a product or service can also advertise it via an app or even sell it via an online shop app or process the service (e.g., customer inquiries) or even carry it out digitally. Translations of a product or service into app-typical services are also conceivable, such as designing a game as an app from a website for nutritional advice or something similar. This allows you to expand your own range, make it more accessible, and open up new target groups.

Other advantages are the positive impact on the user experience on the devices, since an app, unlike in the case of responsive design, was developed and tailored for exactly this device. In addition, it is also available offline, thus saving data volume, especially if data transactions can be postponed to a later time when a data connection is restored.

App creation also comes with disadvantages. In addition to a higher development effort, it is also important to consider that apps have separate infrastructures, and web technologies cannot usually be used. Therefore, cross-platform development should also be considered in advance, which can be done in different ways (see native and hybrid apps link to the top?) in order to be able to make the app available on as many devices and operating systems as possible.

But the decision does not have to fall in favor of one solution or the other. Experience has shown that having both a website with a responsive design and an additional app has become the norm, especially for larger projects.

App development process

Conception of apps

The conception of apps can look very different from case to case and, above all, depending on the size of the project. However, a process has proven itself that is evident in most development processes.

  • requirements analysis

First and foremost is the question: What should my app be able to do? It is important to find out what added value the utilization of the content as an app has compared to other media. The content, as such, should also be determined early on.

  • Creation of a roadmap

A roadmap containing the elements “Epics,” “User Stories,” “Tasks,” and “Type of User” is helpful for visualization purposes.

  • epic

The epics represent the largest unit, which describes a larger functional area with the requirements for the app that cannot be met by a single function or session. In addition, epics contain multiple user stories, so they can also be viewed as a collection of related user stories.

  • Stories

Several stories belong to an epic and target the needs from the user’s perspective. What should users be able to do with the app? – The user stories should answer this question with one sentence and thus describe the requirements for the app in a pointed manner, without containing concrete solutions. The so-called W-questions serve as a point of reference: “As (WHO?) I want (WHAT?) to (WHY?).” The typical functions are then derived from this, such as login, search functions, GPS-based functions, functions for databases, calendars, or messengers, and the integration of third-party apps (such as social media).

  • tasks

The tasks represent the smallest unit. Several tasks can be assigned to a user story in order to fulfill the requirement derived from them. An example of this would be to build a login form for the user story “I want to be able to log in as an end user.”

  • Type of User

The type of user refers to user groups that use the app. You determine the “WHO?” in the user stories so that different functions and authorizations can be set up. This includes, for example, administrators, (un)registered users, or subscribers.

In this way, the initial question can be broken down into smaller and smaller tasks for which developers can find solutions and put them into practice.

Implementation of apps

  • Conception and construction of the app

At the heart of this process is the question: How should my app be structured? The answer to this results in a so-called user interface, the interface between the user and the end device, which is the graphic surface with interactive buttons and input fields. A “folder” structure is used to define how the individual functions are to be arranged.

  • app design

The next question is about the visual design of the app. This is primarily based on the company’s corporate design, a kind of graphic translation of the corporate philosophy, which usually contains a logo and a specific color scheme. The content and its placement should not be underestimated at this point. The content, which can contain not only text but also images, videos, or other media, should be well selected (especially when designing an app, less is often more) and set as profitably and intuitively as possible. Ready-made UI templates from various providers can also be of help.

  • App programming

Programming comes last. This is preceded by the decision as to whether, depending on the device, a native or hybrid app should be developed, which is then developed for the desired platform using the development tools mentioned above. Their ready-made libraries, frameworks, and IDEs help with structuring and error avoidance through given code structures, supplements, or drafts. Finally, team tools can be used to get feedback or help from other developers or handle versioning.

App development costs

The costs for the app development cannot be stated as a flat rate. App development is part of software development and is usually a more expensive undertaking than web development due to its complexity. Start-ups, in particular, that have an innovative idea for an app but only have a small budget should consider subsidies, investors, venture capital, or business angels as a financing model for their start-up. However, young founders in the IT sector are usually not only interested in keeping the costs of app development as low as possible but also in making valuable contacts, entering into cooperation, and finding an IT partner for the technical side who App development can take over cost-effectively. However, it should not be at the expense of quality: After all, quality doesn’t come for free. It is, therefore, advisable to look for a web agency or software agency that offers high-quality work and innovative financing options at the same time. Code for Equity is such a financing model in which the programming of the app is remunerated in part through company shares.

The future of app usage

In recent years, the use of smartphones and other mobile devices has increased steadily. Even applications that require an internet connection are increasingly being used on the go. Therefore, a mobile-capable website or a responsive design is an important factor, if not the minimum requirement, for companies that want to play in the everyday reality of potential customers in order to be able to keep up with the competition.

However, the needs of the users usually go beyond the procurement of information, and conventional websites fall short of the potential that is possible with today’s technologies in the field of communication. A mobile app does far more than improve corporate communication or presentation, which shows that you meet today’s standards: Customers can also interact directly on the go or use it offline. In addition, more frequent and more binding use also increases customer loyalty. With an app, new target groups can be developed, or even new products or services can be established.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *