TL;DR - Here is a demo Code Our team has built a lot of Progressive Web Apps recently to demonstrate how we think they can be built: Airhorner, Voice Memos, Guitar Tuner, SVG-OMG are a few that spring to mind. One thing that is common across all of these sites is that they have no server component to store and synchronise data. We built these sites as examples and reference implementations of the types of experiences that we can deliver on the web, they were never intended to be full “Apps” that you would build as a business.
Feel free to ignore.
A question came up the other day in the office: “Everyone keeps saying Web Intents died because of the UX, but no one has actually said what the issues were”. I looked back over a bunch of my notes and blog posts and it’s correct, I don’t think we documented the holistic set of UX issues that we faced. Wide array of actions and data types We never optimized for the user intent and all were treated equally: Sharing == Viewing == Picking == Editing == Any other intent, and this caused a number of issues.
Web Push is great, however if the user already has an app installed that does Push notifications the developer needs to reasonably be able to stop either the app or the web sites notification. However there is no shared ID between site and app (for obvious reasons). There are a couple of strategies that we are experimenting with right now. One of strategy is to try and launch an app and if it is not installed use the web experience.
The URI is a handy thing, it’s kind of like a Command Line Interface. A URI lets you target a site or an app and pass it data and then see a result in some form. Nearly everyone will know and understand that to load a web page we enter http:// or more recently (and more importantly) https://, but Apps can also be targeted directly with a custom form of the ‘https’ prefix called a custom scheme.
I was writing about Service Discovery the other day and I have some thoughts about how we can do inter-app communication on the web more effectively than what we can today. Interactions between web and web, web and apps and apps and web is something that many of you may know that I am passionate about, but it is incredibly hard and using the intent syntax in Android is a great start but has huge problems because it is not portable.
It's not a pretty picture, but we have some solutions
I have a little script that I use to keep me sane
This story starts a long time, was tickled into existing after I visited FlipKart in Bangalore and was finalized after an internal conversation about the fact that it is impossible to trigger the share dialog in Android from the web. Lots of people want it, it turns out everyone thought it wasn't possible. It is.*
Web Developers. It's a long road ahead
You say Mobile, I say 'Mobile X'.
I've spent this week in India doing more research about Web Development in India and how mobile is changing that. Publically at least it is not rosey, app development and app thinking is very high whislt building for the web with mobile in mind is very low.
The web is changing, we need to adapt
On the web determining and adapting to network type the user is on is incredibly hard. Until now.
I learnt a lot of things in India. 3: 2G is still a big thing and web developers can't do anything about it
I learnt a lot of things in India. 2: UC Browser is trying to be the browser for the region
I learnt a lot of things in India. 1: Proxy browsers don't work
I love (actual love) the `window.performance` API. Use it to help speed up your site.
I am passionate about making web apps discoverable and interlinked. It is one of the reasons why I created the very first Web Intents prototype and then worked on trying to get it standarised and implemented as WebIntents. Web Intents as we know it today failed (it still hurts), yet I still think about it a lot. In my recent post about SLICE I mentioned that inter-app linking is MIA on the web.
What are the properties that make the web the web? How can we keep differentiating from native to stay relevant in a mobile world?