pro tip for reducing doomscrolling: introduce a bug that causes your app to crash instantly on startup
8 5 174and for you appleheads check this out: nicer swipe dismiss behaviour when the composer is empty, thanks to @kwasniew.ski 🫡
4 4 40if they can fit "macbook pro levels of compute" in an iphone why don't they just fill a macbook pro with that compute density
9 10 187getting closed as completed must feel good asf for the issue
Bookmarks/ability to ‘save’ posts · Issue #1091 · bluesky-social/social-app
Is your feature request related to a problem? Please describe. I’d like to be able to ‘save’ posts to come back to later, without needing to publicly ‘like’ or reskeet them. Describe the solution y...
github.com
fixed the drawer menu jitter and improved perf when navigating around in this one too. feels good
3 43if you want to migrate from the 📌 feed over to the proper Saved Posts, try this little tool we cooked up:
pin2saved for Bluesky
Migrate your Bluesky 📌 replies to saved posts.
pin2saved.vercel.app
v1.108 is rolling out today 🚚
Now live, at long last: Bookmarks, aka Saved Posts. For all those posts you'll definitely plan to come back to!
Update the app and give it a try. The button is right down there 👇
dial toad
This landline phone is shaped like a frog. We need more frog phones.
@expo.dev I have a question - is `react-native-url-polyfill` necessary when using Expo? this docs page implies expo's URL implementation already supercedes the bad one RN ships with, does it do the same thing as url-polyfill? do we need both?
docs.expo.dev/versions/v52...
URL
Standard URL API available on all Expo-supported platforms.
docs.expo.dev
city of london is the best skyscraper district on earth because seemingly the only planning rule they have is “you can build whatever you want so long as it looks stupid and different to everything else”. it works so well!
6 14 132“hello we want to build a skyscraper”
“is it stupid?”
“uhhh there’s a public park on the roof and it has a giant lens that melts cars on the street”
“approved!”
3 1 57Chinese cities a close second because clearly they have a directive to subsidise the LED lights industry
1 26the article did not disappoint
“wow blueskyism is a totally contradictory ideology. what do they even want?”
and they have the nerve to make fun of the uk
The color of the sky in Seattle is dim gray #67696b
I was wrong. it was a third thing: the drawer would start animating, it would change the `open` prop, and then an effect would fire starting the animation again (hence jittering back to a previous position)
luckily has already been fixed upstream 😁
waiiit - it doesn't use the final translation value. it might be a one line patch fix 🤦♂️
[Perf] Better fix for drawer jitter by mozzius · Pull Request #8949 · bluesky-social/social-app
Better fix for #8947
I found a better fix for the jitter issue! While #8947 improves things by reducing the amount of work the device is doing and thus hiding the problem better, the real issue is ...
github.com
what an adventure
[Perf] Drawer jitter fix (final) (final) by mozzius · Pull Request #8952 · bluesky-social/social-app
Supercedes #8947 and #8949
Ok this time I think I have it 🙃
Turns out the true cause was toggleDrawer() (which starts the animation) fires twice - first when the gesture ends, and then a second tim...
github.com
#reactnative
question: is this an acceptable way to use RNGH? I don't want the identity of `nativeGesture` to change, so as `drawerGesture` changes I just keep adding them endlessly in an effect
seems cursed but fixes a gnarly perf problem!
I can't tell if it's a problem that it'll leave a pile dead gestures attached to it. like I guess they'll never be garbage collected
2 2PR here
the dan in the back of my head says it does not pass the vibe check but I'm frankly out of ideas at this point
github.com/bluesky-soci...
[Perf] Fix drawer jank issue (maybe) by mozzius · Pull Request #8947 · bluesky-social/social-app
The cause of the drawer jank is due to our use of the drawer gesture, as we use it to set requireExternalGestureToFail on the main home screen pager.
Unfortunately, the drawer gesture is in a useMe...
github.com
hmmmm. the real question is: why is something that should be entirely UI thread getting janked up by the JS thread?
looking at the drawer code, it looks like it calls `runOnJS` *prior* to triggering the animation. maybe we should start the anim first
also, these are optional callbacks 🤔
react-navigation/packages/react-native-drawer-layout/src/views/Drawer.native.tsx at main · react-navigation/react-navigation
Routing and navigation for React Native and Web apps - react-navigation/react-navigation
github.com
waiiit - it doesn't use the final translation value. it might be a one line patch fix 🤦♂️
[Perf] Better fix for drawer jitter by mozzius · Pull Request #8949 · bluesky-social/social-app
Better fix for #8947
I found a better fix for the jitter issue! While #8947 improves things by reducing the amount of work the device is doing and thus hiding the problem better, the real issue is ...
github.com
yeah lol this completely works on device. love a one-liner
will open a pr with react navigation and finally end the scourge of every react native app having laggy drawers 😇
2 93 lessons here
1. remember to profile your stuff
2. profiling isn’t everything, think deeply about what’s *actually* going on
3. if your fix is suspicious (telltale signs: useEffect, setTimeout, eslint-ignore) it probably is not the optimal solution, and you should keep digging
4 2 13update: I was completely wrong and a future version of React Navigation already has the fix
I was wrong. it was a third thing: the drawer would start animating, it would change the `open` prop, and then an effect would fire starting the animation again (hence jittering back to a previous position)
luckily has already been fixed upstream 😁
recently I’ve been using the React Profiler more seriously and I’m quickly finding it to be a very fun and extremely satisfying kind of puzzle
in related news, the drawer menu jank might be fixed soon 🎉
2 1 48I still don’t have a good intuition about when parents/children changing will cause rerenders, especially with “donut” components
1 8the cause of the Drawer Jank was every time the drawer opens, it causes the RNGH gesture for the drawer to change, which causes a GestureDetector to rerender, which causes the entire Home Screen to rerender.
perf pro tip: don’t make the entire screen rerender
14