A not-so-quick TL;DR. This is a very brief TL;DR. The article goes into a lot more detail, taking time to explain their arguments for starting with a web presence over a native one. Below is a...
Exemplary
A not-so-quick TL;DR.
Back in 2012, everyone was building apps. There was a "mobile fever" of sorts, as the world was moving towards mobile only software. Now the obsession has calmed down.
People spend most of their time on mobile apps rather than website. Apps account for up to 90% of time spent on a phone and 77% of the time spent on a tablet.
However, time spent on the web is more evenly distributed across providers and publishers. People visit new websites from search engines, and explore without needing to install an app.
This means an unknown startup gets more reach via a web presence vs a native presence.
This is a very brief TL;DR. The article goes into a lot more detail, taking time to explain their arguments for starting with a web presence over a native one. Below is a very, very brief showcase of the arguments.
Arguments for building a website instead of a mobile app
It's cheaper to deploy.
Deployment is instant, compared to waiting for a review for each update.
Easier to launch.
Easier to distribute and expand.
Acquisition cost is lower.
Works on all devices.
Adaptable.
Easy to internationalize (automatic translation.)
Easier to profit
Arguments for building an app over a website
If it requires location, it needs to be baked into the OS to get access to sensors and location data (e.g Uber.)
Unless you're interfacing with custom hardware you made, or you need your app to have fine grained control over all the bits that come in and out of the network stack, then you should make a...
Unless you're interfacing with custom hardware you made, or you need your app to have fine grained control over all the bits that come in and out of the network stack, then you should make a website. All of the things you listed as "app over website" arguments can be done on the Web
You're not wrong, but frequent microtransactions (e.g buying food through Just Eat) are a lot more convenient in an app. Tight integration with native components allow for a more... fluid...
You're not wrong, but frequent microtransactions (e.g buying food through Just Eat) are a lot more convenient in an app.
Tight integration with native components allow for a more... fluid experience. An example is Apollo for iOS. It feels native and is just... nicer than a website that hasn't got a native UI. Here's a pretty good read on what I mean - however this time talking about a desktop OS rather than a mobile one. With Android, native interfaces also exist through Material design. An example is Revolution IRC. It's pretty gorgeous, fits in snugly with the Android UI and integrates well with notifications. It does some stuff a web based client like Mibbit can't - like staying connected when not on the browser. Something that is rather important.
While location is pretty precise in a web browser, it might be irritating for an end user to constantly give access every time they need a taxi. It's just more convenient to use an app (most of the time.)
someone beat me to it this is probably possible with service workers, though directly interfacing with IRC may in fact invalidate the website argument here for this case very possible for...
frequent microtransactions
someone beat me to it
like staying connected when not on the browser
this is probably possible with service workers, though directly interfacing with IRC may in fact invalidate the website argument here for this case
integrates well with notifications
very possible for websites, but requires permission
irritating for an end user to constantly give access every time
permissions on the web are the same as on an app. one time accept, can be revoked at any time
Google Pay has a web API that works really well even for mobile. There are downsides to this however: You'll have to take care of verifying the user has paid for it if it's a permanent add-on....
Wow, I never knew about this. How does this work with Apple devices though (don't know if they support Google pay)? If it doesn't, that's just under half the potential purchasers shaved off.
Wow, I never knew about this. How does this work with Apple devices though (don't know if they support Google pay)? If it doesn't, that's just under half the potential purchasers shaved off.
There is also a upcoming standard for a payment api the depends on no payment provider in particular https://wiki.mozilla.org/WebAPI/WebPayment. Its essentially a much better credit card autofill.
There is also a upcoming standard for a payment api the depends on no payment provider in particular https://wiki.mozilla.org/WebAPI/WebPayment. Its essentially a much better credit card autofill.
That looks really nice. It's got quite a bit of stable support on desktop too, but unfortunately only two mobile browsers support it at the moment. Thank you for introducing this to me.
They're forgetting an important bit of app functionality: push notifications. That's easily one of the strongest arguments for developing an app, both from a user convenience perspective and from...
They're forgetting an important bit of app functionality: push notifications. That's easily one of the strongest arguments for developing an app, both from a user convenience perspective and from a customer engagement perspective. You can also more easily bake analytics into your app, making it more difficult to circumvent common analytics bypassing strategies e.g. using noscript or adblockers in the browser. You also lighten your server load by avoiding the need to serve HTML, CSS, JS, or images, instead having all of the interface perpetually stored on the user's device via the app.
Granted, I don't want to install tons of apps. I don't want to have websites constantly nagging me to install their apps (looking at you, reddit). But they're a very big data mining tool and therefore a huge potential source of revenue, they can ease server loads, and they can more easily drive customer engagement. They're fantastic tools from a business perspective.
There's a very big difference. If you close out of your browser on mobile, or even just out of the tab for the website, you won't be getting those notifications. The whole point of mobile push...
There's a very big difference. If you close out of your browser on mobile, or even just out of the tab for the website, you won't be getting those notifications. The whole point of mobile push notifications is that you still receive them even when the app is closed out. You don't need to keep the app open to know that e.g. someone just sent you a message.
Edit
Apparently I'm partly wrong here. You actually don't need to keep the website open in the browser tab in order to receive push notifications. You do still need to have the browser open, however.
Ah, neat! So I'm only half right there. Still requires you to have the browser open to actually receive them, but doesn't require having the tab open. Thanks for bringing my attention to that, it...
Ah, neat! So I'm only half right there. Still requires you to have the browser open to actually receive them, but doesn't require having the tab open. Thanks for bringing my attention to that, it seems things have changed quite a bit since I last looked into this subject :)
I'm not sure what you really mean by: Most PWAs function as "apps" that are standalone from the browser, you can actually set this with the display property in the site's manifest.json. More Info
I'm not sure what you really mean by:
Still requires you to have the browser open to actually receive them, but doesn't require having the tab open.
Most PWAs function as "apps" that are standalone from the browser, you can actually set this with the display property in the site's manifest.json.
Wait, wtf, installing apps on your phone's home screen? When the hell did this become a thing? Jesus Christ I'm getting old, and I'm not even in my 30s yet.
Wait, wtf, installing apps on your phone's home screen? When the hell did this become a thing?
Jesus Christ I'm getting old, and I'm not even in my 30s yet.
Even tildes supports this feature. I'm using it right now with firefox on android, it's pretty cool. Duolingo and twitter also support it. Check out pwa.rocks for more apps that use it
Even tildes supports this feature. I'm using it right now with firefox on android, it's pretty cool. Duolingo and twitter also support it. Check out pwa.rocks for more apps that use it
IIRC browsers sometimes ask me if I want to receive notification from some 'xyz website' & if you chose yes then you'll receive a notification everytime the website owner sends one.
IIRC browsers sometimes ask me if I want to receive notification from some 'xyz website' & if you chose yes then you'll receive a notification everytime the website owner sends one.
Yeah, it seems as though you can create a service worker to allow for handling push notifications even if the website isn't open in a tab. The browser still needs to be open, though.
Yeah, it seems as though you can create a service worker to allow for handling push notifications even if the website isn't open in a tab. The browser still needs to be open, though.
I used to get them even when I was not using it, I think that was a background process and most browsers would keep it running if notifications are enabled.
The browser still needs to be open
I used to get them even when I was not using it, I think that was a background process and most browsers would keep it running if notifications are enabled.
not exactly installing but yes you can add a shortcut to that on home screen, also gnome does this with their default browser (epiphany ..? probably). you can add a web page to app drawer and it...
not exactly installing but yes you can add a shortcut to that on home screen, also gnome does this with their default browser (epiphany ..? probably). you can add a web page to app drawer and it would launch like a web app.
Think of all the advantages you want, an "app" that's delivered through the browser doesn't rely on users to update it. In fact, it never requires updating. It doesn't require being installed. I...
Think of all the advantages you want, an "app" that's delivered through the browser doesn't rely on users to update it. In fact, it never requires updating. It doesn't require being installed. I despise "apps." "Apps" are a moneymaking construct, little more. The only legitimate reason to develop an "app" is because you get functionality beyond what HTML has traditionally offered. So OpenGL games and shit, yeah, you weren't able previously to deliver that through HTML, fine, make an app. Even that is changing. The case for "apps" gets thinner and thinner every year.
Yeah, most benefits of apps are definitely on the business end. There are still benefits for users, e.g. guaranteed offline functionality (if the app doesn't rely on a web server), the...
Yeah, most benefits of apps are definitely on the business end. There are still benefits for users, e.g. guaranteed offline functionality (if the app doesn't rely on a web server), the aforementioned push notifications, potentially faster load times, and a number of convenience features like biometric authentication, but really whether or not you benefit from those advantages is going to depend on the individual (especially if you're concerned about privacy).
99% of the time I prefer using my browser, but I do have apps I prefer over using a web interface. For example, I have the Discord app because I like having those push notifications available to me and I don't want to have to constantly go into my password manager to snag my password to log in any time I visit the web version. It's more convenient for me. The same goes for Slack because it makes communicating with my team at work way easier when I'm not sitting down with my laptop in front of me.
Different tools for different needs, and apps have tools available that browsers don't. Love them or despise them, apps serve an important role by filling in that gap.
Here are some of my thoughts. These are separate from the article. A TL;DR of the article is available here. Overall, I agree with almost wholly with this article. There are, however, a few...
Here are some of my thoughts. These are separate from the article. A TL;DR of the article is available here.
Overall, I agree with almost wholly with this article. There are, however, a few benefits to apps not mentioned in the article, such as better potential performance.
I think that a lot of apps create a lot of bloat, and just end up making a cumbersome experience. For example, say a user visits a website to get a small bit of information. The website redirects them to the Play Store or the App Store (got apps, but not websites), preventing the user from accessing the website. The user is more likely to go onto another site to get said information, rather than using the app (for solely convenience.) This alienates mobile users, reducing revenue from ads/whatever.
A middle ground is having both. This, however, suffers from drastically increased development costs, as they have to maintain both at once. It might also alienate users because having a fat banner that says "This loads 50% faster in our app! Please install for a 'superior' experience." probably alienates a fair few people too. I think the way to approach it would be to not push the app too much, while having it there as an option (like Wikipedia.) Yet this suffers from increased development costs with little payoff. If there was a way to embed a mobile-friendly site into an app, while allowing tight integration (for notifications and microtransactions), then it could be a lot easier.
I think that should be possible - I know android and iOS both have web rendering engines built-in (android has Chromium (I think this can be substituted with gecko/firefox?) while iOS has...
I think that should be possible - I know android and iOS both have web rendering engines built-in (android has Chromium (I think this can be substituted with gecko/firefox?) while iOS has Safari/webkit) which are available to apps as well, which could work for your suggestion
I'm pretty sure you can register some service that can chill in the background. For a good little while Facebook was adamant about installing one in my browser. Maybe this is a direction to look into?
I'm pretty sure you can register some service that can chill in the background. For a good little while Facebook was adamant about installing one in my browser. Maybe this is a direction to look into?
I am of the opinion that for mobile users, SPAs are probably the best way to do things. That being said, most complex SPAs are bloated messes that perform badly. Even for the better examples,...
I am of the opinion that for mobile users, SPAs are probably the best way to do things. That being said, most complex SPAs are bloated messes that perform badly.
Even for the better examples, there is a "last mile" problem with mobile phone operating systems that make SPAs second citizens. For example, there is no obvious way to "install" a web app, they usually seem to have lower priority levels than native apps, and of course there is no way to control the native hardware except in specific limited ways (you can't use NFC with a web app, for example).
Single Page Application. Basically a bunch of bloated JavaScript which is basically the entirety of the website functionality loaded all at once and you do stuff like load data using Ajax requests...
Single Page Application. Basically a bunch of bloated JavaScript which is basically the entirety of the website functionality loaded all at once and you do stuff like load data using Ajax requests to update what gets displayed.
Start where the money is, which is iOS, which doesn't support new web technologies, which means you're forced to make an app. Basically, if you want to push for the open web, talk to Apple and the...
Start where the money is, which is iOS, which doesn't support new web technologies, which means you're forced to make an app. Basically, if you want to push for the open web, talk to Apple and the people who buy their stuff, not to startups trying to survive.
A not-so-quick TL;DR.
This is a very brief TL;DR. The article goes into a lot more detail, taking time to explain their arguments for starting with a web presence over a native one. Below is a very, very brief showcase of the arguments.
Arguments for building a website instead of a mobile app
Arguments for building an app over a website
Unless you're interfacing with custom hardware you made, or you need your app to have fine grained control over all the bits that come in and out of the network stack, then you should make a website. All of the things you listed as "app over website" arguments can be done on the Web
You're not wrong, but frequent microtransactions (e.g buying food through Just Eat) are a lot more convenient in an app.
Tight integration with native components allow for a more... fluid experience. An example is Apollo for iOS. It feels native and is just... nicer than a website that hasn't got a native UI. Here's a pretty good read on what I mean - however this time talking about a desktop OS rather than a mobile one. With Android, native interfaces also exist through Material design. An example is Revolution IRC. It's pretty gorgeous, fits in snugly with the Android UI and integrates well with notifications. It does some stuff a web based client like Mibbit can't - like staying connected when not on the browser. Something that is rather important.
While location is pretty precise in a web browser, it might be irritating for an end user to constantly give access every time they need a taxi. It's just more convenient to use an app (most of the time.)
someone beat me to it
this is probably possible with service workers, though directly interfacing with IRC may in fact invalidate the website argument here for this case
very possible for websites, but requires permission
permissions on the web are the same as on an app. one time accept, can be revoked at any time
Didn't know permissions stick, I tend to browse in incognito all the time so I guess the options don't stick.
Haha same, but if you happen to add a site to your homescreen then it will remember as well 👍
Thank you!
I really wanted to go for a web app for my app but I really need to be able to record gps while the screen is off and websites simply can not do that.
Google Pay has a web API that works really well even for mobile.
There are downsides to this however:
(An app does not need an account to work with transactions, and sync.)
Wow, I never knew about this. How does this work with Apple devices though (don't know if they support Google pay)? If it doesn't, that's just under half the potential purchasers shaved off.
It works the same, though it's less likely the user would have their payment methods saved to it.
Huh, TIL. I'm keeping the TL;DR as is because it's the authors views, not mine :)
Thanks!!
There is also a upcoming standard for a payment api the depends on no payment provider in particular https://wiki.mozilla.org/WebAPI/WebPayment. Its essentially a much better credit card autofill.
That looks really nice. It's got quite a bit of stable support on desktop too, but unfortunately only two mobile browsers support it at the moment.
Thank you for introducing this to me.
They're forgetting an important bit of app functionality: push notifications. That's easily one of the strongest arguments for developing an app, both from a user convenience perspective and from a customer engagement perspective. You can also more easily bake analytics into your app, making it more difficult to circumvent common analytics bypassing strategies e.g. using noscript or adblockers in the browser. You also lighten your server load by avoiding the need to serve HTML, CSS, JS, or images, instead having all of the interface perpetually stored on the user's device via the app.
Granted, I don't want to install tons of apps. I don't want to have websites constantly nagging me to install their apps (looking at you, reddit). But they're a very big data mining tool and therefore a huge potential source of revenue, they can ease server loads, and they can more easily drive customer engagement. They're fantastic tools from a business perspective.
I thought push notifications were possible now on the web?
There's a very big difference. If you close out of your browser on mobile, or even just out of the tab for the website, you won't be getting those notifications. The whole point of mobile push notifications is that you still receive them even when the app is closed out. You don't need to keep the app open to know that e.g. someone just sent you a message.
Edit
Apparently I'm partly wrong here. You actually don't need to keep the website open in the browser tab in order to receive push notifications. You do still need to have the browser open, however.
PWAs can send notifications even if the "app" is not opened.
Ah, neat! So I'm only half right there. Still requires you to have the browser open to actually receive them, but doesn't require having the tab open. Thanks for bringing my attention to that, it seems things have changed quite a bit since I last looked into this subject :)
I'm not sure what you really mean by:
Most PWAs function as "apps" that are standalone from the browser, you can actually set this with the
display
property in the site'smanifest.json
.More Info
Wait, wtf, installing apps on your phone's home screen? When the hell did this become a thing?
Jesus Christ I'm getting old, and I'm not even in my 30s yet.
Since iOS 11.3 (I think) and earlier on Android.
Even tildes supports this feature. I'm using it right now with firefox on android, it's pretty cool. Duolingo and twitter also support it. Check out pwa.rocks for more apps that use it
IIRC browsers sometimes ask me if I want to receive notification from some 'xyz website' & if you chose yes then you'll receive a notification everytime the website owner sends one.
Yeah, it seems as though you can create a service worker to allow for handling push notifications even if the website isn't open in a tab. The browser still needs to be open, though.
I used to get them even when I was not using it, I think that was a background process and most browsers would keep it running if notifications are enabled.
I never even realized that you could install websites on your phone. Web development has gotten crazy. I give up trying to keep up with everything.
not exactly installing but yes you can add a shortcut to that on home screen, also gnome does this with their default browser (epiphany ..? probably). you can add a web page to app drawer and it would launch like a web app.
and many still install an electron app (!)
Think of all the advantages you want, an "app" that's delivered through the browser doesn't rely on users to update it. In fact, it never requires updating. It doesn't require being installed. I despise "apps." "Apps" are a moneymaking construct, little more. The only legitimate reason to develop an "app" is because you get functionality beyond what HTML has traditionally offered. So OpenGL games and shit, yeah, you weren't able previously to deliver that through HTML, fine, make an app. Even that is changing. The case for "apps" gets thinner and thinner every year.
Yeah, most benefits of apps are definitely on the business end. There are still benefits for users, e.g. guaranteed offline functionality (if the app doesn't rely on a web server), the aforementioned push notifications, potentially faster load times, and a number of convenience features like biometric authentication, but really whether or not you benefit from those advantages is going to depend on the individual (especially if you're concerned about privacy).
99% of the time I prefer using my browser, but I do have apps I prefer over using a web interface. For example, I have the Discord app because I like having those push notifications available to me and I don't want to have to constantly go into my password manager to snag my password to log in any time I visit the web version. It's more convenient for me. The same goes for Slack because it makes communicating with my team at work way easier when I'm not sitting down with my laptop in front of me.
Different tools for different needs, and apps have tools available that browsers don't. Love them or despise them, apps serve an important role by filling in that gap.
Here are some of my thoughts. These are separate from the article. A TL;DR of the article is available here.
Overall, I agree with almost wholly with this article. There are, however, a few benefits to apps not mentioned in the article, such as better potential performance.
I think that a lot of apps create a lot of bloat, and just end up making a cumbersome experience. For example, say a user visits a website to get a small bit of information. The website redirects them to the Play Store or the App Store (got apps, but not websites), preventing the user from accessing the website. The user is more likely to go onto another site to get said information, rather than using the app (for solely convenience.) This alienates mobile users, reducing revenue from ads/whatever.
A middle ground is having both. This, however, suffers from drastically increased development costs, as they have to maintain both at once. It might also alienate users because having a fat banner that says "This loads 50% faster in our app! Please install for a 'superior' experience." probably alienates a fair few people too. I think the way to approach it would be to not push the app too much, while having it there as an option (like Wikipedia.) Yet this suffers from increased development costs with little payoff. If there was a way to embed a mobile-friendly site into an app, while allowing tight integration (for notifications and microtransactions), then it could be a lot easier.
I think that should be possible - I know android and iOS both have web rendering engines built-in (android has Chromium (I think this can be substituted with gecko/firefox?) while iOS has Safari/webkit) which are available to apps as well, which could work for your suggestion
AFAIK neither allow for background app refresh or notifications. I'll try looking into those though, thanks :)
I'm pretty sure you can register some service that can chill in the background. For a good little while Facebook was adamant about installing one in my browser. Maybe this is a direction to look into?
Thanks!!!
I am of the opinion that for mobile users, SPAs are probably the best way to do things. That being said, most complex SPAs are bloated messes that perform badly.
Even for the better examples, there is a "last mile" problem with mobile phone operating systems that make SPAs second citizens. For example, there is no obvious way to "install" a web app, they usually seem to have lower priority levels than native apps, and of course there is no way to control the native hardware except in specific limited ways (you can't use NFC with a web app, for example).
SPA?
Single Page Application. Basically a bunch of bloated JavaScript which is basically the entirety of the website functionality loaded all at once and you do stuff like load data using Ajax requests to update what gets displayed.
Start where the money is, which is iOS, which doesn't support new web technologies, which means you're forced to make an app. Basically, if you want to push for the open web, talk to Apple and the people who buy their stuff, not to startups trying to survive.
iOS supports PWAs as of iOS 11
What do they actually support? Basic service workers, right? No push notifications and no reliable local storage.
Push notifications work, I'm not sure about local storage though.Edit: See below
Push notifications are not available for websites in iOS.
Thanks for the clarification, for some reason I had thought this was possible.
Yeah, you have to search specifically for iOS Safari aka the new IE.