7 ms·
One of the wonderful things about a PWA is that it is so freeing (no app store gods to appease for approval etc etc). I'm a little afraid that putting PWAs in a
by osrec 8y ago
One of the wonderful things about a PWA is that it is so freeing (no app store gods to appease for approval etc etc). I'm a little afraid that putting PWAs in an app store may actually reduce the flexibility they offer by restricting what PWAs can and can't do. Then again, an app store may be a necessary to allow PWAs to diffuse into mainstream usage.
Personally, I am looking forward to the day PWAs are considered on par with native apps by the general populace. I think we're getting there in terms of functionality and flexibility - I run https://usebx.com/app https://usebx.com/app which is a PWA, and my users are pretty happy with the functionality it delivers on all platforms. It also helped me launch with a smaller budget, since it's a single code base that runs on desktop, mobile or tablet.
The one thing I will add is that building a high-quality, performant PWA is significantly harder than building a native app - why? because you really need to understand the workings of modern browsers to squeeze native like performance, and unfortunately, in my experience, very few web developers have that depth of understanding. I have been building web apps for 20 years (I started young), but when I decided to build Bx as a PWA, I had to learn a lot to achieve the quality I desired.
- CraftThatBlock 8y agoI think app stores are a great discovery tool for PWA. Searching for PWA in a centralize marketplace will most likely be one the tipping points of PWA, and putting amd emphasis on the "app" point. If their goal is to be the same as native apps, putting them together makes them even closer to that objective
- pasta 8y agoWell I find myself not using the app store anymore because it's useless to find apps. There are no filters and no way to order results. Top downloads sometimes have worse scores than indy apps that only have a hundred downloads but work much better.
- dddw 8y agowow you're app is really nice! superfast too
- osrec 8y agoThank you! We've got version 2 coming out at the end of the month which aims to make it a bit quicker with more functionality :)
- jayd16 8y agoI think its a good change. There are a fair bit of apps that should have been web pages but the owner wanted something on the app store.
- fefb 8y agoNice work. How many users? Are using some cloud services for the backend? Thanks in advance
- osrec 8y agoJust over 100k users. All of the backend is managed by ourselves - no cloud services, apart from the servers/hosting.
- fefb 8y agoWow. This is big. Do you have some blog? Explaining technologies, knowledges and etc about this app? How did you grow to reach 100K users? Thanks in advance, and congratulations.
- wincy 8y agoAny good resources on developing that kind of understanding? What sorts of things would a web developer need to learn?
- osrec 8y agoI don't have a list of resources, but here is a not-so-comprehensive list of things I find important: 1) Understand how requestAnimationFrame() works 2) Understand how setTimeout() works 3) Know how to minimise the number of DIVs you have in the DOM at any one time 4) Understand the touchstart, touchmove and touchend events properly. 5) Understand the browser viewport model and the vw, vh CSS units. These units can even be used to scale text, which, if done well can allow for truly responsive text scaling. 6) Understand the various layout engines. Grid is good for static layouts, Flex is great when you want to animate things. 7) Understand the different element positioning modes. I'm amazed how little most web devs understand absolute and relative positioning. Understanding this is super useful. 8) Understand promises properly. Understand async/await and try/catch. Understand Promise.all() and Promise.race(). 9) Understand what 'this' means and how func.call() works in Javascript 10) Understand indexedDB and localStorage 11) Be aware that any Javascript on a page executes in a single thread 12) Understand which JS likely to trigger a "recalc" and "repaint" in a browser 13) Become a master of your browser's dev tools and be comfortable debugging asynchronous code. The MDN pages for a lot of the above are pretty good - all the best :)
- matgessel 8y agoDon't know how much of this still applies (2011), but it's a good starting point: How Browsers Work: Behind the scenes of modern web browsers https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/ https://www.html5rocks.com/en/tutorials/internals/howbrowser...
- saulrh 8y agoI'm a little afraid that putting PWAs in an app store may actually reduce the flexibility they offer by restricting what PWAs can and can't do Not sure what you're saying here. Are you afraid that app store policies (privacy requirements etc) will be stricter than what you can do with browser APIs, or that the app store will ban API abuses that're currently necessary for acceptable performance/usability?
- osrec 8y agoThe web is analogous to an untamed forest. It's got a bit of everything in it, and you can choose which parts of the forest you wish to go to. Don't like app XYZ because it locks up your CPU? Don't visit its URL. If you like and trust app ABC, use it regularly. It's like when you visit a restaurant - if the food's good, you go back. Otherwise you don't. I feel people are smart enough to work this out on their own without needing a corporate app store to set out rules for everyone. If we start to restrict the web, I feel it takes away from what makes it great; the fact that it's a platform for untamed creativity and choice.
- sandGorgon 8y agoThat's not the issue. The TWA has been created specifically on the request of app creators (including me). The problem is that users find PWA very difficult to install. Like massively hard. They are used to the "app Store installation model" - they search for stuff, they click install, they check for permissions and then apps are available in their dock. This model breaks down in a PWA "add to homescreen" kind of experience. In fact, it is hard to explain what a "homescreen" is in vernacular languages. The TWA is a massive jump in usability - publishers can now work using web technologies and users can still get the same experience. This is what will unlock web use on mobile phones.
- blumomo 8y agoYour demo login is broken. I don't want to sign up for understanding your product.
- oneeyedpigeon 8y agoAlso want to report this. Running safari on an iPad, fwiw, but it looks like the username/password for the demo user are just wrong.
- osrec 8y agoSorry about that - we have a cron job that resets the demo user data every few hours. Sometimes if you happen to catch it just at the moment we're resetting, a bug in our code means the demo credentials used by the frontend to log in to the app are stale. If you refresh, you should be okay now :) Edit: my dev has just issued a fix for this bug, so it will not be a problem going forward!
- oneeyedpigeon 8y agoThanks — much appreciated!
- osrec 8y agoApologies - there was a subtle race condition in our code which meant that if you try to log in to the demo at the instant we're resetting our demo's data, you end up using stale demo credentials. This has now been fixed :)
- SCdF 8y ago> I think we're getting there in terms of functionality and flexibility One big thing that is missing IMO is getting out from under the 5% quota. If you want to write a "serious" app that might store large amounts of data locally you are under constant threat of your data being arbitrarily deleted from the device.
- osrec 8y agoThis should help alleviate the issue somewhat: https://developers.google.com/web/updates/2018/11/writable-files https://developers.google.com/web/updates/2018/11/writable-f...
- pjmlp 8y agoYou application looks quite nice. I do prefer native to Web, but also have spend the large majority of project assignments on the Web side. If PWAs everywhere get the same capabilities as in UWP, then I really admit defeat on my preferences. :) On my specific case, it would be so nice to finally have WebGL catch up with ES 3.2 at very least.
- criddell 8y agoI don't understand the love that PWAs get around here. All things being equal, as a user I'll chose a native app every time. As a developer, I'd much rather be working in a native toolkit as well. There's less to learn to get going and the foundations are more stable than the browser and billion lines of javascript from 40 different parties. I also think it's a lot harder to reason about security with a web app. I might be able to satisfy myself that the app I load today isn't doing anything nefarious, but you could sell your business and tomorrow I might be running a significantly different app.
- nicoburns 8y ago> There's less to learn to get going There are thousands of pre-existing web developers for whom this is not true because they've already put the effort in to learn the web platform. For these people, PWAs represent significant new functionality which they can now use without having to learn a whole new toolkit. You may be dramatically underestimating just how many web developers there are. > I also think it's a lot harder to reason about security with a web app. I'm not sure that's true, because the web runtime itself tends to provide quite good security (partly because it doesn't allow access to a lot of device APIs in the first place). Native apps are often granted quite wide permissions, and auto-update by default too.
- pier25 8y ago> As a developer, I'd much rather be working in a native toolkit as well. Across multiple OS?
- criddell 8y agoDefinitely. The last thing anybody wants is to run an application on a Mac that looks and acts like a Windows application. How could you be proud of that?
- la_fayette 8y agoIn terms of the web one could use different stylesheets for the different platforms... the business logic can stay the same. OnsenUI and ionic are providing just that.
- WA 8y agoIs the UI entirely custom-made or do you use any framework for that?