Mobile use has seen an exploding growth over the past couple of years, with smartphones and tablets already outnumbering desktop bound devices by a large margin. As a result, developing mobile apps has become a priority for pretty much any company and startup – in fact, there are plenty of companies that only cater to mobile users (WhatsApp, Tinder, even Instagram, partially) and don’t even seem to blink at the fact that they don’t have a good way (or any way) to reach desktop users.
Switching to mobile is a trend that is only getting bigger, and predictions show that mobile Web users will outnumber desktop users by a factor of ten by 2017, which is quite impressive. It makes sense – phones and tablets are cheap, easy to carry and use anywhere, and they provide everything a consumer might need – laptops and desktop computers are now used mostly to create content, with smart TVs trying to cut out their share in homes and offices.
When it comes to mobile app development, there’s a huge battle going on in the developer world – namely, should one use Web vs native technologies to create and run the applications? Both sides have good arguments, and it’s quite difficult to figure out who is right. Let’s take a look at the advantage and disadvantages of Web and native programming technologies for apps and see when (and whether) you should choose one over the other.
Web based apps are a great way to extend your reach if you have a website, and they can complement each other very well – you can even have a cross platform login that will work in your app, as well as in any browser, which is very convenient. For companies and individuals alike, the biggest reason to go with Web technologies when creating a mobile app is convenience and low cost – there are a lot of established Web developers out there, and any reasonably sized company has one in-house or a contractor that can start working right away.
Switching from Web creation to app creation requires minimal learning and investment, so you can have an app for any device in practically no time. You can also skip all the in-depth testing if you’re hard pressed on time or money – unlike native apps, Web apps are much more likely to work without major problems on the first try.
One of the biggest gripes with apps running on Web technologies has been the response time – traditionally, these apps were very iffy and lagged quite a bit, but thanks to the ever increasing power of mobile processors and the tighter integration with the Web (with cloud services being at the forefront), there is practically no performance difference between a native and a Web based app. Of course, there are drawbacks – there are some things that are limited or you simply can’t do with Web technologies on a local device.
Extensive file system access is very difficult to implement and access to the camera, sensors, microphone, the GPU is almost impossible without running native code. Some of it is because the devices weren’t designed for it, some of it is because of security concerns, but the point is that if you need any kind of advanced local functionality, you’ll probably want to go native.
While most of the time, Web based apps should be more than enough (especially as a first version), native apps do have the upper hand for local and/or offline use – if you’re able to invest the time and money required, going with a native app for each platform may be a better choice. If you’re just complementing your website, an app created in native code can lay the foundations for a lot of new features in the future, and if you need to use any of the device’s hardware, it’s pretty much the only way to go.
The disadvantages of native mobile apps are simple, but quite big – you will have to maintain apps for iOS, Windows Phone and Android separately if you want to reach the maximum number of users, and provide timely updates for each one of them, which is quite an involved process that will require significant time and man power.
You’ll also need to ensure that your app works fine on devices from different manufacturers, with different processors, screen sizes and OS versions, which can get very complicated very fast – Apple and Windows Phone are winners in this regard, but the Android user base can’t be ignored, and the emulators are no substitute for the real thing, so you may want to get ready to purchase half a dozen devices just for basic compatibility testing.
There’s really no need to overthink it – Web based apps are the perfect starting point – you can test the waters and reach a maximum number of users in the least amount of time, and if everything goes according to your plans, you can switch to native later on. However, if you need to implement advanced features or you have a long term plan that you rely on for your business, going native from the start may be a better choice.