damus-io / notedeck

A multiplatform nostr client
Other
94 stars 16 forks source link

low data mode #195

Open alltheseas opened 6 months ago

alltheseas commented 6 months ago

user story

As a Damus pleb who uses app on the go (cellular), I want to have a setting where I can turn down Damus data needs (data saver mode), so that I don't surpass my celullar carrier's data throttling threshold, AND so that my events post thereby avoiding poor Damus experience(s).

Acceptance Criteria

  1. In settings Damus user can set low data mode on or off
  2. Damus automagically detects when Damus is not on wi-fi, and reduces data demands
  3. User can clearly see that Damus is performing in low data mode
  4. in low data mode: -damus does not auto-load new images -damus does not auto-load new videos -damus does not auto-load new link previews (does this use significant data?) -damus does not load new profile banners -damus does not load new pfps
  5. In or near main view Damus user can set low data mode on or off

questions

-design: does the new note / feed refresh mechanism change in low data mode? -design: @robagreda what does "low data mode" status look like? how might we display low data mode to the user when it is on? should low data mode icon be displayed all the time? -design: @robagreda how might we allow user to change low data mode setting (when not on wi-fi) without having to send user deep in the settings menus? -design: does user have a mechanism to manually load an image as a one off, video while in low data mode?

alltheseas commented 6 months ago

Motivation

https://damus.io/nevent1qqstyawjmaq28w6xer3j84w09pna55vymsfna8wcjnc3tuz908a4qyspp4mhxue69uhkummn9ekx7mqpz4mhxue69uhk2er9dchxummnw3ezumrpdejqz8thwden5te0dehhxarj94c82c3wwajkcmr0wfjx2u3wdejhgqgcwaehxw309aex2mrp0yh8xmn0wf6zuum0vd5kzmqj6a4e7

The Islamic regime in Iran inflicts hardship on us every day. The internet is filtered, so we are forced to access #Nostr and other websites and social media using VPN. Additionally, the internet is so slow that sometimes we have to wait for many minutes and hours each day to receive a connection. We strongly hate them.

alltheseas commented 6 months ago

https://damus.io/nevent1qqsxul8hevrq0uz8vm3pjvkajeyt9zcgzcghvp2p9hxaafz2lmau9rqfnl8fc

alltheseas commented 2 months ago

Adding new 'data' label, and tagging with 'android' as this is particularly important to mobile users

alltheseas commented 2 months ago

context Android users not on unlimited Wi-Fi or network connection, have requested a "lite", or economical data mode.

Things that could reduce bandwidth:

-no images pre-loaded -no PFP pre-loaded -somehow reduce note, profile loading -reduce relay queries/increase relay query efficiency

Realized that mutiny blastr relay will be the most data economical outbound relay with the most reach

wss://nostr.mutinywallet.com

alltheseas commented 1 month ago

If low data mode is on/there is poor connectivity, it becomes more important to communicate this to the damus user.

For instance instead of a no context loading spinner, consider: -Loading: X notes remaining -Loading: Y kb of notes remaining -Loading: Z seconds remaining -A progress bar