Web or Mobile Development – What’s the difference, really?
Straight off the bat, you may be thinking that you already do web stuff on your mobile. You pick up your device, type in a URL address, click a link on a banner ad or social media post, scan a QR code and perform a search in your favorite search engine and there you go… You are on the web, doing web stuff, on your mobile, so how are they separate?
Let us start off with the simplistic differentiation between the two in the context of this conversation. When we mention mobile, we are referring to actually installing a native App on your device. We have all experienced that awesome feeling, where you head on over to the App Store on your Apple iOS device or the Google Play store for anything running Android. In recent years, stores for Windows and Huawei devices have also emerged but command a much smaller market share.
Once you’ve found what you were looking for, it’s simple to install with the click of a button and just like that, you have a shiny new icon on your home screen… Nice.
When discussing the Web, the difference here would be that you are accessing the content, interactions and experiences you are looking for, from the comfort of your browser. The browser has become a pretty familiar and ubiquitous tool in most people’s lives for many years now. Google’s Chrome is the most popular by far, with others like Mozilla Firefox ( a personal favourite), Microsoft Edge, Apple Safari, Opera and others, making up smaller and smaller slices of the pie.
Apps open up a world of games, news, social media, banking and transacting, and pretty much anything else you can imagine. All of this is just a few swipes and a tap of your thumb away. Apps have quickly identifiable icons and easy ways to group similar Apps together.
When you think about it, the browser you use to access the web is also an App, installed on the device, but its potential is only limited by the bounds of the internet, which is virtually limitless in terms of what can be found.
With that separation of understanding in place, let’s get back to the question… Web or Mobile Development – What is the difference, really?
So an App is exactly that, an Application, or a programme if you want to compare it to the personal computer world.
As access to the internet became more common and smartphones appeared with the ability to do what you normally did on your computer, digital camera, music player etc., the web needed to evolve to keep up.
We’ve probably all had that experience of squinting at your phone, pinching to zoom in and out and pan around a website that was clearly not intended for a screen that small. First was the appearance of ‘mobi’ sites – stripped down versions of the main website that allowed you to do some things, but definitely not everything the original site allowed. The tell-tale giveaway was the ‘View Desktop Version’ link at the bottom of the page just waiting for a user to step into that bear trap.
Responsive web design then took over where it became easier to detect how big the screen being used to view the page was. Based on that, different sets of rules could be applied, adjusting layouts to be better arranged for the available space. Product images and blog posts would stack neatly, buttons became a better size to hit with a thumb rather than a mouse, menus collapsed into easily expandable sections and you could actually differentiate text from tiny dirt smears on your screen.
While all of this was going on, App developers understood these limitations and complexities, but could focus on making products knowing there was a limited number of fairly similar-sized devices that they would need to accommodate.
The best Apps create a user-friendly and/or novel experience for the user, ensuring they keep coming back… but they can only ever come back for the one real purpose of that App, meaning that they are hyper-focused in their use and intent.
Since Apps are installed on the device, they get, with your permission, access to certain exclusive features. This includes things like your contact list, GPS and location, image gallery, the screen orientation, the fingerprint reader and so on. Apps also benefit from running with the full might of the processing power of the device, meaning it’s generally all smooth and slick, creating fantastic interactions and experiences for the user.
A browser, however, is at the mercy of the content you are trying to access. This could mean slow loading websites, badly laid out elements and so on. The web has strongly defined standards on how it works and sites need to work within those boundaries. For a long time, all the best stuff was only reserved for the world of Apps.
So, the obvious answer is to just go for an App, right? If the users want the best experience from you, then give them an App. On the surface this seems like the solution, but Apps have some drawbacks.
The biggest blocker generally over the years has been that every platform (iOS, Android, Windows etc) would need their own App developed. They are completely incompatible with each other. The coding languages and solutions to achieve what you wanted to with the final product, also differ greatly. The developers creating Apps would generally specialize in one or the other.
To get an App appearing in multiple App stores would need multiple teams of developers to create them initially and maintain them long term. This leads to much higher costs for getting an App off the ground vs a website.
When the need arose to fix bugs, add features or progressively enhance the experience for users, those changes would need to be put together in an ‘Update Version’. The App users would need to download this update in order to benefit from it. Doing the same changes to your website would mean that users could simply refresh the browser to get those benefits, a much easier process…
The open nature of the internet however meant that pretty much anyone could put up a site, even a site that resembles somebody else’s.
This is the prize goal of phishing scams that try to impersonate sites of importance, especially financial ones. At first glance you could not tell the real from the fake, and you could happily and unknowingly enter your crucial login details into the wrong site… oops.
App stores have an advantage, in that Apps have to be submitted to the store, and in the case of Apple, each and every single one is checked and vetted. There is complete visibility on which company has developed the App; there are ratings and reviews; and usually disclosures about which features on the device the App will request permission to access.
It is not uncommon though for a new idea to be brought to life as a proof of concept (PoC) or minimum viable product (MVP) as a website. Then later converted to an App once traction has grown through interest and demand, or perhaps the financial backing of investors.
Some companies do operate a hybrid model, where they have a responsive website, but advertise their App as well, allowing users to make the choice to switch. The best proponents of this also allow for mixed use and seamless transition between the two. You start looking for holiday rentals on the AirBnb website on your computer, transitioning to the App later when you are not at your desk. However, the places you’ve favourited are all still there.
So we now have a clear line in the sand… if you have the time, the money (mainly for developers) and the intent… go the App route, but should you need to hit the ground running and start fast, go web.
But that line has been kicked in recent years and has become very blurred, very fast… Enter (with cued dramatic music) – Hybrid and Progressive Web Apps.
Hybrid Apps mean that you can take other technologies or coding languages, and convert them into an installable App on the device. This opens a new world of possibility to developers with certain skill sets, allowing them to extend the avenues their work can follow. This trend was kicked off by frameworks and tools such as Adobe PhoneGap, Apache Cordova, and Ionic.
Added benefits include access to things like GPS, camera, location and all the snazzy bits which creates that immersive and seamless experience between the App and the operating system.
This base web project will also generally be just as usable as a standalone website. This follows the paradigm of “write once, deploy to many”, making it a good Swiss Army Knife approach.
There can be drawbacks to this process though. Ever used Google translate to convert something specific to or from another language? You end up with results that are not particularly accurate, and the same can be said here. Depending on what your App needs to do, there may still be “some assembly required” after the conversion has happened, but these tools do create a brilliant springboard.
The “write once, deploy to many” is taken one step further by a framework called Flutter, which is backed by Google. Using Flutter does require you to learn a new coding language called Dart though.
You use Flutter to create projects, which once complete, are converted by Flutter into a native Android and iOS App, with zero shortcuts or polyfills. It is absolutely the same as if you had created two separate and bespoke projects from scratch. Flutter has gained immense popularity because of the potential for savings in time (reduced time to get the Apps developed) and money (you no longer need to hire 2 teams of developers). Estimates on these savings can range in the 30% – 50% region. Impressive stuff really.
Then last, but not least, is the discussion on Progressive Web Apps (PWAs), again a technology thought up at Google. PWAs bring App-like features to websites, as opposed to Hybrid Apps that take websites and turn them into Apps.
Progressive Web Apps (PWA) look to progressively enhance the user experience of a website and bring a range of features that achieve this brilliantly. Some of these include use of the things discussed previously like the camera, location and others, which normal websites can do as well in more modern times, but PWAs do it in a more elegant way.
The stand out features include:
- They are installable, so you get a neat icon on your device home screen, WITHOUT actually needing to go through the store your device uses in order to do this. Installing this way is actually making a shortcut on your home screen rather than putting a whole new App on there.
- Once installed, the PWA also runs in its own window, away from the browser, losing the address bar, and back / forward / home buttons, to give it a more authentic native App feel.
- A normal website with no internet connection is not accessible, but a PWA can run in offline mode, meaning you can still use and visit certain parts of it without issue. The website can also tell you that you are offline because it’s smart like that.
- The PWA uses caching to download the parts of your website in the background, making them available when you actually need them. This works hand in hand with offline mode. For example, an e-commerce store could let you browse the entire catalog in offline mode. Once you’re connected to the internet again, you’ll be able to pay and check out.
- PWAs can be updated in the background with Background Sync when new features are available, and this is done automatically for you. Background Sync also means that actions you perform while in offline mode, like filling in a form, can be finalised once the device is connected to the internet again.
- PWA features added to a website do improve its performance and user experience and so having these features is seen in a very positive light by Google for SEO and search ranking (remember, they’re the ones that created the PWA technology, hmm…)
- PWAs were also earmarked to bring a better web experience to places where top line smartphones and fast, cheap internet access were not ubiquitous. Since you aren’t installing the App in the true sense, you aren’t using up space on the device. While with features like caching and offline mode, you can still experience the site between sessions of internet connectivity.
So what’s the catch (because otherwise it’s too good to be true right)? At this point, PWAs are limited by browser support. Google’s Chrome on both computers and devices can make use of all PWA features. Across the rest like Firefox, Safari and so on, support is fragmented.
The most notable standout is the almost zero support by Safari on mobile specifically, meaning iPads and iPhones can’t really use any of the best PWA features.
PWAs have been around for about 4 going on 5 years now, so it is not an issue of technological maturity. Conspiracy theorists do have it that bringing App-like features to websites means less of a need for native Apps, which account for a large proportion of Apple’s revenue stream, but obviously nobody can say for sure.
The obvious distinction between native Apps and web experiences have blurred and blended over the years as the need for better and improved experiences have evolved, so the days where the experience of a native App were leaps and bounds ahead of the web, are gone.
Native Apps are likely to stick around though as the experience is unique, fills a niche, and is purpose driven. The unicorn I always relate to on this is Uber, because the native App is so integral to the entire purpose of what you are trying to achieve, it makes no sense for it to be done any other way.
The internet is so vast that not everything can or should be converted into an App, and so it is not going anywhere.
There is no winner here and never will be because they serve very different purposes, but there is no reason why they can’t merge ideas and philosophies, and this has seen a lot of traction in the last few years.