You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi everyone 👋
I’m building a weekly calendar (7 day columns, hourly cells) in React Native and I’d like to understand whether react-native-skia is the right tool to fix a performance issue, and whether
the approach is sound architecturally.
Current setup
• The grid (day columns plus hourly cells) is rendered with a `FlatList`. On its own it scrolls perfectly smoothly.
• The problem starts when I overlay the events (absolutely positioned views on top of the grid). When I scroll fast, the JS thread drops frames and I get blank/white areas while the cells re-render.
What I’m considering
Moving only the event rendering to Skia (drawing rectangles plus text for each event), keeping the grid as a normal FlatList. This way the events would be painted on the UI/GPU side, reducing the load on the JS thread during fast scrolling.
My questions
1. Is this a good use case for Skia, or are the blank areas more likely a `FlatList` virtualization issue (windowing/recycling) that Skia wouldn’t solve?
2. Should I use a single `Canvas` for all events, or one `Canvas` per column/day? I’m not sure which approach is better in terms of performance and scroll handling.
3. Is it correct to mix a Skia `Canvas` layer on top of a `FlatList` and sync its scroll offset (e.g. via Reanimated `useDerivedValue`), or is it better to render the whole calendar (grid plus events) inside Skia?
4. With many events containing text, what’s the recommended approach for performance (e.g. `Group`/`Atlas`, text/paragraph caching, off-screen culling)?
5. Any known pitfalls with hit-testing, tap and drag on events when they’re drawn in Skia instead of being real views?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone 👋
I’m building a weekly calendar (7 day columns, hourly cells) in React Native and I’d like to understand whether
react-native-skiais the right tool to fix a performance issue, and whetherthe approach is sound architecturally.
Current setup
What I’m considering
Moving only the event rendering to Skia (drawing rectangles plus text for each event), keeping the grid as a normal
FlatList. This way the events would be painted on the UI/GPU side, reducing the load on the JS thread during fast scrolling.My questions
Thanks a lot! 🙏
@wcandillon
Beta Was this translation helpful? Give feedback.
All reactions