How to target mobile devices: app or responsive site?
A couple of weeks ago, a colleague asked if I had build apps before. I said "No, I'm not a big fan of apps". He was kind of surprised as apps are popular and will be more and more in demand. We had a discussion about it and agreed to disagree. So I decided to write my thoughts down. Let me give you the short answer right away: they're both good choices, but for different reasons and you'll need to look at your own business needs (or interests) to determine which is right for your company (or you).
One of the most important differences between a responsive site and an app, for me, is discover-ability. A website is much more easily found than an app. Google, Bing, Yahoo,... (oh, who are we kidding, we all just use one search giant). With the right words or bought advertisement space, your site will show up as one of the first results. An app on the other hand is found primarily through the app store of your device. You will need to know what you are looking for, most cases it will be something specific.
When I search Google, Bing and Yahoo for the terms "time recording", the link to Toggl* is on the first page. I used vague terms to find a service I use. "Time recording"could refer to a lot of different kinds of software to track time, but I found what I was looking for on the first page of all three search engines. Yet when I look for the same keywords on the different app stores, I didn't find the Toggl app. This is just a simple example, but try to find something and see what you find more easily, sites or apps.
Which brings me to the next point: for a site, you don't need to install any specific software. Every operating system comes with a default browser and each browser can navigate the web fine. You can get a different browser if you like, but it's not necessary. Apps on the other hand require an install. Another step to go through.
Right before you install an app, you're asked to give it permissions to do things on your device like access personal information, network access, phone calling data, etc. You don't have any choice in which rights you grant, accept all or don't use the app. Besides, when a simple app requests access to my personal info, my address book, the camera and the internet, I get a bit suspicious about their intentions. More and more sites let us use identities (such as Google, Microsoft, Twitter, etc.) to sign in which gives them basically some of the same information. There is almost always an option to sign up with an email and password combination. Thus you could create an anonymous account if you would like that. Now there are benefits and downsides to that too, but I am a proponent of anonymity on the interwebs. That, however, is a discussion for another time.
The advantage for apps is that you log in once and can use it whenever you want. A website will, depending how it is implemented, ask you to log in again and again. A browser can help you remember your passwords and there are password managers (like LastPass, KeePass and 1Password**) that make remembering and choosing strong passwords a lot easier, but sometimes it's just a pain in the ass.
Security is something that depends on a case to case basis. Some sites don't take security serious (no https, plaintext passwords in their database, etc.), but in a site we can see some upfront indications something is wrong. All major browsers show if a certificate is trusted by the green or red padlock in the URL bar. (Side note, don't trust padlocks in the site!) With apps on the other hand, you don't know how well the link with the back end services are secured. All you can hope for is that your bank doesn't post your sensitive information plaintext over the wire. I'm sure no bank would ever be so careless... The situation has improved, but how can you tell your app is secure? At the moment there is no clear answer besides to look at the traffic and I doubt every day users will go through that trouble.
Once an app is installed, you need to learn how to use the app. Where to click, where to swipe, which swipe direction does what,... Personally, I find this very fun, but I can understand that this isn't every users favourite part. For example, I just recently figured out that if you swipe right on a tracked item in Toggl, it deletes it. I was looking for this functionality for some time before I accidentally stumbled upon it. In the meantime, I used the web interface to delete tasks. In my experience, a site is much clearer to navigate and to see on what you can click. That is if the site doesn't use one of the many user experience anti-patterns that are so popular these days. This comes down to design decisions that have been made. I can't say whether sites or apps come out of this better, since this is a very subjective point of view that even differs from app to app and site to site.
Let's take a look at how to program them. With apps you'll need to target 3 platforms and thus 3 languages: WinPhone has C# (or VB.NET), Android and Blackberry have Java and iOS has Swift. You can use the Xamarin platform to build it once and deploy multiple times, but even there you'll need to know some Java and Swift for customization and edge cases. Since Xamarin is a fairly new technology, most companies don't use this (and some never will, for their own reasons). So you are left with a code base for each platform. Web on the other hand, just has one. The one you pick. You use html and javascript for the front end and C#, Java, php, node,... on the back end. One code base, one platform, one set of skills needed.
By now, we have a lot of against scenario's for apps, but this is the redeeming chapter. I think apps have an important niche market, but at the moment are used for too much. The specific use case I'm talking about is hardware specific scenarios. I'm talking about using the camera, the accelerometer and gps functions. I support apps like fitness trackers, navigation apps, authenticators and games. They each have a specific function, they require specific hardware a site can't (and should't be able to) access, they are easy to use and intuitive to learn. The ones I use are also light on my phone so they don't slow down my system or drain my battery.
There are other scenario's where this isn't the case. Apps just to distribute content such as newspaper apps (or you 9gag), apps that keep track of tickets or schedules or apps that are a dime a dozen (how many qr-code readers can you need?). In these last cases, please, just give me a responsive site.
There are a lot of apps for specific functions, but not every app is useful. So think carefully why you want to make an app and what your app will do. For all other scenario's, build a decent responsive site.
As a parting comment, I know this is a bit of a sensitive topic. I know a few people who will disagree. Seeing there is no forum (because I don't want to moderate it), there is no easy way to start a discussion and that is what I want to avoid. This a place where I can put my thoughts without engaging in a discussion. For the time being, I like that. If you really have a beef with my point of view, I make no secret of who I am, so you can contact me via other channels.