It’s funny to see the term app having entered the general lexicon. The first thing that happens is that it loses any precise meaning. So I will try to dig into it along several axes.
From a purely technical point of view, an app is a piece of software explicitly installed on a mobile phone, usually because the user has found it in a, or the, store. There’s lots of things here.
It’s a piece of software. So’s everything. but the clearest contrast is with a static web page which just presents a piece of data.
It’s explicitly installed. So it’s not like a link that you happen to follow, there’s an awareness that the app is a separate thing.
And the fact that it comes from a store ? Well, things come from stores. You don’t get non-things from stores, or if you do you get cross, even if your only investment was the time you spent. Conversely, you tend not to get things from places that aren’t stores. The posh word for that is discoverability.
So once the magic has been established that there is a place to get things of value, and things of value come from a place, then the app and appstore ecosystem is all set. Let’s ask, what do people not want from a store ? Answer, brochures. And to take it a little further, promotional material that is just that and no more. That’s what websites are for. I google something, I get your website, I read what your site has to say. Now comes the interesting part. Your website tells me about a thing that I want. It is of value to me, whether or not it costs actual upfront money. How should I get hold of it ? Well, I trust the store, so when you send me to the store to get it, and this just works, I’m happy. But if your site tells me about a thing, and I acquire that thing from the store, and all it does is tell me about you, I’m sad.
So, things from stores need to be of value, and things of value are best got from stores. Got that one, Google ? Excellent.
Now comes the hard part. How to make things of value, or in this case, apps of value. I could say real programming languages, and leave it there. But I’m not writing for Computer Scientists, and much as I’d like to have a war about languages and tools, it’s not the done thing here. So I will observe that it’s perfectly valid and practical to build an app with web development tools, if those are the tools that you have to hand. What you need to ensure is that you are building enough value into the app that it clears the thing hurdle. From a technical point of view, if you’re building something large and complex, it’s a much better model to use a programming language together with appropriate APIs to access the data you need from the network. You almost certainly cleared the thing hurdle already.