Over the past decade we’ve seen a tremendous rise in native mobile applications. And while native apps are still popular there’s a growing trend towards web apps that run directly in your browser.
Why web apps are becoming the new native apps
Since web apps don’t have a central app store there’s no easy way to count how many exist. But with frameworks like React it’s no surprise more developers are moving towards web-focused interfaces.
Let’s take a look at modern web apps to see why they’re so popular, how they compare to native applications, and what the future has in store for developers.
Intro To Native Apps
To understand why web apps have grown so quickly, you’ll need to first understand the native app marketplace.
When the iPhone first debuted in 2007 it came with a revolutionary OS that could run programs called “apps”. Like software for your phone. Every app was powered by the phone’s tech meaning the biggest limitations were on the hardware specs like processor speed, graphics chips, and memory.
These apps made their way into pop culture as more people bought iPhones and fell in love. More consumers using apps meant more developers creating apps. In 2008 Apple released the App Store which made it easier for developers to publish apps, and easier for consumers to download them.
This cycle of growth continued year over year and lead to Google’s Android phone with its own app store.
Somewhere between 2012-2013 responsive design hit the web. These responsive techniques let designers create websites that could fit on any device. At the same time new frameworks like React came out which let developers create websites that behaved like apps.
Prior to this point not many people explicitly used the term “native” app. But as mobile responsive web apps gained popularity it was necessary to distinguish between apps that ran on the phone’s native software(native apps) vs apps that ran in the phone’s browser(web apps).
Both types of apps are useful for different reasons. But with so many apps in the app stores they can feel oversaturated these days. Some tech outlets state we’re in a post native app era with far too many apps available and not enough people willing to use them.
Granted many other factors contributed to the saturated app marketplace, but ultimately I think this is one reason why developers have moved towards web apps.
It’s unlikely that web apps will ever command the same reach of smartphone users. But there’s a clear trend in the app community as designers & developers place more attention on the web.
The Move Towards Web apps
It’s easier now than ever to create web applications using frameworks like React, Angular, and Aurelia. But these frameworks will never be as powerful as native applications that connect right into the device’s OS.
So what’s causing this attraction towards web apps? There isn’t one main answer but there are many factors:
- It’s easier to create web apps using one stack(HTML/CSS/JS)
- Web apps do not require an app store submission
- Most web apps run in all browsers for all devices from desktops to smartphones
It’s far easier to create a simple web app for checking brand names rather than building separate native apps for Android(coded with Java) and iOS(coded with Swift).
Plus those native apps are fixed to those environments whereas web apps can run on desktops, laptops, and other 3rd party mobile OS’ like Blackberry.
Mobile browsers are quickly rising to support many native features, and it’s only been about 10 years since smartphones were first created.
I don’t see this as a complete takeover where native apps go the way of the dinosaurs. Actually quite the opposite.
I see an upcoming ecosystem where developers have the freedom to choose which type of app best suits their project.
Browsers vs. Native
There’s a big difference between building for a native environment and building on the web. They both have stringent requirements but for different reasons.
Native apps usually require a new codebase for every platform: Android, iOS, and Windows Phone all require separate applications and different libraries/programming languages.
You can save time by creating native hybrid apps but these still don’t support desktop environments.
A web application uses the same languages for all devices. The biggest issue of creating a web app isn’t learning multiple languages, it’s learning to support multiple browsers.
Not only do many people run outdated browsers but they also run many different versions of those browsers. Granted rendering engines have come a long way towards a unified style but the web ecosystem is far from perfect.
Obvious limitations happen when you’re talking about web-based games, video streaming, or interactive apps like Tinder. These will always be much better as native applications because they have more CPU power and offer greater integration for database systems.
Again this question comes back full circle: what do you want to build?
A while back the answer was always a native app. But now you can launch fairly simple ideas as powerful web apps completely sidestepping app store restrictions.
Web apps In Action
It helps to demo a few web apps to see what’s possible on the web.
Many of the following web apps support both mobile and desktop environments. Some work better on desktops/laptops because they’re made for mouse & keyboard inputs(like CodePen). But the great thing about web apps is they have this flexibility to target any audience.
One of the best examples I know is the Compressor web app created by Stephane Lyver. This site lets you upload any image and it’ll automatically shrink the image’s disk size while keeping the dimensions & quality the same.
This also works on mobile so you can upload from any device and compress images without any work. Plus all the computing power happens on the server which offloads the work from your phone/computer.
Compressor is the best example of a web app that gets detailed enough to offer unique functionality while still being simple enough to work from any device.
A much simpler web app is Colin Keany’s color blending tool Blend. It takes two values and creates a CSS gradient right in the browser.
You can manipulate the colors using dynamic color pickers or by entering HEX values manually. Plus you can choose between linear & radial gradients with different positions for each.
Who Is Hiring
Who Is Hiring may be the most detailed web app I’ve seen with so much incredible functionality. This thing is amazing because it mimics a lot of iOS-style features that all look the same on different operating systems.
You can search by location or by job description to find current job openings near you. The app pulls from dozens of job boards and lets you sort by type(part-time, internship, etc) along with features like remote work or visa options.
This site works pretty well on mobile too making it a universally valuable job search web app for developers & programmers.
The team at Vecteezy also created their own web app that mimics Adobe’s editing UI right in the browser. This way users can find vectors they like, edit the size/shape/color right in the browser, then download the edited version ready for use.
It’s definitely a complex tool and not something you can use on mobile(yet). But the sheer fact that this exists and is possible in the browser speaks volumes for the future of web app development.
Merging Browser & Native
I think the future will see an honest mixture of native mobile apps and more detailed browser-based apps. This comes as we near the end of many debates claiming the “native vs. web app” comparison is the wrong question to ask.
It’s not exactly a matter of which is better or worse. Instead it’s a matter of which best suits the goals you wish to achieve.
There’s a lot of talk around progressive web apps that run fast and solve problems just like true native apps. Will these ever take over the native app market? Possibly, but I don’t see that happening anytime soon.
Yet with free resources like React and Google’s material design there’s never been a better time to get into web app development.
If you’re looking for some awesome posts to get started building web apps then I recommend these articles: