Ranchero-Software / NetNewsWire

RSS reader for macOS and iOS.
https://netnewswire.com/
MIT License
8.38k stars 532 forks source link

UI nonresponsiveness for image previews #3354

Open aaronkollasch opened 2 years ago

aaronkollasch commented 2 years ago

I just tried the iOS app out, and there are some small issues in tap-image-to-preview that make it feel less responsive than the rest of the app (which is excellent).

  1. I've seen a ~1sec lag between tapping an image and the image enlarging. I get that there could be a delay if you are downloading a full-resolution image, but given that a preview is already available, I think it should expand immediately upon being tapped, with the full-res replacing it once it loads. My ping to the different newsfeeds I tested was 30-100ms, but I don't think app responsiveness should depend on network latency or bandwidth.
  2. Maybe half the time I tap an image, it doesn't enlarge. Combined with the opening lag, this means it takes multiple attempts to enlarge an image.
  3. If I swipe to dismiss an image and then tap it again, it only responds on the second tap. The first tap is ignored 100% of the time, even if I scroll up and down a little between dismissing an image and tapping it again. (Perhaps this is related to point 2.)
  4. In order to dismiss an image, I have to swipe from the image, not the whitespace surrounding the image. Ideally a swipe from anywhere in the screen should be able to dismiss an image, as it does in the Photos app and others.
  5. As discussed in #3349, it would be nice to have the image track the finger as it slides down, similar to the Photos app. I don't think the animation necessarily has to be fancy, but this would improve discoverability and perceived responsiveness of the gesture. This isn't as big an issue as the others though, in my opinion.

I'm on NNW 6.0.2 (build 610) and iOS 15.1. Has anyone else experienced any of these?

vincode-io commented 2 years ago

Those are all well known behaviors and most are due to the fact that we use a web view to render the article. For example the initial lag to enlarge an image is because we have to pass it from the web view to the main application so that it can be zoomed in on. When we can't enlarge an image it is often due to limits in Javascript's handling of images that we try to work around, but aren't 100% effective at.

To resolve these issues would mean architecting an image fetching and caching system that would be shared between the web view and the rest of the application. This is a non-trivial amount of work.

NetNewsWire as an RSS reader is primarily geared toward reading articles. It isn't an image viewer application. We want to make all aspects of NetNewsWire the best it can be, but because this is a volunteer effort, we have to use our time wisely. I'm sure we'll get to this someday, but I hope you understand why it isn't at the top of our priority list.

aaronkollasch commented 2 years ago

Thanks, that's understandable that this isn't the highest priority.