I think this is also a great path forward, but this will require additional community outreach which neither GNOME nor Canonical seem to be doing at the moment. Some outreach that needs to be done:
- The PR for file picker portal support in electron is stuck at the moment: https://github.com/electron/electron/pull/19159
- There is no current work to add support for camera and audio portals into electron.
- There is no current work to add support for any portals in Java Swing.
- Many applications need to be ported to these new api’s and many snaps need upstream inclusion, updates to the latest and greatest desktop helpers/extensions etc.
Asking app developers to support the portal api’s directly is not the right way forward, in my opinion. This needs to be supported by the toolkits, and we need people familiar with these technologies to write that support.
I am 100% convinced that Canonical cannot do this outreach on their own. Fixing app distribution on Linux desktop requires so much work that the only way we can achieve this is by collaboration. Adding portal support is a great step in the right direction. Glaring issues like snapd’s lack of internationalization in snap metadata can be easily fixed by using existing standards like AppStream. I understand the security issues of AppStream, but not using it means “app metadata” is one more issue that Canonical need to fix on their own. You simply can’t expect Canonical to have enough developer resources available to solve all these issues at once.
So in my opinion, it is vital for the future of snaps that you increase collaboration with the wider desktop Linux ecosystem. I’m not entirely sure how to do that. However, responding to criticism with “people who don’t like Canonical will never like snaps” seems counter-productive. Sure, the proprietary nature of the snap store will hardly be an issue for the wider ecosystem of app publishers, but it is a big issue for the other people who are trying to fix Linux desktop app distribution. You need good relations with them because you simply can’t fix all these issues on your own. It doesn’t matter that these people will never use snaps. What matters is that these people see Canonical as a good open-source citizen worthy of collaborating with.
Sidenote: portal support for snaps on 18.04 is still wonky; I have a snap that consistently crashes when it tries to use the files portal on 18.04. Where should I report issues like that?