A few days ago I got contacted by an aquantance, that owns a small business, who told me that he had a great idea. He wanted a mobile app for his business.
You need to first ask yourself a few key questions:
- Why do you want it?
- What's your goal for/with it?
- What's the value added for your customers?
- Why would your customer use it instead of X? Where X is the current was of doing the same thing (if that applies)
He wanted to use it as an e-commerce. Which I think is a very widespread mindset among small business owners. But he already had an ecommerce website that supported mobile really well. I was sure that was enough and a mobile app would have been a waste of money at his scale. If he was a bigger business I could see the appeal or having an app with profiling and push notifications.
The worst part is that I'm sure that if he would have just asked most companies that develop apps, the answer would have been way different: Yes, of course you need it. That would be x $.
They'd have said right away, I'll gladly take your money and make a half assed application from a template I have in-house and make you pay full price for it. I will also charge for support, keeping the server running and so on. You know the gist.
I don't think it's right for every business to have an app.
Let me rephrase it better...
I don't think it's right for any business to have an app unless they can prove they need it.
If it's just a front-end for your website, it's pointless - unless you're a huge company and can't afford not to be the on the AppStore.
So I suggested that maybe a simple site, optimized for mobile with a great design would be better. If you go ahead and spend the same amount of money (and probably less) to renovate your website and make sure it looks wonderful on PC, Tablets, and Phones you would do way better.
When you need an app
That said there are some cases where you need an app even if you're a small business owner. You need an app whenever you want to access hardware features of the device or if you need insane performance that only native code can give you, but those needs are few and far in between.