bluesky-social / social-app

The Bluesky Social application for Web, iOS, and Android
https://bsky.app
MIT License
8.31k stars 1.11k forks source link

Non-linear transitions #4404

Open cyrneko opened 4 months ago

cyrneko commented 4 months ago

Is your feature request related to a problem? Please describe.

The current animation transitions (e.g opening a post, opening a settings page, opening a profile) look...weird

Describe the solution you'd like

A different curve for the animations, e.g a simple ease-out or a more complex bezier curve for transition animations.

Describe alternatives you've considered

N/A

Additional context

Interestingly the bottom dialogs (delete post, repost/boost, quote, context menu) don't use a linear animation.

gaearon commented 3 months ago

Which platform?

cyrneko commented 3 months ago

Android, i hadn't thought of putting that in for some reason 🫠

frncs-eu commented 3 months ago

FWIW I believe the transition you're referring to is already non-linear and easing-out (it is currently made to resemble the default iOS transition).

I somewhat agree that the timing is a bit too fast and it doesn't feel exactly "right" on Android but IIRC the subset of possible native stack transition (from the React Native specific navigation library used) is finite, the developer can pick one among some "presets" but the single transition config is not directly customizable (e.g. bezier curves and the like).

Other solutions that let developers customize the stack are theoretically available but maybe less performant (JS vs native) and require a big rewrite of the current stack implementation, so it's probably not worth it IMHO.

edit: experimented a bit and the "default" Android animation feels better than the "ios" animation (smooth, with a little fade, timed just right), but looking at the PR history (https://github.com/bluesky-social/social-app/pull/2352 -> https://github.com/bluesky-social/social-app/pull/4207) this seems like a tricky topic and it might be the reason why "ios" is used instead.

So this will improve at some point in the future I think!