In today's world you can find an app on a lot of different electronic products: smartphones, tablets, TVs, car entertainment systems etc. So what exactly is an "app"?
First of all, the word "app" is short for "application", or more specific "application program" as it is used for software (and so is also a synonym for "program"). This abbreviation came to be widely known with the rise of smartphones with touch-based touch screens. The programs on these smartphones were simplified and only contained the most important functionality in order to make them easy to use. In comparison to similar programs on computers, the smartphone applications seemed small (yet powerful), so using "app" instead of "application" seemed to be fitting.
When Apple and others launched their online software stores for this kind of software, the name "app" had already become so widely known that they also used it to name their distribution platforms - so now they are called "app stores".
Whatever hardware they run on - usually some kind of smartphone or tablet, every "app" is a piece of software. Just like software for classic computers, apps are developed in order to work with a given piece of hardware.
While the operating system and the hardware are different than on a desktop or notebook computer, the software development is not much different. You still need a computer as your development system and development software for your target hardware or platform. Some development kits offer an integrated simulation for different smartphones and tablets, but for the final testing of your app you also need a physical smartphone and/or tablet (or you can send your app to a special service provider who can test your app on a lot of different phones and tablets - at a cost).
So if an app is basically just a program or a type of software, how is it different from any software that runs on a PC, notebook or some server?
When the app stores started, the differences to traditional software could be found in two areas: the amount of integrated functionality and the "userfriendlyness" of the software.
Early apps only had the most basic functionality that was necessary to perform certain tasks. Every additional functionality that more traditional computer software would have had, like the ability to store addresses and create form fields for serial mails or letters to a larger group of people in a word processor application, was provided by separate apps. As smartphone operating systems included easy ways to share data between apps, this separation was no problem.
At the same time, this smaller amount of functions made the user interface much easier and quicker to learn. Usability was much improved in comparison to more traditional software, allowing more people to use it.
The resulting success of this kind of software has influenced a lot of the development of traditional, more complex software ever since. User interfaces have improved, more intelligence has been integrated into the programs, making the software more powerful while also being easier to use. At the same time, apps on smartphones and other platforms are evolving, and often new functionality is being added. So the gap between the different kinds of software is getting smaller and might disappear in the future, leaving only the improved userfriendlyness.
So this is it: an app is a piece of software, sometimes limited in its functionality, but highly usable.