How it works
Gravity provides critical functionality in all kinds of SwiftUI apps, so performance is a top priority.
Gravity’s built-in caching and deduplication skips unnecessary network requests, but
the performance of the SWR hook itself still matters. In a complex app, there could be hundreds of SWR calls in a single page render.
Gravity ensures that your app has:
- no unnecessary requests
- no unnecessary re-renders
- no unnecessary data revalidation
without any code changes from you.
Deduplication
It’s very common to reuse Gravity hooks in your app. For example, an app that renders the current user’s avatar 5 time. Each Avatar view has a SWR hook inside. Since they have the same key and are rendered at the almost same time, only 1 network request will be made. Same goes with GravityStream, where only one WebSocket connection will be active. One thing that is great about Gravity, is that even though 1 connection will be active, you can use different data processor, as WebSockets can transfer different type of information.