Kureev introduces XMLHttpRequest, Fetch, and WebSocket as platform APIs exposed to JavaScript. React Native routes XMLHttpRequest through its networking module, which uses OkHttp on Android and NSURLSession on iOS. Fetch is polyfilled on top of XMLHttpRequest, so it shares that implementation’s limitations; WebSocket provides persistent, two-way communication.
Network layer in React Native
Speaker
Alexey Kureev, a React Native developer at Birdspot in Amsterdam, explains React Native networking at a Callstack talk.
Chrome DevTools does not show React Native requests because they run through the mobile platform, not Chrome’s networking APIs. Desktop traffic tools such as Charles Proxy or Wireshark may not capture requests made by a physical device. Kureev recommends Reactotron, which uses React Native interceptors to display XHR and WebSocket activity.
Kureev says React Native’s XHR implementation lacked Blob and File support, making binary transfers difficult. A Base64 workaround sends data across the JavaScript bridge as a string, creating substantial overhead, especially for large images. React Native Fetch Blob keeps the data native and passes a small reference across the bridge; Kureev also notes that WebSocket binary support had shipped, while XHR support was still under review.
Kureev contrasts web behavior, where XHR credentials are off by default unless `withCredentials` is enabled, with mobile platforms, which send credentials by default. React Native’s behavior had changed and then been reverted, breaking some applications along the way. He advises checking the implementation and changelog because the policy remained unsettled.
Takeaways
- Expect Fetch to inherit limitations from React Native’s XMLHttpRequest implementation.
- Use Reactotron to inspect React Native requests when Chrome DevTools cannot see them.
- Avoid moving large Base64 payloads across the JavaScript bridge; a native-side blob reference can reduce overhead.
- Verify cookie and credential behavior for the React Native version your application uses.
Mentioned in this talk
Search inside this talk
What was claimed 12
- role atAlexey Kureev is React Native developer at Birdspot
“I'm a React Native developer at a company called Birdspot”
YouTube Unverified1 source· Talk
- usesReact Native uses NSURLSession
“the networking model for iOS that works on top of NSURLSession”
YouTube Unverified1 source· Talk
- usesReact Native uses OkHttp
“the networking model for Android that works on top of the OkHttp library”
YouTube Unverified1 source· Talk
- featureFetch: In React Native, Fetch is polyfilled on top of XMLHttpRequest.
“Fetch is polyfilled... all the functionality we have in Fetch works on top of XMLHttpRequest”
YouTube Unverified1 source· Talk
- builtInfinite Red built Reactotron
“Infinite Red has put out Reactotron for a long time”
7:03inReact Native news, insights & gossip with React Native RadioYouTube Verified2 sources· Talk
- featureReact Native: Development mode establishes a WebSocket connection between the packager and the application.
“you establish this WebSocket connection between the packager and your application”
YouTube Unverified1 source· Talk
- feature
Chrome: Its Network tab does not show React Native requests because they run through the mobile platform.“Chrome doesn't see this request because it doesn't use the Chrome API”
YouTube Unverified1 source· Talk
- uses
“and a WebSocket interceptor for WebSockets”
YouTube Unverified1 source· Talk
- uses
“It works on top of this XHR interceptor”
YouTube Unverified1 source· Talk
- featureReact Native Fetch Blob: Provides blob primitives and keeps fetched binary data on the native side, sending a small reference over the bridge.
“When we fetch a blob from the server, it stays on the native side of our application”
YouTube Unverified1 source· Talk
- featureReact Native: The speaker says a version available at the time supports Blob and File constructors and binary data over WebSocket.
“you can use the Blob and File constructors and transmit binary data over a WebSocket connection”
YouTube Unverified1 source· Talk
- builtCallstack Team built WebSocketBinary data transfer support
“Callstack’s engineers to implement support for transferring binary data over WebSockets”
YouTube Unverified1 source· Talk







