Mobile Apps – The ‘Chocs’ and ‘Knocks’ of Native, Web and Hybrid
Sometimes, when I’m trying to get my head around new concepts I write about them and that in turn helps lodge them in memory. I don’t think I will say say too much here that hasn’t been written elsewhere but that’s not really the point. This is more for my own peace of mind, to help me get a better understanding of the tech and also introduce you as the ‘tech-interested’ reader to the fantastic world of mobile development.
Having some experience of developing for Android devices and being scrum master for iOS projects I understand to a fair degree the technologies used in mobile application (app) development. However, these are exciting times, the tech changes constantly and new ideas are evolving into real startups. Concepts that we once thought impossible are now more than plausible.
Determining the best approach when deciding to ‘go mobile’ is not as straightforward as you might think. Do you go with a native Apple, Android or Windows Phone apps, or do you develop a cross-platform mobile website? It’s a question that has been debated many times and one that I don’t intend to solve here, however you as a reader, developer or entrepreneur should know the differences (and why they matter) since they could be the key to the success or failure of your business.
Before looking at the cases for and against the different development approaches, let’s take a look at the various methods by which information can be delivered to your smart phone, tablet or other portable device.
1. Purely native apps – Apps that are installed at manufacture, or can be downloaded by the user from the ‘app store’. Being language specific they will only run on the platform for which they are designed. The two main players are ‘ObjectiveC for Apple iOS (iPhone/iPad etc.) and Java for Android (Samsung, HTC etc.).
2. Purely web mobile – Provided the device has a web browser these ‘apps’ can be displayed. Strictly speaking they are not apps at all, but mobile websites, for example check out the website for Swatch watches.
3. Dedicated web mobile – These sites are a little less common, but essentially are a purer form of the web mobile site and dedicate themselves to one platform or another, usually Apple or Android. Since these two platforms make up most of the mobile devices in the market, some website developers have reasoned that it makes sense to develop mobile sites that target them specifically.
4. Hybrid app – Essentially a combination of the web mobile and the native app. Previously only native apps could consume local device resources such as the GPS, Address book, camera etc., however these hybrid apps can now do that, and they are cross platform.
The ‘chocs’ and ‘knocks’ approach
Now, in scrum retrospective meetings the team recognises things that went well during the sprint (sometimes called ‘chocs’) as well things that could be improved (sometimes called ‘knocks’).
I’m going to apply that concept to the various technologies just described so we have a chocs ‘n knocks overview of Native, Web and Hybrid mobile development technologies.
‘chocs’ = the good bits
‘knocks’ = the not so good bits
Native App Chocs
1. Complex development allows access to all of the phones features presenting a much more involved application.
2. Fantastic delivery system and visibility for applications released to market, i.e. Play Store, Apple Store, Samsung Apps etc.
3. At the moment users enjoy better performance, however this is one advantage that may decrease with time
4. Any app can be used without a connection to the internet, i.e. offline. Data can be created, read, updated and deleted; and then synced whenever the user has a connection at a later stage.
5. Allows for push notifications, i.e. messages sent back to the device from a server for example alerting the user of some action to be taken.
Native App Knocks
1. Expensive is the key word here, in terms of time to build, complexity and potential cost to the end user. Additionally, if your app is designed to make money a percentage of that will go to the app store that releases it, i.e. Apple, Play, Samsung etc.
2. Potential customer base is not as high as it could be if a company decides on one technology or the other, i.e. if an app is developed for iOS only, then users of Android and other OS devices will not be able to use it. Native apps are not cross-platform.
3. Updates to the app can also only be made through the store, so again this takes time and end users may not always get the latest version of the product if they chose not to install it.
Mobile Web Chocs
1. This is a real obvious one and by far the biggest advantage, i.e. cross-platform compatibility. You code this baby up once and you can deploy it anywhere.
3. No need to waste your bandwidth downloading new versions all the time, the latest version of the site is available as soon as a user navigates there.
4. It generally takes a lot less time to get a mobile website up-and-running, with the right tools in place, small apps can be published to the web in a matter of minutes.
Mobile Web Knocks
1. Cannot (yet) deliver the rich complexity of native apps since they do not have access to the more complex features of the device such as GPS, camera etc..
2. There is an argument that says web apps will never present the same performance as native apps since the coding method is different, i.e. interpreted (web) versus compiled (native).
3. Connectivity is always a given when talking about disadvantages of the web, without a decent connection the app is effectively useless.
4. Does not support push notifications directly, though it could be argued that a user could in fact be notified by using a different means.
Hybrid App Chocs
1. Well the clue is in the name here, a hybrid app attempts to bridge the gap and deliver rich content and features since it can access the device’s complex features.
2. There is an advantage over web apps in the fact that hybrid apps can to some degree access off-line storage.
3. In a similar way to web apps the hybrid apps should in theory be less expensive to develop and have a shorter time-to-market than native apps.
4. Developers can make use of the fact that a single code-base is required, but the app can still be delivered in the same way as a native app, i.e. through the usual store outlets.
Hybrid App Knocks
1. There is still a need for a connection to the internet, without this the app may be only partially useful.
2. The performance issue is still likely to be there, since the app is dependant upon the browser capability.
3. Having the outlet store as a release mechanism can also be seen as a disadvantage in terms of updating the app and having a third party with a final say as to when the app is actually released.
Whether you are a developer, a software house, or consultancy creating mobile apps or business looking to acquire an app for your business, there is a lot to consider.
Ultimately the choice will depend on the requirements and business objectives, i.e. if a load of graphics are necessary then it’ll probably be a native app, or if something more simple like an on-line diary, then perhaps web is the way to go. If your diary needs to have a GPS stamp or you want to add pictures, then perhaps Hybrid is the best solution. Whatever you chose, think long and hard before diving in.