pachli / pachli-android

The Pachli Android app
https://pachli.app
GNU General Public License v3.0
114 stars 15 forks source link

Grouped notifications #58

Open prohr opened 1 year ago

prohr commented 1 year ago

The current notifications list only works well if very few people ever interact with your posts. So much detail may be a reasonable approach for replies (at least it's proportional to the effort people take to contact you), but it's total overkill for easy actions such as boosts or likes.

Describe the solution you'd like Group related notifications into a simpler summary (both on the list + when alerting me).

Describe alternatives you've considered The most useful implementation I've seen is in the experimental Phanpy client.

https://github.com/cheeaun/phanpy

You don't necessarily need all the visual polish of his MIT-licensed PWA -- a more compact presentation with less flair might be more in keeping with Pachli's overall vibe -- but some extremely thoughtful bits of functionality include:

  1. Everything focuses on the people you're interacting with. In this example, one post attracted just favorites, whereas the other got a mix of boost + favs.
  1. Instead of just being an infinite list, it's segmented by day. A surprisingly useful touch:
  1. To help focus your attention on people you might want to reply to, there's a single "mentions only" toggle at the top. For those who use the "fav as ACK" convention, that little heart indicator is a subtle reminder of who you can skim past.
  1. Finally, there are also some nice touches for when a more extended conversation goes async. Note that your content is in a smaller font + trimmed for length (you wrote it, so you just need to see enough to remember which post they're responding to).

TBH, there may well be other refinements I haven't noticed yet -- @cheeaun clearly put in a ton of work here -- but that's enough to give you a good feel for what's possible.

prohr commented 1 year ago

However, if you'd prefer something simpler or more Twitter-esque, then an easier UX to crib from would be Bluesky's.

Their relevant MIT-licensed notification grouping logic is here:

https://github.com/bluesky-social/social-app/blob/main/src/state/models/feeds/notifications.ts

and rendered here:

https://github.com/bluesky-social/social-app/blob/main/src/view/com/notifications/FeedItem.tsx

nikclayton commented 1 year ago

Thanks for the info (and taking the time to include the screenshots, I edited the comments to resize them to 45%). I agree with you, and I think phanpy has some very interesting UX decisions.

There's some features (primarily: translation, tablet/foldable support, fetching data from remote servers) that I want to get out first (see https://github.com/orgs/pachli/projects/1/views/1). I've put this on the roadmap, but I'm not sure where in the set of upcoming releases this work will be done. I have some implementation ideas (and blockers), so if this is something you would be interested in working on let me know, and I'll sketch them out more fully.

prohr commented 1 year ago

Thanks for sizing down the screenshots. I don't know how anyone discusses UX intelligently without including the relevant details.

For now, I'm just happy to have this recorded on the roadmap, along with an initial sense of what a great implementation might resemble. If at some point I get impatient enough to spin up a working Android dev environment to take a crack at this, I'll ping you.