I hate to say it but this just demonstrates, all in one place, how far behind PWAs are from native apps. Does anyone have an example of a PWA (hosted here or elsewhere) that rivals the best apps seen in native app stores? I’m talking about beautiful animations, native-feeling navigation, and an overall immersive, cohesive experience?
Weird how I can't join pixelfed.social. I tried looking up how to register and the registration link is supposed to be there on the homepage according to their help center, but all I see is a login form
They might be at capacity and closed new signups for the moment. Being a federated network you can find a different instance, or set up your own if you want.
This being a federated network you should be able to follow and interact with users in other instances. That's what ActivityPub is about. I haven't checked Pixelfed specifically but it's how Mastodon works.
> I’m talking about beautiful animations, native-feeling navigation, and an overall immersive, cohesive experience?
A lot of people don't consider the economics of UI animation.
Smooth animation only makes sense in powerful devices. For the past 10 years we've seen an increase in UI animations which required users to buy newer and more powerful devices to achieve smoother and more complex animations.
Look at any phone/tablet review and you will see the reviewer try to open the app drawer or something similar to showcase performance. "Look how fluid it moves!"
Perfectly fine devices are constantly being replaced and thrown away because they can't keep up with more and more demanding UI animations.
Another aspect is energy consumption, battery production, etc, which I don't think is negligible when considering billions of devices being used for hours every day.
And the sad truth is, very often UI animation is overused.
Yes, I think this example highlights a point many aren't picking up on. PWAs have been biggest in emerging markets. I think Ali Baba also used them to great effect.
Ever tried to get users in emerging markets on old Android devices to discover, download and update your native app? It's a world of pain.
Old cheap android devices nearly always have no available storage space, which makes it almost impossible to install a native app. Freeing up 1MB of space isn't enough to allow you to install a 1MB app - typically you need to free up 1GB or more before the store will function at all, and there's a good chance on old devices that won't be possible at all, due to the way updates consume space, and old devices have a lot of updates...
PWA's aren't the perfect solution here - on those same old devices, theres a good chance your user is running a 5+ year old browser engine, with a lot of bugs that are hard to even test against, considering how many combinations of screen size, phone, and browser software version there are.
Does the native app also constantly fail to load tweets linked from Reddit? And then you click the "retry" button and it fails again? Cause that's my general Twitter website experience...
I don't use any anti tracking or ad blockers. I have the normal Reddit all and Twitter app on my pixel 3a and every time I click on a Twitter link it opens in an in app browser that can't log me in.
I think this is correct. My experience has been that when it's using a tracking url it fails (I Ad block and Tracker block) and I see the tracker url in the address bar, but when I click again, it just goes directly to the real URL; presumably some fallback Twitter put in to deal with people like myself :D
Just tried it, and the difference between Twitter native and Twitter PWA is night and day. The PWA has absolutely 0 polish. No animations, no transitions, nothing. The tab bar at the bottom misses hits if you tap quickly / right after the PWA opens. The pull-to-refresh doesn't use the native scroll physics. The search tab's tab bar horizontal scrolling can interfere / combine with the vertical scrolling, causing really funky interactions.
Does it browse twitter? Yes. Is it good? Well, maybe if all you ever uses are PWAs, this is considered "good."
This is amazing. I mean it isn't a stretch considering the main VSCode app is Electron based, but having a hosted development environment like this has always been a dream...
This is particularly true on iPads. Instagram has clearly decided it's not worth the engineering effort to adapt Instagram (a multi billion dollar asset) for iPad. No matter - add the PWA to your homescreen!
I turn off all the OS-level animations using my phone's accessibility settings. It is a much better usability experience and "feels" far more performant - I perceive less time spent waiting, anyway.
I wish I could do it in apps too, so that I the time it takes to complete an action wasn't bounded by the duration of the "beautiful animation" someone felt it was helpful to include.
Thank you! I did, but it didn't get much traction, since Show HNs can be a bit of a lottery! After a fairly slow start, we're doing quite well in the UK now (7 figure MRR after 3 years).
Checkout our product, Domestica. It's an offline capable PWA to help you manage tasks, budgeting, cooking, shopping, and more. You can even self host it.
Sorry to hear that, I'd really appreciate your feedback if you're willing to provide it (mikeatcandid.dev).
There's an about button at the top that will take you to the about/landing page. I was debating on linking to that instead, but it's not a PWA, just a simple static site.
Twitter is awful (slow, loses scrolling position all the time, breaks common functionality like copying URLs or opening in a new tab) but that's due to bad engineering and user-hostile design and not a flaw of PWAs.
I managed to convince myself that I'm not using twitter website correctly because it happens to me all the time - after digging into some comment/thread I want to return to 'main' thread and it returns to the beginning, after that I often give up and just close tab, this is incredibly frustrating and infuriating!
I'm pretty sure that's somehow my fault because it would be insane that one of most frequently used service in the world and company which employs most skilled 10x workforce is unwilling or incapable to deal with problem like this.
Twitter's criteria for using the Twitter website correctly is to be looking at ads. Seeing useful content in between the ads is a side-effect only necessary to keep you there so you can look at ads.
They have absolutely no incentive in making your usage of Twitter more efficient as it would 1) decrease the "engagement" metrics and 2) give you less opportunities to look at ads if you just see the content you want directly.
Social networks need to strike a fine balance between extracting the maximum value out of the user (profit) while giving them the least possible value (expense). They believe the current system achieves this balance, which I sadly have to agree with because the average user's bullshit tolerance is orders of magnitude higher than ours and they will put up with a lot of shit without leaving the platform.
> which employs most skilled 10x workforce
There are still scammers replying to high-profile accounts with obvious spam such as fake cryptocurrency giveaways, something which can be filtered out with simple regular expressions. I would like to add a very big "[citation needed]" to Twitter having significant skill in house, whether it's engineering or management. Whatever skill they had when they initially built & scaled the platform seems to be long gone.
>Most important thing for me is sandboxing, no abuse of the device's data and sensors. I hate how most native apps invade your privacy.
User abuse is rampant on the Web. For example, those APIs you mention are used to fingerprint machines. If you're genuinely concerned with abuse of privacy, you'd do yourself a huge favor by researching the history and current mechanisms for such abuse by websites and, by extension, PWAs.
I'm well aware of browser fingerprinting, I take my privacy seriously and do my best to protect it.
Both on desktop and mobile I use an array of browser extensions to limit online tracking and fingerprinting. On Android I use Webapps Sandboxed Browser [1] to log in to webapps without leaking the logged in status to other websites.
I feel that with the web I get a fighting chance, while native apps are designed for tracking you.
>Biggest thing for me would be instant installs[...]
That's relative to the size of the thing you're installing, no? Wouldn't it then be comparable to software of the same size being installed on the host system?
>no/much less space taken on local storage.
Isn't this, too, relative to the size of the application or the data it is persisting?
Single codebase for multiple platforms, no app store approvals/revenue share required, openable via a link, works to the webs' strengths, etc. That sort of stuff. It has its own set of disadvantages too of course.
Hasn’t pretty much every Silicon Valley tech company that tried to use single-condensed Cross platform apps essentially come to the conclusion that they’re not worth it, or better than OS-specific codebases and proper separation of UI and logic?
Native is obviously better and always will be. Making cross platform apps is not worth it only if you can easily afford to go native. This is obviously not true for everyone.
>no app store approvals/revenue share required[...]
Software was distributed long before those walled gardens came into existence. It is as possible as ever to install native software on your machine without having to go through a "store."
>openable via a link[...]
I don't follow. Do you mean a hyperlink from within a browser? I suppose, if one really wanted, it wouldn't take much effort to create such a thing for launching their native applications, but why would that be an advantage: "links" to open applications have existed as icons and various other actions for as long as graphical UIs have been in existence.
>works to the webs' strengths
What does this mean? What advantages do PWAs have, garnered from the Web, that native applications are unable to tap in to?
What’s the likelihood that people are going to put their credit card information into some unknown website compared to using Apple/Google for payments?
Every “advantage” you mentioned is better for the developer not the user. That’s why PWA’s will never take off.
> What’s the likelihood that people are going to put their credit card information into some unknown website compared to using Apple/Google for payments?
Outside of HN's bubble, people do that all the time. Or at worst they will use PayPal or an equivalent to make payments.
It’s outside of the HN bubble that people are less trusting of random websites.
If people were so willing to make payments on random websites, merchants wouldn’t be falling all over themselves to use Amazon’s marketplace and sell their self published books through Kindle.
Not to mention that micropayments on the web has been the holy grail that no one has found in over two decades.
Apple was the first to make $0.99 payments over the internet feasible with iTunes back in 2005. There is much more friction to buying something on the web than just clicking on buy from Amazon/Apple/Google.
> If people were so willing to make payments on random websites, merchants wouldn’t be falling all over themselves to use Amazon’s marketplace and sell their self published books through Kindle.
People fall all over themselves to use Amazon's marketplace because
- it has a lower barrier to entry to setting up and managing a store themselves
- it has a built-in audience they can access without trying to hustle their proprietary ___domain name into the public consciousness (SEO is hard)
What on earth gives you the idea that it has anything to do with people's willingness or lack thereof to make payments on random websites?
> There is much more friction to buying something on the web than just clicking on buy from Amazon/Apple/Google.
Again, low-friction payment platforms that aren't "use Apple/Google's in-app payment SDKs" are readily available in 2020. PayPal is one such, Flutterwave is another (in sub-Saharan Africa), etc. In fact, I use those far more in a month than I've ever used Apple or Google Pay.
because
- it has a lower barrier to entry to setting up and managing a store themselves - it has a built-in audience they can access without trying to hustle their proprietary ___domain name into the public consciousness (SEO is hard)
So the same advantages that using the App Store had over going to random websites and installing J2Me apps back in the day....
Again, low-friction payment platforms that aren't "use Apple/Google's in-app payment SDKs" are readily available in 2020. PayPal is one such, Flutterwave is another (in sub-Saharan Africa), etc. In fact, I use those far more in a month than I've ever used Apple or Google Pay.
You realize Apple has had more users payment information on file than any other company since the iTunes heyday than maybe Amazon?
Cross platform support is nice for users as well. I have a number of apps that I can't use on my desktop which is quite annoying. When I use a PWA I know that I can access it from whatever device I am on.
This is just an incredibly odd statement. First of all, if such layouts are rendering on your machine then of course native applications are also capable of such a feat. Web browsers capabilities are limited to the resources being made available on the host machine. The same goes for any software running on the machine.
And second: Qt.
>- Until SwiftUI web front end was way more advanced in terms of reactive programming of UIs
On iOS they do. On Android 99% of users won't use a different store.
> Cross-platform frameworks exist for native applications.
Nothing really good though. Best ones are RN and Flutter which do not get you there 100%.
A PWA will consume less memory and will be smaller than a RN or Flutter app.
> Same goes for native applications
Not on iOS.
> if such layouts are rendering on your machine then of course native applications are also capable of such a feat
Theoretically, yes.
> And second: Qt.
Remind me again how much a QT license costs?
> I don't understand what you mean here.
For the last 10 or so years UI development for the web has gone from archaic jQuery imperative DOM manipulation to a new paradigm with data binding and reactive data.
UI data binding in the native world exists but is extremely complicated and tedious. AFAIK the only thing that is similar to what we have now in web dev is SwiftUI.
There is no reason PWAs couldn't run as well as native in most cases. The issue is that there are orders of magnitude more developers and money behind native apps, and giant corporations making their access super simple through app stores. If we saw the same amount of resources going into PWAs, they would be as good.
>There is no reason PWAs couldn't run as well as native in most cases
I mean, PWAs by definition run inside a VM that has to provide a very heavy runtime, don't they?
This isn't a (comparatively) minimal like the JVM -- this is usually a Chromium instance, with the full V8 engine, Canvas and DOM support, and sandboxing.
It's not reasonable to say that something with this much baggage should be able to run as quickly as a native application, which can often afford to have a much more minimal sandbox, no bytecode layer, a smaller memory footprint, and more deliberate and performant integration with underlying system APIs.
If you do not count the browser itself - a single web app has a very small memory footprint. For comparison you can have hundreds of web apps running at the same time - taking up less memory then one native app!
Then there are Electonr/nw.js apps that all come with their own browser, but PWA's will reuse and share the existing browser.
Which is why I said "most cases". It's a small percentage of apps that require maxing out a device's resources. I even mention elsewhere in this thread that they are not as performant as native. You can make vague statements about VM characteristics but in practice they won't have a real impact on most use cases.
Native application has level of access to OS features and computer peripherals that PWA can only dream of. Same about performance.
But yes there are classes of applications for which underlying implementation technology does not matter much while browser based access from anywhere is more important.